// DisplayName = Helljump //--- GAME RULES BEGIN --- // Players are dropped into combat zones where they must survive // Endless waves of zombies. Reinforcements after 5 strikes, 5 strikes // make 1 group. 5 Groups make 1 wave. Bonus strike after a wave is // complete. Ammo is scarse, so be careful. //--- GAME RULES END --- //HELLJUMP GAME //COPYRIGHT 2009-2010, PHANTOM GAMES DEVELOPMENT //ALL RIGHTS RESERVED //The Code.. to end all :p //Zombie Spawn Area (ignore Z-Coord) $HellJump::ZSpawnZoneCt["FlatlandBigH"] = 1; $HellJump::ZSpawnZone["FlatlandBigH", 1] = "3000 0 100"; $HellJump::ZSpawnZoneCt["slapmydashH"] = 1; $HellJump::ZSpawnZone["slapmydashH", 1] = "3000 -700 100"; $HellJump::ZSpawnZoneCt["FrozenNight"] = 4; $HellJump::ZSpawnZone["FrozenNight", 1] = "-2125 2314 130"; $HellJump::ZSpawnZone["FrozenNight", 2] = "-2329 2121 150"; $HellJump::ZSpawnZone["FrozenNight", 3] = "-2246 2431 80"; $HellJump::ZSpawnZone["FrozenNight", 4] = "-2369 2490 145"; $HellJump::ZSpawnZoneCt["HelljumpIsland"] = 1; $HellJump::ZSpawnZone["HelljumpIsland", 1] = "1290 -1225 275"; //Define Initial Spawn Zone $HellJump::SpawnGraph["FlatlandBigH"] = "52 0 101"; $HellJump::SpawnGraph["slapmydashH"] = "-64.7988 -267.13 131.439"; $HellJump::SpawnGraph["FrozenNight"] = "30 26 80"; $HellJump::SpawnGraph["HelljumpIsland"] = "-791.454 499.031 540.0"; // //Define drop points (dont worry about Z, the code always uses the transport's current height) $HellJump::DropPos["FlatlandBigH"] = "3000 0 1000"; $HellJump::DropPos["HelljumpIsland"] = "1080 -1210 1000"; $HellJump::DropPos["slapmydashH"] = "3000 -700 1000"; $HellJump::DropPos["FrozenNight"] = "-2274 2288 1000"; // function HelljumpGame::pickPlayerSpawn(%game, %client, %respawn) { if (isobject(%client.spawnpoint)) { if (%client.spawnpoint.team == %client.team) { if ( (%client.spawnpoint.ispersonal != 1) || (%client==%client.spawnpoint.owner) ) { if (%client.spawnpoint.getdatablock().isspawnpoint==1) { return vectoradd(%client.spawnpoint.getposition(),"0 0 1.5") SPC "0 0 0 1"; } } else { messageclient(%client,'',"\c3The spawn point you selected is a personal spawn point, spawning you at default spawn location."); } } else { messageclient(%client,'',"\c3The spawn point you selected is not on your team, spawning you at default spawn location."); } } if ( (!isobject(%client.spawnpoint)) && (%client.spawnpoint != 0) && (%client.spawnpoint !$= "") ) { messageclient(%client,'',"\c3The spawn point you selected does not exist, spawning you at default spawn location."); } // place this client on his own team, '%respawn' does not ever seem to be used //we no longer care whether it is a respawn since all spawns use same points. %loc = $HellJump::SpawnGraph[$CurrentMission]; %position = vectorAdd(%loc,VectorAdd(TWM2Lib_MainControl("getRandomPosition", 20 TAB 1), "0 0 10")); return %position;//return %game.pickTeamSpawn(%client.team); } function HelljumpGame::AIInit(%game) { //call the default AIInit() function AIInit(); } function HelljumpGame::allowsProtectedStatics(%game) { return true; } function HelljumpGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLocation) { Parent::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLocation); if(%clVictim !$= "") { //actual player died if(%game.CheckModifier("Titan") == 1) { //end the bonus round! %game.KillAllZombies(); //don't continue on, if the player is going solo, we let him continue BottomPrintAll("Bonus Strike Over..."); return; } %clVictim.CantRespawn = 1; //gotta wait until next round / Wave CenterPrint(%clVictim, "You are out until the next Group.",2,3); // forceObserver( %game, %clVictim, "AdminForce" ); //not needed Echo("Helljump: "@%clVictim.namebase@" has been killed."); %game.CheckForLivingPlayers(); } } function HelljumpGame::CheckForLivingPlayers(%game) { if($Helljump::Preparing) { return; } $HellJump::LivingCount = 0; %count = ClientGroup.getCount(); if(%count == 0) { //no players, this fixed the constant game over stuff return; } for (%i = 0; %i < %count; %i++) { %cl = ClientGroup.getObject( %i ); if(!isObject(%cl.player) || %cl.player.getstate() $= "dead") { //Do nothing } else { $HellJump::LivingCount++; } } //Display: for(%i = 0; %i < ClientGroup.getCount(); %i++) { %cl = ClientGroup.getObject(%i); messageClient(%cl, 'MsgSPCurrentObjective2', "", "[Players: "@$HellJump::LivingCount@"][SCORE: Team: "@$HellJump::Score["Team"]@" You: "@$HellJump::Score[%cl]@"]"); } if($HellJump::LivingCount <= 0) { //Everyone is Dead, or nobody is in the server, game over %game.gameOver(); reloadCurrentMission(); //cycleMissions(); } } function reloadCurrentMission() { loadMission( $CurrentMission, $CurrentMissionType ); } function HelljumpGame::KillAllZombies(%game) { Echo("Helljump: Cleaning Zombies"); %count = MissionCleanup.getCount(); for(%i = 0; %i < %count; %i++) { %obj = MissionCleanup.getObject(%i); if(isObject(%obj)) { if(%obj.iszombie) { %obj.scriptkill($DamageType::admin); //They all went on crack and died XD } } } } function HelljumpGame::AllowAllRespawn(%game) { Echo("Helljump: Players Can now respawn."); %count = ClientGroup.getCount(); for (%i = 0; %i < %count; %i++) { %cl = ClientGroup.getObject( %i ); %cl.CantRespawn = 0; CenterPrint(%cl, "You can now respawn, but hurry, you have 15 seconds.",2,3); } %game.schedule(15000, "ExpireRespawn"); messageAll('MsgSPCurrentObjective2' ,"", "You Can Now Spawn"); } function HelljumpGame::ExpireRespawn(%game) { Echo("Helljump: Players Can no longer respawn."); %count = ClientGroup.getCount(); for (%i = 0; %i < %count; %i++) { %cl = ClientGroup.getObject( %i ); %cl.CantRespawn = 0; CenterPrint(%cl, "The Respawn Period Has Expired.",2,3); } %game.CheckForLivingPlayers(); } function HelljumpGame::spawnPlayer( %game, %client, %respawn ) { if(%client.CantRespawn) { CenterPrint(%client, "You are out until the next Group.",2,3); // forceObserver( %game, %client, "AdminForce" ); //Eh, for now return; } Parent::spawnPlayer( %game, %client, %respawn ); %game.CheckForLivingPlayers(); //board an availiable transport %game.checkTrans(%client); } function HelljumpGame::clientJoinTeam( %game, %client, %team, %respawn ) { // for multi-team games played with a single team if (Game.numTeams == 1) { %game.assignClientTeam( %client ); // Spawn the player: %game.spawnPlayer( %client, %respawn ); return; } //error("DefaultGame::clientJoinTeam"); if ( %team < 1 || %team > %game.numTeams ) return; if( %respawn $= "" ) %respawn = 1; %client.team = %team; %client.lastTeam = %team; setTargetSkin( %client.target, %game.getTeamSkin(%team) ); setTargetSensorGroup( %client.target, %team ); %client.setSensorGroup( %team ); // Spawn the player: %game.spawnPlayer( %client, %respawn ); // messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, %game.getTeamName(%team), %client, %team ); // messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', $client.name, %game.getTeamName(%client.team), %client, %client.team ); updateCanListenState( %client ); logEcho(%client.nameBase@" (cl "@%client@") joined team "@%client.team); if ($Host::Prison::Enabled == true) { if (%client.isJailed) // If player should manage to get out of jail, re-spawn and re-start sentence time jailPlayer(%client,false,mAbs(%cl.jailTime)); } } function HelljumpGame::assignClientTeam(%game, %client, %respawn ) { %client.team = 1; %client.lastTeam = 1; // Assign the team skin: if ( %client.isAIControlled() ) { if ( %leastTeam & 1 ) { %client.skin = addTaggedString( "basebot" ); setTargetSkin( %client.target, 'basebot' ); } } else setTargetSkin( %client.target, %game.getTeamSkin(%client.team) ); //setTargetSkin( %client.target, %client.skin ); // might as well standardize the messages //messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, $teamName[%leastTeam], %client, %leastTeam ); //messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', $client.name, $teamName[%client.team], %client, %client.team ); // messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1%1 joined %2.', %client.name, %game.getTeamName(%client.team), %client, %client.team ); // messageClient( %client, 'MsgClientJoinTeam', '\c1You joined the %2 team.', %client.name, %game.getTeamName(%client.team), %client, %client.team ); updateCanListenState( %client ); logEcho(%client.nameBase@" (cl "@%client@") joined team "@%client.team); } function HelljumpGame::clientChangeTeam(%game, %client, %team, %fromObs) { if(%client.CantRespawn) { if(!%fromObs) { //:D they tried to change teams CenterPrint(%client, "You are out until the next Group. \n Although that was a good try :D",2,3); return; } else { CenterPrint(%client, "You are out until the next Group.",2,3); return; } } %game.removeFromTeamRankArray(%client); %pl = %client.player; if(isObject(%pl)) { if(%pl.isMounted()) %pl.getDataBlock().doDismount(%pl); %pl.scriptKill(0); } // reset the client's targets and tasks only clientResetTargets(%client, true); // give this client a new handle to disassociate ownership of deployed objects if( %team $= "" && (%team > 0 && %team <= %game.numTeams)) { if( %client.team == 1 ) %client.team = 2; else %client.team = 1; } else %client.team = %team; // Set the client's skin: if (!%client.isAIControlled()) setTargetSkin( %client.target, %game.getTeamSkin(%client.team) ); setTargetSensorGroup( %client.target, %client.team ); %client.setSensorGroup( %client.team ); // Spawn the player: %client.lastSpawnPoint = %game.pickPlayerSpawn( %client ); %game.createPlayer( %client, %client.lastSpawnPoint, $MatchStarted ); if($MatchStarted) %client.setControlObject(%client.player); else { %client.camera.getDataBlock().setMode(%client.camera, "pre-game", %client.player); %client.setControlObject(%client.camera); } %game.onClientEnterObserverMode(%client); updateCanListenState( %client ); // MES - switch objective hud lines when client switches teams messageClient(%client, 'MsgCheckTeamLines', "", %client.team); logEcho(%client.nameBase@" (cl "@%client@") switched to team "@%client.team); } function HelljumpGame::clientMissionDropReady(%game, %client) { %count = ClientGroup.getCount(); if($MatchStarted && $CountdownStarted && %count == 1) { //Game started, first player is in messageClient(%client, 'MsgClient', "\c5Welcome To Helljump, You are the first player, Restarting game!"); %client.CantRespawn = 0; //they will get the first life %game.GameOver(); reloadCurrentMission(); //CycleMissions(); } else if($MatchStarted && $CountdownStarted && %count > 1) { // Game in progress, multiple players %game.CheckForLivingPlayers(); messageClient(%client, 'MsgClient', "\c5Welcome To Helljump, Please wait for the next Group to begin."); %client.CantRespawn = 1; } $HellJump::Score[%client] = 0; messageClient(%client, 'MsgClientReady',"", "SinglePlayerGame"); defaultGame::clientMissionDropReady(%game, %client); // if($HellJump::HellClass[%client] $= "") { $HellJump::HellClass[%client] = "HellJumper"; } // } function HelljumpGame::onAIRespawn(%game, %client) { //add the default task if (! %client.defaultTasksAdded) { %client.defaultTasksAdded = true; %client.addTask(AIPickupItemTask); %client.addTask(AIUseInventoryTask); %client.addTask(AITauntCorpseTask); %client.addTask(AIEngageTurretTask); %client.addTask(AIDetectMineTask); %client.addTask(AIBountyPatrolTask); %client.bountyTask = %client.addTask(AIBountyEngageTask); } //set the inv flag %client.spawnUseInv = true; } function HelljumpGame::updateKillScores(%game, %clVictim, %clKiller, %damageType, %implement) { if (%game.testKill(%clVictim, %clKiller)) { //verify victim was an enemy %game.awardScoreKill(%clKiller); %game.awardScoreDeath(%clVictim); } else if (%game.testSuicide(%clVictim, %clKiller, %damageType)) //otherwise test for suicide %game.awardScoreSuicide(%clVictim); } function HelljumpGame::timeLimitReached(%game) { logEcho("game over (timelimit)"); %game.gameOver(); cycleMissions(); } function HelljumpGame::startMatch(%game) { $Host::nozombs = 0; //Allow Zombs $HellJump::CanSpawnZombies = 1; // IN ORDER OF APPEARANCE $HellJump::CurrentStrike = 1; $HellJump::CurrentGroup = 1; $HellJump::CurrentWave = 1; // $HellJump::Zombiecount = 0; //Start at 0 ` $HellJump::LivingCount = 0; //Start at 0 $Host::RankSystem = 0; $HellJump::Score["Team"] = 0; $HellJump::BonusStrike = 0; //used for spawning $TWM::PlayingHellJump = 1; $HellJump::Game = %game; //This allows us to expand into other functions DefaultGame::startMatch(%game); messageAll('MsgSPCurrentObjective1' ,"", "Initial Startup - Prepare To Drop"); %group = NameToID("HellJumpGroup"); if(%group == -1) { %game.HellGroup = new SimGroup(HellJumpGroup); //used for hell jump } setSensorGroupCount(31); %game.AllowAllRespawn(); %game.StartWave(1); } function HelljumpGame::SaveScores(%game) { if (!IsFile("Server/Helljump/Scores/"@formattimestring("hh:nn a mm-dd-yy")@".txt")){ new fileobject(HellScore); HellScore.openforwrite("Server/Helljump/Scores/"@formattimestring("hh-nn-a-mm-dd-yy")@".txt"); HellScore.writeline("Scores for this round."); HellScore.writeline("Wave "@$HellJump::CurrentWave@", Group "@$HellJump::CurrentGroup@", Strike "@$HellJump::CurrentStrike@"."); HellScore.writeline("Team Score: "@$HellJump::Score["Team"]@"."); for(%i = 0; %i < ClientGroup.getCount(); %i ++) { %client = ClientGroup.getObject(%i); HellScore.writeline(""@%client.namebase@"'s Score: "@$HellJump::Score[%client]@"."); } HellScore.close(); HellScore.delete(); } else { new fileobject(HellScore); HellScore.openforappend("Server/Helljump/Scores/"@formattimestring("hh-nn-a-mm-dd-yy")@".txt"); HellScore.writeline("Scores for this round."); HellScore.writeline("Wave "@$HellJump::CurrentWave@", Group "@$HellJump::CurrentGroup@", Strike "@$HellJump::CurrentStrike@"."); HellScore.writeline("Team Score: "@$HellJump::Score["Team"]@"."); for(%i = 0; %i < ClientGroup.getCount(); %i ++) { %client = ClientGroup.getObject(%i); HellScore.writeline(""@%client.namebase@"'s Score: "@$HellJump::Score[%client]@"."); } HellScore.close(); HellScore.delete(); } } function HelljumpGame::gameOver(%game) { %game.AllowAllRespawn(); %game.SaveScores(); DefaultGame::gameOver(%game); messageAll('MsgGameOver', "Game Over: Wave "@$HellJump::CurrentWave@", Group "@$HellJump::CurrentGroup@", Strike "@$HellJump::CurrentStrike@". Final Score: "@$HellJump::Score["Team"]@".~wvoice/announcer/ann.gameover.wav" ); messageAll('MsgClearObjHud', ""); //Reset the Vars $TWM::PlayingHellJump = 0; $HellJump::CurrentStrike = 1; $HellJump::CurrentGroup = 1; $HellJump::CurrentWave = 1; $HellJump::Score["Team"] = 0; $HellJump::Zombiecount = 0; $HellJump::LivingCount = 0; $Host::RankSystem = 1; %group = NameToID("HellJumpGroup"); if(%group != -1) { %group.delete(); } for(%i = 0; %i < ClientGroup.getCount(); %i ++) { %client = ClientGroup.getObject(%i); $HellJump::Score[%client] = 0; } %game.toggleModifiers("All Off", 1); } function HelljumpGame::UpdateClientScoreBar(%game, %client) { %alv = $HellJump::LivingCount; for(%i = 0; %i < ClientGroup.getcount(); %i++) { %cl = ClientGroup.getObject(%i); messageClient(%cl, 'MsgSPCurrentObjective2', "", "[Players: "@$HellJump::LivingCount@"][SCORE: Team: "@$HellJump::Score["Team"]@" You: "@$HellJump::Score[%cl]@"]"); } } //TRANSPORT CODE //This function may be kinda old-style logic wise, but the game should calculate fast enough, that it won't //really matter if two people spawn at about the same time, and even if we end up with two transports... hey! //we just saved having to spawn another! function HelljumpGame::checkTrans(%game, %client) { %group = NameToID("HellJumpGroup"); if(%group == -1) { %game.HellGroup = new SimGroup(HellJumpGroup); //used for hell jump %group = %game.HellGroup; } if(!isObject(%group.getObject(0))) { //no transports yet, so lets spawn #1! %trans = %game.SpawnTransport(""@getWords(%client.player.getPosition(), 0, 1)@" "@getRandom(1500,2500)@""); //set the height //add the guy to it. %client.player.getDataBlock().onCollision(%client.player, %trans, 2); %client.player.setMoveState(true); //ha! no running now //Added 2.0 - PEople who jump early will be re-added to the slot %client.player.saveSlot = 2; SafeSpotLoop(%client, %obj, 2); %client.jumpDownYet = 0; // %game.GiveGuns(%client.player); return; } for(%i = 0; %i < %group.getCount(); %i++) { %obj = %group.getObject(%i); //check the current seats for(%i = 2; %i < 6; %i++){ if(!isObject(%obj.getMountNodeObject(%i))){ //open seat... MINE! %client.player.getDataBlock().onCollision(%client.player, %obj, %i); //Added 2.0 - PEople who jump early will be re-added to the slot %client.player.saveSlot = %i; SafeSpotLoop(%client, %obj, %i); %client.jumpDownYet = 0; // %client.player.setMoveState(true); //ha! no running now %game.GiveGuns(%client.player); return; } else { if(%i == 5) { %obj.allSeatsTaken = 1; } } } //drats! all seats are gone on that one! if(%obj.allSeatsTaken) { %i++; //we will now check for another transport if(!isObject(%group.getObject(%i))) { //this one does not exist, so we will need a new one! %trans = %game.SpawnTransport(""@getWords(%client.player.getPosition(), 0, 1)@" "@getRandom(1500,2500)@""); //set the height //now, we add the player to the first slot on this one %client.player.getDataBlock().onCollision(%client.player, %trans, 2); %client.player.setMoveState(true); //ha! no running now //Added 2.0 - PEople who jump early will be re-added to the slot %client.player.saveSlot = 2; SafeSpotLoop(%client, %obj, 2); %client.jumpDownYet = 0; // %game.GiveGuns(%client.player); } else { %i--; //the ++ will hit. //lets hold for the next loop } } } } function HelljumpGame::SpawnTransport(%game, %pos) { %phantom = new FlyingVehicle() { datablock = "HAPCFlyer"; team = 1; position = %pos; Invincible = true; }; %phantom.DroppedYet = 0; HellJumpGroup.add(%phantom); //15 seconds ends the re-spawn period. %goto = $HellJump::DropPos[$CurrentMission]; %xy = getWords(%goto, 0, 1); %z = getWord(%pos, 2); %fina = ""@%xy@" "@%z@""; %game.schedule(15000, "MoveTransport", %phantom, %fina, 0); return %phantom; } function HelljumpGame::SpawnAmmoTransport(%game, %pos, %targ) { %phantom = new FlyingVehicle() { datablock = "HAPCFlyer"; team = 1; position = %pos; }; %phantom.DroppedYet = 0; %phantom.Invincible = true; MissionCleanup.add(%phantom); //ammo transports go right away if(%targ $= "") { %goto = $HellJump::DropPos[$CurrentMission]; %xy = getWords(%goto, 0, 1); %z = getWord(%pos, 2); %targ = ""@%xy@" "@%z@""; } else { %xy = getWords(%targ, 0, 1); %z = getWord(%pos, 2); %targ = ""@%xy@" "@%z@""; } %game.schedule(50, "MoveTransport", %phantom, %targ, 1); return %phantom; } function HellJumpGame::getTransFacingDirection(%game, %trans, %targPos) { if(!isObject(%trans)) { return; } %pos = %trans.getworldboxcenter(); %vector = vectorNormalize(vectorSub(%targPos, %pos)); %v1 = getword(%vector, 0); %v2 = getword(%vector, 1); %v3 = getword(%vector, 2); %nv1 = %v2; %nv2 = (%v1 * -1); %vector2 = %nv1@" "@%nv2@" "@%v3; %trans.setRotation(fullrot("0 0 0",%vector2)); return %vector; } function HelljumpGame::MoveTransport(%game, %transport, %goto, %ammo) { if(!isObject(%transport)) { return; } %game.schedule(200, "MoveTransport", %transport, %goto, %ammo); //not there yet if(!%ammo) { if(vectorDist(%transport.getPosition(), %goto) > 700) { if(vectorLen(%transport.getVelocity()) < 500) { %transport.applyImpulse(%transport.getPosition(),vectorScale(%transport.getForwardVector(), 1000 * 1.3)); %game.getTransFacingDirection(%transport, %goto); } } else { %transport.applyImpulse(%transport.getPosition(),vectorScale(%transport.getForwardVector(), 700)); if(!%transport.DroppedYet) { %transport.DroppedYet = 1; %transport.schedule(12500, "SetCloaked", true); %transport.schedule(15000, "Delete"); %frd = %transport.getForwardVector(); %right = vectorNormalize(vectorSub(%transport.getEdge("1 0 0"),%transport.getEdge("-1 0 0"))); for(%i = 2; %i < 6; %i++){ if(%transport.getMountNodeObject(%i)){ %plyr = %transport.getMountNodeObject(%i); %plyr.setMoveState(true); //ha! no running now %pod = schedule((2000 * %i), 0, "MakeDropPod", %frd, %right, %plyr, %transport, %i); BottomPrint(%plyr.client, "Helljumpers!!! Prepare for drop!", 3, 1); } } } } } else { if(vectorDist(%transport.getPosition(), %goto) > 400) { if(vectorLen(%transport.getVelocity()) < 500) { %transport.applyImpulse(%transport.getPosition(),vectorScale(%transport.getForwardVector(), 1000 * 1.3)); %game.getTransFacingDirection(%transport, %goto); } } else { %transport.applyImpulse(%transport.getPosition(),vectorScale(%transport.getForwardVector(), 700)); if(!%transport.DroppedYet) { %transport.DroppedYet = 1; %transport.schedule(12500, "SetCloaked", true); %transport.schedule(15000, "Delete"); %frd = %transport.getForwardVector(); %right = vectorNormalize(vectorSub(%transport.getEdge("1 0 0"),%transport.getEdge("-1 0 0"))); for(%i = 2; %i < 6; %i++){ %pod = schedule((2000 * %i), 0, "MakeAmmoPod", %frd, %right, %transport, %i); } } } } } function SafeSpotLoop(%client, %obj, %slot) { if(!isObject(%obj)) { return; } if(!isObject(%client.player) || %client.player.getState() $= "Dead") { return; } if(%client.jumpDownYet) { return; //we have been dropped! } //the goodies if(%obj.getMountNodeObject(%slot) != %client.player) { %client.player.getDataBlock().onCollision(%client.player, %obj, %slot); messageClient(%client, 'msgAlert', "\c3Helljump: Do not jump out of the transport! you will be dropped automatically! ~wfx/misc/warning_beep.wav"); } schedule(150, 0, "SafeSpotLoop", %client, %obj, %slot); } //Scoring System //Defines: //Bonus Strike Multiplier: 3X //Demonic Multiplier: 1.5X //Where's My Head Multiplier: 2X //Normal Zombie: 1Pt //Ravenger Zombie: 3Pt //Zombie Lord: 10Pt //Demon Zombie: 5Pt //Air Rapier Zombie: 7Pt //Demon Lord Zombie: 40Pt //Shifter Zombie: 7Pt //Sniper Zombie: 15Pt //Volatile Ravenger: 10Pt //Ultra Demon Zombie: 20Pt function HelljumpGame::CheckScoreModifiers(%game) { %mod = 1; if(%game.CheckModifier("Titan") == 1) { %mod *= 3; } if(%game.CheckModifier("Demonic") == 1) { %mod *= 1.5; } if(%game.CheckModifier("WheresMyHead") == 1) { %mod *= 2; } return %mod; } //Simple award system, works well! function HelljumpGame::AwardGamePoints(%game, %client, %points) { //first Thing first, get the modifiers %mod = %game.CheckScoreModifiers(); //Lets set two score sets $HellJump::Score[%client] += (%points * %mod); $HellJump::Score["Team"] += (%points * %mod); if($HellJump::Score[%client] >= 1000) { awardClient(%client, 17); CompleteNWChallenge(%client, "OneK"); } if($HellJump::Score[%client] >= 5000) { CompleteNWChallenge(%client, "FiveK"); } if($HellJump::Score[%client] >= 10000) { CompleteNWChallenge(%client, "TenK"); } // if($HellJump::Score["Team"] >= 7500) { CompleteNW_allPlayers("PointsSurge"); } if($HellJump::Score["Team"] >= 25000) { CompleteNW_allPlayers("PointsJackpot"); } } function HelljumpGame::OnZombieDeath(%game, %killer, %victim) { %ZT = %victim.type; switch(%ZT) { case 1: %game.AwardGamePoints(%killer, 1); case 2: %game.AwardGamePoints(%killer, 5); case 3: %game.AwardGamePoints(%killer, 10); case 4: %game.AwardGamePoints(%killer, 5); case 12: %game.AwardGamePoints(%killer, 10); case 13: %game.AwardGamePoints(%killer, 10); case 14: %game.AwardGamePoints(%killer, 20); case 15: %game.AwardGamePoints(%killer, 75); CompleteNWChallenge(%killer, "DownBoy"); } // %game.UpdateClientScoreBar(%killer); //%game.CheckNextStrike(); } //NEW BEACONS //AMMO DROP datablock ItemData(AmmoDropCaller) { className = Weapon; catagory = "Spawn Items"; shapeFile = "weapon_targeting.dts"; image = AmmoDropCallerImage; mass = 1; elasticity = 0.2; friction = 0.6; pickupRadius = 2; pickUpName = "a targeting laser rifle"; computeCRC = true; }; datablock ShapeBaseImageData(AmmoDropCallerImage) { className = WeaponImage; shapeFile = "stackable3s.dts"; item = AmmoDropCaller; offset = "0 0 0"; projectile = BasicTargeter; projectileType = TargetProjectile; deleteLastProjectile = true; usesEnergy = true; minEnergy = 3; stateName[0] = "Activate"; stateSequence[0] = "Activate"; stateSound[0] = TargetingLaserSwitchSound; stateTimeoutValue[0] = 0.5; stateTransitionOnTimeout[0] = "ActivateReady"; stateName[1] = "ActivateReady"; stateTransitionOnAmmo[1] = "Ready"; stateTransitionOnNoAmmo[1] = "NoAmmo"; stateName[2] = "Ready"; stateTransitionOnNoAmmo[2] = "NoAmmo"; stateTransitionOnTriggerDown[2] = "Fire"; stateName[3] = "Fire"; stateEnergyDrain[3] = 3; stateFire[3] = true; stateAllowImageChange[3] = false; stateScript[3] = "onFire"; stateTransitionOnTriggerUp[3] = "Deconstruction"; stateTransitionOnNoAmmo[3] = "Deconstruction"; stateSound[3] = TargetingLaserPaintSound; stateName[4] = "NoAmmo"; stateTransitionOnAmmo[4] = "Ready"; stateName[5] = "Deconstruction"; stateScript[5] = "deconstruct"; stateTransitionOnTimeout[5] = "Ready"; }; function AmmoDropCallerImage::OnFire(%data, %obj, %slot) { %obj.client.HasAmmoDrop = 0; GainExperience(%obj.client, 500, "Ammo Drop Called In "); %obj.throwWeapon(1); %obj.throwWeapon(0); %obj.setInventory(AmmoDropCaller, 0, true); Game.SpawnAmmoTransport(VectorAdd("0 0 1500",$HellJump::SpawnGraph[$CurrentMission]), %obj.getPosition()); } function AmmoDropCallerImage::onMount(%this,%obj,%slot) { Parent::onMount(%this, %obj, %slot); bottomPrint(%obj.client, ">>>Killstreak Beacon<<<\nAmmo Drop.",2,2); } //Full Team Respawn datablock ItemData(FullTeamRespawnCaller) { className = Weapon; catagory = "Spawn Items"; shapeFile = "weapon_targeting.dts"; image = FullTeamRespawnCallerImage; mass = 1; elasticity = 0.2; friction = 0.6; pickupRadius = 2; pickUpName = "a targeting laser rifle"; computeCRC = true; }; datablock ShapeBaseImageData(FullTeamRespawnCallerImage) { className = WeaponImage; shapeFile = "stackable3s.dts"; item = FullTeamRespawnCaller; offset = "0 0 0"; projectile = BasicTargeter; projectileType = TargetProjectile; deleteLastProjectile = true; usesEnergy = true; minEnergy = 3; stateName[0] = "Activate"; stateSequence[0] = "Activate"; stateSound[0] = TargetingLaserSwitchSound; stateTimeoutValue[0] = 0.5; stateTransitionOnTimeout[0] = "ActivateReady"; stateName[1] = "ActivateReady"; stateTransitionOnAmmo[1] = "Ready"; stateTransitionOnNoAmmo[1] = "NoAmmo"; stateName[2] = "Ready"; stateTransitionOnNoAmmo[2] = "NoAmmo"; stateTransitionOnTriggerDown[2] = "Fire"; stateName[3] = "Fire"; stateEnergyDrain[3] = 3; stateFire[3] = true; stateAllowImageChange[3] = false; stateScript[3] = "onFire"; stateTransitionOnTriggerUp[3] = "Deconstruction"; stateTransitionOnNoAmmo[3] = "Deconstruction"; stateSound[3] = TargetingLaserPaintSound; stateName[4] = "NoAmmo"; stateTransitionOnAmmo[4] = "Ready"; stateName[5] = "Deconstruction"; stateScript[5] = "deconstruct"; stateTransitionOnTimeout[5] = "Ready"; }; function FullTeamRespawnCallerImage::OnFire(%data, %obj, %slot) { %obj.client.HasFullTeamRespawn = 0; GainExperience(%obj.client, 1500, "Full Team Respawn Activated "); MessageAll('MsgRespawn', "\c5"@%obj.client.namebase@" has activated a full team respawn beacon, you may now respawn."); %obj.throwWeapon(1); %obj.throwWeapon(0); %obj.setInventory(FullTeamRespawnCaller, 0, true); Game.AllowAllRespawn(); //yeah, we can just use this :) CompleteNWChallenge(%obj.client, "LifeGiver"); } function FullTeamRespawnCallerImage::onMount(%this,%obj,%slot) { Parent::onMount(%this, %obj, %slot); bottomPrint(%obj.client, ">>>Killstreak Beacon<<<\nFull Team Respawn.",2,2); } //SPAWN SYSTEM //Waves are the largest, and thus are called at short intervals. function HelljumpGame::SpawnZombies(%game, %pos, %type) { if(!isObject(%game) || !$TWM::PlayingHellJump) { error("UE BLOCKED"); return; } %c = CreateEmitter(%pos, NightmareGlobeEmitter, "0 0 1"); %c.schedule(1000, "delete"); schedule(500, 0, "StartAZombie", %pos, %type); } function HelljumpGame::StartWave(%game, %wave) { //lets start the group. //Group start at 1! $HellJump::CurrentWave = %wave; %game.schedule(15000, "StartGroup", 1); messageAll('MsgSPCurrentObjective1' ,"", "[W"@$HellJump::CurrentWave@"|G"@$HellJump::CurrentGroup@"|S"@$HellJump::CurrentStrike@"] | Zombies Left: "@$HellJump::Zombiecount@""); if(%wave >= 2) { CompleteNW_allPlayers("WaveDefeater"); } } function HelljumpGame::StartGroup(%game, %group) { //activate the modifiers for these: //Allow Respawn: // if($HellJump::CurrentWave == 1) { if(%group >= 2) { CompleteNW_allPlayers("GroupBuster"); } } else { CompleteNW_allPlayers("GroupBuster"); } %game.schedule(20000, "SpawnAmmoTransport", VectorAdd("0 0 1500",$HellJump::SpawnGraph[$CurrentMission])); %game.AllowAllRespawn(); $HellJump::CurrentGroup = %group; switch($HellJump::CurrentWave) { case 1: if(%group == 3) { %game.ToggleModifiers("Super-Lunge", 1); } case 2: if(%group == 1) { %game.ToggleModifiers("Super-Lunge", 1); } if(%group == 2) { %game.ToggleModifiers("It BURNS!", 1); } if(%group == 4) { %game.ToggleModifiers("Oh Lordy", 1); } if(%group == 5) { %game.ToggleModifiers("The Destiny", 1); } case 3: if(%group == 1) { %game.ToggleModifiers("Super-Lunge", 1); %game.ToggleModifiers("It BURNS!", 1); %game.ToggleModifiers("Oh Lordy", 1); %game.ToggleModifiers("The Destiny", 1); } if(%group == 4) { %game.ToggleModifiers("Kamakaziiiii", 1); } case 4: if(%group == 1) { %game.ToggleModifiers("Super-Lunge", 1); %game.ToggleModifiers("It BURNS!", 1); %game.ToggleModifiers("Oh Lordy", 1); %game.ToggleModifiers("The Destiny", 1); %game.ToggleModifiers("Kamakaziiiii", 1); } if(%group == 2) { %game.ToggleModifiers("Demonic", 1); } if(%group == 3) { %game.ToggleModifiers("Where's My Head", 1); } case 5: if(%group == 1) { %game.ToggleModifiers("Super-Lunge", 1); %game.ToggleModifiers("It BURNS!", 1); %game.ToggleModifiers("Oh Lordy", 1); %game.ToggleModifiers("The Destiny", 1); %game.ToggleModifiers("Kamakaziiiii", 1); %game.ToggleModifiers("Demonic", 1); %game.ToggleModifiers("Where's My Head", 1); %game.ToggleModifiers("Scrambler", 1); } if(%group == 5) { %game.ToggleModifiers("You can't see me", 1); } default: %game.ToggleModifiers("Super-Lunge", 1); %game.ToggleModifiers("It BURNS!", 1); %game.ToggleModifiers("Oh Lordy", 1); %game.ToggleModifiers("The Destiny", 1); %game.ToggleModifiers("Kamakaziiiii", 1); %game.ToggleModifiers("Demonic", 1); %game.ToggleModifiers("Where's My Head", 1); %game.ToggleModifiers("Scrambler", 1); %game.ToggleModifiers("You can't see me", 1); } //bonus strike if(%group == 6) { //6th group, AKA, bonus strike %game.schedule(15000, "StartBonusStrike"); BottomPrintAll("Wave Complete \n Keep Up The Good Work!", 2, 2); } //bonus complete else if(%group == 7) { %game.schedule(30000, "StartWave", $HellJump::CurrentWave + 1); } //in 15 seconds, start the strike else { %game.schedule(15000, "StartStrike", 1); } messageAll('MsgSPCurrentObjective1' ,"", "[W"@$HellJump::CurrentWave@"|G"@$HellJump::CurrentGroup@"|S"@$HellJump::CurrentStrike@"] | Zombies Left: "@$HellJump::Zombiecount@""); } function HelljumpGame::GoNextStrike(%game) { $HellJump::CurrentStrike++; CenterPrintAll("Enemy Reinforcements", 2, 2); %game.schedule(15000, "StartStrike", $HellJump::CurrentStrike); if(!$HellJump::BonusStrike) { if($HellJump::CurrentStrike == 6) { //bonus strike is considered a special group $HellJump::CurrentStrike = 1; %game.StartGroup($HellJump::CurrentGroup + 1); BottomPrintAll("Group Complete \n Keep Up The Good Work!", 2, 2); } } else { $HellJump::CurrentStrike = 1; $HellJump::BonusStrike = 0; %game.ToggleModifiers("All Off", 1); %game.StartGroup($HellJump::CurrentGroup + 1); BottomPrintAll("Bonus Strike Over \n Dead Silence, Prepare for the next Wave!", 2, 2); } } function HelljumpGame::DefineProperSpawnPos(%game, %loc) { %zCheck = GetTerrainHeight(%loc); %zProper = %zCheck + 10; %p1 = TWM2Lib_MainControl("getRandomPosition", 40 TAB 1); %p2 = vectorAdd(%loc, %p1); %zCheck2 = GetTerrainHeight(%p2); %zProperf = %zCheck2 + 10; %p3 = ""@getWords(%p2,0,1)@" "@%zProperf@""; echo(%p3); return %p3; } function HelljumpGame::StartBonusStrike(%game) { $HellJump::BonusStrike = 1; BottomPrintAll("Bonus Strike \n Good Luck...", 2, 2); %game.schedule(2500, "ToggleModifiers", "All On", 1); //lets spawn us som zombahs $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(13,13); %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } messageAll('MsgSPCurrentObjective1' ,"", "BONUS WAVE"); } function HelljumpGame::StartStrike(%game, %strike) { //set the current strike $HellJump::CurrentStrike = %strike; //holy :P %wv = $HellJump::CurrentWave; %gr = $HellJump::CurrentGroup; switch(%wv) { case 1: switch(%gr) { case 1: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,1); %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,1); %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,1); %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,2); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = getRandom(1,2); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 2: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,2); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,3); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,3); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,3); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = getRandom(1,3); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 3: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,3); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = getRandom(1,4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 4: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 5: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 4); if(%type == 2) %type = 13; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 5); if(%type == 2) %type = 13; if(%type == 5) %type = 2; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 5); if(%type == 2) %type = 13; if(%type == 5) %type = 2; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 5); if(%type == 2) %type = 13; if(%type == 5) %type = 2; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } } //once we hit 2, it's the same case 2: switch(%gr) { case 1: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 5); if(%type == 2) %type = 13; if(%type == 5) %type = 2; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 5); if(%type == 2) %type = 13; if(%type == 5) %type = 2; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 5); if(%type == 2) %type = 13; if(%type == 5) %type = 2; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 2: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 3: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 6); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 4: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 5: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } } default: switch(%gr) { case 1: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 2: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 3: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 4: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } case 5: switch(%strike) { case 1: $HellJump::Zombiecount = 20; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 2: $HellJump::Zombiecount = 25; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 3: $HellJump::Zombiecount = 30; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 4: $HellJump::Zombiecount = 35; for(%i = 0; %i < $HellJump::Zombiecount; %i++) { %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } case 5: $HellJump::Zombiecount = 40; for(%i = 0; %i < $HellJump::Zombiecount - 1; %i++) { //spawn 39 zombs, 1 dlors %time = 1000 * getRandom(1, 60); %type = GetRandom(1, 7); if(%type == 2) %type = 13; if(%type == 5) %type = 2; if(%type == 6) %type = 12; if(%type == 7) %type = 14; %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(%time, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), %type); } %zone = getRandom(1, $HellJump::ZSpawnZoneCt[$CurrentMission]); %game.schedule(1000, SpawnZombies, %game.DefineProperSpawnPos($HellJump::ZSpawnZone[$CurrentMission, %zone]), 15); } } } messageAll('MsgSPCurrentObjective1' ,"", "[W"@$HellJump::CurrentWave@"|G"@$HellJump::CurrentGroup@"|S"@$HellJump::CurrentStrike@"] | Zombies Left: "@$HellJump::Zombiecount@""); } //Score menu function HelljumpGame::updateScoreHud(%game, %client, %tag){ if (%client.SCMPage $= "") %client.SCMPage = 1; if (%client.SCMPage $= "SM") return; $TagToUseForScoreMenu = %tag; messageClient( %client, 'ClearHud', "", %tag, 0 ); messageClient( %client, 'SetScoreHudHeader', "", "" ); messageClient( %client, 'SetScoreHudHeader', "", "E.V.A.Close" ); messageClient( %client, 'SetScoreHudSubheader', "", "Hell-Jump Command Hud" ); //scoreCmdMainMenu(%game,%client,%tag,%client.SCMPage); if(%client.hasMedal(17)) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Hell-Class Selection"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Settings/Perks"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Weapon Challenges/Upgrades'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Exit"); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "-*-*-Module Locked-*-*-"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Settings/Perks"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Weapon Challenges/Upgrades'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Exit"); %index++; } } function HelljumpGame::processGameLink(%game, %client, %arg1, %arg2, %arg3, %arg4, %arg5){ %tag = $TagToUseForScoreMenu; messageClient( %client, 'ClearHud', "", %tag, 1 ); //Stuff if(%arg1 $= "") %arg1 = "Null"; if(%arg2 $= "") %arg2 = "Null"; if(%arg3 $= "") %arg3 = "Null"; if(%arg4 $= "") %arg4 = "Null"; if(%arg5 $= "") %arg5 = "Null"; //end echo("[F2] "@%client.namebase@": "@%arg1@", "@%arg2@", "@%arg3@", "@%arg4@", "@%arg5@"."); switch$ (%arg1) { case "GTP": %game.updateScoreHud(%client, %tag); return; case "PersControl": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "Personal Settings" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Select An Option"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Killstreak Superweapons - Special Streaks For Helljump'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Perks'); %index++; //messageClient( %client, 'SetLineHud', "", %tag, %index, 'Weapon Challenges'); //%index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Save Settings'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; messageClient( %client, 'ClearHud', "", %tag, %index ); return; case "UpdateSettings": UpdateSettings(%client); MessageClient(%client, 'msgSaved', "\c5Settings Saved"); %game.processGameLink(%client, "NAC"); return; case "ChooseClass": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudHeader', "", "Close EVA" ); messageClient( %client, 'SetScoreHudSubheader', "", "Hell-Class Selection" ); $HellJump::HellClass[%client] = %arg2; CompleteNWChallenge(%client, "ClassExtravaganza"); messageClient( %client, 'SetLineHud', "", "New Class: "@$HellJump::HellClass[%client]@"" ); %index++; messageClient( %client, 'SetLineHud', "", "New Class Weapons: "@$HellClass::Info[$HellJump::HellClass[%client]]@"" ); %index++; messageClient( %client, 'SetLineHud', "", "" ); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Exit'); %index++; // if(!%client.jumpDownYet) { %game.GiveGuns(%client.player); } return; case "HellClass": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudHeader', "", "Close EVA" ); messageClient( %client, 'SetScoreHudSubheader', "", "Hell-Class Selection" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Current Class: "@$HellJump::HellClass[%client]@" - "@$HellClass::Info[$HellJump::HellClass[%client]]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "NOTE: All changes will apply on your next re-spawn"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Please Choose a Hell-Class:"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "HellJumper - "@$HellClass::Info["HellJumper"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Light Sniper - "@$HellClass::Info["Light Sniper"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "Explosives - "@$HellClass::Info["Explosives"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "RSA Commando - "@$HellClass::Info["RSA"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; if(%client.hasMedal(9)) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Stormlord - "@$HellClass::Info["Stormlord"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "*Locked* Requires The Thunda-Struck Medal"); %index++; } if(%client.hasMedal(1)) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Close Combat - "@$HellClass::Info["Close Combat"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "*Locked* Requires The He Fell Again Medal"); %index++; } if(%client.hasMedal(13)) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Shadow Guard - "@$HellClass::Info["Shadow Guard"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "*Locked* Requires The Source Of All Evil Medal"); %index++; } if(%client.hasMedal(20)) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Collider Fanatic - "@$HellClass::Info["Collider Fanatic"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "*Locked* Requires The Hazing Medal"); %index++; } if(%client.hasMedal(21)) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Flamer - "@$HellClass::Info["Flamer"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "*Locked* Requires The Glorious Fire Medal"); %index++; } if(%client.CheckNWChallengeCompletion("NewYearsEve")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Javelin - "@$HellClass::Info["Javelin"]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "*Locked* Requires The New Years Eve Fireworks Challenge"); %index++; } messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Exit'); %index++; return; //other case "ActivateUpgrade": %image = %arg2; %upgrade = %arg3; %client.DisableAllUpgrades(%image); //disable all first %client.ActivateUpgrade(%image, %upgrade); %game.processGameLink(%client, "CompletedSub"); return; case "DeActivateUpgrades": %image = %arg2; %client.DisableAllUpgrades(%image); //disable all %game.processGameLink(%client, "CompletedSub"); return; case "CompletedSub": %image = %arg2; %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "Completed Challenges" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Upgrade To Use"); %index++; %index = GenerateCompletedSubMenu(%client, %tag, %index, %image); messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to weapon challegnes'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; return; case "CompletedChallenge": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "Completed Challenges" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Weapon"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; %index = GenerateCompletedChallegnesMenu(%client, %tag, %index); messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to weapon challegnes'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; return; case "WeaponTasksSub": %image = %arg2; %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "In-Complete Challenges" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Challenges:"); %index++; %index = GenerateWChallengeSubMenu(%client, %tag, %index, %image); messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to weapon challegnes'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; return; case "WeaponsTasks": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "In-Complete Challenges" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Weapon"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; %index = GenerateWeaponChallegnesMenu(%client, %tag, %index); messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to weapon challegnes'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; return; case "OtherTasks": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "In-Complete Challenges" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Challenge"); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; //%index = GenerateChallegnesMenu(%client, %tag, %index); messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to weapon challegnes'); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; return; case "WeaponChallenge": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "Weapon Challenges" ); messageClient( %client, 'SetLineHud', "", %tag, %index, "Select An Option"); %index++; // messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; // messageClient( %client, 'SetLineHud', "", %tag, %index, 'Completed Challenges & Upgrades'); %index++; // messageClient( %client, 'SetLineHud', "", %tag, %index, 'Specific Weapon Challenges'); %index++; // messageClient( %client, 'SetLineHud', "", %tag, %index, 'Additional Challenges'); %index++; // //%index = CreatePerkMenu(%client, %tag, %index); // messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; messageClient( %client, 'ClearHud', "", %tag, %index ); return; case "Perks": %client.SCMPage = "SM"; messageClient( %client, 'SetScoreHudSubheader', "", "PERKS" ); messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "--- ACTIVE PERKS ---"); %index++; GetActivePerks(%client); //Reload This First messageClient( %client, 'SetLineHud', "", %tag, %index, "PRIMARY: "@%client.Perk[1]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "SECONDARY: "@%client.Perk[2]@""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "TERTIARY: "@%client.Perk[3]@""); %index++; // // messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, "--- AVAILIABLE PERKS ---"); %index++; // %index = CreatePerkMenu(%client, %tag, %index); // messageClient( %client, 'SetLineHud', "", %tag, %index, ""); %index++; messageClient( %client, 'SetLineHud', "", %tag, %index, 'Back to main menu'); %index++; messageClient( %client, 'ClearHud', "", %tag, %index ); return; case "PerkStatus": DisableAllPerkGroup(%client, $Perk::PerkToGroup[%arg2]); SetPerkStatus(%client, %arg2, 1); %game.processGameLink(%client, "Perks"); return; // default: %client.notFirstUse = 1; } closeScoreHudFSERV(%client); } function HelljumpGame::GiveGuns(%game, %player) { // %class = $HellJump::HellClass[%player.client]; // switch$ (%class) { case "HellJumper": %player.setArmor("Medium"); //commando! %player.clearInventory(); %player.setInventory(S3SRifle, 1, true); %player.setInventory(S3SRifleAmmo, 30, true); %player.ClipCount[S3SRifleImage.ClipName] = S3SRifleImage.InitialClips; %player.setInventory(Mp26CMDO, 1, true); %player.setInventory(Mp26CMDOAmmo, 50, true); %player.ClipCount[Mp26CMDOImage.ClipName] = Mp26CMDOImage.InitialClips; %player.setInventory(Pistol, 1, true); %player.setInventory(PistolAmmo, 50, true); //I'm nice for your first clip :) %player.ClipCount[PistolImage.ClipName] = PistolImage.HellClipCount; %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(Mp26CMDO); case "Light Sniper": %player.setArmor("Light"); %player.clearInventory(); %player.setInventory(R700SniperRifle, 1, true); %player.setInventory(R700SniperRifleAmmo, 10, true); %player.ClipCount[R700SniperRifleImage.ClipName] = R700SniperRifleImage.InitialClips; %player.setInventory(Shocklance, 1, true); %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(R700SniperRifle); case "Explosives": %player.setArmor("Heavy"); %player.clearInventory(); %player.setInventory(RPG, 1, true); %player.setInventory(RPGAmmo, 1, true); %player.ClipCount[RPGImage.ClipName] = 25; //have fun with your RPGs %player.setInventory(Pistol, 1, true); %player.setInventory(PistolAmmo, 50, true); //I'm nice for your first clip :) %player.ClipCount[PistolImage.ClipName] = PistolImage.HellClipCount; %player.setInventory(MG42, 1, true); %player.setInventory(MG42Ammo, 200, true); %player.ClipCount[MG42Image.ClipName] = MG42Image.InitialClips; %player.setInventory(Javelin, 1, true); %player.setInventory(JavelinAmmo, 1, true); %player.ClipCount[JavelinImage.ClipName] = 10; %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(RPG); case "Stormlord": %player.setArmor("Microburst"); %player.clearInventory(); %player.setInventory(S3Rifle, 1, true); %player.setInventory(S3RifleAmmo, 10, true); %player.ClipCount[S3RifleImage.ClipName] = S3RifleImage.InitialClips; %player.setInventory(IonRifle, 1, true); %player.setInventory(Shocklance, 1, true); %player.setInventory(RepairKit,3); %player.setInventory(StaticGrenade,5); %player.use(IonRifle); case "Close Combat": %player.setArmor("Medium"); //commando! %player.clearInventory(); %player.setInventory(Wp400, 1, true); %player.setInventory(Wp400Ammo, 5, true); %player.ClipCount[Wp400Image.ClipName] = Wp400Image.InitialClips; %player.setInventory(Pg700, 1, true); %player.setInventory(Pg700Ammo, 45, true); %player.ClipCount[Pg700Image.ClipName] = Pg700Image.InitialClips; %player.setInventory(LD06Savager, 1, true); %player.setInventory(LD06SavagerAmmo, 10, true); //I'm nice for your first clip :) %player.ClipCount[LD06SavagerImage.ClipName] = LD06SavagerImage.InitialClips; %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(Wp400); case "Shadow Guard": %player.setArmor("ShadowCommando"); //commando! %player.clearInventory(); %player.setInventory(ShadowRifle, 1, true); %player.setInventory(S3Rifle, 1, true); %player.setInventory(S3RifleAmmo, 10, true); %player.ClipCount[S3RifleImage.ClipName] = S3RifleImage.InitialClips; %player.setInventory(LD06Savager, 1, true); %player.setInventory(LD06SavagerAmmo, 10, true); //I'm nice for your first clip :) %player.ClipCount[LD06SavagerImage.ClipName] = LD06SavagerImage.InitialClips; %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(ShadowRifle); case "RSA": %player.setArmor("Medium"); //commando! %player.clearInventory(); %player.setInventory(lasergun, 1, true); %player.setInventory(lasergunAmmo, 10, true); %player.ClipCount[lasergunImage.ClipName] = 7; %player.setInventory(S3SRifle, 1, true); %player.setInventory(S3SRifleAmmo, 30, true); %player.ClipCount[S3SRifleImage.ClipName] = S3SRifleImage.InitialClips; %player.setInventory(PulsePhaser, 1, true); %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(lasergun); case "Flamer": %player.setArmor("Medium"); //commando! %player.clearInventory(); %player.setInventory(flamer, 1, true); %player.setInventory(flamerAmmo, 100, true); %player.ClipCount[flamerImage.ClipName] = 999; %player.setInventory(Pistol, 1, true); %player.setInventory(PistolAmmo, 50, true); //I'm nice for your first clip :) %player.ClipCount[PistolImage.ClipName] = PistolImage.HellClipCount; %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(flamer); case "Javelin": %player.setArmor("Medium"); //commando! %player.clearInventory(); %player.setInventory(Javelin, 1, true); %player.setInventory(JavelinAmmo, 1, true); %player.ClipCount[JavelinImage.ClipName] = 999; %player.setInventory(Deagle, 1, true); %player.setInventory(DeagleAmmo, 7, true); //I'm nice for your first clip :) %player.ClipCount[DeagleImage.ClipName] = DeagleImage.InitialClips; %player.setInventory(TargetingLaser, 1, true); %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(Javelin); default: %player.setArmor("Medium"); //commando! %player.clearInventory(); %player.setInventory(S3SRifle, 1, true); %player.setInventory(S3SRifleAmmo, 30, true); %player.ClipCount[S3SRifleImage.ClipName] = S3SRifleImage.InitialClips; %player.setInventory(Mp26CMDO, 1, true); %player.setInventory(Mp26CMDOAmmo, 50, true); %player.ClipCount[Mp26CMDOImage.ClipName] = Mp26CMDOImage.InitialClips; %player.setInventory(Pistol, 1, true); %player.setInventory(PistolAmmo, 50, true); //I'm nice for your first clip :) %player.ClipCount[PistolImage.ClipName] = PistolImage.HellClipCount; %player.setInventory(RepairKit,3); %player.setInventory(Grenade,5); %player.use(Mp26CMDO); } } //HellClass info(1.6) $HellClass::Info["HellJumper"] = "Commando Armor - S3-S Rifle, MP26 CMDO, Colt Pistol"; $HellClass::Info["Light Sniper"] = "Scout Armor - R700 Sniper, X-81 Shocklance"; $HellClass::Info["Explosives"] = "Support Armor - RPG-7, MG42 Machine Gun, Javelin, Colt Pistol"; $HellClass::Info["RSA"] = "Commando Armor - RSA Laser Rifle, S3-S Rifle, ES-77 Pulse Phaser"; $HellClass::Info["Stormlord"] = "Microburst Armor - S3 Rifle, LUST Ion Rifle, X-81 Shocklance"; $HellClass::Info["Close Combat"] = "Commando Armor - Wp400 Shotgun, Pg700 SMG, LD06 Savager"; $HellClass::Info["Shadow Guard"] = "S.Commando Armor - Sh4d3 Shadow Rifle, S3 Rifle, LD06 Savager"; //Special Classes (most of these have 1 weapon that cannot be obtained in a drop pod and a pistol. $HellClass::Info["Collider Fanatic"] = "Commando Armor - PRTCL-995 MCC, Colt Pistol"; $HellClass::Info["Flamer"] = "Commando Armor - A|V|X Flamethrower (Unlimited), Colt Pistol"; $HellClass::Info["Javelin"] = "Commando Armor - Javelin (Unlimited), Desert Eagle Pistol"; //Phantom139 //TWM2 3.7 Changes function GenerateHelljumpChallengeMenu(%client, %tag, %index) { if(%client.CheckNWChallengeCompletion("GroupBuster")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Group Buster - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Group Buster - Complete A Group."); %index++; } // if(%client.CheckNWChallengeCompletion("WaveDefeater")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Wave Defeater - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Wave Defeater - Complete A Wave."); %index++; } // if(%client.CheckNWChallengeCompletion("OneK")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "1K Soldier - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "1K Soldier - Earn 1,000 Points (Solo Score)."); %index++; } // if(%client.CheckNWChallengeCompletion("FiveK")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "5K Soldier - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "5K Soldier - Earn 5,000 Points (Solo Score)."); %index++; } // if(%client.CheckNWChallengeCompletion("TenK")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "10K Soldier - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "10K Soldier - Earn 10,000 Points (Solo Score)."); %index++; } // if(%client.CheckNWChallengeCompletion("PointsSurge")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Points Surge - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Points Surge - Earn 7,500 Points (Team Score)."); %index++; } // if(%client.CheckNWChallengeCompletion("PointsJackpot")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Points Jackpot - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Points Jackpot - Earn 25,000 Points (Team Score)."); %index++; } // if(%client.CheckNWChallengeCompletion("DownBoy")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Down Boy... Down - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Down Boy... Down - Kill the wraith zombie on Strike 5."); %index++; } // if(%client.CheckNWChallengeCompletion("ClassExtravaganza")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Class Extravaganza - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Class Extravaganza - Use a hellclass."); %index++; } // if(%client.CheckNWChallengeCompletion("LifeGiver")) { messageClient( %client, 'SetLineHud', "", %tag, %index, "Giver of Life - Done."); %index++; } else { messageClient( %client, 'SetLineHud', "", %tag, %index, "Giver of Life - Use a Full Team Respawn beacon."); %index++; } // return %index; }