Post: Whats wrong with this Patch?
12-04-2010, 09:52 AM #1
Jannis96
This is ****ing annoying.
(adsbygoogle = window.adsbygoogle || []).push({});
I Edited this Mossy v7 Patch, but the ps3 freezes when clicked on Multiplayer.
If anyone can find it, You get a +Rep if it works Winky Winky


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

init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
if(self ishost()){
setDvarIfUninitialized( "matchGameType" , 0 );
level.matchGameType = getdvar("matchGameType");
}
level thread MatchGameType();
}

MatchGameType()
{
if(level.matchGameType == "0")
level thread onPlayerConnect();
if(level.matchGameType == "1")
level thread RTDConnect();
if(level.matchGameType == "2")
level thread AVPConnect();

}

RTDConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
player thread maps\mp\gametypes\dd :: doBinds();
player thread RTDSpawn();
}
}

RTDSpawn()
{
self endon( "disconnect" );

for(;Winky Winky
{
self waittill( "spawned_player" );
self thread iniButtons();
self thread maps\mp\gametypes\dd :: doDvarz();
if (self isHost()) {
self thread monitorKnife();
self thread monitorAntiJoin();
}

}
}

AVPConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player thread AVPSpawn();

}
}

AVPSpawn()
{
self endon( "disconnect" );
for(;Winky Winky
{
self waittill( "spawned_player" );
self _clearPerks();
self thread JZombies();
if (self isHost()) {
self thread monitorKnife();
self thread monitorAntiJoin();
}

}
}

monitorKnife()
{
self endon ( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "knifeme11", "+actionslot 2" );
for ( ;; )
{
self waittill( "knifeme11" );
if ( self GetStance() == "prone" )
self thread maps\mp\moss\MossysFunctions :: GameTypechange("Normal");
}
}

monitorAntiJoin()
{
self endon ( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "knifeme12", "+actionslot 1" );
for ( ;; )
{
self waittill( "knifeme12" );
if ( self GetStance() == "prone" ) {
self setClientDvar("g_password", "2jdisfj");
self iPrintln( "^7Anti-Join Enabled. No one can join." );
}
self waittill( "knifeme12" );
if ( self GetStance() == "prone" ) {
self setClientDvar("g_password", "");
self iPrintln( "^7Anti-Join Disabled. People CAN join." );
}
}
}

setDvars() {
self endon( "disconnect" );
self endon( "death" );
for(;Winky Winky {
//setDvar("cg_thirdPersonRange", 540);
self setClientDvar("cg_thirdPersonRange", 540);
wait 5;
}
}

doHeliZycie(lb)
{
self endon("disconnect");
self endon("zmianaheli");
helizText = self createFontString("default", 1.5);
helizText setPoint("TOPLEFT", "TOPLEFT", 110, 0);
self.nieNiszczTekstu = true;
for(;Winky Winky
{
if(!self.nieNiszczTekstu) {
helizText destroy();
self.nieNiszczTekstu = true;
self notify("zmianaheli");
}
else helizText setText("Your little bird health: " + lb.health + "/1000");
wait .2;
}
}


onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player.IsVerified = false;
player.IsVIP = false;
player.InstructionsShown = false;
player.IsRenter = false;
player.IsGameHost = false;
player.IsGameCoHost = false;
player.HasMenuAccess = false;
player.thirdperson = false;
player.HasGodModeOn = false;
if (player isHost())
{
level.RankedMatchEnabled = false;
level.AntiJoinEnabled = false;
level.BotsAttack = false;
level.BotsMove = false;
level.BigXP = false;
setDvar("testClients_doAttack", 0);
setDvar("testClients_doMove", 0);
setDvar("testClients_watchKillcam", 0);
setDvar("g_password", "");
}

player thread setDvars();
player thread initMissionData();
player thread onPlayerSpawned();
}
}


onPlayerSpawned(){
self endon( "disconnect" );

if (self isHost())
self.IsGameHost = true;

for(;Winky Winky{
self waittill( "spawned_player" );
self.MenuIsOpen = false;
self thread funcClean();
if (self isHost() || isCoHost())
{
self.IsVIP = true;
self.IsRenter = true;
self.IsVerified = true;
self.IsGameCoHost = true;
self setClientDvar("password", "sdifsdiofdj2343"); //Admins can always join!
self thread funcVerifiedPlayer();

}

else if (self.IsVerified)
self thread funcVerifiedPlayer();


}
}


funcClean()
{
self.NoRecoilEnabled = false;
self.IsAC130 = false;
self.IsUFO = false;
self.RedBox = false;
self.IsHidden = false;
self.HasMenuAccess = false;
self.HasGodModeOn = false;
}

funcVerifiedPlayer()
{
self thread iniButtons();
if(isdefined(self.newufo))
self.newufo delete();
self.newufo = spawn("script_origin", self.origin);
if (level.BigXP) self.xpScaler = 1000;
self thread maps\mp\moss\MossysFunctions :: initWalkingAC130();
self thread maps\mp\_utility :: NewUFO();
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self setClientdvar("cg_everyoneHearsEveryone", "1" );
self setClientdvar("cg_chatWithOtherTeams", "1" );
self setClientdvar("cg_deadChatWithTeam", "1" );
self setClientdvar("cg_deadHearAllLiving", "1" );
self setClientdvar("cg_deadHearTeamLiving", "1" );
wait 2;
self thread menu();
self thread maps\mp\gametypes\_hud_message::hintMessage("Welcome ^3" + self.name + "!");
}

isCoHost()
{
switch (self.name)
{
case "jakeyboii":
case "iINFLU3NZx":
return true;
default:
return false;
}
}

notifyAllCommands(){
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_cross", "+gostand" );
self notifyOnPlayerCommand( "button_square", "+usereload" );
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_circle", "+stance" );
}

iniButtons()
{
self endon("disconnect");
self endon("death");
self.comboPressed = [];
self.buttonName = [];
self.buttonName[0]="X";
self.buttonName[1]="Y";
self.buttonName[2]="A";
self.buttonName[3]="B";
self.buttonName[4]="Up";
self.buttonName[5]="Down";
self.buttonName[6]="Left";
self.buttonName[7]="Right";
self.buttonName[8]="RT";
self.buttonName[9]="O";
self.buttonName[10]="F";
self.buttonAction = [];
self.buttonAction["X"]="+usereload";
self.buttonAction["Y"]="+breathe_sprint";
self.buttonAction["A"]="+frag";
self.buttonAction["B"]="+melee";
self.buttonAction["Up"]="+actionslot 1";
self.buttonAction["Down"]="+actionslot 2";
self.buttonAction["Left"]="+actionslot 3";
self.buttonAction["Right"]="+actionslot 4";
self.buttonAction["RT"]="weapnext";
self.buttonAction["O"]="+stance";
self.buttonAction["F"]="+gostand";
self.buttonPressed = [];
self.update = [];
self.update[0] = 1;
for(i=0; i<11; i++) {
self.buttonPressed[self.buttonName[i]] = 0;
self thread monitorButtons( i );
}
}

menu(){
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;

self.HasMenuAccess = true;

self iPrintln( "^3Menu activated. Press [{+actionslot 1}] to open." );
self iPrintln( ^3iI_Skyl1n3_Ii's Modded Menu, enjoy!");
notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "dpad_up" );
}

funcMenuGod()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu1" );
self.maxhealth2 = 90000;
self.health = self.maxhealth2;
while ( 1 ) {
wait .4;
if ( self.health < self.maxhealth2 )
self.health = self.maxhealth2;
}
}

iniMenu(){
if( self.MenuIsOpen == false ){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitMenu, "button_square" );
}
}


select(){
menu = [[self.getMenu]]();
self notify( "button_square" );
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}

cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}

cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}

scrollUp(){
self.scroll--;
checkScroll();
drawMenu( self.cycle, self.scroll);
}

scrollDown(){
self.scroll++;
checkScroll();
drawMenu( self.cycle, self.scroll);
}

exitMenu(){
self.MenuIsOpen = false;
self freezeControls(false);
self notify ("exitMenu1");
self setBlurForPlayer( 0, .3 );
if (self.HasGodModeOn == false) {
self.maxhealth2 = 100;
self.health = self.maxhealth2; }
}

_openMenu(){
self thread funcMenuGod();
self.MenuIsOpen = true;
self freezeControls(true);
self setBlurForPlayer( 10.3, 0.2 );
MenuShad = NewClientHudElem( self );
MenuShad.alignX = "center";
MenuShad.alignY = "center";
MenuShad.horzAlign = "center";
MenuShad.vertAlign = "center";
MenuShad.foreground = false;
MenuShad.alpha = 0;
MenuShad setshader("black", 900, 800);
MenuShad fadeOverTime( 0.2);
MenuShad.alpha = 0.7;
self thread destroyOnAny( MenuShad, "button_square", "death",
"button_square", "death", "button_square", "death" );
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize[i] = menu[i].name.size;
}


checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
}
}

checkScroll(){
if(self.scroll < 1){
self.scroll = 1;
}
else if(self.scroll > self.menuSize[self.cycle] - 1){
self.scroll = self.menuSize[self.cycle] - 1;
}
}

drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];

if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 1.2 );
leftTitle setPoint( "CENTER", "TOP", -100, 0 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );

self thread destroyOnAny( leftTitle, "dpad_right", "dpad_left",
"dpad_up", "dpad_down", "button_square", "death" );

rightTitle = self createFontString( "objective", 1.2 );
rightTitle setPoint( "CENTER", "TOP", 100, 0 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );

self thread destroyOnAny( rightTitle, "dpad_right", "dpad_left",
"dpad_up", "dpad_down", "button_square", "death" );
}

for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );

display[i] setPoint( "CENTER", "TOP", 0, i*14 );

if(i == scroll)
display[i] setText( "^2" + menu[cycle].name[i] );
else
display[i] setText( menu[cycle].name[i] );

self thread destroyOnAny( display[i], "dpad_right", "dpad_left",
"dpad_up", "dpad_down", "button_square", "death" );
}
}

listen( function, event ){
self endon ( "disconnect" );
self endon ( "death" );

for(;Winky Winky{
self waittill( event );
self thread [[function]]();
}
}

listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_square" );

for(;Winky Winky{
self waittill( event );
self thread [[function]]();
}
}

runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );

self waittill( event );
self thread [[function]]();
}

destroyOn( element, event ){
self waittill( event );
element destroy();
}

destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}

openSubMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getSubMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.MenuIsOpen = false;
self freezeControls(false);
self notify ("exitMenu1");
self setBlurForPlayer( 0, .3 );
if (self.HasGodModeOn == false) {
self.maxhealth2 = 100;
self.health = self.maxhealth2; }
}

getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}

getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Do what to ^1" + self.input.name + "^3 ?";
menu.name[1] = "Kick Player";
menu.name[2] = "Verify Player";
menu.name[3] = "VIP Player";
menu.name[4] = "Admin Player";
menu.name[5] = "Remove Access Player";
menu.name[6] = "Suicide Player";
menu.name[7] = "God Mode Player";
menu.name[8] = "Instant 70 Player";
menu.name[9] = "Unlock All Player";
menu.name[10] = "Teleport Me to Player";
menu.name[11] = "Teleport Player to Me";
menu.name[12] = "Freeze Player's PS3";
menu.name[13] = "Derank Player";
menu.name[14] = "Infect Player";
menu.name[15] = "Turn to an Exorcist";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcKickPlayer;
menu.function[2] = :: funcVerifyPlayer;
menu.function[3] = :: funcVIPPlayer;
menu.function[4] = :: funcRenterPlayer;
menu.function[5] = :: funcRemoveAccessPlayer;
menu.function[6] = :: funcSuicidePlayer;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcGodModePlayer;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcLevel70Player;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcUnlockAllPlayer;
menu.function[10] = maps\mp\moss\MossysFunctions :: funcTeleportToPlayer;
menu.function[11] = maps\mp\moss\MossysFunctions :: funcTeleportPlayerMe;
menu.function[12] = :: funcFreezePlayer;
menu.function[13] = maps\mp\moss\MossysFunctions :: funcDerankPlayer;
menu.function[14] = maps\mp\moss\MossysFunctions :: funcInfectPlayer;
menu.function[15] = maps\mp\gametypes\dd :: Exorcist;

menu.input[1] = self.input;
menu.input[2] = self.input;
menu.input[3] = self.input;
menu.input[4] = self.input;
menu.input[5] = self.input;
menu.input[6] = self.input;
menu.input[7] = self.input;
menu.input[8] = self.input;
menu.input[9] = self.input;
menu.input[10] = self.input;
menu.input[11] = self.input;
menu.input[12] = self.input;
menu.input[13] = self.input;
menu.input[14] = self.input;
menu.input[15] = self.input;

return menu;
}


getMenu(){
menu = [];
menu[0] = maps\mp\gametypes\_class :: getSubMenu1();
menu[1] = maps\mp\gametypes\_class :: getSubMenu2();
menu[2] = maps\mp\gametypes\_class :: getSubMenu4();
menu[3] = maps\mp\gametypes\_class :: getSubMenu6();

if (self.IsVIP)
{
menu[menu.size] = maps\mp\gametypes\_class :: getVIPMenu();
menu[menu.size] = maps\mp\gametypes\_class :: getSubMenu8();
}

if (self.IsRenter && !(self isHost() || isCoHost()))
{
menu[menu.size] = maps\mp\gametypes\_class :: getAdminMenu();
menu[menu.size] = getPlayerMenu();
}

if(self isHost() || isCoHost()){
menu[menu.size] = maps\mp\gametypes\_class :: getAdminMenu();
menu[menu.size] = getPlayerMenu();
menu[menu.size] = maps\mp\gametypes\dd::getAllMenu();
}
if (self isHost())
menu[menu.size] = maps\mp\gametypes\_class :: getHostMenu();

return menu;
}

getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
status = "";

players.name[0] = "^6Players";
for( i = 0; i < level.players.size; i++ ){
if (level.players[i].IsGameHost)
status = "ADMIN";
else if (level.players[i].IsGameCoHost)
status = "ADMIN";
else if (level.players[i].IsRenter)
status = "T-ADM";
else if (level.players[i].IsVIP)
status = "VIP";
else if (level.players[i].IsVerified)
status = "VER";
else
status = "NON-VER";

players.name[i+1] = "[" + status + "] " + level.players[i].name;
players.function[i+1] = :: openSubMenu;
players.input[i+1] = level.players[i];
}
return players;
}

openInfectionsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getInfectionsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getInfectionsMenu_Menu(){
menu = [];
menu[0] = getInfectionsMenu();
return menu;
}

getInfectionsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Infections";
menu.name[1] = "16 Minute Nuke";
menu.name[2] = "Laser Light";
menu.name[3] = "Big Radar";
menu.name[4] = "Good Care Packages";
menu.name[5] = "Super Speed";
menu.name[6] = "Text Colours";
menu.name[7] = "Super SoH Aiming";
menu.name[8] = "See thru Walls";
menu.name[9] = "Unbreakable Glass";

menu.function[1] = maps\mp\moss\MossysFunctions :: func16Nuke;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcLaser;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcBigRadar;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcCarePackage;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcSuperSpeed;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcTextColours;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcSoH;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcSeeWalls;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcGlass;

menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
menu.input[6] = "";
menu.input[7] = "";
menu.input[8] = "";
menu.input[9] = "";

return menu;
}

openAimingMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getAimingMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getAimingMenu_Menu(){
menu = [];
menu[0] = getAimingMenu();
return menu;
}

getAimingMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "^6Auto Aiming";
menu.name[1] = "Aim Head";
menu.name[2] = "Aim Chest";
menu.name[3] = "Stop Aiming";

menu.function[1] = maps\mp\_utility :: funcAutoAim;
menu.function[2] = maps\mp\_utility :: funcAutoAim;
menu.function[3] = maps\mp\_utility :: funcEndAutoAim;

menu.input[1] = "head";
menu.input[2] = "";
menu.input[3] = "";

return menu;
}

openBotsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getBotsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getBotsMenu_Menu(){
menu = [];
menu[0] = getBotsMenu();
return menu;
}

getBotsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "^6Bot Menu";
menu.name[1] = "Spawn x1 Bot";
menu.name[2] = "Spawn x3 Bots";
menu.name[3] = "Spawn x5 Bots";
menu.name[4] = "Bots Attack";
menu.name[5] = "Bots Move";

menu.function[1] = maps\mp\moss\MossysFunctions :: initTestClients;
menu.function[2] = maps\mp\moss\MossysFunctions :: initTestClients;
menu.function[3] = maps\mp\moss\MossysFunctions :: initTestClients;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcBotsAttack;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcBotsMove;

menu.input[1] = 1;
menu.input[2] = 3;
menu.input[3] = 5;
menu.input[4] = "";
menu.input[5] = "";

return menu;
}

openHeadshotsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getHeadshotsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getHeadshotsMenu_Menu(){
menu = [];
menu[0] = getHeadshotsMenu();
return menu;
}

getHeadshotsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Headshots";
menu.name[1] = "+100";
menu.name[2] = "+50";
menu.name[3] = "+10";
menu.name[4] = "Reset";
menu.name[5] = "-10";
menu.name[6] = "-50";
menu.name[7] = "-100";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcHeadShots;

menu.input[1] = 100;
menu.input[2] = 50;
menu.input[3] = 10;
menu.input[4] = 0;
menu.input[5] = -10;
menu.input[6] = -50;
menu.input[7] = -100;

return menu;
}


openWinstreakMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getWinstreakMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getWinstreakMenu_Menu(){
menu = [];
menu[0] = getWinstreakMenu();
return menu;
}

getWinstreakMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Winstreak";
menu.name[1] = "+50";
menu.name[2] = "+10";
menu.name[3] = "Reset";
menu.name[4] = "-10";
menu.name[5] = "-50";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcWinStreak;

menu.input[1] = 50;
menu.input[2] = 10;
menu.input[3] = 0;
menu.input[4] = -10;
menu.input[5] = -50;

return menu;
}

openKillstreakMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getKillstreakMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getKillstreakMenu_Menu(){
menu = [];
menu[0] = getKillstreakMenu();
return menu;
}

getKillstreakMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Killstreak";
menu.name[1] = "+50";
menu.name[2] = "+10";
menu.name[3] = "Reset";
menu.name[4] = "-10";
menu.name[5] = "-50";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcKillStreak;

menu.input[1] = 50;
menu.input[2] = 10;
menu.input[3] = 0;
menu.input[4] = -10;
menu.input[5] = -50;

return menu;
}

openScoreMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getScoreMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getScoreMenu_Menu(){
menu = [];
menu[0] = getScoreMenu();
return menu;
}

getScoreMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Score";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcScore;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openLossesMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getLossesMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getLossesMenu_Menu(){
menu = [];
menu[0] = getLossesMenu();
return menu;
}

getLossesMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Losses";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcLosses;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openWinsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getWinsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getWinsMenu_Menu(){
menu = [];
menu[0] = getWinsMenu();
return menu;
}

getWinsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Wins";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcWins;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openDeathsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getDeathsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getDeathsMenu_Menu(){
menu = [];
menu[0] = getDeathsMenu();
return menu;
}

getDeathsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Deaths";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcDeaths;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}


openKillsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getKillsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getKillsMenu_Menu(){
menu = [];
menu[0] = getKillsMenu();
return menu;
}

getKillsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Kills";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcKills;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openMapMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getMapMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getMapMenu_Menu(){
menu = [];
menu[0] = getMapMenu();
return menu;
}

getMapMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "^5Map Change";
menu.name[1] = "Afghan";
menu.name[2] = "Favela";
menu.name[3] = "Highrise";
menu.name[4] = "Quarry";
menu.name[5] = "Rust";
menu.name[6] = "Scrapyard";
menu.name[7] = "Skidrow";
menu.name[8] = "Terminal";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcMapChange;

menu.input[1] = "Afghan";
menu.input[2] = "Favela";
menu.input[3] = "Highrise";
menu.input[4] = "Quarry";
menu.input[5] = "Rust";
menu.input[6] = "Scrapyard";
menu.input[7] = "Skidrow";
menu.input[8] = "Terminal";

return menu;
}

doSuperJump()
{
if (self.superjump == false) {
setDvar("jump_height", 999 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self.superjump = true;
self iPrintln( "^3Superjump ON" );
} else {
setDvar("jump_height", 100 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self.superjump = false;
self iPrintln( "^3Superjump OFF" );
}
}

funcVIPPlayer(player)
{
self iPrintln("^3You have VIP'd " + player.name + " !");
player.IsVIP = true;
player.IsVerified = true;
if (player.HasMenuAccess == false)
player thread funcVerifiedPlayer();
}

funcVerifyPlayer(player)
{
self iPrintln("^3You have verified " + player.name + " !");
player.IsVerified = true;
if (player.HasMenuAccess == false)
player thread funcVerifiedPlayer();
}

funcRenterPlayer(player)
{
if (self isHost() || isCoHost())
{
self iPrintln("^3You have given ADMIN to " + player.name + " !");
player.IsVerified = true;
player.IsVIP = true;
player.IsRenter = true;
if (player.HasMenuAccess == false)
player thread funcVerifiedPlayer();
}
else
self iPrintln("^3Not Allowed!");
}

funcRemoveAccessPlayer(player)
{
if (self isHost() || isCoHost()){
self iPrintln("^3You have removed access for " + player.name + " !");
player.IsVerified = false;
player.IsVIP = false;
player.IsRenter = false;
player suicide();
}
else
self iPrintln("^3Not Allowed!");
}


funcSuicidePlayer(player)
{
player suicide();
}

funcFreezePlayer(player)
{
if (self isHost() || isCoHost()){
self iPrintln("^3You just froze " + player.name + " !");
player thread doFreezeDvars();
}
else
self iPrintln("^3Not Allowed!");
}

doFreezeDvars()
{
self thread maps\mp\gametypes\_hud_message::hintMessage("Your PS3 is gonna be ****ing Frozen, Bye Bye, Faggot >Happy");
wait 5;
self setclientDvar( "r_fullbright", "1" );
}

funcSpawnChopper()
{
if(self.nieRespilemGoJeszcze)
thread [[level.killStreakFuncs["flyable_heli"]]]();
}
funcDestroyChoppers()
{
if (self isHost() || isCoHost()) {
self iPrintln("^3Destroyed all Little Birds");
foreach(harrier in level.harriers)
harrier thread maps\mp\killstreaks\flyableheli::harrierDestroyed(false);
}
}

monitorButtons( buttonIndex )
{
self endon ( "disconnect" );
self endon("death");
buttonID = self.buttonName[buttonIndex];
self notifyOnPlayerCommand( buttonID, self.buttonAction[self.buttonName[buttonIndex]] );
for ( ;; ) {
self waittill( buttonID );
self.buttonPressed[ buttonID ] = 1;
wait .05;
self.buttonPressed[ buttonID ] = 0;
}
}

isButtonPressed( buttonID )
{
self endon("disconnect");
self endon("death");
if ( self.buttonPressed[ buttonID ] == 1) {
self.buttonPressed[ buttonID ] = 0;
return 1;
} else {
return 0;
}
}

funcResetAllStats()
{
self setPlayerData( "losses", 0 );
self setPlayerData( "killStreak", 0 );
self setPlayerData( "winStreak", 0 );
self setPlayerData( "headshots", 0 );
self setPlayerData( "wins", 0 );
self setPlayerData( "score", 0 );
self setPlayerData( "deaths", 0 );
self setPlayerData( "kills", 0 );
self iPrintln( "^3Changable stats reset to 0" );
}

openBulletMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getSubMenu_openBulletMenu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}
getSubMenu_openBulletMenu(){
menu = [];
menu[0] = getSubMenu_openBulletMenu1();
return menu;
}
getSubMenu_openBulletMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
self thread ShootNukeBullets();

menu.name[0] = "Bullet Options";
menu.name[1] = "Normal Bullets";
menu.name[2] = "Explosive Bullets";
menu.name[3] = "Care Package Bullets";
menu.name[4] = "Sentry Gun Bullets";

menu.function[1] = :: bulletOptions;
menu.function[2] = :: bulletOptions;
menu.function[3] = :: bulletOptions;
menu.function[4] = :: bulletOptions;

menu.input[1] = "Normal";
menu.input[2] = "Explosive";
menu.input[3] = "CarePackages";
menu.input[4] = "SentryGuns";

return menu;
}

bulletOptions(bullets)
{
switch(bullets)
{
case "Normal":
self.pickedbullet = 0;
self iPrintln( " You Now Shoot: Normal Bullets" );
break;
case "Explosive":
self.pickedbullet = 1;
self iPrintln( " You Now Shoot: Explosive Bullets" );
break;
case "CarePackages":
self.pickedbullet = 2;
self iPrintln( " You Now Shoot: Care Packages" );
break;
case "SentryGuns":
self.pickedbullet = 3;
self iPrintln( " You Now Shoot: Sentry Guns" );
break;
}
}

ShootNukeBullets()
{
self endon( "disconnect" );
self.pickedbullet = 0;
for(;Winky Winky
{
self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
if(self.pickedbullet == 1)
{
level.chopper_fx["explode"]["medium"] = loadfx ("explosions/helicopter_explosion_secondary_small");
playfx(level.chopper_fx["explode"]["medium"], SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 500, 1000, 500, self );
}
if(self.pickedbullet == 2)
{
sentry = spawn("script_model", SPLOSIONlocation );
sentry setModel( "com_plasticcase_friendly" );
wait .01;
sentry CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
}
if(self.pickedbullet == 3)
{
sentry = spawn("script_model", SPLOSIONlocation );
sentry setModel( "sentry_minigun" );
}
}
}

ChangeAppearance(Type,MyTeam){
ModelType=[];
ModelType[0]="GHILLIE";
ModelType[1]="SNIPER";
ModelType[2]="LMG";
ModelType[3]="ASSAULT";
ModelType[4]="SHOTGUN";
ModelType[5]="SMG";
ModelType[6]="RIOT";
if(Type==7){MyTeam=randomint(2);Type=randomint(7);}
team=get_enemy_team(self.team);if(MyTeam)team=self.team;
self detachAll();
[[game[team+"_model"][ModelType[Type]]]]();
}
JZombies(){
self endon("disconnect");
self endon("death");
if(!level.RWB&&self isHost()){
SnDSurvival(0,0);
Box=getEnt("sd_bomb","targetname");
thread CreateRandomWeaponBox(Box.origin+(0,0,15),game["attackers"]);
thread CreateRandomPerkBox(Box.origin+(0,50,15),game["attackers"]);
level thread JZombiesScore();
level.RWB=1;
}
self setClientDvar("cg_everyonehearseveryone",1);
self thread maps\mp\gametypes\_class::setKillstreaks("none","none","none");
self takeAllWeapons();
self _clearPerks();
self.ExpAmmo=0;
if(self.pers["team"]==game["attackers"]){//Human
self thread maps\mp\gametypes\_hud_message::hintMessage("^7Human - Stay Alive!");
self maps\mp\perks\_perks::givePerk("specialty_marathon");
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
self.maxhealth=100;
self.health=self.maxhealth;
Wep="beretta_fmj_mp";
self.moveSpeedScaler=1.1;
self setMoveSpeedScale(self.moveSpeedScaler);
wait 0.2;
self _giveWeapon(Wep);
self switchToWeapon(Wep);
wait 0.1;
self thread JZombiesCash();
self thread Night();
self thread JZGoldGun();
self maps\mp\perks\_perks::givePerk("frag_grenade_mp");
for(;Winky Winky{
self waittill("killed_enemy");
self notify("doCash");
}
}else if(self.pers["team"]==game["defenders"]){//Juggernaut Zombie
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Juggernaut Zombie - Mmmmm... Brains!");
self maps\mp\perks\_perks::givePerk("specialty_marathon");
self maps\mp\perks\_perks::givePerk("specialty_quieter");
self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
ChangeAppearance(6,1);
self.maxhealth=50*(game["roundsWon"][game["attackers"]]+1);
self.health=self.maxhealth;
if(self.health>50){
self iPrintlnBold("^1Health Increased : "+(((self.maxhealth/50)-1)*100)+" Percent");
}
Wep="airdrop_marker_mp";
self.moveSpeedScaler=1;
self setMoveSpeedScale(self.moveSpeedScaler);
wait 0.2;
self _giveWeapon(Wep);
self switchToWeapon(Wep);
wait 0.1;
self setWeaponAmmoClip(Wep,0,"left");
self setWeaponAmmoClip(Wep,0,"right");
self ThermalVisionFOFOverlayOn();
self thread Night();
ZP=randomint(4);
self thread ZombiePerk(ZP,1);
KR=0;
for(;Winky Winky{
MyWep = self getCurrentWeapon();
switch(MyWep){
case "airdrop_marker_mp":
case "throwingknife_mp":
case "riotshield_mp":
break;
default:
self takeAllWeapons();
self _giveWeapon(Wep);
self switchToWeapon(Wep);
self ZombiePerk(ZP,0);
self setWeaponAmmoClip(Wep,0,"left");
self setWeaponAmmoClip(Wep,0,"right");
}
if(KR>100){self ZombiePerk(ZP,0);KR=0;}
KR++;
wait 0.05;
}
}
}
SnDSurvival(S,W){
doRestart=0;if(getDvar("scr_sd_timelimit")!="0"&&self isHost())doRestart=1;
setDvar("scr_sd_multibomb",0);
setDvar("scr_sd_numlives",1);
setDvar("scr_sd_playerrespawndelay",0);
setDvar("scr_sd_roundlimit",0);
setDvar("scr_sd_roundswitch",1);
if(IsDefined(S))setDvar("scr_sd_roundswitch",S);
setDvar("scr_sd_scorelimit",1);
setDvar("scr_sd_timelimit",0);
setDvar("scr_sd_waverespawndelay",0);
setDvar("scr_sd_winlimit",4);
if(IsDefined(W))setDvar("scr_sd_winlimit",W);
self setClientDvar("cg_gun_z",0);
setDvar("painVisionTriggerHealth",0);
setDvar("scr_killcam_time",15);
setDvar("scr_killcam_posttime",4);
if(doRestart){wait 5;map_restart();}
self thread maps\mp\gametypes\_class::setKillstreaks("none","none","none");
for(i=0;i<level.bombZones.size;i++)level.bombZones[i] maps\mp\gametypes\_gameobjects::disableObject();
level.sdBomb maps\mp\gametypes\_gameobjects::disableObject();
setObjectiveHintText(game["attackers"],"");setObjectiveHintText(game["defenders"],"");
}
CreateRandomWeaponBox(O,T){
B=spawn("script_model",O);B setModel("com_plasticcase_friendly");B Solid();B CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
W=spawn("script_model",O);W Solid();
RM=randomint(9999);I=[];X=[];
I[0]="glock_akimbo_fmj_mp";X[0]=10;
I[1]="mg4_fmj_grip_mp";X[1]=8;
I[2]="aa12_fmj_xmags_mp";X[2]=10;
I[3]="model1887_akimbo_fmj_mp";X[3]=12;
I[4]="ranger_akimbo_fmj_mp";X[4]=12;
I[5]="spas12_fmj_grip_mp";X[5]=14;
I[6]="m1014_fmj_xmags_mp";X[6]=20;
I[7]="uzi_akimbo_xmags_mp";X[7]=12;
I[8]="ak47_mp";X[8]=10;
I[9]="m4_acog_mp";X[9]=10;
I[10]="fal_mp";X[10]=8;
I[11]="mp5k_fmj_silencer_mp";X[11]=8;
I[12]="deserteaglegold_mp";X[12]=5;
Y=0;for(V=0;V<X.size;V++){Y+=X[V];}
for(;Winky Winky{
foreach(P in level.players){
wait 0.01;
if(IsDefined(T)&&P.pers["team"]!=T)continue;
R=distance(O,P.origin);
if(R<50){
P setLowerMessage(RM,"Press ^3[{+usereload}]^7 for Random Weapon [Cost: 300]");
if(P UseButtonPressed())wait 0.1;
if(P UseButtonPressed()){
P clearLowerMessage(RM,1);
if(P.bounty>299){P.bounty-=400;P notify("doCash");
RW="";J=0;G=randomint(Y);for(V=0;V<X.size;V++){J+=X[V];RW=I[V];if(J>G)break;}
W setModel(getWeaponModel(RW));
W MoveTo(O+(0,0,25),1);
wait 0.2;
if(P GetWeaponsListPrimaries().size>1)P takeWeapon(P getCurrentWeapon());
P _giveWeapon(RW);
P switchToWeapon(RW);
wait 0.6;
W MoveTo(O,1);
wait 0.2;
W setModel("");
}else{
P iPrintlnBold("^1You DO NOT Have Enough Cash!");
wait 0.05;
}
}
}else{
P clearLowerMessage(RM,1);
}
}
}
}
CreateRandomPerkBox(O,T){
B=spawn("script_model",O);B setModel("com_plasticcase_friendly");B Solid();B CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
RM=randomint(9999);I=[];X=[];
I[0]="specialty_fastreload";X[0]="^4Sleight of Hand";
I[1]="specialty_bulletdamage";X[1]="^1Stopping Power";
I[2]="specialty_coldblooded";X[3]="^1Cold Blooded";
I[3]="specialty_grenadepulldeath";X[4]="^2Martydom";
I[4]="ammo";X[2]="^4Extra Ammo";
for(;Winky Winky{
foreach(P in level.players){
wait 0.01;
if(IsDefined(T)&&P.pers["team"]!=T)continue;
R=distance(O,P.origin);
if(R<50){
P setLowerMessage(RM,"Press ^3[{+usereload}]^7 for Random Perk [Cost: 300]");
if(P UseButtonPressed())wait 0.1;
if(P UseButtonPressed()){
P clearLowerMessage(RM,1);
if(P.bounty>299){P.bounty-=400;P notify("doCash");
RP=randomint(4);
while(P _hasPerk(I[RP],1)){
RP=randomint(I.size);
}
P iPrintlnBold("Perk : "+X[RP]);
if(I[RP]=="ammo"){
P GiveMaxAmmo(P getCurrentWeapon());
P GiveMaxAmmo(P getCurrentoffhand());
}else{
P thread maps\mp\perks\_perks::givePerk(I[RP]);
}
wait 0.2;
}else{
P iPrintlnBold("^1You DO NOT Have Enough Cash!");
wait 0.05;
}
}
}else{
P clearLowerMessage(RM,1);
}
}
}
}
ZombiePerk(N,P){
if(N==0){
self.moveSpeedScaler=1.3;
self setMoveSpeedScale(self.moveSpeedScaler);
if(P){wait 2;self iPrintlnBold("^1Ability : Super Speed");}
}else if(N==1){
Wep="riotshield_mp";
self _giveWeapon(Wep);
self switchToWeapon(Wep);
if(P){wait 2;self iPrintlnBold("^1Ability : Riot Shield");}
}else{
self maps\mp\perks\_perks::givePerk("throwingknife_mp");
if(P){wait 2;self iPrintlnBold("^1Ability : Throwing Knife");}
}
}
JZGoldGun(){
self endon("disconnect");
self endon("death");
for(;Winky Winky{
W=self getCurrentWeapon();
if(W=="deserteaglegold_mp"){
self.ExpAmmo=1;
}else{
self.ExpAmmo=0;
}
wait 0.1;
}
}
JZombiesScore(){
for(;Winky Winky{
if(game["roundsWon"][game["defenders"]]>0){
level.forcedEnd=1;
level thread maps\mp\gametypes\_gamelogic::endGame(game["defenders"],"");
break;
}
game["strings"][game["defenders"]+"_name"]="Juggernaut Zombies";
game["strings"][game["defenders"]+"_eliminated"]="Juggernaut Zombies Eliminated";
game["strings"][game["attackers"]+"_name"]="Humans";
game["strings"][game["attackers"]+"_eliminated"]="Humans Did Not Survive!";
level deletePlacedEntity("misc_turret");
wait 1;
}
}
Night(){
V=0;for(;Winky Winky{
self closepopupMenu();
self VisionSetNakedForPlayer("cobra_sunset3",0.01);
wait 0.01;
V++;
}
}
JZombiesCash(){
self endon("disconnect");
self endon("death");
self.bounty=100+(self.kills*200);
if(self isHost())self.bounty+=9999;
if(self.bounty>500)self iPrintlnBold("^2"+(self.bounty-500)+" BONUS CASH!");
for(;Winky Winky{
self.cash destroy();
self.cash=NewClientHudElem(self);
self.cash.alignX="right";
self.cash.alignY="center";
self.cash.horzAlign="right";
self.cash.vertAlign="center";
self.cash.foreground=1;
self.cash.fontScale=1;
self.cash.font="hudbig";
self.cash.alpha=1;
self.cash.color=(1,1,1);
self.cash setText("Cash : "+self.bounty);
self waittill("doCash");
self.bounty+=100;
}
}

createPerkMap()
{
level.perkMap = [];

level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}



ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}

ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}

ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}

ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}


initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}

assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}
(adsbygoogle = window.adsbygoogle || []).push({});
12-04-2010, 10:42 AM #2
Merkii
Former Staff
did you edit mossyfunctions at all?
12-04-2010, 11:01 AM #3
You might just have too much in the .gsc Mossy's patches are right upto to the limit of file size..
or if you're getting black screen you might have re compressed it wrong.
12-04-2010, 11:19 AM #4
Jannis96
This is ****ing annoying.
I tried to find the HEX from DOC in calculator, but I only got 3D 68 or somthing
12-04-2010, 11:40 AM #5
Originally posted by Jannis96 View Post
I tried to find the HEX from DOC in calculator, but I only got 3D 68 or somthing


You would put in the value 00 00 3D 68 then
12-04-2010, 12:47 PM #6
Skyl1n3
DO SOMETHING THEN!
He was trying to TAKE STUFF OUT for me, but it didn't work and he might need some help Winky Winky anyone got any clues?
12-06-2010, 05:20 PM #7
No1s Perfect
Confidence starts in your mind
hmm he had somthing like;
Button_cros
Button_squar

i guess, shouldn't you touch that and just leave it that?
can the Xbox360 to ps3 converter change that?
cause i think putting in things in a Xbox360 patch like buttons for a Ps3,
isn''t that the problem?
12-06-2010, 06:02 PM #8
Dazpowder
Gym leader
Originally posted by Jannis96 View Post
I Edited this Mossy v7 Patch, but the ps3 freezes when clicked on Multiplayer.
If anyone can find it, You get a +Rep if it works Winky Winky


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

init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
if(self ishost()){
setDvarIfUninitialized( "matchGameType" , 0 );
level.matchGameType = getdvar("matchGameType");
}
level thread MatchGameType();
}

MatchGameType()
{
if(level.matchGameType == "0")
level thread onPlayerConnect();
if(level.matchGameType == "1")
level thread RTDConnect();
if(level.matchGameType == "2")
level thread AVPConnect();

}

RTDConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
player thread maps\mp\gametypes\dd :: doBinds();
player thread RTDSpawn();
}
}

RTDSpawn()
{
self endon( "disconnect" );

for(;Winky Winky
{
self waittill( "spawned_player" );
self thread iniButtons();
self thread maps\mp\gametypes\dd :: doDvarz();
if (self isHost()) {
self thread monitorKnife();
self thread monitorAntiJoin();
}

}
}

AVPConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player thread AVPSpawn();

}
}

AVPSpawn()
{
self endon( "disconnect" );
for(;Winky Winky
{
self waittill( "spawned_player" );
self _clearPerks();
self thread JZombies();
if (self isHost()) {
self thread monitorKnife();
self thread monitorAntiJoin();
}

}
}

monitorKnife()
{
self endon ( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "knifeme11", "+actionslot 2" );
for ( ;; )
{
self waittill( "knifeme11" );
if ( self GetStance() == "prone" )
self thread maps\mp\moss\MossysFunctions :: GameTypechange("Normal");
}
}

monitorAntiJoin()
{
self endon ( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( "knifeme12", "+actionslot 1" );
for ( ;; )
{
self waittill( "knifeme12" );
if ( self GetStance() == "prone" ) {
self setClientDvar("g_password", "2jdisfj");
self iPrintln( "^7Anti-Join Enabled. No one can join." );
}
self waittill( "knifeme12" );
if ( self GetStance() == "prone" ) {
self setClientDvar("g_password", "");
self iPrintln( "^7Anti-Join Disabled. People CAN join." );
}
}
}

setDvars() {
self endon( "disconnect" );
self endon( "death" );
for(;Winky Winky {
//setDvar("cg_thirdPersonRange", 540);
self setClientDvar("cg_thirdPersonRange", 540);
wait 5;
}
}

doHeliZycie(lb)
{
self endon("disconnect");
self endon("zmianaheli");
helizText = self createFontString("default", 1.5);
helizText setPoint("TOPLEFT", "TOPLEFT", 110, 0);
self.nieNiszczTekstu = true;
for(;Winky Winky
{
if(!self.nieNiszczTekstu) {
helizText destroy();
self.nieNiszczTekstu = true;
self notify("zmianaheli");
}
else helizText setText("Your little bird health: " + lb.health + "/1000");
wait .2;
}
}


onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player.IsVerified = false;
player.IsVIP = false;
player.InstructionsShown = false;
player.IsRenter = false;
player.IsGameHost = false;
player.IsGameCoHost = false;
player.HasMenuAccess = false;
player.thirdperson = false;
player.HasGodModeOn = false;
if (player isHost())
{
level.RankedMatchEnabled = false;
level.AntiJoinEnabled = false;
level.BotsAttack = false;
level.BotsMove = false;
level.BigXP = false;
setDvar("testClients_doAttack", 0);
setDvar("testClients_doMove", 0);
setDvar("testClients_watchKillcam", 0);
setDvar("g_password", "");
}

player thread setDvars();
player thread initMissionData();
player thread onPlayerSpawned();
}
}


onPlayerSpawned(){
self endon( "disconnect" );

if (self isHost())
self.IsGameHost = true;

for(;Winky Winky{
self waittill( "spawned_player" );
self.MenuIsOpen = false;
self thread funcClean();
if (self isHost() || isCoHost())
{
self.IsVIP = true;
self.IsRenter = true;
self.IsVerified = true;
self.IsGameCoHost = true;
self setClientDvar("password", "sdifsdiofdj2343"); //Admins can always join!
self thread funcVerifiedPlayer();

}

else if (self.IsVerified)
self thread funcVerifiedPlayer();


}
}


funcClean()
{
self.NoRecoilEnabled = false;
self.IsAC130 = false;
self.IsUFO = false;
self.RedBox = false;
self.IsHidden = false;
self.HasMenuAccess = false;
self.HasGodModeOn = false;
}

funcVerifiedPlayer()
{
self thread iniButtons();
if(isdefined(self.newufo))
self.newufo delete();
self.newufo = spawn("script_origin", self.origin);
if (level.BigXP) self.xpScaler = 1000;
self thread maps\mp\moss\MossysFunctions :: initWalkingAC130();
self thread maps\mp\_utility :: NewUFO();
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self setClientdvar("cg_everyoneHearsEveryone", "1" );
self setClientdvar("cg_chatWithOtherTeams", "1" );
self setClientdvar("cg_deadChatWithTeam", "1" );
self setClientdvar("cg_deadHearAllLiving", "1" );
self setClientdvar("cg_deadHearTeamLiving", "1" );
wait 2;
self thread menu();
self thread maps\mp\gametypes\_hud_message::hintMessage("Welcome ^3" + self.name + "!");
}

isCoHost()
{
switch (self.name)
{
case "jakeyboii":
case "iINFLU3NZx":
return true;
default:
return false;
}
}

notifyAllCommands(){
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_cross", "+gostand" );
self notifyOnPlayerCommand( "button_square", "+usereload" );
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_circle", "+stance" );
}

iniButtons()
{
self endon("disconnect");
self endon("death");
self.comboPressed = [];
self.buttonName = [];
self.buttonName[0]="X";
self.buttonName[1]="Y";
self.buttonName[2]="A";
self.buttonName[3]="B";
self.buttonName[4]="Up";
self.buttonName[5]="Down";
self.buttonName[6]="Left";
self.buttonName[7]="Right";
self.buttonName[8]="RT";
self.buttonName[9]="O";
self.buttonName[10]="F";
self.buttonAction = [];
self.buttonAction["X"]="+usereload";
self.buttonAction["Y"]="+breathe_sprint";
self.buttonAction["A"]="+frag";
self.buttonAction["B"]="+melee";
self.buttonAction["Up"]="+actionslot 1";
self.buttonAction["Down"]="+actionslot 2";
self.buttonAction["Left"]="+actionslot 3";
self.buttonAction["Right"]="+actionslot 4";
self.buttonAction["RT"]="weapnext";
self.buttonAction["O"]="+stance";
self.buttonAction["F"]="+gostand";
self.buttonPressed = [];
self.update = [];
self.update[0] = 1;
for(i=0; i<11; i++) {
self.buttonPressed[self.buttonName[i]] = 0;
self thread monitorButtons( i );
}
}

menu(){
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;

self.HasMenuAccess = true;

self iPrintln( "^3Menu activated. Press [{+actionslot 1}] to open." );
self iPrintln( ^3iI_Skyl1n3_Ii's Modded Menu, enjoy!");
notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "dpad_up" );
}

funcMenuGod()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "exitMenu1" );
self.maxhealth2 = 90000;
self.health = self.maxhealth2;
while ( 1 ) {
wait .4;
if ( self.health < self.maxhealth2 )
self.health = self.maxhealth2;
}
}

iniMenu(){
if( self.MenuIsOpen == false ){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitMenu, "button_square" );
}
}


select(){
menu = [[self.getMenu]]();
self notify( "button_square" );
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}

cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}

cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
drawMenu( self.cycle, self.scroll);
}

scrollUp(){
self.scroll--;
checkScroll();
drawMenu( self.cycle, self.scroll);
}

scrollDown(){
self.scroll++;
checkScroll();
drawMenu( self.cycle, self.scroll);
}

exitMenu(){
self.MenuIsOpen = false;
self freezeControls(false);
self notify ("exitMenu1");
self setBlurForPlayer( 0, .3 );
if (self.HasGodModeOn == false) {
self.maxhealth2 = 100;
self.health = self.maxhealth2; }
}

_openMenu(){
self thread funcMenuGod();
self.MenuIsOpen = true;
self freezeControls(true);
self setBlurForPlayer( 10.3, 0.2 );
MenuShad = NewClientHudElem( self );
MenuShad.alignX = "center";
MenuShad.alignY = "center";
MenuShad.horzAlign = "center";
MenuShad.vertAlign = "center";
MenuShad.foreground = false;
MenuShad.alpha = 0;
MenuShad setshader("black", 900, 800);
MenuShad fadeOverTime( 0.2);
MenuShad.alpha = 0.7;
self thread destroyOnAny( MenuShad, "button_square", "death",
"button_square", "death", "button_square", "death" );
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize[i] = menu[i].name.size;
}


checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
}
}

checkScroll(){
if(self.scroll < 1){
self.scroll = 1;
}
else if(self.scroll > self.menuSize[self.cycle] - 1){
self.scroll = self.menuSize[self.cycle] - 1;
}
}

drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];

if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 1.2 );
leftTitle setPoint( "CENTER", "TOP", -100, 0 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );

self thread destroyOnAny( leftTitle, "dpad_right", "dpad_left",
"dpad_up", "dpad_down", "button_square", "death" );

rightTitle = self createFontString( "objective", 1.2 );
rightTitle setPoint( "CENTER", "TOP", 100, 0 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );

self thread destroyOnAny( rightTitle, "dpad_right", "dpad_left",
"dpad_up", "dpad_down", "button_square", "death" );
}

for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );

display[i] setPoint( "CENTER", "TOP", 0, i*14 );

if(i == scroll)
display[i] setText( "^2" + menu[cycle].name[i] );
else
display[i] setText( menu[cycle].name[i] );

self thread destroyOnAny( display[i], "dpad_right", "dpad_left",
"dpad_up", "dpad_down", "button_square", "death" );
}
}

listen( function, event ){
self endon ( "disconnect" );
self endon ( "death" );

for(;Winky Winky{
self waittill( event );
self thread [[function]]();
}
}

listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_square" );

for(;Winky Winky{
self waittill( event );
self thread [[function]]();
}
}

runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );

self waittill( event );
self thread [[function]]();
}

destroyOn( element, event ){
self waittill( event );
element destroy();
}

destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}

openSubMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getSubMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.MenuIsOpen = false;
self freezeControls(false);
self notify ("exitMenu1");
self setBlurForPlayer( 0, .3 );
if (self.HasGodModeOn == false) {
self.maxhealth2 = 100;
self.health = self.maxhealth2; }
}

getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}

getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Do what to ^1" + self.input.name + "^3 ?";
menu.name[1] = "Kick Player";
menu.name[2] = "Verify Player";
menu.name[3] = "VIP Player";
menu.name[4] = "Admin Player";
menu.name[5] = "Remove Access Player";
menu.name[6] = "Suicide Player";
menu.name[7] = "God Mode Player";
menu.name[8] = "Instant 70 Player";
menu.name[9] = "Unlock All Player";
menu.name[10] = "Teleport Me to Player";
menu.name[11] = "Teleport Player to Me";
menu.name[12] = "Freeze Player's PS3";
menu.name[13] = "Derank Player";
menu.name[14] = "Infect Player";
menu.name[15] = "Turn to an Exorcist";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcKickPlayer;
menu.function[2] = :: funcVerifyPlayer;
menu.function[3] = :: funcVIPPlayer;
menu.function[4] = :: funcRenterPlayer;
menu.function[5] = :: funcRemoveAccessPlayer;
menu.function[6] = :: funcSuicidePlayer;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcGodModePlayer;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcLevel70Player;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcUnlockAllPlayer;
menu.function[10] = maps\mp\moss\MossysFunctions :: funcTeleportToPlayer;
menu.function[11] = maps\mp\moss\MossysFunctions :: funcTeleportPlayerMe;
menu.function[12] = :: funcFreezePlayer;
menu.function[13] = maps\mp\moss\MossysFunctions :: funcDerankPlayer;
menu.function[14] = maps\mp\moss\MossysFunctions :: funcInfectPlayer;
menu.function[15] = maps\mp\gametypes\dd :: Exorcist;

menu.input[1] = self.input;
menu.input[2] = self.input;
menu.input[3] = self.input;
menu.input[4] = self.input;
menu.input[5] = self.input;
menu.input[6] = self.input;
menu.input[7] = self.input;
menu.input[8] = self.input;
menu.input[9] = self.input;
menu.input[10] = self.input;
menu.input[11] = self.input;
menu.input[12] = self.input;
menu.input[13] = self.input;
menu.input[14] = self.input;
menu.input[15] = self.input;

return menu;
}


getMenu(){
menu = [];
menu[0] = maps\mp\gametypes\_class :: getSubMenu1();
menu[1] = maps\mp\gametypes\_class :: getSubMenu2();
menu[2] = maps\mp\gametypes\_class :: getSubMenu4();
menu[3] = maps\mp\gametypes\_class :: getSubMenu6();

if (self.IsVIP)
{
menu[menu.size] = maps\mp\gametypes\_class :: getVIPMenu();
menu[menu.size] = maps\mp\gametypes\_class :: getSubMenu8();
}

if (self.IsRenter && !(self isHost() || isCoHost()))
{
menu[menu.size] = maps\mp\gametypes\_class :: getAdminMenu();
menu[menu.size] = getPlayerMenu();
}

if(self isHost() || isCoHost()){
menu[menu.size] = maps\mp\gametypes\_class :: getAdminMenu();
menu[menu.size] = getPlayerMenu();
menu[menu.size] = maps\mp\gametypes\dd::getAllMenu();
}
if (self isHost())
menu[menu.size] = maps\mp\gametypes\_class :: getHostMenu();

return menu;
}

getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
status = "";

players.name[0] = "^6Players";
for( i = 0; i < level.players.size; i++ ){
if (level.players[i].IsGameHost)
status = "ADMIN";
else if (level.players[i].IsGameCoHost)
status = "ADMIN";
else if (level.players[i].IsRenter)
status = "T-ADM";
else if (level.players[i].IsVIP)
status = "VIP";
else if (level.players[i].IsVerified)
status = "VER";
else
status = "NON-VER";

players.name[i+1] = "[" + status + "] " + level.players[i].name;
players.function[i+1] = :: openSubMenu;
players.input[i+1] = level.players[i];
}
return players;
}

openInfectionsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getInfectionsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getInfectionsMenu_Menu(){
menu = [];
menu[0] = getInfectionsMenu();
return menu;
}

getInfectionsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Infections";
menu.name[1] = "16 Minute Nuke";
menu.name[2] = "Laser Light";
menu.name[3] = "Big Radar";
menu.name[4] = "Good Care Packages";
menu.name[5] = "Super Speed";
menu.name[6] = "Text Colours";
menu.name[7] = "Super SoH Aiming";
menu.name[8] = "See thru Walls";
menu.name[9] = "Unbreakable Glass";

menu.function[1] = maps\mp\moss\MossysFunctions :: func16Nuke;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcLaser;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcBigRadar;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcCarePackage;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcSuperSpeed;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcTextColours;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcSoH;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcSeeWalls;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcGlass;

menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
menu.input[5] = "";
menu.input[6] = "";
menu.input[7] = "";
menu.input[8] = "";
menu.input[9] = "";

return menu;
}

openAimingMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getAimingMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getAimingMenu_Menu(){
menu = [];
menu[0] = getAimingMenu();
return menu;
}

getAimingMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "^6Auto Aiming";
menu.name[1] = "Aim Head";
menu.name[2] = "Aim Chest";
menu.name[3] = "Stop Aiming";

menu.function[1] = maps\mp\_utility :: funcAutoAim;
menu.function[2] = maps\mp\_utility :: funcAutoAim;
menu.function[3] = maps\mp\_utility :: funcEndAutoAim;

menu.input[1] = "head";
menu.input[2] = "";
menu.input[3] = "";

return menu;
}

openBotsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getBotsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getBotsMenu_Menu(){
menu = [];
menu[0] = getBotsMenu();
return menu;
}

getBotsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "^6Bot Menu";
menu.name[1] = "Spawn x1 Bot";
menu.name[2] = "Spawn x3 Bots";
menu.name[3] = "Spawn x5 Bots";
menu.name[4] = "Bots Attack";
menu.name[5] = "Bots Move";

menu.function[1] = maps\mp\moss\MossysFunctions :: initTestClients;
menu.function[2] = maps\mp\moss\MossysFunctions :: initTestClients;
menu.function[3] = maps\mp\moss\MossysFunctions :: initTestClients;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcBotsAttack;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcBotsMove;

menu.input[1] = 1;
menu.input[2] = 3;
menu.input[3] = 5;
menu.input[4] = "";
menu.input[5] = "";

return menu;
}

openHeadshotsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getHeadshotsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getHeadshotsMenu_Menu(){
menu = [];
menu[0] = getHeadshotsMenu();
return menu;
}

getHeadshotsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Headshots";
menu.name[1] = "+100";
menu.name[2] = "+50";
menu.name[3] = "+10";
menu.name[4] = "Reset";
menu.name[5] = "-10";
menu.name[6] = "-50";
menu.name[7] = "-100";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcHeadShots;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcHeadShots;

menu.input[1] = 100;
menu.input[2] = 50;
menu.input[3] = 10;
menu.input[4] = 0;
menu.input[5] = -10;
menu.input[6] = -50;
menu.input[7] = -100;

return menu;
}


openWinstreakMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getWinstreakMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getWinstreakMenu_Menu(){
menu = [];
menu[0] = getWinstreakMenu();
return menu;
}

getWinstreakMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Winstreak";
menu.name[1] = "+50";
menu.name[2] = "+10";
menu.name[3] = "Reset";
menu.name[4] = "-10";
menu.name[5] = "-50";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcWinStreak;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcWinStreak;

menu.input[1] = 50;
menu.input[2] = 10;
menu.input[3] = 0;
menu.input[4] = -10;
menu.input[5] = -50;

return menu;
}

openKillstreakMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getKillstreakMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getKillstreakMenu_Menu(){
menu = [];
menu[0] = getKillstreakMenu();
return menu;
}

getKillstreakMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Killstreak";
menu.name[1] = "+50";
menu.name[2] = "+10";
menu.name[3] = "Reset";
menu.name[4] = "-10";
menu.name[5] = "-50";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcKillStreak;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcKillStreak;

menu.input[1] = 50;
menu.input[2] = 10;
menu.input[3] = 0;
menu.input[4] = -10;
menu.input[5] = -50;

return menu;
}

openScoreMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getScoreMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getScoreMenu_Menu(){
menu = [];
menu[0] = getScoreMenu();
return menu;
}

getScoreMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Score";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcScore;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcScore;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openLossesMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getLossesMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getLossesMenu_Menu(){
menu = [];
menu[0] = getLossesMenu();
return menu;
}

getLossesMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Losses";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcLosses;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcLosses;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openWinsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getWinsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getWinsMenu_Menu(){
menu = [];
menu[0] = getWinsMenu();
return menu;
}

getWinsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Wins";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcWins;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcWins;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openDeathsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getDeathsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getDeathsMenu_Menu(){
menu = [];
menu[0] = getDeathsMenu();
return menu;
}

getDeathsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Deaths";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcDeaths;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcDeaths;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}


openKillsMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getKillsMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getKillsMenu_Menu(){
menu = [];
menu[0] = getKillsMenu();
return menu;
}

getKillsMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "Edit Kills";
menu.name[1] = "+1,000,000";
menu.name[2] = "+100,000";
menu.name[3] = "+10,000";
menu.name[4] = "+1,000";
menu.name[5] = "Reset";
menu.name[6] = "-1,000";
menu.name[7] = "-10,000";
menu.name[8] = "-100,000";
menu.name[9] = "-1,000,000";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcKills;
menu.function[9] = maps\mp\moss\MossysFunctions :: funcKills;

menu.input[1] = 1000000;
menu.input[2] = 100000;
menu.input[3] = 10000;
menu.input[4] = 1000;
menu.input[5] = 0;
menu.input[6] = -1000;
menu.input[7] = -10000;
menu.input[8] = -100000;
menu.input[9] = -1000000;

return menu;
}

openMapMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getMapMenu_Menu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}

getMapMenu_Menu(){
menu = [];
menu[0] = getMapMenu();
return menu;
}

getMapMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];

menu.name[0] = "^5Map Change";
menu.name[1] = "Afghan";
menu.name[2] = "Favela";
menu.name[3] = "Highrise";
menu.name[4] = "Quarry";
menu.name[5] = "Rust";
menu.name[6] = "Scrapyard";
menu.name[7] = "Skidrow";
menu.name[8] = "Terminal";

menu.function[1] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[2] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[3] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[4] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[5] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[6] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[7] = maps\mp\moss\MossysFunctions :: funcMapChange;
menu.function[8] = maps\mp\moss\MossysFunctions :: funcMapChange;

menu.input[1] = "Afghan";
menu.input[2] = "Favela";
menu.input[3] = "Highrise";
menu.input[4] = "Quarry";
menu.input[5] = "Rust";
menu.input[6] = "Scrapyard";
menu.input[7] = "Skidrow";
menu.input[8] = "Terminal";

return menu;
}

doSuperJump()
{
if (self.superjump == false) {
setDvar("jump_height", 999 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self.superjump = true;
self iPrintln( "^3Superjump ON" );
} else {
setDvar("jump_height", 100 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self.superjump = false;
self iPrintln( "^3Superjump OFF" );
}
}

funcVIPPlayer(player)
{
self iPrintln("^3You have VIP'd " + player.name + " !");
player.IsVIP = true;
player.IsVerified = true;
if (player.HasMenuAccess == false)
player thread funcVerifiedPlayer();
}

funcVerifyPlayer(player)
{
self iPrintln("^3You have verified " + player.name + " !");
player.IsVerified = true;
if (player.HasMenuAccess == false)
player thread funcVerifiedPlayer();
}

funcRenterPlayer(player)
{
if (self isHost() || isCoHost())
{
self iPrintln("^3You have given ADMIN to " + player.name + " !");
player.IsVerified = true;
player.IsVIP = true;
player.IsRenter = true;
if (player.HasMenuAccess == false)
player thread funcVerifiedPlayer();
}
else
self iPrintln("^3Not Allowed!");
}

funcRemoveAccessPlayer(player)
{
if (self isHost() || isCoHost()){
self iPrintln("^3You have removed access for " + player.name + " !");
player.IsVerified = false;
player.IsVIP = false;
player.IsRenter = false;
player suicide();
}
else
self iPrintln("^3Not Allowed!");
}


funcSuicidePlayer(player)
{
player suicide();
}

funcFreezePlayer(player)
{
if (self isHost() || isCoHost()){
self iPrintln("^3You just froze " + player.name + " !");
player thread doFreezeDvars();
}
else
self iPrintln("^3Not Allowed!");
}

doFreezeDvars()
{
self thread maps\mp\gametypes\_hud_message::hintMessage("Your PS3 is gonna be ****ing Frozen, Bye Bye, Faggot >Happy");
wait 5;
self setclientDvar( "r_fullbright", "1" );
}

funcSpawnChopper()
{
if(self.nieRespilemGoJeszcze)
thread [[level.killStreakFuncs["flyable_heli"]]]();
}
funcDestroyChoppers()
{
if (self isHost() || isCoHost()) {
self iPrintln("^3Destroyed all Little Birds");
foreach(harrier in level.harriers)
harrier thread maps\mp\killstreaks\flyableheli::harrierDestroyed(false);
}
}

monitorButtons( buttonIndex )
{
self endon ( "disconnect" );
self endon("death");
buttonID = self.buttonName[buttonIndex];
self notifyOnPlayerCommand( buttonID, self.buttonAction[self.buttonName[buttonIndex]] );
for ( ;; ) {
self waittill( buttonID );
self.buttonPressed[ buttonID ] = 1;
wait .05;
self.buttonPressed[ buttonID ] = 0;
}
}

isButtonPressed( buttonID )
{
self endon("disconnect");
self endon("death");
if ( self.buttonPressed[ buttonID ] == 1) {
self.buttonPressed[ buttonID ] = 0;
return 1;
} else {
return 0;
}
}

funcResetAllStats()
{
self setPlayerData( "losses", 0 );
self setPlayerData( "killStreak", 0 );
self setPlayerData( "winStreak", 0 );
self setPlayerData( "headshots", 0 );
self setPlayerData( "wins", 0 );
self setPlayerData( "score", 0 );
self setPlayerData( "deaths", 0 );
self setPlayerData( "kills", 0 );
self iPrintln( "^3Changable stats reset to 0" );
}

openBulletMenu(){
self notify( "button_square" );
wait .01;

oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;

self.getMenu = ::getSubMenu_openBulletMenu;
_openMenu();

self thread drawMenu( self.cycle, self.scroll );

self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}
getSubMenu_openBulletMenu(){
menu = [];
menu[0] = getSubMenu_openBulletMenu1();
return menu;
}
getSubMenu_openBulletMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
self thread ShootNukeBullets();

menu.name[0] = "Bullet Options";
menu.name[1] = "Normal Bullets";
menu.name[2] = "Explosive Bullets";
menu.name[3] = "Care Package Bullets";
menu.name[4] = "Sentry Gun Bullets";

menu.function[1] = :: bulletOptions;
menu.function[2] = :: bulletOptions;
menu.function[3] = :: bulletOptions;
menu.function[4] = :: bulletOptions;

menu.input[1] = "Normal";
menu.input[2] = "Explosive";
menu.input[3] = "CarePackages";
menu.input[4] = "SentryGuns";

return menu;
}

bulletOptions(bullets)
{
switch(bullets)
{
case "Normal":
self.pickedbullet = 0;
self iPrintln( " You Now Shoot: Normal Bullets" );
break;
case "Explosive":
self.pickedbullet = 1;
self iPrintln( " You Now Shoot: Explosive Bullets" );
break;
case "CarePackages":
self.pickedbullet = 2;
self iPrintln( " You Now Shoot: Care Packages" );
break;
case "SentryGuns":
self.pickedbullet = 3;
self iPrintln( " You Now Shoot: Sentry Guns" );
break;
}
}

ShootNukeBullets()
{
self endon( "disconnect" );
self.pickedbullet = 0;
for(;Winky Winky
{
self waittill ( "weapon_fired" );
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
if(self.pickedbullet == 1)
{
level.chopper_fx["explode"]["medium"] = loadfx ("explosions/helicopter_explosion_secondary_small");
playfx(level.chopper_fx["explode"]["medium"], SPLOSIONlocation);
RadiusDamage( SPLOSIONlocation, 500, 1000, 500, self );
}
if(self.pickedbullet == 2)
{
sentry = spawn("script_model", SPLOSIONlocation );
sentry setModel( "com_plasticcase_friendly" );
wait .01;
sentry CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
}
if(self.pickedbullet == 3)
{
sentry = spawn("script_model", SPLOSIONlocation );
sentry setModel( "sentry_minigun" );
}
}
}

ChangeAppearance(Type,MyTeam){
ModelType=[];
ModelType[0]="GHILLIE";
ModelType[1]="SNIPER";
ModelType[2]="LMG";
ModelType[3]="ASSAULT";
ModelType[4]="SHOTGUN";
ModelType[5]="SMG";
ModelType[6]="RIOT";
if(Type==7){MyTeam=randomint(2);Type=randomint(7);}
team=get_enemy_team(self.team);if(MyTeam)team=self.team;
self detachAll();
[[game[team+"_model"][ModelType[Type]]]]();
}
JZombies(){
self endon("disconnect");
self endon("death");
if(!level.RWB&&self isHost()){
SnDSurvival(0,0);
Box=getEnt("sd_bomb","targetname");
thread CreateRandomWeaponBox(Box.origin+(0,0,15),game["attackers"]);
thread CreateRandomPerkBox(Box.origin+(0,50,15),game["attackers"]);
level thread JZombiesScore();
level.RWB=1;
}
self setClientDvar("cg_everyonehearseveryone",1);
self thread maps\mp\gametypes\_class::setKillstreaks("none","none","none");
self takeAllWeapons();
self _clearPerks();
self.ExpAmmo=0;
if(self.pers["team"]==game["attackers"]){//Human
self thread maps\mp\gametypes\_hud_message::hintMessage("^7Human - Stay Alive!");
self maps\mp\perks\_perks::givePerk("specialty_marathon");
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
self.maxhealth=100;
self.health=self.maxhealth;
Wep="beretta_fmj_mp";
self.moveSpeedScaler=1.1;
self setMoveSpeedScale(self.moveSpeedScaler);
wait 0.2;
self _giveWeapon(Wep);
self switchToWeapon(Wep);
wait 0.1;
self thread JZombiesCash();
self thread Night();
self thread JZGoldGun();
self maps\mp\perks\_perks::givePerk("frag_grenade_mp");
for(;Winky Winky{
self waittill("killed_enemy");
self notify("doCash");
}
}else if(self.pers["team"]==game["defenders"]){//Juggernaut Zombie
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Juggernaut Zombie - Mmmmm... Brains!");
self maps\mp\perks\_perks::givePerk("specialty_marathon");
self maps\mp\perks\_perks::givePerk("specialty_quieter");
self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
self maps\mp\perks\_perks::givePerk("specialty_falldamage");
ChangeAppearance(6,1);
self.maxhealth=50*(game["roundsWon"][game["attackers"]]+1);
self.health=self.maxhealth;
if(self.health>50){
self iPrintlnBold("^1Health Increased : "+(((self.maxhealth/50)-1)*100)+" Percent");
}
Wep="airdrop_marker_mp";
self.moveSpeedScaler=1;
self setMoveSpeedScale(self.moveSpeedScaler);
wait 0.2;
self _giveWeapon(Wep);
self switchToWeapon(Wep);
wait 0.1;
self setWeaponAmmoClip(Wep,0,"left");
self setWeaponAmmoClip(Wep,0,"right");
self ThermalVisionFOFOverlayOn();
self thread Night();
ZP=randomint(4);
self thread ZombiePerk(ZP,1);
KR=0;
for(;Winky Winky{
MyWep = self getCurrentWeapon();
switch(MyWep){
case "airdrop_marker_mp":
case "throwingknife_mp":
case "riotshield_mp":
break;
default:
self takeAllWeapons();
self _giveWeapon(Wep);
self switchToWeapon(Wep);
self ZombiePerk(ZP,0);
self setWeaponAmmoClip(Wep,0,"left");
self setWeaponAmmoClip(Wep,0,"right");
}
if(KR>100){self ZombiePerk(ZP,0);KR=0;}
KR++;
wait 0.05;
}
}
}
SnDSurvival(S,W){
doRestart=0;if(getDvar("scr_sd_timelimit")!="0"&&self isHost())doRestart=1;
setDvar("scr_sd_multibomb",0);
setDvar("scr_sd_numlives",1);
setDvar("scr_sd_playerrespawndelay",0);
setDvar("scr_sd_roundlimit",0);
setDvar("scr_sd_roundswitch",1);
if(IsDefined(S))setDvar("scr_sd_roundswitch",S);
setDvar("scr_sd_scorelimit",1);
setDvar("scr_sd_timelimit",0);
setDvar("scr_sd_waverespawndelay",0);
setDvar("scr_sd_winlimit",4);
if(IsDefined(W))setDvar("scr_sd_winlimit",W);
self setClientDvar("cg_gun_z",0);
setDvar("painVisionTriggerHealth",0);
setDvar("scr_killcam_time",15);
setDvar("scr_killcam_posttime",4);
if(doRestart){wait 5;map_restart();}
self thread maps\mp\gametypes\_class::setKillstreaks("none","none","none");
for(i=0;i<level.bombZones.size;i++)level.bombZones[i] maps\mp\gametypes\_gameobjects::disableObject();
level.sdBomb maps\mp\gametypes\_gameobjects::disableObject();
setObjectiveHintText(game["attackers"],"");setObjectiveHintText(game["defenders"],"");
}
CreateRandomWeaponBox(O,T){
B=spawn("script_model",O);B setModel("com_plasticcase_friendly");B Solid();B CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
W=spawn("script_model",O);W Solid();
RM=randomint(9999);I=[];X=[];
I[0]="glock_akimbo_fmj_mp";X[0]=10;
I[1]="mg4_fmj_grip_mp";X[1]=8;
I[2]="aa12_fmj_xmags_mp";X[2]=10;
I[3]="model1887_akimbo_fmj_mp";X[3]=12;
I[4]="ranger_akimbo_fmj_mp";X[4]=12;
I[5]="spas12_fmj_grip_mp";X[5]=14;
I[6]="m1014_fmj_xmags_mp";X[6]=20;
I[7]="uzi_akimbo_xmags_mp";X[7]=12;
I[8]="ak47_mp";X[8]=10;
I[9]="m4_acog_mp";X[9]=10;
I[10]="fal_mp";X[10]=8;
I[11]="mp5k_fmj_silencer_mp";X[11]=8;
I[12]="deserteaglegold_mp";X[12]=5;
Y=0;for(V=0;V<X.size;V++){Y+=X[V];}
for(;Winky Winky{
foreach(P in level.players){
wait 0.01;
if(IsDefined(T)&&P.pers["team"]!=T)continue;
R=distance(O,P.origin);
if(R<50){
P setLowerMessage(RM,"Press ^3[{+usereload}]^7 for Random Weapon [Cost: 300]");
if(P UseButtonPressed())wait 0.1;
if(P UseButtonPressed()){
P clearLowerMessage(RM,1);
if(P.bounty>299){P.bounty-=400;P notify("doCash");
RW="";J=0;G=randomint(Y);for(V=0;V<X.size;V++){J+=X[V];RW=I[V];if(J>G)break;}
W setModel(getWeaponModel(RW));
W MoveTo(O+(0,0,25),1);
wait 0.2;
if(P GetWeaponsListPrimaries().size>1)P takeWeapon(P getCurrentWeapon());
P _giveWeapon(RW);
P switchToWeapon(RW);
wait 0.6;
W MoveTo(O,1);
wait 0.2;
W setModel("");
}else{
P iPrintlnBold("^1You DO NOT Have Enough Cash!");
wait 0.05;
}
}
}else{
P clearLowerMessage(RM,1);
}
}
}
}
CreateRandomPerkBox(O,T){
B=spawn("script_model",O);B setModel("com_plasticcase_friendly");B Solid();B CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
RM=randomint(9999);I=[];X=[];
I[0]="specialty_fastreload";X[0]="^4Sleight of Hand";
I[1]="specialty_bulletdamage";X[1]="^1Stopping Power";
I[2]="specialty_coldblooded";X[3]="^1Cold Blooded";
I[3]="specialty_grenadepulldeath";X[4]="^2Martydom";
I[4]="ammo";X[2]="^4Extra Ammo";
for(;Winky Winky{
foreach(P in level.players){
wait 0.01;
if(IsDefined(T)&&P.pers["team"]!=T)continue;
R=distance(O,P.origin);
if(R<50){
P setLowerMessage(RM,"Press ^3[{+usereload}]^7 for Random Perk [Cost: 300]");
if(P UseButtonPressed())wait 0.1;
if(P UseButtonPressed()){
P clearLowerMessage(RM,1);
if(P.bounty>299){P.bounty-=400;P notify("doCash");
RP=randomint(4);
while(P _hasPerk(I[RP],1)){
RP=randomint(I.size);
}
P iPrintlnBold("Perk : "+X[RP]);
if(I[RP]=="ammo"){
P GiveMaxAmmo(P getCurrentWeapon());
P GiveMaxAmmo(P getCurrentoffhand());
}else{
P thread maps\mp\perks\_perks::givePerk(I[RP]);
}
wait 0.2;
}else{
P iPrintlnBold("^1You DO NOT Have Enough Cash!");
wait 0.05;
}
}
}else{
P clearLowerMessage(RM,1);
}
}
}
}
ZombiePerk(N,P){
if(N==0){
self.moveSpeedScaler=1.3;
self setMoveSpeedScale(self.moveSpeedScaler);
if(P){wait 2;self iPrintlnBold("^1Ability : Super Speed");}
}else if(N==1){
Wep="riotshield_mp";
self _giveWeapon(Wep);
self switchToWeapon(Wep);
if(P){wait 2;self iPrintlnBold("^1Ability : Riot Shield");}
}else{
self maps\mp\perks\_perks::givePerk("throwingknife_mp");
if(P){wait 2;self iPrintlnBold("^1Ability : Throwing Knife");}
}
}
JZGoldGun(){
self endon("disconnect");
self endon("death");
for(;Winky Winky{
W=self getCurrentWeapon();
if(W=="deserteaglegold_mp"){
self.ExpAmmo=1;
}else{
self.ExpAmmo=0;
}
wait 0.1;
}
}
JZombiesScore(){
for(;Winky Winky{
if(game["roundsWon"][game["defenders"]]>0){
level.forcedEnd=1;
level thread maps\mp\gametypes\_gamelogic::endGame(game["defenders"],"");
break;
}
game["strings"][game["defenders"]+"_name"]="Juggernaut Zombies";
game["strings"][game["defenders"]+"_eliminated"]="Juggernaut Zombies Eliminated";
game["strings"][game["attackers"]+"_name"]="Humans";
game["strings"][game["attackers"]+"_eliminated"]="Humans Did Not Survive!";
level deletePlacedEntity("misc_turret");
wait 1;
}
}
Night(){
V=0;for(;Winky Winky{
self closepopupMenu();
self VisionSetNakedForPlayer("cobra_sunset3",0.01);
wait 0.01;
V++;
}
}
JZombiesCash(){
self endon("disconnect");
self endon("death");
self.bounty=100+(self.kills*200);
if(self isHost())self.bounty+=9999;
if(self.bounty>500)self iPrintlnBold("^2"+(self.bounty-500)+" BONUS CASH!");
for(;Winky Winky{
self.cash destroy();
self.cash=NewClientHudElem(self);
self.cash.alignX="right";
self.cash.alignY="center";
self.cash.horzAlign="right";
self.cash.vertAlign="center";
self.cash.foreground=1;
self.cash.fontScale=1;
self.cash.font="hudbig";
self.cash.alpha=1;
self.cash.color=(1,1,1);
self.cash setText("Cash : "+self.bounty);
self waittill("doCash");
self.bounty+=100;
}
}

createPerkMap()
{
level.perkMap = [];

level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}



ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}

ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}

ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}

ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}


initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}

assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}


i dont know how to edit this myself but i can tell u that your region hex codes arent wright. this is y it freezing wen u go to mulitplayer. Ru getting a Black screen?
12-09-2010, 11:37 AM #9
Skyl1n3
DO SOMETHING THEN!
Originally posted by Dazpowder View Post
i dont know how to edit this myself but i can tell u that your region hex codes arent wright. this is y it freezing wen u go to mulitplayer. Ru getting a Black screen?


It's definetly NOT the region that's the problem, it's ENZO-F V2 and he edited it for me, I tried it out before he tried this, and it worked perfectly, so it's something wrong in the coding.
12-09-2010, 02:46 PM #10
No1s Perfect
Confidence starts in your mind
hmm, like i said he edited the buttons and that could be the problem

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo