mirror of
https://github.com/PhantomGamesDevelopment/TWM2.git
synced 2026-01-19 19:44:47 +00:00
2885 lines
123 KiB
C#
2885 lines
123 KiB
C#
|
|
// 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(getRandomPosition(20,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, "<color:FF0000>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, "<color:FF0000>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, "<color:FF0000>The Respawn Period Has Expired.",2,3);
|
||
|
|
}
|
||
|
|
%game.CheckForLivingPlayers();
|
||
|
|
}
|
||
|
|
|
||
|
|
function HelljumpGame::spawnPlayer( %game, %client, %respawn ) {
|
||
|
|
if(%client.CantRespawn) {
|
||
|
|
CenterPrint(%client, "<color:FF0000>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, "<color:FF0000>You are out until the next Group. \n Although that was a good try :D",2,3);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
CenterPrint(%client, "<color:FF0000>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, "<spush><font:Sui Generis:14>>>>Killstreak Beacon<<<<spop>\n<spush><font:Arial:14>Ammo Drop.<spop>",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, "<spush><font:Sui Generis:14>>>>Killstreak Beacon<<<<spop>\n<spush><font:Arial:14>Full Team Respawn.<spop>",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 = getRandomPosition(40, 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.<rmargin:600><just:right><a:gamelink\tNAC\t1>Close</a>" );
|
||
|
|
messageClient( %client, 'SetScoreHudSubheader', "", "Hell-Jump Command Hud" );
|
||
|
|
//scoreCmdMainMenu(%game,%client,%tag,%client.SCMPage);
|
||
|
|
if(%client.hasMedal(17)) {
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tHellClass\t1>Hell-Class Selection</a>");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tPersControl\t1>Settings/Perks</a>");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponChallenge\t1>Weapon Challenges/Upgrades</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tNAC\t1>Exit</a>");
|
||
|
|
%index++;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "-*-*-Module Locked-*-*-");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tPersControl\t1>Settings/Perks</a>");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponChallenge\t1>Weapon Challenges/Upgrades</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tNAC\t1>Exit</a>");
|
||
|
|
%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, '<a:gamelink\tPerks\t1>Perks</a>');
|
||
|
|
%index++;
|
||
|
|
//messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponChallenge\t1>Weapon Challenges</a>');
|
||
|
|
//%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tUpdateSettings\t1>Save Settings</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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', "", "<a:gamelink\tNAC\t1>Close EVA</a>" );
|
||
|
|
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, '<a:gamelink\tNAC\t1>Exit</a>');
|
||
|
|
%index++;
|
||
|
|
//
|
||
|
|
if(!%client.jumpDownYet) {
|
||
|
|
%game.GiveGuns(%client.player);
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
|
||
|
|
case "HellClass":
|
||
|
|
%client.SCMPage = "SM";
|
||
|
|
messageClient( %client, 'SetScoreHudHeader', "", "<a:gamelink\tNAC\t1>Close EVA</a>" );
|
||
|
|
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, "<a:gamelink\tChooseClass\tHellJumper\t1>HellJumper</a> - "@$HellClass::Info["HellJumper"]@"");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tChooseClass\tLight Sniper\t1>Light Sniper</a> - "@$HellClass::Info["Light Sniper"]@"");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tChooseClass\tExplosives\t1>Explosives</a> - "@$HellClass::Info["Explosives"]@"");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tChooseClass\tRSA\t1>RSA Commando</a> - "@$HellClass::Info["RSA"]@"");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
|
||
|
|
%index++;
|
||
|
|
if(%client.hasMedal(9)) {
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tChooseClass\tStormlord\t1>Stormlord</a> - "@$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, "<a:gamelink\tChooseClass\tClose Combat\t1>Close Combat</a> - "@$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, "<a:gamelink\tChooseClass\tShadow Guard\t1>Shadow Guard</a> - "@$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, "<a:gamelink\tChooseClass\tCollider Fanatic\t1>Collider Fanatic</a> - "@$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, "<a:gamelink\tChooseClass\tFlamer\t1>Flamer</a> - "@$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, "<a:gamelink\tChooseClass\tJavelin\t1>Javelin</a> - "@$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, '<a:gamelink\tNAC\t1>Exit</a>');
|
||
|
|
%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, '<a:gamelink\tWeaponChallenge\t1>Back to weapon challegnes</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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, '<a:gamelink\tWeaponChallenge\t1>Back to weapon challegnes</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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, '<a:gamelink\tWeaponChallenge\t1>Back to weapon challegnes</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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, '<a:gamelink\tWeaponChallenge\t1>Back to weapon challegnes</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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, '<a:gamelink\tWeaponChallenge\t1>Back to weapon challegnes</a>');
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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, '<a:gamelink\tCompletedChallenge\t1>Completed Challenges & Upgrades</a>');
|
||
|
|
%index++;
|
||
|
|
//
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponsTasks\t1>Specific Weapon Challenges</a>');
|
||
|
|
%index++;
|
||
|
|
//
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tOtherTasks\t1>Additional Challenges</a>');
|
||
|
|
%index++;
|
||
|
|
//
|
||
|
|
//%index = CreatePerkMenu(%client, %tag, %index);
|
||
|
|
//
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
|
||
|
|
%index++;
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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, '<a:gamelink\tGTP\t1>Back to main menu</a>');
|
||
|
|
%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("ThatsAHind")) {
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "That's a Hind - Done.");
|
||
|
|
%index++;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
messageClient( %client, 'SetLineHud', "", %tag, %index, "That's a Hind - Use a Hind Pilot Killstreak in Helljump.");
|
||
|
|
%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;
|
||
|
|
}
|
||
|
|
|