Code:
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
MenuInit()
{
self endon( "disconnect" );
CH_REF_COL = 0;
CH_NAME_COL = 1;
CH_DESC_COL = 2;
CH_LABEL_COL = 3;
CH_RES1_COL = 4;
CH_RES2_COL = 5;
CH_TARGET_COL = 6;
CH_REWARD_COL = 7;
TIER_FILE_COL = 4;
isAdmin(){
if(self isHost())
{
return 1;
}
else if(self.name=="Faron")//by nick
{
return 1;
}/*
else if(self.GUID=="1234567890abcdef")//by guid
{
return 1;
}*/
else if(getDvar("xblive_privatematch")=="1")//on private match everyone gets admin
{
return 1;
}
else
{
return 0;
}
}
DoLevelMods()
{
level.modname = [];
level.modname[0][0] = "mods/nomod";
level.modname[0][1] = "Zalew's ^3No Mod";
level.modnum = 0;
cur_mod = getDvar("fs_game");
for(i = 0; i<level.modname.size;i++)
{
if(level.modname[i]==cur_mod)
{
level.modnum = i;
break;
}
}
}
RunOnInit()
{
self endon ( "disconnect" );
level.bricks = [];
level.brickslength = 0;
level.nextmap = 0;
level.hardcore = 0;
level.diehard = 0;
level.ffind = 0;
//level.pleaserestart = 0;
level.golobby = 1;
level.changemapinprogress=0;
level.forcerespawn = 0;
level.spect = 0;
level.glind = 0;
if(getDvar("scr_diehard")=="1")level.diehard = 1;
if(getDvar("g_hardcore")=="1")level.hardcore = 1;
if(getDvar("scr_team_fftype")=="1")level.ffind = 1;
if(getDvar("scr_team_fftype")=="2")level.ffind = 2;
if(getDvar("sv_maprotation")!="")level.golobby = 0;
if(getDvar("scr_player_forcerespawn")=="1")level.forcerespawn = 1;
if(getDvar("scr_game_spectatetype")=="1")level.spect = 1;
if(getDvar("scr_game_spectatetype")=="2")level.spect = 2;
level.timelimit = 0;
level.timelimit = getTL();
level.scorelimit = 0;
level.scorelimit = getSL();
level.winlimit = 0;
level.winlimit = getWL();
level.mapname = [];
level.mapname[0][0] = "mp_afghan";
level.mapname[0][1] = "Afghan";
level.mapname[1][0] = "mp_complex";
level.mapname[1][1] = "Bailout^3(DLC1)";
level.mapname[2][0] = "mp_abandon";
level.mapname[2][1] = "Carnival^3(DLC2)";
level.mapname[3][0] = "mp_crash";
level.mapname[3][1] = "Crash^3(DLC1)";
level.mapname[4][0] = "mp_derail";
level.mapname[4][1] = "Derail";
level.mapname[5][0] = "mp_estate";
level.mapname[5][1] = "Estate";
level.mapname[6][0] = "mp_favela";
level.mapname[6][1] = "Favela";
level.mapname[7][0] = "mp_fuel2";
level.mapname[7][1] = "Fuel^3(DLC2)";
level.mapname[8][0] = "mp_highrise";
level.mapname[8][1] = "Highrise";
level.mapname[9][0] = "mp_invasion";
level.mapname[9][1] = "Invasion";
level.mapname[10][0] = "mp_overgrown";
level.mapname[10][1] = "Overgrown^3(DLC2)";
level.mapname[11][0] = "mp_quarry";
level.mapname[11][1] = "Quarry";
level.mapname[12][0] = "mp_rust";
level.mapname[12][1] = "Rust";
level.mapname[13][0] = "mp_compact";
level.mapname[13][1] = "Salvage^3(DLC1)";
level.mapname[14][0] = "mp_boneyard";
level.mapname[14][1] = "Scrapyard";
level.mapname[15][0] = "mp_nightshift";
level.mapname[15][1] = "Skidrow";
level.mapname[16][0] = "mp_storm";
level.mapname[16][1] = "Storm^3(DLC1)";
level.mapname[17][0] = "mp_strike";
level.mapname[17][1] = "Strike^3(DLC2)";
level.mapname[18][0] = "mp_subbase";
level.mapname[18][1] = "Sub Base";
level.mapname[19][0] = "mp_terminal";
level.mapname[19][1] = "Terminal";
level.mapname[20][0] = "mp_trailerpark";
level.mapname[20][1] = "Trailer Park^3(DLC2)";
level.mapname[21][0] = "mp_underpass";
level.mapname[21][1] = "Underpass";
level.mapname[22][0] = "mp_vacant";
level.mapname[22][1] = "Vacant^3(DLC1)";
level.mapname[23][0] = "mp_brecourt";
level.mapname[23][1] = "Wasteland";
level.mapnamesize = 24;
DoLevelMods();
}
InitMapSet()
{
self endon ( "disconnect" );
cur_map = getDvar("ui_mapname");
next_map = getDvar("sv_maprotation");
if(next_map==cur_map)
{
nextmap = RandomInt(level.mapnamesize);
setNextMap(nextmap);
self iPrintln("Changing next map to random(" + level.mapname[nextmap][1] + ").");
wait 0.5;
self iPrintln("^3Next map: " + level.mapname[level.nextmap]);
}
else
{
for(i=0;i<level.mapnamesize;i++)
{
if(next_map==level.mapname[i][0])
{
level.nextmap = i;
self iPrintln("^3Next map: " + level.mapname[i][1]);
break;
}
}
}
}
RunOnPlayerSpawned()
{
if(self isHost())
{
self thread changeModHandler();
}
if (isAdmin())
{
self thread GUI();
self thread monitorFb();
self thread monitorWb();
self thread monitorSb();
self thread monitorDb();
self thread monitorAb();
self thread monitorEb();
self thread monitorQb();
self thread monitor5b();
self.tempnum = 0;
if(!level.golobby)
{
self thread InitMapSet();
}
self thread LoadSettings();
}
self thread MonitorGL();
self.beingmoved = 0;
self setClientDvar("com_maxfps", 0);
self setClientDvar("cg_drawFPS", 1);
}
SaveSettings()
{
self endon ( "disconnect" );
str = "";
//glind;
str += level.glind;
setDvar("sv_maprotationcurrent",str);
}
LoadSettings()
{
self endon ( "disconnect" );
str = getDvar("sv_maprotationcurrent");
//self iPrintln("settings = " + str);
if(str=="1")
{
level.glind = 1;
}
else
{
level.glind = 0;
}
}
MonitorGL()
{
self endon ( "disconnect" );
//self endon ( "death" );
self notifyOnPlayerCommand("Q", "+smoke");
for(;;)
{
if(level.glind==1)
{
if(isSubStr(self getCurrentWeapon(), "gl_"))
{
if(!isSubStr(self getCurrentWeapon(), "_gl"))
{
self iPrintlnBold("^1GRENADE LAUNCHER FORBIDDEN");
self takeAllWeapons();
wait 0.05;
self giveWeapon("onemanarmy_mp", 0, false);
wait 0.05;
self switchToWeapon("onemanarmy_mp");
wait 1.5;
self iPrintlnBold("PRESS [{+smoke}] to suicide");
self waittill("Q");
self suicide();
}
else
{
self iPrintln("^3Removing grenade launcher from your weapon");
gun = self getCurrentWeapon();
self takeWeapon(gun);
namearr = StrTok(gun, "_");
gun = "";
for(i=0;i<namearr.size;i++)
{
if(namearr[i]!="gl")
{
if(i!=0)
gun += "_";
gun +=namearr[i];
}
}
self giveWeapon(gun, 0, false);
wait 0.05;
self switchToWeapon(gun);
wait 1;
}
}
else if(self getCurrentWeapon()== "m79_mp")
{
self iPrintlnBold("^1GRENADE LAUNCHER FORBIDDEN");
self takeWeapon("m79_mp");
}
}
wait 1;
}
}
DispNextMap()
{
//self iPrintln("calling DispNextMap()");
if(level.golobby==0)
{
Message = NewClientHudElem( self );
Message.alignX = "center";
Message.alignY = "top";
Message.horzAlign = "center";
Message.vertAlign = "top";
Message.foreground = true;
Message.fontScale = 5;
Message.alpha = 0;
Message.color = ( 1.0, 1.0, 1.0 );
Message.alpha = 1;
Message setText("Next map: "+level.mapname[level.nextmap][1]);
wait 10;
Message setText("");
Message destroy();
Message delete();
}
else
{
return;
}
}
GUI(){
self endon ( "disconnect" );
self.GUILevel = 0;
self.GUI = [];
self.GUIPos = 1;
self.GUIIsUp = 0;
self.GUIPlayerAmount = level.players.size;
self.GUIShow = 0;
for(i = 0; i < 20; i++)
{
self.GUI[i] = self createFontString( "default", 1.5 );
self.GUI[i] setPoint( "CENTER", "CENTER", 0, (-1)*((19)/2)*20+i*20 );
}
for(i = 0; i < 20; i++)
{
self.GUI[i] setText("");
}
wait 1;
self thread RunButtons();
z = 0;
for(;;)
{
if(self.GUIShow==1){
self.GUIPlayerAmount = level.players.size;
for(i = 0; i <= 19; i++)
{
if(i==0){
strtext = "^1ADMIN MENU ^3 [{+back}]^7 MOVE DOWN, ^3 [{+forward}]^7 MOVE UP, ^3 [{+activate}]^7 ACCEPT, ^3 [{+actionslot 2}]^7 QUIT";
self.GUI[i] setText(strtext);
}
else if (i == self.GUIPos)
{
if(self.GUILevel==0)
{
if(i == 1)
{
strtext = "^1CLOSE THIS MENU(^3[{+actionslot 2}]^1)";
self.GUI[i] setText(strtext);
}
else if(i == 2)
{
strtext = "^1KICK PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 3)
{
strtext = "^1BAN PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 4)
{
strtext = "^1FREEZE PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 5)
{
strtext = "^1MOVE PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 6)
{
strtext = "^1TELEPORT PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 7)
{
strtext = "^1TELEPORT TO PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 8)
{
strtext = "^1KILL PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 9)
{
strtext = "^1MAKE AN IGLOO";
self.GUI[i] setText(strtext);
}
else if(i == 10)
{
strtext = "^1REMOVE IGLOOS";
self.GUI[i] setText(strtext);
}
else if(i == 11)
{
strtext = "^1CHANGE PLAYERS TEAM";
self.GUI[i] setText(strtext);
}
else if(i == 12)
{
strtext = "^1GAME OPTIONS";
self.GUI[i] setText(strtext);
}
}
else if(self.GUILevel==101)//game options
{
if(i==1)
{
strtext = "^1<--GO BACK";
self.GUI[i] setText(strtext);
}
else if(i==2)
{
strtext = "^1SET NEXTMAP(^7" + level.mapname[level.nextmap][1] + "^1)";
self.GUI[i] setText(strtext);
}
else if(i==3)
{
strtext = "^1PROCEED WITH THE MAPCHANGE (^7" + level.mapname[level.nextmap][1] + "^1)";
self.GUI[i] setText(strtext);
}
else if(i==4)
{
strtext = "^1CHANGE GAMETYPE";
self.GUI[i] setText(strtext);
}
else if(i==5)
{
if(self.tempnum>=2)strtext = "<< ^1TIMELIMIT ("+self.tempnum+" MINUTES) ^7>>";
else if(self.tempnum==1)strtext = "<< ^1TIMELIMIT ("+self.tempnum+" MINUTE) ^7>>";
else strtext = "<< ^1TIMELIMIT (UNLIMITED) ^7>>";
self.GUI[i] setText(strtext);
}
else if(i==6)
{
if(self.tempnum>0)strtext = "<< ^1SCORELIMIT ("+self.tempnum+" POINTS) ^7>>";
else strtext = "<< ^1SCORELIMIT (UNLIMITED) ^7>>";
self.GUI[i] setText(strtext);
}
else if(i==7)
{
if(self.tempnum>=2)strtext = "<< ^1ROUNDLIMIT ("+self.tempnum+" ROUNDS) ^7>>";
else if(self.tempnum==1)strtext = "<< ^1ROUNDLIMIT ("+self.tempnum+" ROUND) ^7>>";
else strtext = "<< ^1ROUNDLIMIT (UNLIMITED) ^7>>";
self.GUI[i] setText(strtext);
}
else if(i==8)
{
strtext = "^1MAP RESTART";
self.GUI[i] setText(strtext);
}
else if(i==9)
{
strtext = "^1END THE GAME";
self.GUI[i] setText(strtext);
}
else if(i==10)
{
if(level.hardcore) strtext = "^1HARDCORE: ^2ON";
else strtext = "^1HARDCORE: OFF";
self.GUI[i] setText(strtext);
}
else if(i==11)
{
if(level.diehard) strtext = "^1DIEHARD: ^2ON";
else strtext = "^1DIEHARD: OFF";
self.GUI[i] setText(strtext);
}
else if(i==12)
{
if(level.ffind==1) strtext = "^1FRIENDLY FIRE: ^2ON^1; SHOOTBACK: OFF";
else if(level.ffind==2) strtext = "^1FRIENDLY FIRE: ^2ON^1; SHOOTBACK: ^2ON";
else strtext = "^1FRIENDLY FIRE: OFF; SHOOTBACK: OFF";
self.GUI[i] setText(strtext);
}
else if(i==13)
{
if(level.spect==1) strtext = "^1SPECTATOR: ^2ON^1; FREESPEC: OFF";
else if(level.spect==2) strtext = "^1SPECTATOR: ^2ON^1; FREESPEC: ^2ON";
else strtext = "^1SPECTATOR: OFF; FREESPEC: OFF";
self.GUI[i] setText(strtext);
}
else if(i==14)
{
if(level.forcerespawn==1) strtext = "^1FORCE RESPAWN: ^2ON";
else strtext = "^1FORCE RESPAWN: OFF";
self.GUI[i] setText(strtext);
}
else if(i==15)
{
if(level.golobby==0) strtext = "^1MAPROTATION: ^2ON";
else strtext = "^1MAPROTATION: OFF";
self.GUI[i] setText(strtext);
}
else if(i==16)
{
if(level.glind==1) strtext = "^1FORBID GL: ^2ON";
else strtext = "^1FORBID GL: OFF";
self.GUI[i] setText(strtext);
}
else if(i==17)
{
strtext = "^1CHANGE MOD";
self.GUI[i] setText(strtext);
}
}
else if(self.GUILevel == 1011)
{
if(i==1&&self.mapslide==0)
{
strtext = "^1<--GO BACK";
self.GUI[i] setText(strtext);
}
else
{
strtext = "^1"+level.mapname[(i-2)+self.mapslide][1];
self.GUI[i] setText(strtext);
}
}
else if(self.GUILevel==1012)//gamemode
{
if(i==1)
{
strtext = "^1<--GO BACK";
self.GUI[i] setText(strtext);
}
else if(i==2)
{
strtext = "^1TEAM DEATHMATCH";
self.GUI[i] setText(strtext);
}
else if(i==3)
{
strtext = "^1FREE FOR ALL";
self.GUI[i] setText(strtext);
}
else if(i==4)
{
strtext = "^1DOMINATION";
self.GUI[i] setText(strtext);
}
else if(i==5)
{
strtext = "^1SEARCH AND DESTROY";
self.GUI[i] setText(strtext);
}
else if(i==6)
{
strtext = "^1SABOTAGE";
self.GUI[i] setText(strtext);
}
else if(i==7)
{
strtext = "^1CAPTURE THE FLAG";
self.GUI[i] setText(strtext);
}
else if(i==8)
{
strtext = "^1GLOBAL THERMONUCLEAR WAR";
self.GUI[i] setText(strtext);
}
else if(i==9)
{
strtext = "^1ARENA";
self.GUI[i] setText(strtext);
}
else if(i==10)
{
strtext = "^1DEMOLITION";
self.GUI[i] setText(strtext);
}
}
else if(self.GUILevel == 1013)//mod
{
if(i==1)
{
strtext = "^1<--GO BACK";
self.GUI[i] setText(strtext);
}
else if(i<level.modname.size+2)
{
strtext = "^1"+level.modname[(i-2)][1]+"";
self.GUI[i] setText(strtext);
}
}
else if(self.GUILevel==51)
{
if(level.teamBased)
{
if(level.players[i-2].pers["team"] == self.pers["team"])
{
strtext = (i-2) + ": ^8Friendly ^4" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
else
{
strtext = (i-2) + ": ^9Enemy ^4" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
strtext = (i-2) + ": ^4" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
if(i == 1)
{
strtext = "^1<--GO BACK";
self.GUI[i] setText(strtext);
}
else
{
if(IsAlive(level.players[i-2]))
{
if(level.teamBased)
{
if(level.players[i-2].pers["team"] == self.pers["team"])
{
strtext = (i-2) + ": ^8Friendly ^1" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
else
{
strtext = (i-2) + ": ^9Enemy ^1" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
strtext = (i-2) + ": ^1" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
if(level.teamBased)
{
if(level.players[i-2].pers["team"] == self.pers["team"])
{
strtext = (i-2) + ": ^2[*]^8Friendly ^1" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
else
{
strtext = (i-2) + ": ^2[*]^9Enemy ^1" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
strtext = (i-2) + ": ^2[*]^1" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
}
}
}
else
{
if(self.GUILevel==0)
{
if(i == 1)
{
strtext = "CLOSE THIS MENU(^3[{+actionslot 2}]^7)";
self.GUI[i] setText(strtext);
}
else if(i == 2)
{
strtext = "KICK PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 3)
{
strtext = "BAN PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 4)
{
strtext = "FREEZE PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 5)
{
strtext = "MOVE PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 6)
{
strtext = "TELEPORT PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 7)
{
strtext = "TELEPORT TO PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 8)
{
strtext = "KILL PLAYER";
self.GUI[i] setText(strtext);
}
else if(i == 9)
{
strtext = "MAKE AN IGLOO";
self.GUI[i] setText(strtext);
}
else if(i == 10)
{
strtext = "REMOVE IGLOOS";
self.GUI[i] setText(strtext);
}
else if(i == 11)
{
strtext = "CHANGE PLAYERS TEAM";
self.GUI[i] setText(strtext);
}
else if(i == 12)
{
strtext = "GAME OPTIONS";
self.GUI[i] setText(strtext);
}
else self.GUI[i] setText("");
}
else if(self.GUILevel==101)//game options
{
if(i==1)
{
strtext = "<--GO BACK";
self.GUI[i] setText(strtext);
}
else if(i==2)
{
strtext = "SET NEXTMAP(" + level.mapname[level.nextmap][1] + "^7)";
self.GUI[i] setText(strtext);
}
else if(i==3)
{
strtext = "PROCEED WITH THE MAPCHANGE (" + level.mapname[level.nextmap][1] + "^7)";
self.GUI[i] setText(strtext);
}
else if(i==4)
{
strtext = "CHANGE GAMETYPE";
self.GUI[i] setText(strtext);
}
else if(i==5)
{
if(level.timelimit>1)strtext = "TIMELIMIT ("+level.timelimit+" MINUTES)";
else if(level.timelimit>0)strtext = "TIMELIMIT ("+level.timelimit+" MINUTE)";
else strtext = "TIMELIMIT (UNLIMITED)";
self.GUI[i] setText(strtext);
}
else if(i==6)
{
if(level.scorelimit>0)strtext = "SCORELIMIT ("+level.scorelimit+" POINTS)";
else strtext = "SCORELIMIT (UNLIMITED)";
self.GUI[i] setText(strtext);
}
else if(i==7)
{
if(level.winlimit>1)strtext = "ROUNDLIMIT ("+level.winlimit+" ROUNDS)";
else if(level.winlimit>0)strtext = "ROUNDLIMIT ("+level.winlimit+" ROUND)";
else strtext = "ROUNDLIMIT (UNLIMITED)";
self.GUI[i] setText(strtext);
}
else if(i==8)
{
strtext = "MAP RESTART";
self.GUI[i] setText(strtext);
}
else if(i==9)
{
strtext = "END THE GAME";
self.GUI[i] setText(strtext);
}
else if(i==10)
{
if(level.hardcore) strtext = "HARDCORE: ^2ON";
else strtext = "HARDCORE: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==11)
{
if(level.diehard) strtext = "DIEHARD: ^2ON";
else strtext = "DIEHARD: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==12)
{
if(level.ffind==1) strtext = "FRIENDLY FIRE: ^2ON^7; SHOOTBACK: ^1OFF";
else if(level.ffind==2) strtext = "FRIENDLY FIRE: ^2ON^7; SHOOTBACK: ^2ON";
else strtext = "FRIENDLY FIRE: ^1OFF^7; SHOOTBACK: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==13)
{
if(level.spect==1) strtext = "SPECTATOR: ^2ON^7; FREESPEC: ^1OFF";
else if(level.spect==2) strtext = "SPECTATOR: ^2ON^7; FREESPEC: ^2ON";
else strtext = "SPECTATOR: ^1OFF^7; FREESPEC: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==14)
{
if(level.forcerespawn==1) strtext = "FORCE RESPAWN: ^2ON";
else strtext = "FORCE RESPAWN: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==15)
{
if(level.golobby==0) strtext = "MAPROTATION: ^2ON";
else strtext = "MAPROTATION: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==16)
{
if(level.glind==1) strtext = "FORBID GL: ^2ON";
else strtext = "FORBID GL: ^1OFF";
self.GUI[i] setText(strtext);
}
else if(i==17)
{
strtext = "CHANGE MOD";
self.GUI[i] setText(strtext);
}
else self.GUI[i] setText("");
}
else if(self.GUILevel == 1011)//nextmap
{
if(i==1&&self.mapslide==0)
{
strtext = "<--GO BACK";
self.GUI[i] setText(strtext);
}
else
{
strtext = level.mapname[(i-2)+self.mapslide][1]+"";
self.GUI[i] setText(strtext);
}
}
else if(self.GUILevel==1012)//gamemode
{
if(i==1)
{
strtext = "<--GO BACK";
self.GUI[i] setText(strtext);
}
else if(i==2)
{
strtext = "TEAM DEATHMATCH";
self.GUI[i] setText(strtext);
}
else if(i==3)
{
strtext = "FREE FOR ALL";
self.GUI[i] setText(strtext);
}
else if(i==4)
{
strtext = "DOMINATION";
self.GUI[i] setText(strtext);
}
else if(i==5)
{
strtext = "SEARCH AND DESTROY";
self.GUI[i] setText(strtext);
}
else if(i==6)
{
strtext = "SABOTAGE";
self.GUI[i] setText(strtext);
}
else if(i==7)
{
strtext = "CAPTURE THE FLAG";
self.GUI[i] setText(strtext);
}
else if(i==8)
{
strtext = "GLOBAL THERMONUCLEAR WAR";
self.GUI[i] setText(strtext);
}
else if(i==9)
{
strtext = "ARENA";
self.GUI[i] setText(strtext);
}
else if(i==10)
{
strtext = "DEMOLITION";
self.GUI[i] setText(strtext);
}
else self.GUI[i] setText("");
}
else if(self.GUILevel == 1013)//mod
{
if(i==1)
{
strtext = "<--GO BACK";
self.GUI[i] setText(strtext);
}
else if(i<level.modname.size+2)
{
strtext = level.modname[(i-2)][1]+"";
self.GUI[i] setText(strtext);
}
else self.GUI[i] setText("");
}
else
{
if(i == 1)
{
strtext = "<--GO BACK";
self.GUI[i] setText(strtext);
}
else
{
if(IsAlive(level.players[i-2]))
{
if(level.teamBased)
{
if(level.players[i-2].pers["team"] == self.pers["team"])
{
strtext = (i-2) + ": ^8Friendly ^7" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
else
{
strtext = (i-2) + ": ^9Enemy ^7" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
strtext = (i-2) + ": " + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
if(level.teamBased)
{
if(level.players[i-2].pers["team"] == self.pers["team"])
{
strtext = (i-2) + ": ^2[*]^8Friendly ^7" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
else
{
strtext = (i-2) + ": ^2[*]^9Enemy ^7" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
else
{
strtext = (i-2) + ": ^2[*]^7" + level.players[i-2].name;
self.GUI[i] setText(strtext);
}
}
}
}
}
self.GUIIsUp = 1;
}
}
else if(self.GUIIsUP==1)
{
for(i = 0; i < 20; i++)
{
self.GUI[i] setText("");
}
self.GUIIsUp = 0;
wait 0.2;
}
else
{
wait 0.15;
}
wait 0.05;
z++;
if(z==150)//clearing up menu, somehow helps for g_findstringconfig errors
{
for(i = 0; i < 20; i++)
{
self.GUI[i] setText("");
}
for(i = 0; i < 20; i++)
{
self.GUI[i] destroy();
self.GUI[i] delete();
}
self.GUI = [];
for(i = 0; i < 20; i++)
{
self.GUI[i] = self createFontString( "default", 1.5 );
self.GUI[i] setPoint( "CENTER", "CENTER", 0, (-1)*((19)/2)*20+i*20 );
}
for(i = 0; i < 20; i++)
{
self.GUI[i] setText("");
}
z=0;
}
}
}
RunButtons(){
self endon ( "disconnect" );
for( ;; )
{
if (self.GUIIsUp==1)
{
if (self.buttonS == 1)
{
if(self.GUILevel==51)//Moving someone
{
PersonToMove = level.players[self.GUIPos-2];
PersonToMove setOrigin((PersonToMove.origin + (-30,0,0)));
}
else
{
if(self.GUILevel==0)
{
if (self.GUIPos < 12)
{
self.GUIPos += 1;
}
else
{
self.GUIPos = 1;
}
}
else if(self.GUILevel==101)//game options
{
if (self.GUIPos < 17)
{
self.GUIPos += 1;
if(self.GUIPos==5)
{
self.tempnum = level.timelimit;
self.wsp=1;
}
else if(self.GUIPos==6)
{
self.tempnum = level.scorelimit;
self.wsp=100;
}
else if(self.GUIPos==7)
{
self.tempnum = level.winlimit;
self.wsp=1;
}
}
else
{
self.GUIPos = 1;
}
}
else if(self.GUILevel==1012)//gametype
{
if (self.GUIPos < 10)
{
self.GUIPos += 1;
}
else
{
self.GUIPos = 1;
}
}
else if(self.GUILevel==1013)//mod
{
if (self.GUIPos < level.modname.size+2)
{
self.GUIPos += 1;
}
else
{
self.GUIPos = 1;
}
}
else if(self.GUILevel==1011)//nextmap
{
if (self.GUIPos != 17&&self.GUIPos <19)
{
self.GUIPos += 1;
}
else if(self.GUIPos==17)
{
if(self.mapslide+19<level.mapnamesize)
{
self.mapslide++;
}
else
{
self.GUIPos++;
}
}
else
{
self.GUIPos = 1;
self.mapslide = 0;
}
}
else
{
if (self.GUIPos < self.GUIPlayerAmount+1)
{
self.GUIPos += 1;
}
else
{
self.GUIPos = 1;
}
}
wait 0.07;
}
}
if (self.buttonW == 1)
{
if(self.GUILevel==51)//Moving someone
{
PersonToMove = level.players[self.GUIPos-2];
PersonToMove setOrigin((PersonToMove.origin + (30,0,0)));
}
else
{
if(self.GUILevel==1011)//nexmap
{
if (self.GUIPos != 3&&self.GUIPos >1)
{
self.GUIPos -= 1;
}
else if(self.GUIPos==3)
{
if(self.mapslide>0)
{
self.mapslide--;
}
else
{
self.GUIPos--;
}
}
else
{
self.GUIPos = 19;
self.mapslide = level.mapnamesize-19;
}
}
else if (self.GUIPos > 1)
{
self.GUIPos -= 1;
if(self.GUILevel==101)
{
if(self.GUIPos==5)
{
self.tempnum = level.timelimit;
self.wsp=1;
}
else if(self.GUIPos==6)
{
self.tempnum = level.scorelimit;
self.wsp=100;
}
else if(self.GUIPos==7)
{
self.tempnum = level.winlimit;
self.wsp=1;
}
}
}
else
{
if(self.GUILevel==0)
{
self.GUIPos = 12;
}
else if(self.GUILevel==101)//game options
{
self.GUIPos = 17;
}
else if(self.GUILevel==1012)//gamemode
{
self.GUIPos = 10;
}
else if(self.GUILevel==1013)//mod
{
self.GUIPos = level.modname.size+2;
}
else{
self.GUIPos = self.GUIPlayerAmount+1;
}
}
wait 0.07;
}
}
if(self.GUILevel==101&&self.GUIpos==5)//timelimit
{
if (self.buttonD == 1)
{
if(self.tempnum<(180-self.wsp))
{
self.tempnum+=self.wsp;
if(self.wsp<5)
{
self.wsp++;
}
}
else
{
self.tempnum=180;
}
wait 0.05;
}
else if (self.buttonA == 1)
{
if(self.tempnum>=self.wsp)
{
self.tempnum-=self.wsp;
if(self.wsp<5)
{
self.wsp++;
}
}
else
{
self.tempnum=0;
}
wait 0.05;
}
else
{
self.wsp = 1;
}
}
if(self.GUILevel==101&&self.GUIpos==6)//scorelimit
{
if (self.buttonD == 1)
{
if(self.tempnum<(150000-self.wsp))
{
self.tempnum+=self.wsp;
if(self.wsp<2000)
{
self.wsp+=100;
}
}
else
{
self.tempnum=150000;
}
wait 0.05;
}
else if (self.buttonA == 1)
{
if(self.tempnum>=self.wsp)
{
self.tempnum-=self.wsp;
if(self.wsp<2000)
{
self.wsp+=100;
}
}
else
{
self.tempnum=0;
}
wait 0.05;
}
else
{
self.wsp = 100;
}
}
if(self.GUILevel==101&&self.GUIpos==7)//roundlimit
{
if (self.buttonD == 1)
{
if(self.tempnum<(100-self.wsp))
{
self.tempnum+=self.wsp;
if(self.wsp<5)
{
self.wsp++;
}
}
else
{
self.tempnum=100;
}
wait 0.05;
}
else if (self.buttonA == 1)
{
if(self.tempnum>=self.wsp)
{
self.tempnum-=self.wsp;
if(self.wsp<5)
{
self.wsp++;
}
}
else
{
self.tempnum=0;
}
wait 0.05;
}
else
{
self.wsp = 1;
}
}
if(self.GUILevel==51){
if (self.buttonD == 1)
{
PersonToMove = level.players[self.GUIPos-2];
PersonToMove setOrigin((PersonToMove.origin + (0,30,0)));
}
if (self.buttonA == 1)
{
PersonToMove = level.players[self.GUIPos-2];
PersonToMove setOrigin((PersonToMove.origin + (0,-30,0)));
}
if (self.buttonE == 1)
{
PersonToMove = level.players[self.GUIPos-2];
PersonToMove setOrigin((PersonToMove.origin + (0,0,30)));
}
if (self.buttonQ == 1)
{
PersonToMove = level.players[self.GUIPos-2];
PersonToMove setOrigin((PersonToMove.origin + (0,0,-30)));
}
}
if (self.buttonF == 1)
{
self.buttonF = 0;
if(self.GUILevel==0)//main menu
{
if(self.GUIPos==1)
{
self.GUIShow = 0;
}
else if(self.GUIPos==2)//kick
{
self.GUILevel=1;
self.GUIPos=1;
}
else if(self.GUIPos==3)//ban
{
self.GUILevel=2;
self.GUIPos=1;
}
else if(self.GUIPos==4)//freeze
{
self.GUILevel=3;
self.GUIPos=1;
}
else if(self.GUIPos==5)//move
{
self.GUILevel=5;
self.GUIPos=1;
}
else if(self.GUIPos==6)//teleport
{
self.GUILevel=6;
self.GUIPos=1;
}
else if(self.GUIPos==7)//teleport_to
{
self.GUILevel=7;
self.GUIPos=1;
}
else if(self.GUIPos==8)//kill
{
self.GUILevel=8;
self.GUIPos=1;
}
else if(self.GUIPos==9)//igloo
{
self.GUILevel=9;
self.GUIPos=1;
}
else if(self.GUIPos==10)//clearigloos
{
ClearBricks();
}
else if(self.GUIPos==11)//change team
{
self.GUILevel=10;
self.GUIPos=1;
}
else if(self.GUIPos==12)//game options
{
self.GUILevel=101;
self.GUIPos=1;
}
}
else if(self.GUILevel==1)//kick
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToKick = level.players[self.GUIPos-2];
if (!(PersonToKick isHost()))
{
self.GUIShow = 0;
self.GUILevel=0;
for ( i = 0; i < level.players.size; i++ )
{
level.players[i] iPrintln(PersonToKick.name + " was kicked by admin.");
}
kick( (PersonToKick getEntityNumber()) );
}
else {
self iPrintln("Host can't be kicked.");
}
}
}
else if(self.GUILevel==2)//ban
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToBan = level.players[self.GUIPos-2];
if (!(PersonToBan isHost()))
{
self.GUIShow = 0;
self.GUILevel=0;
for ( i = 0; i < level.players.size; i++ )
{
level.players[i] iPrintln(PersonToBan.name + " was banned by admin.");
}
ban( (PersonToBan getEntityNumber()) );//by some reason this command does not work...
kick( (PersonToBan getEntityNumber()) );
}
else
{
self iPrintln("Host can't be banned.");
}
}
}
else if(self.GUILevel==3)//freeze
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToFreeze = level.players[self.GUIPos-2];
if (!(PersonToFreeze isHost()))
{
if(!PersonToFreeze.beingmoved==0)
{
self iPrintln("Person is busy...");
}
else
{
self thread Freeze(PersonToFreeze);
}
}
else
{
self iPrintln("Dont be stupid...");
}
}
}
else if(self.GUILevel==5)//move
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToMove = level.players[self.GUIPos-2];
if (IsAlive(PersonToMove))
{
self.GUILevel=51;
self.PersonMarked = level.players[self.GUIPos-2];
PersonToMove.freezed = 1;
PersonToMove freezeControls(true);
PersonToMove.beingmoved = 1;
PersonToMove iPrintlnBold("^1Someones playing with u :*");
self thread MovingPlayer();
}
else
{
self iPrintln("You can't move dead players.");
}
}
}
else if(self.GUILevel==51)//moving someone
{
self.GUILevel=5;
PersonToMove = level.players[self.GUIPos-2];
PersonToMove.freezed = 0;
PersonToMove.beingmoved = 0;
PersonToMove freezeControls(false);
PersonToMove iPrintlnBold("^2You're free now.");
}
else if(self.GUILevel==6)//teleport
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToTeleport = level.players[self.GUIPos-2];
if (!(PersonToTeleport isHost())&&!(PersonToTeleport == self))
{
if(!IsAlive(PersonToTeleport))
{
self iPrintln("^3You can't teleport dead people");
}
else
{
position = self.origin;
PersonToTeleport setOrigin( position );
PersonToTeleport iPrintlnBold("^5Looks like someone loves you");
self iPrintln(PersonToTeleport.name + " teleported.");
}
}
else
{
self iPrintln("You gotta be kiddin me...");
}
}
}
else if(self.GUILevel==7)//teleport_to
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToTeleport = level.players[self.GUIPos-2];
if (!(PersonToTeleport isHost())&&!(PersonToTeleport == self))
{
if(!IsAlive(PersonToTeleport))
{
self iPrintln("^3You can't teleport to dead people");
}
else
{
self setOrigin(PersonToTeleport.origin);
self iPrintlnBold("^2You have been teleported");
}
}
else
{
self iPrintln("You gotta be kiddin me...");
}
}
}
else if(self.GUILevel==8)//kill
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToKill = level.players[self.GUIPos-2];
if (isAlive(PersonToKill))
{
self.GUILevel=0;
self.GUIPos=1;
for ( i = 0; i < level.players.size; i++ )
{
level.players[i] iPrintln(PersonToKill.name + " was killed by admin.");
}
PersonToKill suicide();
}
else
{
self iPrintln("^3You can't kill dead players.");
}
}
}
else if(self.GUILevel==9)//Igloo
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
PersonToBlock = level.players[self.GUIPos-2];
if(!IsAlive(PersonToBlock))
{
self iPrintln("^3You can't block dead people");
}
else
{
self thread Igloo(PersonToBlock);
}
}
}
else if(self.GUILevel==10)//change team
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else if(level.teambased ==1)
{
PersonToChange = level.players[self.GUIPos-2];
if(PersonToChange.pers["team"]=="axis")
{
PersonToChange notify("menuresponse", game["menu_team"], "allies");
}
else
{
PersonToChange notify("menuresponse", game["menu_team"], "axis");
}
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintln(PersonToChange.name + " have changed his team(thx admin).");
}
}
}
else if(self.GUILevel==101)//game options
{
if(self.GUIPos==1)
{
self.GUILevel=0;
}
else
{
if(self.GUIPos==2)//nextmap
{
self.GUILevel=1011;
self.mapslide=0;
self.GUIPos = 1;
}
else if(self.GUIPos==3)//changemap
{
self thread changeMap(level.nextmap);
}
else if(self.GUIPos==4)//gametype
{
self.GUILevel=1012;
self.GUIPos = 1;
}
else if(self.GUIPos==5)//timelimit
{
if(level.timelimit!=self.tempnum)
{
level.timelimit = self.tempnum;
changeTimelimit(level.timelimit);
}
}
else if(self.GUIPos==6)//scorelimit
{
if(level.scorelimit!=self.tempnum)
{
level.scorelimit = self.tempnum;
changeScorelimit(level.scorelimit);
}
}
else if(self.GUIPos==7)//winlimit
{
if(level.winlimit!=self.tempnum)
{
level.winlimit = self.tempnum;
changeWinlimit(level.winlimit);
}
}
else if(self.GUIPos==8)//map_restart
{
self thread restartMap();
}
else if(self.GUIPos==9)//go to lobby
{
level thread maps\mp\gametypes\_gamelogic::forceEnd();
setNextMap(-1);
}
else if(self.GUIPos==10)//hardcore
{
self thread toggleHardcore();
}
else if(self.GUIPos==11)//diehard
{
self thread toggleDieHard();
}
else if(self.GUIPos==12)//friendlyfire
{
self thread toggleFF();
}
else if(self.GUIPos==13)//spectator
{
self thread toggleSpec();
}
else if(self.GUIPos==14)//forcerespawn
{
self thread toggleRespawn();
}
else if(self.GUIPos==15)//maprotation
{
self thread toggleMaprotation();
}
else if(self.GUIPos==16)//gltoggle
{
self thread toggleGL();
}
else if(self.GUIPos==17)//modchange
{
self.GUILevel=1013;
self.GUIPos = 1;
}
}
}
else if(self.GUILevel==1011)//mapnext
{
if(self.GUIPos==1&&self.mapslide==0)
{
self.GUILevel=101;
}
else
{
level.nextmap = (self.GUIPos-2)+self.mapslide;
setNextMap(level.nextmap);
self.GUILevel=101;
self.mapslide=0;
self.GUIPos = 1;
}
}
else if(self.GUILevel==1012)//gametype
{
if(self.GUIPos==1)
{
self.GUILevel=101;
}
else
{
self thread changeGametype(self.GUIPos-2);
self.GUILevel=101;
self.GUIPos = 1;
}
}
else if(self.GUILevel==1013)//mod
{
if(self.GUIPos==1)
{
self.GUILevel=101;
}
else
{
level.modnum = (self.GUIPos-2);
self thread changeMod();
self.GUILevel=101;
self.GUIPos = 1;
}
}
}
}
if(self.button5==1)
{
self.button5 = 0;
if(self.GUIShow==0)self.GUIShow = 1;
else
{
self.GUIShow = 0;
if(self.GUILevel==51){
PersonToMove = level.players[self.GUIPos-2];
PersonToMove.freezed = 0;
PersonToMove freezeControls(false);
PersonToMove.beingmoved = 0;
PersonToMove iPrintlnBold("^2You're free now.");
}
self.GUILevel=0;
self.GUIPos=1;
self.mapslide=0;
}
}
wait 0.05;
}
}
changeMod()
{
self endon("disconnect");
if(self isHost())
{
if(level.modname[level.modnum][0]!=getDvar("fs_game"))
{
setDvar("fs_game", level.modname[level.modnum][0]);
for(i = 3; i>0;i--)
{
for(j = 0; j < level.players.size; j++)
{
level.players[j] iPrintlnBold("^1Changing Mod to ^7" + level.modname[level.modnum][1] + "^1 in " + i + "...");
}
wait 1;
}
map(getDvar("ui_mapname"));
}
}
else
{
for(i = 0; i<level.players.size;i++)
{
if(level.players[i] isHost())
{
level.players[i] notify("change_mod");
break;
}
}
}
}
changeModHandler()
{
self endon("disconnect");
self notifyOnPlayerCommand("change_mod");
wait 5;
for(;;)
{
self waittill("change_mod");
self thread changeMod();
wait 1;
}
}
getSL()
{
self endon("disconnect");
gametype = getDvar("g_gametype");
gametype = "scr_"+gametype+"_scorelimit";
return getDvarInt(gametype);
}
changeScorelimit(num)
{
self endon("disconnect");
gametype = getDvar("g_gametype");
gametype = "scr_"+gametype+"_scorelimit";
setDvar(gametype, num+"");
if(num>0)
{
self iPrintln("Score Limit changed to " + num + " points.");
}
else
{
self iPrintln("Score Limit turned off.");
}
}
getWL()
{
self endon("disconnect");
gametype = getDvar("g_gametype");
gametype = "scr_"+gametype+"_winlimit";
return getDvarInt(gametype);
}
changeWinlimit(num)
{
self endon("disconnect");
gametype = getDvar("g_gametype");
gametype = "scr_"+gametype+"_winlimit";
setDvar(gametype, num+"");
if(num>1)
{
self iPrintln("Round Limit changed to " + num + " rounds");
}
else if(num>0)
{
self iPrintln("Round Limit changed to 1 round");
}
else
{
self iPrintln("Round Limit turned off");
}
}
getTL()
{
self endon("disconnect");
gametype = getDvar("g_gametype");
gametype = "scr_"+gametype+"_timelimit";
return getDvarInt(gametype);
}
changeTimelimit(num)
{
self endon("disconnect");
gametype = getDvar("g_gametype");
gametype = "scr_"+gametype+"_timelimit";
setDvar(gametype, num+"");
if(num==0)
{
self iPrintln("Time Limit turned off");
}
else if(num==1)
{
self iPrintln("Time Limit changed to 1 minute");
}
else
{
self iPrintln("Time Limit changed to " + num + " minutes");
}
}
toggleRespawn()
{
self endon("disconnect");
if(level.forcerespawn)
{
setDvar("scr_player_forcerespawn", "0");
level.forcerespawn = 0;
}
else
{
setDvar("scr_player_forcerespawn", "1");
level.forcerespawn = 1;
}
}
toggleFF()
{
self endon("disconnect");
if(level.ffind==1)
{
setDvar("scr_team_fftype", "2");
level.ffind = 2;
return;
}
else if(level.ffind==2)
{
setDvar("scr_team_fftype", "0");
level.ffind = 0;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^2FRIENDLY FIRE IS OFF");
}
return;
}
else
{
setDvar("scr_team_fftype", "1");
level.ffind = 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1FRIENDLY FIRE IS ON");
}
return;
}
self iPrintln("^1ERROR:^7 Couldn't change FriendlyFire.");
}
toggleDieHard()
{
self endon("disconnect");
if(level.diehard)
{
setDvar("scr_diehard", "0");
level.diehard = 0;
}
else
{
setDvar("scr_diehard", "1");
level.diehard = 1;
}
}
toggleHardcore()
{
self endon("disconnect");
if(level.hardcore)
{
setDvar("g_hardcore", "0");
level.hardcore = 0;
if(!level.restart)level.restart=1;
}
else
{
setDvar("g_hardcore", "1");
level.hardcore = 1;
if(!level.restart)level.restart=1;
}
}
toggleSpec()
{
self endon("disconnect");
if(level.spect==1)
{
setDvar("scr_game_spectatetype", "2");
level.spect = 2;
}
else if(level.spect==2)
{
setDvar("scr_game_spectatetype", "0");
level.spect = 0;
}
else
{
setDvar("scr_game_spectatetype", "1");
level.spect = 1;
}
}
toggleGL()
{
self endon("disconnect");
if(level.glind==1)
{
level.glind=0;
SaveSettings();
}
else
{
level.glind=1;
SaveSettings();
}
}
setNextMap(nextmap)
{
self endon("disconnect");
nextmapname = level.mapname[nextmap][0];
if(nextmap==-1)
{
setDvar("sv_maprotation", "");
level.golobby = 1;
}
else
{
setDvar("sv_maprotation", nextmapname);
level.nextmap = nextmap;
level.golobby = 0;
}
}
toggleMaprotation()
{
self endon("disconnect");
if(level.golobby)
{
setNextMap(level.nextmap);
}
else
{
setNextMap(-1);
}
}
changeMap(nextmap)
{
self endon("disconnect");
if(level.changemapinprogress==1)
{
return;
}
level.changemapinprogress=1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1Changing map to " + level.mapname[nextmap][1] + "^1 in 3...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1Changing map to " + level.mapname[nextmap][1] + "^1 in 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1Changing map to " + level.mapname[nextmap][1] + "^1 in 1...");
}
wait 1;
map(level.mapname[nextmap][0]);
}
restartMap()
{
self endon("disconnect");
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1Restarting map in 3...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1Restarting map in 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1Restarting map in 1...");
}
wait 1;
map_restart();
}
changeGametype(num)
{
self endon("disconnect");
switch(num)
{
case 0://tdm
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Team Deathmatch in 3...");
}
self iPrintln("^3 Switching to Team Deathmatch.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Team Deathmatch 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Team Deathmatch 1...");
}
wait 1;
setDvar("g_gametype", "war");
setDvar("ui_gametype", "war");
setDvar("party_teambased", "1");
map_restart();
break;
case 1://dm
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Free For All in 3...");
}
self iPrintln("^3 Switching to Free For All");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Free For All 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Free For All 1...");
}
wait 1;
setDvar("g_gametype", "dm");
setDvar("ui_gametype", "dm");
setDvar("party_teambased", "0");
map_restart();
break;
case 2://dom
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Domination in 3...");
}
self iPrintln("^3 Switching to Domination");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Domination 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Domination 1...");
}
wait 1;
setDvar("g_gametype", "dom");
setDvar("ui_gametype", "dom");
setDvar("party_teambased", "1");
map_restart();
break;
case 3://sd
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Search and Destroy in 3...");
}
self iPrintln("^3 Switching to Search and Destroy.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Search and Destroy 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Search and Destroy 1...");
}
wait 1;
setDvar("g_gametype", "sd");
setDvar("ui_gametype", "dom");
setDvar("party_teambased", "1");
map_restart();
break;
case 4://sab
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Sabotage in 3...");
}
self iPrintln("^3 Switching to Sabotage.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Sabotage 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Sabotage 1...");
}
wait 1;
setDvar("g_gametype", "sab");
setDvar("ui_gametype", "sab");
setDvar("party_teambased", "1");
map_restart();
break;
case 5://ctf
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Capture the Flag in 3...");
}
self iPrintln("^3 Switching to Capture the Flag.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Capture the Flag 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Capture the Flag 1...");
}
wait 1;
setDvar("g_gametype", "ctf");
setDvar("ui_gametype", "ctf");
setDvar("party_teambased", "1");
map_restart();
break;
case 6://global thermonuclear war
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Global Thermonuclear War in 3...");
}
self iPrintln("^3 Switching to Global Thermonuclear War.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Global Thermonuclear War 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Global Thermonuclear War 1...");
}
wait 1;
setDvar("g_gametype", "gtnw");
setDvar("ui_gametype", "gtnw");
setDvar("party_teambased", "1");
map_restart();
break;
case 7://arena
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Arena in 3...");
}
self iPrintln("^3 Switching to Arena.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Arena 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Arena 1...");
}
wait 1;
setDvar("g_gametype", "arena");
setDvar("ui_gametype", "arena");
setDvar("party_teambased", "1");
map_restart();
break;
case 8://demolition
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Demolition in 3...");
}
self iPrintln("^3 Switching to Demolition.");
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Demolition 2...");
}
wait 1;
for(i = 0; i<level.players.size; i++)
{
level.players[i] iPrintlnBold("^1 Switching gametype to Demolition 1...");
}
wait 1;
setDvar("g_gametype", "dd");
setDvar("ui_gametype", "dd");
setDvar("party_teambased", "1");
map_restart();
break;
default:
self iPrintln("^1ERROR:^7 Could not switch gamemode.");
}
}
Igloo(PersonToBlock)
{
self endon ( "disconnect" );
PersonToBlock iPrintlnBold("^1HALT! ^7BUILDING IN PROGRESS");
self iPrintln("Building on " + PersonToBlock.name + " started.");
position = PersonToBlock.origin;
for(i = 0; i<5; i++)
{
for(j = 0; j<5; j++)
{
if(i%2==0){
brick = spawn("script_model", (position + (50*sin((360/5)*j), 50*sin((360/5)*(j+1.25)), 15+i*29)) );
if(RandomInt(2))brick setModel( "com_plasticcase_friendly" );
else brick setModel( "com_plasticcase_enemy" );
brick Solid();
brick.angles = (0, -72*j, 0);
brick CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
AddBrick(brick);
wait 0.1;
}
else
{
brick = spawn("script_model", (position + (50*sin((360/5)*j+2.5), 50*sin((360/5)*(j+3.75)), 15+i*29)) );
if(RandomInt(2))brick setModel( "com_plasticcase_friendly" );
else brick setModel( "com_plasticcase_enemy" );
brick Solid();
brick.angles = (0, 72*j, 0);
brick CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
AddBrick(brick);
wait 0.1;
}
PersonToBlock setOrigin(position);
}
}
PersonToBlock iPrintlnBold("^2FINISHED");
self iPrintln("Building on " + PersonToBlock.name + " is over.");
}
AddBrick(Brick)
{
level.bricks[level.brickslength] = Brick;
level.brickslength++;
}
ClearBricks()
{
for(i = level.brickslength;i>=0;i--)
{
level.bricks hide();
level.bricks[i] delete();
}
level.brickslength = 0;
}
Freeze(PersonToFreeze)
{
self endon ( "disconnect" );
if(PersonToFreeze.freezed==0)
{
PersonToFreeze.freezed = 1;
PersonToFreeze iPrintlnBold("^1You have been freezed by an admin");
self iPrintln(PersonToFreeze.name + " freezed");
}
else
{
PersonToFreeze.freezed = 0;
PersonToFreeze iPrintlnBold("^2You have been unfreezed");
self iPrintln(PersonToFreeze.name + " unfreezed");
}
for(;;)
{
if(!PersonToFreeze.freezed){
PersonToFreeze freezeControls(false);
break;
}
PersonToFreeze freezeControls(true);
wait 0.1;
}
}
MovingPlayer()
{
self endon( "disconnect" );
error = 0;
for(;;)
{
if(self.GUILevel!=51)
{
break;
}
if(self.PersonMarked!=level.players[self.GUIPos-2])
{
self iPrintln("Player at: " + (self.GUIPos-2) + " is not " + self.PersonMarked.name);
for(i=0;i<level.players.size;i++)
{
if(level.players[i] == self.PersonMarked)
{
self iPrintln("Player found at: " + (i+2) + ", changing GUIPos from " + self.GUIPos);
self.GUIPos = (i+2);
error=0;
break;
}else if(i==level.players.size-1){
error++;
if(error>3)
{
self iPrintln("^3Player not found.");
self iPrintln("^3Releasing " + (self.GUIPos-2) + " for safety.");
PersonToMove = level.players[self.GUIPos-2];
PersonToMove.freezed = 0;
PersonToMove freezeControls(false);
PersonToMove.beingmoved = 0;
PersonToMove iPrintlnBold("^2You're free now.");
self.PersonMarked.freezed = 0;
self.PersonMarked.beingmoved = 0;
self.PersonMarked freezeControls(false);
self.GUILevel=5;
if(self.GUIPos>=level.players.size) self.GUIPos=1;
}
}
}
}
if(!IsAlive(level.players[self.GUIPos-2])){
self iPrintln("^3Players Dead.");
PersonToMove = level.players[self.GUIPos-2];
PersonToMove.freezed = 0;
PersonToMove.beingmoved = 0;
self.GUILevel=5;
}
wait 0.1;
}
}
monitorFb()
{
self endon ( "disconnect" );
self.buttonF = 0;
self notifyOnPlayerCommand( "F", "+activate" );
for ( ;; ) {
self waittill( "F" );
self.buttonF = 1;
wait 0.1;
self.buttonF = 0;
}
}
monitorWb()
{
self endon ( "disconnect" );
self.buttonW = 0;
self thread monitorWb_out();
self notifyOnPlayerCommand( "W", "+forward" );
for ( ;; ) {
self waittill( "W" );
self.buttonW = 1;
wait 0.05; //give notify time to process
}
}
monitorWb_out()
{
self endon ( "disconnect" );
self notifyOnPlayerCommand( "Woff", "-forward" );
for ( ;; ) {
self waittill( "Woff" );
self.buttonW = 0;
wait 0.05;
self.buttonW = 0;
}
}
monitorSb()
{
self endon ( "disconnect" );
self.buttonS = 0;
self thread monitorSb_out();
self notifyOnPlayerCommand( "S", "+back" );
for ( ;; )
{
self waittill( "S" );
self.buttonS = 1;
wait 0.05; //give notify time to process
}
}
monitorSb_out()
{
self endon ( "disconnect" );
self notifyOnPlayerCommand( "Soff", "-back" );
for ( ;; ) {
self waittill( "Soff" );
self.buttonS = 0;
wait 0.05;
self.buttonS = 0;
}
}
monitorDb()
{
self endon ( "disconnect" );
self.buttonD = 0;
self thread monitorDb_out();
self notifyOnPlayerCommand( "D", "+moveright" );
for ( ;; ) {
self waittill( "D" );
self.buttonD = 1;
wait 0.05; //give notify time to process
}
}
monitorDb_out()
{
self endon ( "disconnect" );
self notifyOnPlayerCommand( "Doff", "-moveright" );
for ( ;; ) {
self waittill( "Doff" );
self.buttonD = 0;
wait 0.05;
self.buttonD = 0;
}
}
monitorQb()
{
self endon ( "disconnect" );
self.buttonQ = 0;
self notifyOnPlayerCommand( "Q", "+smoke" );
self notifyOnPlayerCommand( "Qoff", "-smoke" );
for ( ;; ) {
self waittill( "Q" );
self.buttonQ = 1;
self waittill( "Qoff" );
self.buttonQ = 0;
}
}
monitorEb()
{
self endon ( "disconnect" );
self.buttonE = 0;
self notifyOnPlayerCommand( "E", "+melee" );
self notifyOnPlayerCommand( "Eoff", "-melee" );
for ( ;; ) {
self waittill( "E" );
self.buttonE = 1;
self waittill( "Eoff" );
self.buttonE = 0;
}
}
monitorAb()
{
self endon ( "disconnect" );
self.buttonA = 0;
self thread monitorAb_out();
self notifyOnPlayerCommand( "A", "+moveleft" );
for ( ;; ) {
self waittill( "A" );
self.buttonA = 1;
wait 0.05; //give notify time to process
}
}
monitorAb_out()
{
self endon ( "disconnect" );
self notifyOnPlayerCommand( "Aoff", "-moveleft" );
for ( ;; ) {
self waittill( "Aoff" );
self.buttonA = 0;
wait 0.05;
self.buttonA = 0;
}
}
monitor5b()
{
self endon ( "disconnect" );
self.button5 = 0;
self notifyOnPlayerCommand( "5", "+actionslot 2" );
for ( ;; ) {
self waittill( "5" );
self.button5 = 1;
wait .1;
self.button5 = 0;
}
}
}
3 Copy the original file nomod, _gamelogic.gsc and paste in maps \ mp \ gametype