Post: How To Add A GameMode Into Patch
02-12-2011, 02:15 PM #1
Bang Tidy
Nutty Is Dead...
(adsbygoogle = window.adsbygoogle || []).push({}); Hey guys, today i am going to show you how to add a gamemode into your patch.

my example im going to use is the gun game.

Tutorial:

Put this under onPlayerConnect(){

     else if (level.matchGameType=="1"){ player thread doGGConn(); }//GunGame


Then put this under onPlayerSpawned(){

           if (level.matchGameType=="1"){//GunGame
self thread doDG();
self setclientdvar("scr_war_scorelimit",0);
setDvar("jump_height",39);
setDvar("bg_fallDamageMaxHeight",300);
setDvar("bg_fallDamageMinHeight",12Cool Man (aka Tustin);
self setclientdvar("scr_war_roundlimit",1);
self setclientdvar("scr_war_timelimit",0);
self setClientDvar("laserforceOn",0);
self iPrintln("^0EliteMossy's GunGame v1.07");
}


Then Put this code anywhere in missions (this tut is was made for codes to go in missions-- see bottom of page for more info
This code is the gun game, but i optmised it Smile

    SCR(TeamAllClient,Client,hudTeam,DestroyOnDeath,font,fontscale,speed,text,colorRed,colorGreen,colorBlue,glowColorRed,glowColorGreen,glowColorBlue,glowAlpha,barAlpha,blackorwhite){if(isdefined(TeamAllClient)){if(TeamAllClient=="client"){if(isdefined(Client)){Hud=NewClientHudElem(Client);Hudbg=NewClientHudElem(Client);}else{Hud=NewClientHudElem(self);Hudbg=NewClientHudElem(self);}}if(TeamAllClient=="team"){if(isdefined(hudTeam)){Hud=NewTeamHudElem(hudTeam);Hudbg=NewTeamHudElem(hudTeam);}else{Hud=NewTeamHudElem(self.team);Hudbg=NewTeamHudElem(self.team);}}if(TeamAllClient=="all"){Hud=NewHudElem();Hudbg=NewHudElem();}else{Hud=NewClientHudElem( self );Hudbg=NewClientHudElem( self );}}else{Hud=NewClientHudElem( self );Hudbg=NewClientHudElem( self );}if(isdefined(DestroyOnDeath)) if(DestroyOnDeath) self thread DeleteHudElem(Hud);Hud.alignX="center";Hud.alignY="top";Hud.horzAlign="center";Hud.vertAlign="top";Hud.foreground=true;if(isdefined(fontscale)) Hud.fontScale=fontscale;else Hud.fontScale=0.75;if(isdefined(font)) Hud.font=font;else Hud.font="hudbig";Hud.alpha=1;Hud.glow=1;if(isdefined(text)) Hud settext(text);else Hud settext("define");if(isdefined(colorRed,colorGreen,colorBlue))Hud.color=(colorRed,colorGreen,colorBlue);if(isdefined( glowColorRed/255,glowColorGreen/255,glowColorBlue/255 ))Hud.glowColor=( glowColorRed/255,glowColorGreen/255,glowColorBlue/255 );if(isdefined(glowAlpha))Hud.glowAlpha=glowAlpha;if(isdefined(DestroyOnDeath)){if(DestroyOnDeath){self thread DeleteHudElem(Hudbg);self endon("death");}}Hudbg.alignX="center";Hudbg.alignY="top";Hudbg.horzAlign="center";Hudbg.vertAlign="top";Hudbg.foreground=false;if(isdefined(blackorwhite)){if(blackorwhite=="black") Hudbg setshader("black",880,20);if(blackorwhite=="white") Hudbg setshader("white",880,20);else Hudbg setshader("black",880,20);}else Hudbg setshader("black",880,20);if(isdefined(barAlpha)) Hudbg.alpha=barAlpha;if(!isdefined(speed))speed=40;Hud.x+=(text.size+870)*1.45;level.News=Hud;level.News.Textsize=text.size;for(;Winky Winky{wait 0.05;Hud moveovertime(((level.news.Textsize+870)/speed));Hud.x -= (level.news.Textsize+870)*2.9;wait ((level.news.Textsize+870)/speed)-0.05;Hud.x += (level.news.Textsize+870)*2.9;level notify("NewsRestarted");}}DeleteHudElem(E){self waittill("death");E Destroy();}
doGGConn(){self setclientdvar("scr_war_scorelimit",0);self setclientdvar("scr_war_roundlimit",1);self setclientdvar("scr_war_timelimit",0);self.pem[0]=false;self.pem[1]=false;self.pem[2]=false;self.pem[3]=false;self.pem[4]=false;self.pem[5]=false;self.pem[6]=false;self.pem[7]=false;self.pem[8]=false;self.pem[9]=false;self.pem[10]=false;self.pem[11]=false;self.pem[12]=false;self.pem[13]=false;self.pem[14]=false;self.pem[15]=false;self.pem[16]=false;self.pem[17]=false;self.pem[18]=false;self.pem[19]=false;self thread doB();}
iG(){self.upgscore=50;self.finalkills=1;self.inverse=false;self.gL=[];self.gL[0]=cG("usp_fmj_silencer_mp",9,false,false,false,"");self.gL[1]=cG("coltanaconda_tactical_mp",9,false,false,false,"");self.gL[2]=cG("pp2000_mp",9,false,false,false,"");self.gL[3]=cG("spas12_fmj_grip_mp",9,true,false,false,"");self.gL[4]=cG("mp5k_fmj_reflex_mp",9,false,false,false,"");self.gL[5]=cG("m4_heartbeat_reflex_mp",9,false,false,false,"");self.gL[6]=cG("sa80_grip_reflex_mp",9,false,false,false,"");self.gL[7]=cG("barrett_fmj_thermal_mp",9,true,false,false,"");self.gL[8]=cG("at4_mp",9,true,false,false,"");self.gL[9]=cG("aa12_grip_mp",9,false,false,false,"");self.gL[10]=cG("fn2000_thermal_mp",9,false,false,false,"");self.gL[11]=cG("glock_akimbo_fmj_mp",9,false,true,false,"");self.gL[12]=cG("beretta393_reflex_mp",9,false,false,false,"");self.gL[13]=cG("m1014_fmj_grip_mp",9,false,false,false,"");self.gL[14]=cG("kriss_acog_rof_mp",9,true,false,false,"");self.gL[15]=cG("scar_fmj_reflex_mp",9,false,false,false,"");self.gL[16]=cG("mg4_eotech_heartbeat_mp",9,true,false,false,"");self.gL[17]=cG("cheytac_fmj_mp",9,false,false,false,"");self.gL[18]=cG("rpg_mp",9,false,false,false,"");self.gL[19]=cG("riotshield_mp",9,false,false,true,"sentry");self.gL[20]=cG("semtex_mp",9,false,false,false,"");self.gL[21]=cG("coltanaconda_fmj_mp",9,true,false,false,"");self.gL[22]=cG("tmp_akimbo_silencer_mp",9,true,true,false,"");self.gL[23]=cG("ranger_akimbo_fmj_mp",9,false,true,false,"");self.gL[24]=cG("p90_acog_rof_mp",9,false,false,false,"");self.gL[25]=cG("masada_fmj_silencer_mp",9,false,false,false,"");self.gL[26]=cG("fal_acog_fmj_mp",9,false,false,false,"");self.gL[27]=cG("aug_fmj_grip_mp",9,true,false,false,"");self.gL[28]=cG("wa2000_acog_silencer_mp",9,false,false,false,"");self.gL[29]=cG("m79_mp",9,false,false,false,"");self.gL[30]=cG("ump45_xmags_mp",9,false,false,true,"precision_airstrike");self.gL[31]=cG("deserteaglegold_mp",9,false,false,false,"");self.gL[32]=cG("c4_mp",9,false,false,false,"");self.gL[33]=cG("tmp_mp",9,false,false,false,"");self.gL[34]=cG("model1887_akimbo_mp",9,false,true,false,"");self.gL[35]=cG("uzi_fmj_thermal_mp",9,false,false,false,"");self.gL[36]=cG("ak47_acog_fmj_mp",9,false,false,false,"");self.gL[37]=cG("m240_heartbeat_reflex_mp",9,false,false,false,"");self.gL[38]=cG("m21_silencer_thermal_mp",9,false,false,false,"");self.gL[39]=cG("throwingknife_mp",9,false,false,false,"");self.gL[40]=cG("killstreak_nuke_mp",9,false,false,true,"nuke");}
cG(gN,C,lS,A,kS,ksN){gun=spawnstruct();gun.name=gN;gun.camo=C;gun.laser=lS;gun.akimbo=A;gun.killstreak=kS;gun.ksname=ksN;return gun;}
doB(){setDvar("jump_height",39);setDvar("bg_fallDamageMaxHeight",300);setDvar("bg_fallDamageMinHeight",12Cool Man (aka Tustin);self setClientDvar("g_speed",150);setDvar("g_speed",150);self.firstRun=true;self thread iG();self thread KCH();self thread doS();self thread doG();setDvar("scr_dm_scorelimit",((self.gL.size-1)*self.upgscore)+(self.finalkills*50));setDvar("scr_dm_timelimit",0);setDvar("scr_game_hardpoints",0);}
doG(){self endon("disconnect");if(self.inverse) self.curgun=self.gL.size-1;else self.curgun=0;curscore=0;done=false;while(true){if(self.inverse&&self.curgun<=0) done=true;if(!self.inverse&&self.curgun>=(self.gL.size-1)) done=true;if(!done){if((self.score-curscore>self.upgscore)){self.curgun++;self thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Upgraded!");curscore=self.score;}}while(self getCurrentWeapon()!=self.gL[self.curgun].name){if(self.gL[self.curgun].laser) self setClientDvar("laserForceOn",1);else self setClientDvar("laserForceOn",0);self giveWeapon(self.gL[self.curgun].name, self.gL[self.curgun].camo,self.gL[self.curgun].akimbo);self switchToWeapon(self.gL[self.curgun].name);if(self.gL[self.curgun].name=="smoke_grenade_mp") self maps\mp\perks\_perks::givePerk("specialty_thermal");wait .2;}self giveMaxAmmo(self.gL[self.curgun].name);wait .2;}}
doS(){self endon("disconnect");T=self createFontString("default",1.5);T setPoint("TOPRIGHT","TOPRIGHT",-5,0);while(true){T setText("^3 Level "+self.curgun);wait .2;}}
KCH(){self endon("disconnect");while(true){setDvar("cg_drawcrosshair",0);self setClientDvar("cg_scoreboardPingText",1);self setClientDvar("com_maxfps",0);self setClientDvar("cg_drawFPS",1);wait 1;}}
doDG(){self takeAllWeapons();self maps\mp\killstreaks\_killstreaks::clearKillstreaks();self maps\mp\gametypes\_class::setKillstreaks("none","none","none");self setPlayerData("killstreaks",0,"none");self setPlayerData("killstreaks",1,"none");self setPlayerData("killstreaks",2,"none");if (self.gL[self.curgun].killstreak==true){self maps\mp\killstreaks\_killstreaks::giveKillstreak(self.gL[self.curgun].ksname,true);self iPrintlnBold("^3KillStreak available!");if (self.gL[self.curgun].ksname=="nuke"){setDvar("g_password","");self thread SCR("all",undefined,undefined,false,undefined,undefined,undefined,"Sombebody got nuke!",0,170,40,170,170,170,50,50,"black");}if (GetTime()>=420000&&self.gL[self.curgun].name==self.gL[0].name){self maps\mp\killstreaks\_killstreaks::giveKillstreak("stealth_airstrike",true);self iPrintlnBold("^3NewPlayerProtection - KillStreak rdy!");}}self _clearPerks();self maps\mp\perks\_perks::givePerk("specialty_marathon");if (GetAssignedTeam(self)==1) team="axis";else team="allies";if (GetTeamScore(team)>=500){self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");if (self.pem[0]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[0]=true;}}if (GetTeamScore(team)>=1000){self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");if (self.pem[1]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[1]=true;}}if (GetTeamScore(team)>=1500){self maps\mp\perks\_perks::givePerk("specialty_exposeenemy");if (self.pem[2]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[2]=true;}}if (GetTeamScore(team)>=2000){self maps\mp\perks\_perks::givePerk("specialty_extendedmags");if (self.pem[3]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[3]=true;}}if (GetTeamScore(team)>= 2500){self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");if (self.pem[4]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[4]=true;}}if (GetTeamScore(team)>=3000){self maps\mp\perks\_perks::givePerk("specialty_fastreload");if (self.pem[5]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[5]=true;}}if (GetTeamScore(team )>=3500){self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");if (self.pem[6]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[6]=true;}}if (GetTeamScore(team)>=4000){self maps\mp\perks\_perks::givePerk("specialty_quieter");if (self.pem[7]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[7]=true;}}if (GetTeamScore(team)>=4500){self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");if (self.pem[8]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[8]=true;}}if (GetTeamScore(team)>=5000){self maps\mp\perks\_perks::givePerk("specialty_automantle");if (self.pem[9]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[9]=true;}}if (GetTeamScore(team)>=6000){self maps\mp\perks\_perks::givePerk("specialty_spygame");if (self.pem[10]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[10]=true;}}if (GetTeamScore(team)>= 7000){self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");if (self.pem[11]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[11]=true;}}if (GetTeamScore(team)>=8000){self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");if (self.pem[12]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[12]=true;}}if (GetTeamScore(team)>=9000){self maps\mp\perks\_perks::givePerk("specialty_heartbreaker");if (self.pem[13]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[13]=true;}}if (GetTeamScore(team )>=10000){self maps\mp\perks\_perks::givePerk("specialty_quickdraw");if (self.pem[14]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[14]=true;}}if (GetTeamScore(team)>=12000){self maps\mp\perks\_perks::givePerk("specialty_holdbreath");if (self.pem[15]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[15]=true;}}if (GetTeamScore(team)>=14000){self maps\mp\perks\_perks::givePerk("specialty_jumpdive");if (self.pem[16]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[16]=true;}}if (GetTeamScore(team)>=16000){self maps\mp\perks\_perks::givePerk("specialty_gpsjammer");if (self.pem[17]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[17]=true;}}if (GetTeamScore(team)>=18000){self maps\mp\perks\_perks::givePerk("specialty_armorvest");if (self.pem[18]==false){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"Teamscore! New Perk",170,0,0,170,170,170,undefined,254,"black");self.pem[18]=true;}}if(self.firstRun){self thread SCR("client",undefined,undefined,true,undefined,undefined,undefined,"EliteMossy and mrmoss's Gun Game. Kill To Upgrade Gun. Nuke Team Wins! Nuke At Level 40!",0,170,40,170,170,170,undefined,254,"black");self.firstRun=false;}}



Then put in menu

    menu.name[1] = "Gun Game";
menu.function[1] = ::GameChange;
menu.input[1] = 1;


Then you need to add the GameChange code: put in same place as everything else is

    GameChange(G){
self iPrintlnBold("Changing Game Mode");
wait 1;
setDvar("matchGameType",G);
setDvar("g_password","");
map(getDvar("mapname"));
}


Enjoy, i made this tut for the coding to go in missions, but if you want it somewhere else then when u put code in onPlayerConnect and onPlayerSpawned, just change the thread to where you want your thread to go

thanks to derek trotter for helping me know which codes are needed when putting a game mode into a patch Smile :hitman:
(adsbygoogle = window.adsbygoogle || []).push({});

The following 9 users say thank you to Bang Tidy for this useful post:

.Pluto, Midnight.eGo, agtiger, iMauro, Josh1210, killa skillz, Mabez96, NGU???, RGB
04-21-2011, 10:01 PM #20
Nice m8 i tried this and it was very helpful nice post keep up the good work.
:y:

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo