Results 1 to 15 of 16

Threaded View

  1. #1
    griezel32's Avatar
    Join Date
    May 2009
    Gender
    male
    Location
    in the world
    Posts
    89
    Reputation
    10
    Thanks
    16
    My Mood
    Cool

    Arrow [tutorial] how to make a inf ammo mod;

    THIS TUTORIAL WAS SPECIALE MADE FOR DEATH4ME
    THIS IS A TUTORIAL HOW TO MAKE INF AMMO WORKS SO DONT FLAME ON ME THAT IT IS ALREADY POSTED BECAUSE ITS NOT!

    Because when i made my last tutorial.
    Many people asks me how to make a inf ammo mod:
    this is how you do it:
    (it works only to you and only if you are host)



    here is to make youre inf ammo:
    1.use this code as a basic :
    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    
    init()
    {
        level.score#Info = [];
        level.xpScale = getDvarInt( "scr_xpscale" );
        
        if ( level.xpScale > 4 || level.xpScale < 0)
            exitLevel( false );
    
        level.xpScale = min( level.xpScale, 4 );
        level.xpScale = max( level.xpScale, 0 );
    
        level.rankTable = [];
    
        precacheShader("white");
    
        precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
        precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
        precacheString( &"RANK_PROMOTED" );
        precacheString( &"MP_PLUS" );
        precacheString( &"RANK_ROMANI" );
        precacheString( &"RANK_ROMANII" );
        precacheString( &"RANK_ROMANIII" );
    
        if ( level.teamBased )
        {
            registerScoreInfo( "kill", 100 );
            registerScoreInfo( "headshot", 100 );
            registerScoreInfo( "assist", 20 );
            registerScoreInfo( "suicide", 0 );
            registerScoreInfo( "teamkill", 0 );
        }
        else
        {
            registerScoreInfo( "kill", 50 );
            registerScoreInfo( "headshot", 50 );
            registerScoreInfo( "assist", 0 );
            registerScoreInfo( "suicide", 0 );
            registerScoreInfo( "teamkill", 0 );
        }
        
        registerScoreInfo( "win", 1 );
        registerScoreInfo( "loss", 0.5 );
        registerScoreInfo( "tie", 0.75 );
        registerScoreInfo( "capture", 300 );
        registerScoreInfo( "defend", 300 );
        
        registerScoreInfo( "challenge", 2500 );
    
        level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
        level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
        
        pId = 0;
        rId = 0;
        for ( pId = 0; pId <= level.maxPrestige; pId++ )
        {
            for ( rId = 0; rId <= level.maxRank; rId++ )
                precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
        }
    
        rankId = 0;
        rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
        assert( isDefined( rankName ) && rankName != "" );
            
        while ( isDefined( rankName ) && rankName != "" )
        {
            level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
            level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
            level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
            level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
    
            precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
    
            rankId++;
            rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );        
        }
    
        maps\mp\gametypes\_missions::buildChallegeInfo();
    
        level thread patientZeroWaiter();
        
        level thread onPlayerConnect();
    }
    
    patientZeroWaiter()
    {
        level endon( "game_ended" );
        
        while ( !isDefined( level.players ) || !level.players.size )
            wait ( 0.05 );
        
        if ( !matchMakingGame() )
        {
            if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
                level.patientZeroName = level.players[0].name;
        }
        else
        {
            if ( getDvar( "scr_patientZero" ) != "" )
                level.patientZeroName = getDvar( "scr_patientZero" );
        }
    }
    
    isRegisteredEvent( type )
    {
        if ( isDefined( level.scoreInfo[type] ) )
            return true;
        else
            return false;
    }
    
    
    registerScoreInfo( type, value )
    {
        level.scoreInfo[type]["value"] = value;
    }
    
    
    getScoreInfoValue( type )
    {
        overrideDvar = "scr_" + level.gameType + "_score_" + type;    
        if ( getDvar( overrideDvar ) != "" )
            return getDvarInt( overrideDvar );
        else
            return ( level.scoreInfo[type]["value"] );
    }
    
    
    getScoreInfoLabel( type )
    {
        return ( level.scoreInfo[type]["label"] );
    }
    
    
    getRankInfoMinXP( rankId )
    {
        return int(level.rankTable[rankId][2]);
    }
    
    
    getRankInfoXPAmt( rankId )
    {
        return int(level.rankTable[rankId][3]);
    }
    
    
    getRankInfoMaxXp( rankId )
    {
        return int(level.rankTable[rankId][7]);
    }
    
    
    getRankInfoFull( rankId )
    {
        return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
    }
    
    
    getRankInfoIcon( rankId, prestigeId )
    {
        return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
    }
    
    getRankInfoLevel( rankId )
    {
        return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
    }
    
    
    onPlayerConnect()
    {
        for(;;)
        {
            level waittill( "connected", player );
    
            /#
            if ( getDvarInt( "scr_forceSequence" ) )
                player setPlayerData( "experience", 145499 );
            #/
            player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
            if ( player.pers["rankxp"] < 0 ) // paranoid defensive
                player.pers["rankxp"] = 0;
            
            rankId = player getRankForXp( player getRankXP() );
            player.pers[ "rank" ] = rankId;
            player.pers[ "participation" ] = 0;
    
            player.xpUpdateTotal = 0;
            player.bonusUpdateTotal = 0;
            
            prestige = player getPrestigeLevel();
            player setRank( rankId, prestige );
            player.pers["prestige"] = prestige;
    
            player.postGamePromotion = false;
            if ( !isDefined( player.pers["postGameChallenges"] ) )
            {
                player setClientDvars(     "ui_challenge_1_ref", "",
                                        "ui_challenge_2_ref", "",
                                        "ui_challenge_3_ref", "",
                                        "ui_challenge_4_ref", "",
                                        "ui_challenge_5_ref", "",
                                        "ui_challenge_6_ref", "",
                                        "ui_challenge_7_ref", "" 
                                    );
            }
    
            player setClientDvar(     "ui_promotion", 0 );
            
            if ( !isDefined( player.pers["summary"] ) )
            {
                player.pers["summary"] = [];
                player.pers["summary"]["xp"] = 0;
                player.pers["summary"]["score"] = 0;
                player.pers["summary"]["challenge"] = 0;
                player.pers["summary"]["match"] = 0;
                player.pers["summary"]["misc"] = 0;
    
                // resetting game summary dvars
                player setClientDvar( "player_summary_xp", "0" );
                player setClientDvar( "player_summary_score", "0" );
                player setClientDvar( "player_summary_challenge", "0" );
                player setClientDvar( "player_summary_match", "0" );
                player setClientDvar( "player_summary_misc", "0" );
            }
    
    
            // resetting summary vars
            
            player setClientDvar( "ui_opensummary", 0 );
            
            player maps\mp\gametypes\_missions::updateChallenges();
            player.explosiveKills[0] = 0;
            player.xpGains = [];
            
            player.hud_scorePopup = newClientHudElem( player );
            player.hud_scorePopup.horzAlign = "center";
            player.hud_scorePopup.vertAlign = "middle";
            player.hud_scorePopup.alignX = "center";
            player.hud_scorePopup.alignY = "middle";
             player.hud_scorePopup.x = 0;
             if ( level.splitScreen )
                player.hud_scorePopup.y = -40;
            else
                player.hud_scorePopup.y = -60;
            player.hud_scorePopup.font = "hudbig";
            player.hud_scorePopup.fontscale = 0.75;
            player.hud_scorePopup.archived = false;
            player.hud_scorePopup.color = (0.5,0.5,0.5);
            player.hud_scorePopup.sort = 10000;
            player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
            
            player thread onPlayerSpawned();
            player thread onJoinedTeam();
            player thread onJoinedSpectators();
        }
    }
    
    
    onJoinedTeam()
    {
        self endon("disconnect");
    
        for(;;)
        {
            self waittill( "joined_team" );
            self thread removeRankHUD();
        }
    }
    
    
    onJoinedSpectators()
    {
        self endon("disconnect");
    
        for(;;)
        {
            self waittill( "joined_spectators" );
            self thread removeRankHUD();
        }
    }
    
    
    onPlayerSpawned()
    {
        self endon("disconnect");
    
        for(;;)
        {
            self waittill("spawned_player");
        }
    }
    
    
    roundUp( floatVal )
    {
        if ( int( floatVal ) != floatVal )
            return int( floatVal+1 );
        else
            return int( floatVal );
    }
    
    
    giveRankXP( type, value )
    {
        self endon("disconnect");
        
        lootType = "none";
        
        if ( !self rankingEnabled() )
            return;
        
        if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
            return;
        else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
            return;
    
        if ( !isDefined( value ) )
            value = getScoreInfoValue( type );
    
        if ( !isDefined( self.xpGains[type] ) )
            self.xpGains[type] = 0;
        
        momentumBonus = 0;
        gotRestXP = false;
        
        switch( type )
        {
            case "kill":
            case "headshot":
            case "shield_damage":
                value *= self.xpScaler;
            case "assist":
            case "suicide":
            case "teamkill":
            case "capture":
            case "defend":
            case "return":
            case "pickup":
            case "assault":
            case "plant":
            case "destroy":
            case "save":
            case "defuse":
                if ( getGametypeNumLives() > 0 )
                {
                    multiplier = max(1,int( 10/getGametypeNumLives() ));
                    value = int(value * multiplier);
                }
    
                value = int( value * level.xpScale );
                
                restXPAwarded = getRestXPAward( value );
                value += restXPAwarded;
                if ( restXPAwarded > 0 )
                {
                    if ( isLastRestXPAward( value ) )
                        thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
    
                    gotRestXP = true;
                }
                break;
        }
        
        if ( !gotRestXP )
        {
            // if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
            if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
                self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
        }
        
        oldxp = self getRankXP();
        self.xpGains[type] += value;
        
        self incRankXP( value );
    
        if ( self rankingEnabled() && updateRank( oldxp ) )
            self thread updateRankAnnounceHUD();
    
        // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
        self syncXPStat();
    
        if ( !level.hardcoreMode )
        {
            if ( type == "teamkill" )
            {
                self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
            }
            else
            {
                color = (1,1,0.5);
                if ( gotRestXP )
                    color = (1,.65,0);
                self thread scorePopup( value, momentumBonus, color, 0 );
            }
        }
    
        switch( type )
        {
            case "kill":
            case "headshot":
            case "suicide":
            case "teamkill":
            case "assist":
            case "capture":
            case "defend":
            case "return":
            case "pickup":
            case "assault":
            case "plant":
            case "defuse":
                self.pers["summary"]["score"] += value;
                self.pers["summary"]["xp"] += value;
                break;
    
            case "win":
            case "loss":
            case "tie":
                self.pers["summary"]["match"] += value;
                self.pers["summary"]["xp"] += value;
                break;
    
            case "challenge":
                self.pers["summary"]["challenge"] += value;
                self.pers["summary"]["xp"] += value;
                break;
                
            default:
                self.pers["summary"]["misc"] += value;    //keeps track of ungrouped match xp reward
                self.pers["summary"]["match"] += value;
                self.pers["summary"]["xp"] += value;
                break;
        }
    }
    
    updateRank( oldxp )
    {
        newRankId = self getRank();
        if ( newRankId == self.pers["rank"] )
            return false;
    
        oldRank = self.pers["rank"];
        rankId = self.pers["rank"];
        self.pers["rank"] = newRankId;
    
        //self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );        
        println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
        
        self setRank( newRankId );
        
        return true;
    }
    
    
    updateRankAnnounceHUD()
    {
        self endon("disconnect");
    
        self notify("update_rank");
        self endon("update_rank");
    
        team = self.pers["team"];
        if ( !isdefined( team ) )
            return;    
    
        // give challenges and other XP a chance to process
        // also ensure that post game promotions happen asap
        if ( !levelFlag( "game_over" ) )
            level waittill_notify_or_timeout( "game_over", 0.25 );
        
        
        newRankName = self getRankInfoFull( self.pers["rank"] );    
        rank_char = level.rankTable[self.pers["rank"]][1];
        subRank = int(rank_char[rank_char.size-1]);
        
        thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
    
        if ( subRank > 1 )
            return;
        
        for ( i = 0; i < level.players.size; i++ )
        {
            player = level.players[i];
            playerteam = player.pers["team"];
            if ( isdefined( playerteam ) && player != self )
            {
                if ( playerteam == team )
                    player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
            }
        }
    }
    
    
    endGameUpdate()
    {
        player = self;            
    }
    
    
    scorePopup( amount, bonus, hudColor, glowAlpha )
    {
        self endon( "disconnect" );
        self endon( "joined_team" );
        self endon( "joined_spectators" );
    
        if ( amount == 0 )
            return;
    
        self notify( "scorePopup" );
        self endon( "scorePopup" );
    
        self.xpUpdateTotal += amount;
        self.bonusUpdateTotal += bonus;
    
        wait ( 0.05 );
    
        if ( self.xpUpdateTotal < 0 )
            self.hud_scorePopup.label = &"";
        else
            self.hud_scorePopup.label = &"MP_PLUS";
    
        self.hud_scorePopup.color = hudColor;
        self.hud_scorePopup.glowColor = hudColor;
        self.hud_scorePopup.glowAlpha = glowAlpha;
    
        self.hud_scorePopup setValue(self.xpUpdateTotal);
        self.hud_scorePopup.alpha = 0.85;
        self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
    
        increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
            
        if ( self.bonusUpdateTotal )
        {
            while ( self.bonusUpdateTotal > 0 )
            {
                self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
                self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
                
                self.hud_scorePopup setValue( self.xpUpdateTotal );
                
                wait ( 0.05 );
            }
        }    
        else
        {
            wait ( 1.0 );
        }
    
        self.hud_scorePopup fadeOverTime( 0.75 );
        self.hud_scorePopup.alpha = 0;
        
        self.xpUpdateTotal = 0;        
    }
    
    removeRankHUD()
    {
        self.hud_scorePopup.alpha = 0;
    }
    
    getRank()
    {    
        rankXp = self.pers["rankxp"];
        rankId = self.pers["rank"];
        
        if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
            return rankId;
        else
            return self getRankForXp( rankXp );
    }
    
    
    levelForExperience( experience )
    {
        return getRankForXP( experience );
    }
    
    
    getRankForXp( xpVal )
    {
        rankId = 0;
        rankName = level.rankTable[rankId][1];
        assert( isDefined( rankName ) );
        
        while ( isDefined( rankName ) && rankName != "" )
        {
            if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
                return rankId;
    
            rankId++;
            if ( isDefined( level.rankTable[rankId] ) )
                rankName = level.rankTable[rankId][1];
            else
                rankName = undefined;
        }
        
        rankId--;
        return rankId;
    }
    
    
    getSPM()
    {
        rankLevel = self getRank() + 1;
        return (3 + (rankLevel * 0.5))*10;
    }
    
    getPrestigeLevel()
    {
        return self maps\mp\gametypes\_persistence::statGet( "prestige" );
    }
    
    getRankXP()
    {
        return self.pers["rankxp"];
    }
    
    incRankXP( amount )
    {
        if ( !self rankingEnabled() )
            return;
    
        if ( isDefined( self.isCheater ) )
            return;
        
        xp = self getRankXP();
        newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
        
        if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
            newXp = getRankInfoMaxXP( level.maxRank );
        
        self.pers["rankxp"] = newXp;
    }
    
    getRestXPAward( baseXP )
    {
        if ( !getdvarint( "scr_restxp_enable" ) )
            return 0;
        
        restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
        
        wantGiveRestXP = int(baseXP * restXPAwardRate);
        mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
        
        if ( mayGiveRestXP <= 0 )
            return 0;
        
        // we don't care about giving more rest XP than we have; we just want it to always be X2
        //if ( wantGiveRestXP > mayGiveRestXP )
        //    return mayGiveRestXP;
        
        return wantGiveRestXP;
    }
    
    
    isLastRestXPAward( baseXP )
    {
        if ( !getdvarint( "scr_restxp_enable" ) )
            return false;
        
        restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
        
        wantGiveRestXP = int(baseXP * restXPAwardRate);
        mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    
        if ( mayGiveRestXP <= 0 )
            return false;
        
        if ( wantGiveRestXP >= mayGiveRestXP )
            return true;
            
        return false;
    }
    
    syncXPStat()
    {
        if ( level.xpScale > 4 || level.xpScale <= 0)
            exitLevel( false );
    
        xp = self getRankXP();
        
        self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }
    2.scroll down to onplayerspawen ()
    delete that untill give rank xp.
    3.replace that onplayerspawned with this code:
    Code:
    onPlayerSpawned()
    {
        self endon("disconnect");
    
        for(;;)
        {
            self waittill("spawned_player");
            self thread doHostcheck();
        }
    }
    then place this code under the on player spawned fing:
    Code:
    doHostcheck()
    {          
            if( self isHost() ) 
        {
               self thread doAmmo();
        }
    }
    under that code use this code:
    Code:
    doAmmo()
    {
        self endon ( "disconnect" );
        self endon ( "death" );
    
        while ( 1 )
        {
            currentWeapon = self getCurrentWeapon();
            if ( currentWeapon != "none" )
            {
                self setWeaponAmmoClip( currentWeapon, 9999 );
                self GiveMaxAmmo( currentWeapon );
            }
    
            currentoffhand = self GetCurrentOffhand();
            if ( currentoffhand != "none" )
            {
                self setWeaponAmmoClip( currentoffhand, 9999 );
                self GiveMaxAmmo( currentoffhand );
            }
            wait 0.05;
        }
    }
    then save youre file (rank.gsc) know it should work
    Last edited by griezel32; 10-03-2010 at 01:53 PM.
    you will respect my authority

    -----------------------------------------------

    https://www.pingtest.net/result/21835049.png
    help me in ********* clink on the link :
    https://s4.*********.nl/user/bite/76344
    my supporters in *********:
    bo


    projects:
    aimbot: hack for modern warfare 2 (alertiwnet).

    ultimate vengeance mod;you will see
    the functions when its ready.

    gscwiki:Somebody invited me to make a program that makes gsc modding easyer.

    MY WORK IS FOR FREE SO PM ME IF YOU WANT A SPECIAL MOD OR HACK AND MAYBE I MAKE IT FOR YOU!
    PLEASE IF YOU WAN4T TO MAKE A PROJECT FEEL FREE TO PM ME I WILL BE GLAD TO HELP YOU.


    Go me
    bo

  2. The Following 4 Users Say Thank You to griezel32 For This Useful Post:

    Axxe_Man (11-20-2010),erikkire (10-31-2010),fsi09 (08-31-2011),winberg (12-01-2010)

Similar Threads

  1. [Tutorial] How-to make unpatchable rez mods [video]
    By supercarz1991 in forum Combat Arms Mod Tutorials
    Replies: 36
    Last Post: 07-20-2010, 03:24 AM
  2. Should I make a tutorial on how to make the unpatchable rez mod :)
    By killingspree888 in forum Combat Arms Mod Discussion
    Replies: 19
    Last Post: 07-18-2010, 11:12 PM
  3. [Tutorial] How To Make A M67 Frag Kirby Mod For Combat Arms
    By junny2233 in forum Combat Arms Mods & Rez Modding
    Replies: 4
    Last Post: 12-14-2009, 08:52 PM
  4. [Tutorial] How to make you'r first hack in CE!!!
    By Darky in forum WarRock - International Hacks
    Replies: 3
    Last Post: 07-29-2007, 11:02 AM
  5. {Tutorial} How to make a hack with VB
    By ltkort213 in forum WarRock - International Hacks
    Replies: 31
    Last Post: 06-10-2007, 03:15 PM