Results 1 to 4 of 4
  1. #1
    Michaelclaw's Avatar
    Join Date
    Sep 2012
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    15
    My Mood
    Happy

    [TUTORIAL] How to make an iSnipe Mod

    How to make an iSnipe mod?



    The reason i made this guide is because when i started .gsc coding i really wanted to make mods for my clan so i

    would use any other pre-made isnipe mods, at the time i didn't know anything really about coding/.gsc coding, i'm not

    saying i'm pro but i know a little :P. This guide is aimed at people that want to learn how to make a isnipe for

    their server/clan and people who just in general want to make a fun isnipe mod. Thanks for Checking out my Guide... READ ON







    What software i use to edit my .gsc mods is Notepad++

    Click here! to Download it

    Notepad++ Home

    If i cant link it just google it "notepad++"

    First you need a clean _rank.gsc file

    Here is a clean _rank.gsc
    #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\g - Pastebin.com

    If i cant post to outside links here is another copy

     
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;


    init()
    {
    level.scoreInfo = [];
    level.xpScale = getDvarInt( "scr_xpscale" );

    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" );

    level waittill( "prematch_over" );

    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:romotionSplashNotify();

    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 = (xp + 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()
    {
    xp = self getRankXP();

    self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }


    First Thing we need to do is open our _rank.gsc and scroll to the bottom.


    Scroll to here

    syncXPStat()
    {
    xp = self getRankXP();

    self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }



    One thing you need to know is using this "//" makes the file skip that part so it would be like ||[self.guid]

    "guid" //Put your guid here

    Now lets start!

    First Thing we need to Do it make a doDvars Thread.


    doDvars(){

    Make sure to leave a space between the syncXPstat() thread and our new thread. like this



    syncXPStat()
    {
    xp = self getRankXP();

    self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }

    doDvars(){


    Now Lets give our player a weapon while having our doDvars() thread open, we can type our commands/text into there

    doDvars(){
    //iSnipe Weapons
    self takeallweapons(); //Takes all your weapons away
    self maps\mp\perks\_perks::givePerk( "throwingknife_mp" );self setWeaponAmmoClip("throwingknife_mp". 100);

    //That gave us a Throwing Knife
    self giveweapon("cheytac_fmj_xmags_mp", 2, false); //That gave us our Sniper The Intervention without Ammo
    self giveweapon("beretta_fmj_xmags_mp); //Gives Us our Pistol M9
    self switchtoweapon("beretta_fmj_xmags_mp");
    while(self getCurrentWeapon() != "cheytac_fmj_xmags_mp") //Makes Cheytac Current Weapon
    {
    self switchToWeapon("cheytac_fmj_xmags_mp");
    wait 0.1;
    }
    Now that was our iSnipe weapon Setup With this we only have a isniper (no ammo) pistol (no ammo) and a Throwing

    Knife

    Now lets setup our perks
    //Perks
    self _clearperks();

    self maps\mp\perks\_perks::givePerk("specialty_marathon "); // Marathon GIVES SAID PERK
    self maps\mp\perks\_perks::givePerk("specialty_fastmant le"); // Marathon Pro
    self maps\mp\perks\_perks::givePerk("specialty_fastrelo ad"); // Sleight of Hand
    self maps\mp\perks\_perks::givePerk("specialty_quickdra w"); // Sleight of Hand Pro
    self maps\mp\perks\_perks::givePerk("specialty_bulletda mage"); // Stopping Power
    self maps\mp\perks\_perks::givePerk("specialty_armorpie rcing"); // Stopping Power Pro
    self maps\mp\perks\_perks::givePerk("specialty_lightwei ght"); // Lightweight
    self maps\mp\perks\_perks::givePerk("specialty_fastspri ntrecovery"); // Lightweight Pro
    self maps\mp\perks\_perks::givePerk("specialty_falldama ge"); // Commando Pro
    self maps\mp\perks\_perks::givePerk("specialty_bulletac curacy"); // Steady Aim

    //Max Ammo
    self givemaxammo("cheytac_fmj_xmags_mp"); //Gives our Sniper Maximum Ammo at the spawn


    From Here you really already have a iSnipe mod...If you would like to make your Mod bigger and better follow along!


    //Removes Pistol Ammo
    self setWeaponAmmoclip("berretta_fmj_xmags_mp", 0);
    self setWeaponAmmoStock("beretta_fmj_xmags_mp", 0);


    //Disable Pesky Knifing Noobs?

    setDvar( "aim_automelee_range", "0" );
    setDvar( "aim_automelee_region_height", "0" );
    setDvar( "aim_automelee_region_width", "0" );
    setDvar( "player_meleeHeight", "0");
    setDvar( "player_meleeRange", "0" );
    setDvar( "player_meleeWidth", "0" );
    setDvar( "perk_extendedMeleeRange", "0");

    }



    Now we must add Anti-Hardscoping Paste this Code Below anywhere in the _rank.gsc as long as its not in a thread.


    Qscope()
    {
    self endon ( "disconnect" );
    self endon ( "death" );
    self notifyOnPlayerCommand("[{+toggleads_throw}]", "+toggleads_throw");//Thanks to rathynia for this

    command
    while(1) {
    self waittill("[{+toggleads_throw}]");
    wait 0.3;
    self allowADS(false);
    self allowADS(true);
    self allowADS(false);
    self allowADS(true);
    wait 0.0005; }

    }

    From Here keep reading on how to Activate it!


    Lower your health so its usually one hit-kill

    Paste this somewhere in the _rank.gsc


    Health()
    {
    self.maxhealth = 35;
    self.health = self.maxhealth;
    }




    From Here down this pretty much tells you how to install and activate Anti-hardscoping and Advertisments and lower

    health on your server


    Paste this code Below the doDvars thread or anywhere on the _rank.gsc as long as you dont put it inside a

    thread.



    WriteText()
    {
    myText = self createFontString( "objective", 1.3 );//Change font size
    myText setPoint( "TOPRIGHT", "TOPRIGHT");//Set the position of the text
    myText setText("^4Galactic ^2Gaming"); //Set the text
    }





    //Disable Pesky Knifing Noobs?

    setDvar( "aim_automelee_range", "0" );
    setDvar( "aim_automelee_region_height", "0" );
    setDvar( "aim_automelee_region_width", "0" );
    setDvar( "player_meleeHeight", "0");
    setDvar( "player_meleeRange", "0" );
    setDvar( "player_meleeWidth", "0" );
    setDvar( "perk_extendedMeleeRange", "0");


    //Extras
    self thread Write Text(); //THIS TELLS THE SERVER "HEY ACTIVATE THIS THREAD THE NAME IS "threadname""
    self thread Qscope(); //THIS ACTIVATES THE ANTI-HARDSCOPE THREAD
    self thread Health(); //ACTIVATES USAGE OF THE HEALTH THREAD




    Now This is a Pretty Good iSnipe but with this when you start the game you must press Q to recieve your weapon to

    remove this download the _menus.gsc using the link below and this will be fixed



    Now to setup the folders for your mod



    Make sure your folders look like this






    {modname}/maps/mp/gameypes/_rank.gsc
    {modname}/maps/mp/gameypes/_menus.gsc



    This was my First Guide
    This Guide was Created by Michael


    Virus Scans
    _menus.rar - Jotti's malware scan
    https://www.virustotal.com/en/file/f...is/1368167548/
    <b>Downloadable Files</b> Downloadable Files

  2. The Following 9 Users Say Thank You to Michaelclaw For This Useful Post:

    brohh (10-21-2014),Gesus123 (06-10-2013),kakalamahaka (07-27-2014),khullasher (10-12-2014),killerboy191Q (01-02-2019),kl3nt0n (12-04-2013),lilkingg2 (09-12-2015),shashwat321 (02-19-2015),wanna-cry (08-11-2017)

  3. #2
    Horror's Avatar
    Join Date
    Oct 2010
    Gender
    male
    Location
    51,4.
    Posts
    6,920
    Reputation
    574
    Thanks
    5,050
    My Mood
    Twisted
    //Approved.
     

    Minion+ : February 2014 - January 2015
    Counter Strike: Global Offensive Minion : November 2014 - January 2015
    Alliance of Valiant Arms Minion : August 2014 - January 2015
    Need For Speed World Minion : January 2014 - January 2015
    Rust Minion : January 2014 - January 2015
    Call of Duty Minion : January 2013 - January 2015
    Editor : December 2012 - April 2013
    Donator : March 2014 - Current
    Member : October 2010 - Current

    Previously known as "Isaakske".

  4. #3
    Michaelclaw's Avatar
    Join Date
    Sep 2012
    Gender
    male
    Posts
    25
    Reputation
    10
    Thanks
    15
    My Mood
    Happy
    Quote Originally Posted by Horror View Post
    //Approved.

    Thanks for approval:

  5. #4
    A-3RAKY's Avatar
    Join Date
    Sep 2014
    Gender
    male
    Posts
    2
    Reputation
    10
    Thanks
    0
    thanks for that [TUTORIAL] : D
    but i want to add another intervention with thermal scope. if i press 3 i get it with thermal scope but idk how to do it can u help me plz.

Similar Threads

  1. [tutorial] how to make a inf ammo mod;
    By griezel32 in forum Call of Duty Modern Warfare 2 GSC Modding Help/Discussion
    Replies: 15
    Last Post: 02-04-2011, 07:18 PM
  2. [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
  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