Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- THINGS TO DO
- ============
- - new weaps to add
- - fix killstreaks
- - Add bosses
- - More rankup weapons and rewards
- - mod verification and anti-cheat //part working
- - detail certain areas more
- - retexture with 4k on most
- - more FX for realism
- - test and patch up glitches/mistakes
- - script objectives
- rand weap dont work, takes points but dont give gun
- boss in final area
- boss at original spawnpoint
- boss at engine room
- randomize zombie health
- randomize day and night from spawn
- */
- #using scripts\codescripts\struct;
- #using scripts\shared\array_shared;
- #using scripts\shared\callbacks_shared;
- #using scripts\shared\clientfield_shared;
- #using scripts\shared\compass;
- #using scripts\shared\exploder_shared;
- #using scripts\shared\flag_shared;
- #using scripts\shared\laststand_shared;
- #using scripts\shared\math_shared;
- #using scripts\shared\scene_shared;
- #using scripts\shared\util_shared;
- #insert scripts\shared\shared.gsh;
- #insert scripts\shared\version.gsh;
- #insert scripts\zm\_zm_utility.gsh;
- #using scripts\zm\_load;
- #using scripts\zm\_zm;
- #using scripts\zm\_zm_audio;
- #using scripts\zm\_zm_powerups;
- #using scripts\zm\_zm_utility;
- #using scripts\zm\_zm_weapons;
- #using scripts\zm\_zm_zonemgr;
- #using scripts\zm\_zm_score;
- #using scripts\shared\system_shared;
- #using scripts\shared\ai\zombie_utility;
- #using scripts\zm\zm_giant_cleanup_mgr;
- //#using scripts\zm\_zm_blockers;
- //#using scripts\shared\scoreevents_shared;
- //#using scripts\zm\mt_crafting_system;
- //#using scripts\zm\zm_flamethrower;
- //#using scripts\zm\zns_jumpscare;
- //#using scripts\_NSZ\nsz_powerup_weapon;
- //#using scripts\zm\buyable_turret;
- //#using scripts\shared\_oob;
- #using scripts\zm\_zm_slowdown_trigger;
- //#using scripts\zm\_hb21_zm_ai_sonic;
- //Traps
- //#using scripts\zm\_zm_trap_electric;
- #using scripts\zm\ugxmods_timedgp;
- #using scripts\zm\zm_usermap;
- #using scripts\_NSZ\nsz_hitmarkers;
- #using scripts\zm\zm_claymore;
- #using scripts\zm\_zm_perks;
- //#using scripts\_NSZ\nsz_brutus;
- #using scripts\zm\zm_flamethrower;
- #precache( "fx", "lensflares/fx_lensflare_light_cool_xlg" );
- #precache( "fx", "light/fx_light_ammo_resupply" );
- #precache( "fx", "smoke/fx_green_smoke" );
- #precache( "fx", "explosions/fx_exp_bomb_demo_mp" );
- #precache( "fx", "vehicle/fx_vtol_thruster_wing_aquifer" );
- #precache( "fx", "destruct/fx_dest_wall_nworld" );
- //#precache( "material", "ardronehud" );
- //#precache( "material", "black" );
- //#precache( "material", "white" );
- function main()
- {
- level.dog_rounds_allowed = 0;
- callback::on_connect( &on_player_connect );
- zm_usermap::main();
- //callback::on_spawned( &bo2_deathhands );
- //level thread init_power();
- //level thread weapon_swap_table_init();
- //level thread iw_bank_system_init();
- //level thread autoexec init();
- //level thread PreloadSounds();
- //level thread preload_vars();
- //level thread CreateSoundDatabase();
- //level thread add_bots();
- //level thread run_to_reheal(); //test
- //level thread OverheadHealthFriendly(); //test
- //level thread DropAmmo(); //test
- //level thread HealthCounter();
- //level thread disable_DB();
- //level thread PreloadForAll();
- level thread GeneralSpawn();
- level thread LoopRound();
- level thread iceGrenade_autoZones();
- level thread endgame();
- //level.round_number = 10;
- //level thread doShowAmmo();
- //level thread ZoneBarriers();
- //level thread printHealthDebug();
- //level thread SurvivalMode();
- level thread AmmoRestock();
- level thread TrapBox();
- level thread RandWeapBox();
- level thread PerkBox();
- level thread RandZombHealth();
- //level thread RandDNCycle();
- //level thread ks_RCXD();
- //level thread ks_Drone();
- level thread PreroundSounds();
- level thread PreroundSoundsDrones();
- //level thread TriggerDyn();
- //level thread healthbar();
- //level thread TempBarriers();
- //level thread SoundTesting();
- level thread DisableRounds();
- //brutus::init();
- setdvar("zombie_ai_per_player", "32");
- setdvar("zombie_max_ai", "32");
- setdvar("zombie_score_kill_1player", "50");
- setdvar("zombie_score_kill_2player", "40");
- setdvar("zombie_score_kill_3player", "30");
- setdvar("zombie_score_kill_4player", "20");
- setdvar("zombie_score_damage_normal", "5");
- setdvar("zombie_score_damage_light", "3");
- setdvar("player_base_health", "550");
- level util::set_lighting_state(0);
- startingWeapon = "iw5_m4a1";
- weapon = getWeapon(startingWeapon);
- level.start_weapon = (weapon);
- wait 0.5;
- level thread ugxmods_timedgp::timed_gameplay();
- level.player_out_of_playable_area_monitor = false;
- //level thread WakkaCash();
- level._zombie_custom_add_weapons =&custom_add_weapons;
- //Setup the levels Zombie Zone Volumes
- level.zones = [];
- level.zone_manager_init_func =&usermap_test_zone_init;
- init_zones[0] = "start_zone";
- /*
- init_zones[1] = "zoneb";
- init_zones[2] = "zonec";
- init_zones[3] = "zoned";
- init_zones[4] = "zonee";
- init_zones[5] = "zonef";
- init_zones[6] = "zoneg";
- init_zones[7] = "zoneh";
- init_zones[8] = "zonei";
- init_zones[9] = "zonej";
- init_zones[10] = "zonek";
- init_zones[11] = "zonel";
- init_zones[12] = "zonem";
- init_zones[13] = "zonen";
- init_zones[14] = "zoneo";
- init_zones[15] = "zonep";
- init_zones[16] = "zoneq";
- init_zones[17] = "zoner";
- init_zones[18] = "zones";
- init_zones[19] = "zonet";
- */
- level thread zm_zonemgr::manage_zones( init_zones );
- level.pathdist_type = PATHDIST_ORIGINAL;
- }
- function on_player_connect()
- {
- self.maxHealth = 550;
- self.health = self.maxHealth;
- self thread respawn_player_auto();
- }
- function DisableRounds()
- {
- level waittill("start_of_round");
- SetRoundsPlayed(0);
- level.first_round = false;
- }
- function ZoneBarriers()
- {
- trigareabarriera = GetEnt("AreaBarrier_A", "targetname");
- trigareabarrierb = GetEnt("AreaBarrier_B", "targetname");
- trigareabarrierc = GetEnt("AreaBarrier_C", "targetname");
- trigareabarrierd = GetEnt("AreaBarrier_D", "targetname");
- trigareabarriere = GetEnt("AreaBarrier_E", "targetname");
- trigareabarrierf = GetEnt("AreaBarrier_F", "targetname");
- trigareabarrierg = GetEnt("AreaBarrier_G", "targetname");
- trigareabarrierh = GetEnt("AreaBarrier_H", "targetname");
- trigareabarrieri = GetEnt("AreaBarrier_I", "targetname");
- trigareabarrierj = GetEnt("AreaBarrier_J", "targetname");
- trigareabarrierk = GetEnt("AreaBarrier_K", "targetname");
- trigareabarrierl = GetEnt("AreaBarrier_L", "targetname");
- trigareabarrierm = GetEnt("AreaBarrier_M", "targetname");
- trigareabarriern = GetEnt("AreaBarrier_N", "targetname");
- trigareabarriero = GetEnt("AreaBarrier_O", "targetname");
- trigareabarrierp = GetEnt("AreaBarrier_P", "targetname");
- trigareabarrierq = GetEnt("AreaBarrier_Q", "targetname");
- trigareabarrierr = GetEnt("AreaBarrier_R", "targetname");
- trigareabarriers = GetEnt("AreaBarrier_S", "targetname");
- trigareabarriert = GetEnt("AreaBarrier_T", "targetname");
- trigareabarrieru = GetEnt("AreaBarrier_U", "targetname");
- wait 0.5;
- trigareabarriera moveZ ( -200, 0.1, 0.1);
- trigareabarrierb moveZ ( -200, 0.1, 0.1);
- trigareabarrierc moveZ ( -200, 0.1, 0.1);
- trigareabarrierd moveZ ( -200, 0.1, 0.1);
- trigareabarriere moveZ ( -200, 0.1, 0.1);
- trigareabarrierf moveZ ( -200, 0.1, 0.1);
- trigareabarrierg moveZ ( -200, 0.1, 0.1);
- trigareabarrierh moveZ ( -200, 0.1, 0.1);
- trigareabarrieri moveZ ( -200, 0.1, 0.1);
- trigareabarrierj moveZ ( -200, 0.1, 0.1);
- trigareabarrierk moveZ ( -200, 0.1, 0.1);
- trigareabarrierl moveZ ( -200, 0.1, 0.1);
- trigareabarrierm moveZ ( -200, 0.1, 0.1);
- trigareabarriern moveZ ( -200, 0.1, 0.1);
- trigareabarriero moveZ ( -200, 0.1, 0.1);
- trigareabarrierp moveZ ( -200, 0.1, 0.1);
- trigareabarrierq moveZ ( -200, 0.1, 0.1);
- trigareabarrierr moveZ ( -200, 0.1, 0.1);
- trigareabarriers moveZ ( -200, 0.1, 0.1);
- trigareabarriert moveZ ( -200, 0.1, 0.1);
- trigareabarrieru moveZ ( -200, 0.1, 0.1);
- }
- function TriggerDyn()
- {
- TRIGKSTEST = GetEnt("TRIGDYN", "targetname");
- KSTEST = GetEnt("DYN", "targetname");
- TRIGKSTEST waittill("trigger", player);
- //SetDynEntEnabled( KSTEST, 0 );
- wait 20;
- //SetDynEntEnabled( KSTEST, 1 );
- //xej = randomint(50);
- //yej = randomint(50);
- //zej = randomint(50);
- //force = xej + yej + zej;
- wait 5;
- //launchdynent( KSTEST, force );
- RadiusDamage(KSTEST.origin + (0,0,12), 256, 110, 10, undefined, "MOD_GRENADE_SPLASH", GetWeapon("iw4_stinger_up"));
- }
- function RandDNCycle()
- {
- {
- randomc = randomint(2);
- switch(randomc)
- {
- case 0:
- level util::set_lighting_state(0);
- break;
- case 1:
- level util::set_lighting_state(1);
- break;
- default:
- }
- }
- }
- function RandZombHealth()
- {
- while(1)
- {
- wait 5;
- randomd = randomint(2);
- switch(randomd)
- {
- case 0:
- level.zombie_health = 300;
- setdvar("zombie_health_start", "300");
- //iPrintLnBold("^2 300");
- break;
- case 1:
- level.zombie_health = 350;
- setdvar("zombie_health_start", "350");
- //iPrintLnBold("^2 350");
- break;
- default:
- }
- }
- }
- function LoopRound()
- {
- while(1)
- {
- wait 1;
- level.round_number = 10;
- level.zombie_total = 999;
- zombie_utility::set_zombie_var( "zombie_move_speed_multiplier", 10, false ); // Multiply by the round number to give the base speed value. 0-40 = walk, 41-70 = run, 71+ = sprint
- zombie_utility::set_zombie_var( "zombie_move_speed_multiplier_easy", 10, false ); // Multiply by the round number to give the base speed value. 0-40 = walk, 41-70 = run, 71+ = sprint
- level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"];
- }
- }
- function GeneralSpawn()
- {
- structsClass = struct::get_array("classic_spawn", "script_noteworthy");
- players = GetPlayers();
- for( i = 0; i < players.size; i++ )
- {
- players[i] setorigin( structsClass[i].origin );
- players[i] setplayerangles( structsClass[i].angles );
- players[i].spectator_respawn = structsClass[i];
- }
- }
- function usermap_test_zone_init()
- {
- level flag::init( "always_on" );
- level flag::set( "always_on" );
- zm_zonemgr::add_adjacent_zone( "start_zone", "zone2", "enter_zone2" );
- zm_zonemgr::add_adjacent_zone( "zoneb", "zone3", "enter_zone3" );
- zm_zonemgr::add_adjacent_zone( "zonec", "zone2", "enter_zone2" );
- zm_zonemgr::add_adjacent_zone( "zoned", "zone5", "enter_zone5" );
- zm_zonemgr::add_adjacent_zone( "zonee", "zone6", "enter_zone6" );
- zm_zonemgr::add_adjacent_zone( "zonef", "zone7", "enter_zone7" );
- zm_zonemgr::add_adjacent_zone( "zoneg", "zone8", "enter_zone8" );
- zm_zonemgr::add_adjacent_zone( "zoneh", "zone9", "enter_zone9" );
- zm_zonemgr::add_adjacent_zone( "zonei", "zone10", "enter_zone10" );
- zm_zonemgr::add_adjacent_zone( "zonej", "zone11", "enter_zone11" );
- zm_zonemgr::add_adjacent_zone( "zonek", "zone12", "enter_zone12" );
- zm_zonemgr::add_adjacent_zone( "zonel", "zone13", "enter_zone13" );
- zm_zonemgr::add_adjacent_zone( "zonem", "zone14", "enter_zone14" );
- zm_zonemgr::add_adjacent_zone( "zonen", "zone15", "enter_zone15" );
- zm_zonemgr::add_adjacent_zone( "zoneo", "zone16", "enter_zone16" );
- zm_zonemgr::add_adjacent_zone( "zonep", "zone17", "enter_zone17" );
- zm_zonemgr::add_adjacent_zone( "zoneq", "zone18", "enter_zone18" );
- zm_zonemgr::add_adjacent_zone( "zoner", "zone19", "enter_zone19" );
- zm_zonemgr::add_adjacent_zone( "zones", "zone20", "enter_zone20" );
- zm_zonemgr::add_adjacent_zone( "zonet", "zone20", "enter_zone20" );
- }
- function custom_add_weapons()
- {
- zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1);
- }
- function respawn_player_auto()
- {
- level endon("end_game");
- self endon("disconnect");
- // Change, if you need it to be faster
- wait_time = 30;
- while(1)
- {
- if(self.sessionstate == "spectator")
- {
- iPrintLn("^2RESPAWNING IN 30 SECONDS");
- wait(wait_time);
- self thread zm::spectator_respawn_player();
- }
- WAIT_SERVER_FRAME;
- }
- }
- function SpecCountdownHud()
- {
- level endon ( "nuke_cancelled" );
- level.nukeTimer = 60;
- fade_time = 1;
- // Set up HUD icon
- self.nuke_icon = NewHudElem();
- self.nuke_icon.alpha = 0.95;
- self.nuke_icon.sort = 2;
- self.nuke_icon.hidewheninmenu = true;
- self.nuke_icon.hidewhendead = false;
- self.nuke_icon.alignX = "center"; // left center right
- self.nuke_icon.alignY = "top"; // top middle bottom
- self.nuke_icon.horzAlign = "center"; // left center right
- self.nuke_icon.vertAlign = "top"; // top middle bottom
- self.nuke_icon.x = 0;
- self.nuke_icon.y = 0;
- self.nuke_icon SetShader("mwz_hud_nuke_countdown_backer", 120, 60);
- // Set up HUD countdown text
- self.nuke_text = NewHudElem();
- self.nuke_text.alpha = 1;
- self.nuke_text.elemType = "timer"; // font
- self.nuke_text.font = "objective"; // default objective small
- self.nuke_text.fontscale = 3; // 1.5
- self.nuke_text SetTenthsTimer(level.nukeTimer);
- self.nuke_text.foreground = true;
- self.nuke_text.sort = 3;
- self.nuke_text.hidewheninmenu = true;
- self.nuke_text.hidewhendead = false;
- self.nuke_text.alignX = "left"; // left center right
- self.nuke_text.alignY = "top"; // top middle bottom
- self.nuke_text.horzAlign = "left"; // left center right
- self.nuke_text.vertAlign = "top"; // top middle bottom
- self.nuke_text.x = self.nuke_icon.x + 46;
- self.nuke_text.y = self.nuke_icon.y + 29;
- self.nuke_text.color = (1, 1, 1); // X/255 RBG
- wait(level.nukeTimer);
- self.nuke_text.alpha = 0;
- self.nuke_icon.alpha = 0;
- wait(1);
- self.nuke_text Destroy();
- self.nuke_icon Destroy();
- }
- function trig_hit_these()
- {
- if(isDefined(self.script_string))
- self SetHintString(self.script_string);
- self SetCursorHint("HINT_NOICON");
- self UseTriggerRequireLookAt();
- }
- function SurvivalMode()
- {
- //////////////////////AREA A//////////////////////
- //turn on generator, hit the switch, find fuel (door jam) and wait for door to open
- trigs = getEntArray("trig_area_a", "targetname");
- player = GetPlayers();
- forEach(trig in trigs)
- {
- trig trig_hit_these();
- trigastart = getEntArray("trig_area_a_start", "script_noteworthy");
- trigaend = getEntArray("trig_area_a_end", "script_noteworthy");
- amodel = getEntArray("area_a_model_a", "targetname");
- trigamodel = getEntArray("trig_area_a_fuel", "script_noteworthy");
- trigastart waittill("trigger");
- player thread huddialog( "WELCOME TO HASHIMA ISLAND, HERE IS A TEST DIALOG OF HOW FAR WE CAN TYPE", "10" );
- trigamodel waittill("trigger");
- amodel hide();
- trigaend waittill("trigger");
- level thread nukeCountdownHUD();
- }
- }
- function endgame()
- {
- trigk = getEnt("trig_area_k", "targetname");
- while(1)
- wait 0.5;
- trigk waittill("trigger", player );
- level thread nukeCountdownHUD();
- wait 300;
- level notify("end_game");
- }
- function huddialog( text, time )
- {
- x = 80;
- y = 40;
- self.dialog_bg = create_simple_hud();
- self.dialog_bg.x = x + 80;
- self.dialog_bg.y = y + 2;
- self.dialog_bg.alignx = "center";
- self.dialog_bg.aligny = "bottom";
- self.dialog_bg.horzalign = "fullscreen";
- self.dialog_bg.vertalign = "fullscreen";
- self.dialog_bg.alpha = 1;
- self.dialog_bg.foreground = 1;
- self.dialog_bg setshader( "black", 500, 20 );
- self.dialog_text = create_simple_hud();
- self.dialog_text.x = x + 80;
- self.dialog_text.y = y;
- self.dialog_text.alignx = "center";
- self.dialog_text.aligny = "bottom";
- self.dialog_text.horzalign = "fullscreen";
- self.dialog_text.vertalign = "fullscreen";
- self.dialog_text.alpha = 1;
- self.dialog_text.fontscale = 1;
- self.dialog_text.foreground = 1;
- self.dialog_text setText( text );
- wait time;
- self.dialog_text Destroy();
- self.dialog_bg Destroy();
- }
- function healthbar()
- {
- player = GetPlayers();
- self endon("disconnect");
- x = 80;
- y = 40;
- self.health_bar = create_simple_hud();
- self.health_bar.x = x + 80;
- self.health_bar.y = y + 2;
- self.health_bar.alignx = "center";
- self.health_bar.aligny = "top";
- self.health_bar.horzalign = "fullscreen";
- self.health_bar.vertalign = "fullscreen";
- self.health_bar.alpha = 1;
- self.health_bar.foreground = 1;
- self.health_bar setshader( "black", 1, 8 );
- self.health_text = create_simple_hud();
- self.health_text.x = x + 80;
- self.health_text.y = y;
- self.health_text.alignx = "center";
- self.health_text.aligny = "top";
- self.health_text.horzalign = "fullscreen";
- self.health_text.vertalign = "fullscreen";
- self.health_text.alpha = 1;
- self.health_text.fontscale = 1;
- self.health_text.foreground = 1;
- if(!isDefined(player.maxhealth) || player.maxhealth <= 0)
- player.maxhealth = 600;
- self thread update_healthbar();
- }
- function update_healthbar()
- {
- player = GetPlayers();
- self endon("health_bar");
- for(;;)
- {
- wait 0.05;
- width = (player.health / player.maxhealth) * 300;
- width = int( max(width, 1) );
- self.health_bar setshader("black", width, 8);
- self.health_text setvalue(player.health);
- }
- }
- function nukeCountdownHUD()
- {
- level endon ( "nuke_cancelled" );
- level.nukeTimer = 300;
- fade_time = 1;
- // Set up HUD icon
- self.nuke_icon = NewHudElem();
- self.nuke_icon.alpha = 0.95;
- self.nuke_icon.sort = 2;
- self.nuke_icon.hidewheninmenu = true;
- self.nuke_icon.hidewhendead = false;
- self.nuke_icon.alignX = "left"; // left center right
- self.nuke_icon.alignY = "top"; // top middle bottom
- self.nuke_icon.horzAlign = "left"; // left center right
- self.nuke_icon.vertAlign = "top"; // top middle bottom
- self.nuke_icon.x = 0;
- self.nuke_icon.y = 0;
- self.nuke_icon SetShader("mwz_hud_nuke_countdown_backer", 120, 60);
- // Set up HUD countdown text
- self.nuke_text = NewHudElem();
- self.nuke_text.alpha = 1;
- self.nuke_text.elemType = "timer"; // font
- self.nuke_text.font = "objective"; // default objective small
- self.nuke_text.fontscale = 3; // 1.5
- self.nuke_text SetTenthsTimer(level.nukeTimer);
- self.nuke_text.foreground = true;
- self.nuke_text.sort = 3;
- self.nuke_text.hidewheninmenu = true;
- self.nuke_text.hidewhendead = false;
- self.nuke_text.alignX = "left"; // left center right
- self.nuke_text.alignY = "top"; // top middle bottom
- self.nuke_text.horzAlign = "left"; // left center right
- self.nuke_text.vertAlign = "top"; // top middle bottom
- self.nuke_text.x = self.nuke_icon.x + 46;
- self.nuke_text.y = self.nuke_icon.y + 29;
- self.nuke_text.color = (0.92, 0.90, 0.23); // X/255 RBG
- wait(level.nukeTimer);
- self.nuke_text.alpha = 0;
- self.nuke_icon.alpha = 0;
- wait(1);
- self.nuke_text Destroy();
- self.nuke_icon Destroy();
- }
- function Fluid3P()
- {
- player = GetPlayers();
- //if(GetDvarString("cg_thirdperson") == "1" )
- {
- while( 1 )
- {
- if(self actionslotonebuttonpressed())
- {
- setdvar("cg_thirdpersonrange", "50");
- setdvar("cg_thirdpersoncamlerpscale", "1");
- setdvar("cg_thirdperson", "1");
- setdvar("cg_thirdpersonfocusdist", "1024");
- player thread tp_ui();
- continue;
- if(self actionslotonebuttonpressed())
- {
- setdvar("cg_thirdperson", "0");
- player notify("3p_end");
- return;
- }
- }
- wait 0.2;
- }
- return;
- }
- }
- function tp_ui()
- {
- self endon("3p_end");
- KSADUIA = create_simple_hud();
- KSADUIA.horzAlign = "center";
- KSADUIA.vertAlign = "middle";
- KSADUIA.alignX = "center";
- KSADUIA.alignY = "middle";
- KSADUIA.y = 0;
- KSADUIA.x = 0;
- KSADUIA.foreground = 1;
- KSADUIA.fontscale = 40.0;
- KSADUIA.alpha = 1;
- KSADUIA.color = ( 1, 1, 1 );
- KSADUIB = create_simple_hud();
- KSADUIB.horzAlign = "center";
- KSADUIB.vertAlign = "middle";
- KSADUIB.alignX = "center";
- KSADUIB.alignY = "middle";
- KSADUIB.y = 20;
- KSADUIB.x = 0;
- KSADUIB.foreground = 1;
- KSADUIB.fontscale = 40.0;
- KSADUIB.alpha = 1;
- KSADUIB.color = ( 1, 0.2, 0.2 );
- hud.hidewheninmenu = false;
- hud.alpha = 0;
- wait 0.05;
- KSADUIA setText( "O" );
- KSADUIB setText( "+" );
- wait 60;
- KSADUIA destroy();
- KSADUIB destroy();
- }
- function doShowAmmo()
- {
- self endon("death");
- self endon("disconnect");
- for(;;)
- {
- weapon = self getCurrentWeapon();
- ammoClip = self getWeaponAmmoClip( weapon );
- ammoStock = self getWeaponAmmoStock( weapon );
- AmmoC = create_simple_hud();
- AmmoC.horzAlign = "right";
- AmmoC.vertAlign = "bottom";
- AmmoC.alignX = 0;
- AmmoC.alignY = 0;
- AmmoC.y = 0;
- AmmoC.x = 0;
- AmmoC.glowColor = (0.3,0.6,0.3);
- AmmoC.glowAlpha = 1;
- AmmoC.foreground = 1;
- AmmoC.fontscale = 1.5;
- AmmoC.alpha = 1;
- AmmoC.color = ( 0.8, 1.0, 0.8 );
- AmmoC setText(ammoClip + " | " + ammoStock);
- }
- }
- function destroyOnDeath( displayAmmo )
- {
- self waittill ( "death" );
- displayAmmo destroy();
- }
- function PreloadForAll()
- {
- wait 1;
- //trigoa = GetEnt("preloadtrig", "targetname");
- //trigoa waittill("trigger", player);
- //level thread PreroundSounds();
- //level thread CheckForMod();
- //level thread displaylevel_string();
- }
- function CheckForMod()
- {
- wait 1;
- if(getDvarString("fs_game") != "hashima" )
- {
- self FreezeControls( true );
- self thread battlechatf_string( "MOD 'HASHIMA' NOT LOADED AND IS REQUIRED TO PLAY THIS MAP" );
- }
- }
- function battlechatf_string( text )
- {
- self endon("disconnect");
- hintstring = create_simple_hud();
- hintstring.horzAlign = "center";
- hintstring.vertAlign = "middle";
- hintstring.alignX = "center";
- hintstring.alignY = "middle";
- hintstring.y = -100;
- hintstring.x = 0;
- hintstring.glowColor = (0.3,0.6,0.3);
- hintstring.glowAlpha = 1;
- hintstring.foreground = 1;
- hintstring.fontscale = 1.5;
- hintstring.alpha = 1;
- hintstring.color = ( 0.8, 1.0, 0.8 );
- hintstring setText( text );
- wait 10;
- hintstring destroy();
- }
- /*
- function SoundTesting()
- {
- player = GetPlayers();
- modVar("mc_soundtest", "");
- varst = getDvarstring("mc_soundtest");
- while(1)
- {
- wait 0.5;
- player PlaySoundToPlayer(varst, player);
- }
- }
- */
- function PreroundSounds()
- {
- {
- player = GetPlayers();
- while(1)
- wait 17;
- randome = randomint(6);
- switch(randome)
- {
- case 0:
- player playLocalSound("wwz_amb_jap_02_outdoor_zombie_dist_00");
- break;
- case 1:
- player playLocalSound("wwz_amb_jap_02_outdoor_zombie_dist_01");
- break;
- case 2:
- player playLocalSound("wwz_amb_jap_02_outdoor_zombie_dist_02");
- break;
- case 3:
- player playLocalSound("wwz_amb_jap_02_outdoor_zombie_dist_03");
- break;
- case 4:
- player playLocalSound("wwz_amb_jap_02_outdoor_zombie_dist_04");
- break;
- case 5:
- player playLocalSound("wwz_amb_jap_02_outdoor_zombie_dist_05");
- break;
- default:
- }
- }
- }
- function PreroundSoundsDrones()
- {
- {
- player = GetPlayers();
- while(1)
- wait 120;
- randomf = randomint(6);
- switch(randomf)
- {
- case 0:
- player playLocalSound("amb_JD_drone_clattering_machine");
- break;
- case 1:
- player playLocalSound("amb_JD_drone_pulsing_darkness");
- break;
- case 2:
- player playLocalSound("amb_JD_drone_spinning_top");
- break;
- case 3:
- player playLocalSound("AtmosphericDrone03");
- break;
- case 4:
- player playLocalSound("DroneStaticWaves_ZA01");
- break;
- case 5:
- player playLocalSound("DroneVirusResearch_ZA01");
- break;
- default:
- }
- }
- }
- function displaylevel_string()
- {
- self endon("disconnect");
- currentlevel = 1;
- currentscore = self.score;
- displevel = create_simple_hud();
- displevel.horzAlign = "left";
- displevel.vertAlign = "top";
- displevel.alignX = "left";
- displevel.alignY = "top";
- displevel.y = 0;
- displevel.x = 0;
- displevel.glowColor = (0.3,0.6,0.3);
- displevel.glowAlpha = 1;
- displevel.foreground = 1;
- displevel.fontscale = 1.5;
- displevel.alpha = 1;
- displevel.color = ( 0.8, 1.0, 0.8 );
- displevel setText( "Z-RANK |" + currentlevel + " |" );
- displevelb = create_simple_hud();
- displevelb.horzAlign = "left";
- displevelb.vertAlign = "top";
- displevelb.alignX = "left";
- displevelb.alignY = "top";
- displevelb.y = -50;
- displevelb.x = 0;
- displevelb.glowColor = (0.3,0.6,0.3);
- displevelb.glowAlpha = 1;
- displevelb.foreground = 1;
- displevelb.fontscale = 1.5;
- displevelb.alpha = 1;
- displevelb.color = ( 0.8, 1.0, 0.8 );
- displevelb setText( "Z-SCORE |" + currentscore + " |" );
- }
- function levelup_string()
- {
- currentlevel = 1;
- lvlup = create_simple_hud();
- lvlup.horzAlign = "center";
- lvlup.vertAlign = "top";
- lvlup.alignX = "center";
- lvlup.alignY = "top";
- lvlup.y = 0;
- lvlup.x = 0;
- lvlup.glowColor = (0.3,0.6,0.3);
- lvlup.glowAlpha = 1;
- lvlup.foreground = 1;
- lvlup.fontscale = 1.5;
- lvlup.alpha = 1;
- lvlup.color = ( 0.8, 1.0, 0.8 );
- lvlup setText( "LEVEL UP" + currentlevel );
- wait 5;
- lvlup destroy();
- }
- function ks_AssaultDrone()
- {
- player = GetPlayers();
- {
- if(player UseButtonPressed())
- wait 0.5;
- currentweapon = player GetCurrentWeapon();
- currentweaponalt = player GetCurrentWeaponAltWeapon();
- wait 1;
- player thread ks_ad_ui();
- player hide();
- player.maxhealth = 50000;
- player.health = player.maxhealth;
- player AllowedStances( "crouch" );
- player SetStance( "crouch" );
- player SetMoveSpeedScale( "2" );
- player thread ks_ad_spawn();
- player AllowSprint(false);
- player TakeAllWeapons();
- setdvar("cg_drawgun", "0");
- player func_giveWeapon("iw4_stinger_up");
- player SwitchToWeapon();
- player givemaxammo("iw4_stinger_up");
- wait 60;
- setdvar("cg_drawgun", "1");
- player.maxhealth = 500;
- player show();
- player AllowSprint(true);
- player TakeAllWeapons();
- player giveWeapon(currentweapon);
- player giveWeapon(currentweaponalt);
- player SwitchToWeapon(currentweapon);
- player givemaxammo(currentweapon);
- player givemaxammo(currentweaponalt);
- player SetMoveSpeedScale( "1" );
- player AllowedStances( "stand","crouch","prone" );
- player SetStance( "stand" );
- wait 0.5;
- }
- }
- function ks_ad_spawn()
- {
- drone = spawn("script_model", self.origin+(0,0,0));
- drone setModel("vehicle_ugv_robot");
- drone linkto(self);
- while(1)
- {
- wait 0.5;
- //if(GetDvarInt("ks_ad_enable") == "1")
- {
- angles = self GetPlayerAngles();
- drone RotatePitch(angles, .001);
- wait 60;
- drone unlink();
- drone delete();
- }
- }
- }
- function ks_ad_ui()
- {
- KSADUIA = create_simple_hud();
- KSADUIA.horzAlign = "center";
- KSADUIA.vertAlign = "middle";
- KSADUIA.alignX = "center";
- KSADUIA.alignY = "middle";
- KSADUIA.y = 0;
- KSADUIA.x = 0;
- KSADUIA.foreground = 1;
- KSADUIA.fontscale = 40.0;
- KSADUIA.alpha = 1;
- KSADUIA.color = ( 1, 1, 1 );
- KSADUIB = create_simple_hud();
- KSADUIB.horzAlign = "center";
- KSADUIB.vertAlign = "middle";
- KSADUIB.alignX = "center";
- KSADUIB.alignY = "middle";
- KSADUIB.y = 20;
- KSADUIB.x = 0;
- KSADUIB.foreground = 1;
- KSADUIB.fontscale = 40.0;
- KSADUIB.alpha = 1;
- KSADUIB.color = ( 1, 0.2, 0.2 );
- hud.hidewheninmenu = false;
- hud.alpha = 0;
- //ardronehud = newClientHudElem( self );
- //ardronehud.x = 0;
- //ardronehud.y = 0;
- //ardronehud setshader( "ardronehud", 640, 480 );
- //ardronehud.alignX = "left";
- //ardronehud.alignY = "top";
- //ardronehud.horzAlign = "fullscreen";
- //ardronehud.vertAlign = "fullscreen";
- //ardronehud.alpha = 0;
- wait 0.05;
- KSADUIA setText( "O" );
- KSADUIB setText( "+" );
- wait 60;
- KSADUIA destroy();
- KSADUIB destroy();
- //ardronehud destroy();
- }
- function ks_Drone()
- {
- //TRIGKSTEST = GetEnt("ks_test", "targetname");
- //TRIGKSTEST waittill("trigger", player);
- player = getPlayers();
- wait 0.5;
- currentweapon = player GetCurrentWeapon();
- currentweaponalt = player GetCurrentWeaponAltWeapon();
- wait 1;
- //player thread ks_drone_ui();
- player thread ks_drone_spawn();
- player hide();
- player.maxhealth = 1500;
- playerorigin = player.origin;
- player.health = player.maxhealth;
- player TakeAllWeapons();
- setdvar("cg_drawgun", "0");
- player func_giveWeapon("iw4_thumper_up");
- player SwitchToWeapon();
- player givemaxammo("iw4_thumper_up");
- //player thread DroneCheckKeys();
- wait 55;
- player playsound( "alarm_loops_08_dronepre-exp" );
- wait 5;
- self.Fly = "0";
- player notify( "drone_explode" );
- player TakeAllWeapons();
- PlayFX("explosions/fx_exp_bomb_demo_mp", player.origin+(0,0,60));
- player playsound( "explosion_med_long_tail_01" );
- //SetPlayerIgnoreRadiusDamage(true);
- RadiusDamage(player.origin + (0,0,12), 256, 110, 10, undefined, "MOD_GRENADE_SPLASH", GetWeapon("iw4_stinger_up"));
- setdvar("cg_drawgun", "1");
- player.maxhealth = 500;
- player setorigin(playerorigin);
- player show();
- player giveWeapon(currentweapon);
- player giveWeapon(currentweaponalt);
- player SwitchToWeapon(currentweapon);
- player givemaxammo(currentweapon);
- player givemaxammo(currentweaponalt);
- }
- function DroneCheckKeys()
- {
- player = getPlayers();
- //if(self.UFOMode == false)
- //{
- //player thread doUFOMode();
- self.NoclipMode = true;
- //iPrintlnBOLD("^5PRESS [{+smoke}] TO MOVE");
- //}
- //else
- //{
- //self notify("EndUFOMode");
- //self.NoclipMode = false;
- //iPrintlnBOLD("^5Noclip ^7[^1OFF^7]");
- //}
- }
- function doUFOMode()
- {
- player = getPlayers();
- self endon("death");
- self endon("EndUFOMode");
- UFO = spawn("script_model",player.origin);
- player playerLinkTo(UFO);
- self.Fly = 1;
- while(1)
- {
- if(player adsButtonPressed())
- {
- Fly = self.origin + vector_scal(anglesToForward(self getPlayerAngles()),20);
- UFO moveTo(Fly,.05);
- }
- if(self.Fly == "0")
- {
- self unlink();
- UFO delete();
- }
- wait .001;
- }
- }
- function ks_drone_spawn()
- {
- self endon("drone_explode");
- self endon("EndUFOMode");
- drone = spawn("script_model", self.origin+(0,0,60));
- drone setModel("ks_drone");
- dronelink = spawn( "script_model", self.origin, 1 );
- dronelink.angles = self.angles;
- drone linkto(dronelink);
- //dronelink linkto(self);
- //self PlayerLinkTo( dronelink, undefined, 1, 180, 180, 180, 180, true );
- self PlayerLinkTo(dronelink);
- //drone rotateto(self.angles, .001);
- self disableoffhandweapons();
- while(1)
- {
- if(self FragButtonPressed())
- {
- Fly = self.origin + vector_scal(anglesToForward(self getPlayerAngles()),20);
- dronelink moveTo(Fly,.05);
- //normalized = anglestoforward( self getplayerangles() );
- //scaled = vector_scale( normalized, 20 );
- //originpos += scaled;
- //self.originobj.origin = originpos;
- }
- if(self.Fly == "0")
- {
- self unlink();
- drone delete();
- self enableoffhandweapons();
- }
- else
- {
- angles = self GetPlayerAngles();
- drone RotatePitch(angles, .001);
- drone playloopsound( "PROPELLERENGINELoop01-dronefly" );
- wait 59;
- drone delete();
- self unlink();
- self notify("EndUFOMode");
- }
- }
- }
- function ks_RCXD()
- {
- player = GetPlayers();
- //TRIGKSTEST = GetEnt("ks_test", "targetname");
- //TRIGKSTEST waittill("trigger", player);
- //if(player ActionSlotFourButtonPressed())
- wait 0.5;
- currentweapon = player GetCurrentWeapon();
- currentweaponalt = player GetCurrentWeaponAltWeapon();
- wait 1;
- //player thread ks_rc_ui();
- player hide();
- player.maxhealth = 1500;
- player.health = player.maxhealth;
- player AllowedStances( "prone" );
- player SetStance( "prone" );
- player SetMoveSpeedScale( "10" );
- player thread ks_rc_spawn();
- player AllowSprint(false);
- player TakeAllWeapons();
- setdvar("cg_drawgun", "0");
- setdvar("cg_thirdperson", "1");
- wait 1;
- while(1)
- {
- if( self AttackButtonPressed())
- {
- player notify( "rcxd_explode" );
- //SetPlayerIgnoreRadiusDamage(true);
- player playsound( "explosion_med_long_tail_01" );
- RadiusDamage(player.origin + (0,0,12), 256, 110, 10, undefined, "MOD_GRENADE_SPLASH", GetWeapon("iw4_stinger_up"));
- PlayFX("explosions/fx_exp_bomb_demo_mp", player.origin+(0,0,1));
- setdvar("cg_drawgun", "1");
- setdvar("cg_thirdperson", "0");
- player.maxhealth = 500;
- player show();
- player AllowSprint(true);
- player giveWeapon(currentweapon);
- player giveWeapon(currentweaponalt);
- player SwitchToWeapon(currentweapon);
- player givemaxammo(currentweapon);
- player givemaxammo(currentweaponalt);
- player SetMoveSpeedScale( "1" );
- player AllowedStances( "stand","crouch","prone" );
- player SetStance( "stand" );
- wait 0.5;
- }
- }
- }
- function ks_rc_spawn()
- {
- self endon("rcxd_explode");
- droneb = spawn("script_model", self.origin+(0,0,5));
- droneb setModel("ks_rcxd");
- droneb linkto(self);
- //drone rotateto(self.angles, .001);
- while(1)
- {
- wait 0.5;
- //if(GetDvarInt("ks_ad_enable") == "1")
- {
- angles = self GetPlayerAngles();
- droneb RotatePitch(angles, .001);
- }
- }
- }
- function PerkBox()
- {
- cshops = getEntArray("trig_cp_perk","targetname");
- forEach(cshop in cshops)
- {
- cshop thread RandPerkBox();
- cshop SetHintString("RANDOM PERK [1000]");
- }
- }
- function RandPerkBox()
- {
- cost = 1000;
- while(1)
- {
- wait 0.1;
- self waittill("trigger", player);
- if( player.score >= cost )
- {
- player PlayLocalSound( "crusade_money" );
- player zm_score::minus_to_player_score(cost);
- randomc = randomint(6);
- switch(randomc)
- {
- case 0:
- Player zm_perks::give_perk("specialty_quickrevive");
- iPrintLnBold("^2QUICK REVIVE");
- break;
- case 1:
- Player zm_perks::give_perk("specialty_fastreload");
- iPrintLnBold("^2FAST RELOAD");
- break;
- case 2:
- Player zm_perks::give_perk("specialty_doubletap2");
- iPrintLnBold("^2DOUBLE TAP");
- break;
- case 3:
- Player zm_perks::give_perk("specialty_staminup");
- iPrintLnBold("^2STAMINA");
- break;
- case 4:
- Player zm_perks::give_perk("specialty_whoswho");
- iPrintLnBold("^2");
- break;
- case 5:
- Player zm_perks::give_perk("specialty_tombstone");
- iPrintLnBold("^2TOMBSTONE");
- break;
- default:
- }
- return;
- }
- }
- }
- function RandWeapBox()
- {
- cshops = getEntArray("trig_cp_rweap","targetname");
- forEach(cshop in cshops)
- {
- cshop thread RandWeap();
- cshop SetHintString("RANDOM WEAPON [1000]");
- }
- }
- function TrapBox()
- {
- bshops = getEntArray("trig_cp_trap","targetname");
- forEach(bshop in bshops)
- {
- bshop thread RandTrapBox();
- bshop SetHintString("RANDOM TRAP [1000]");
- }
- }
- function RandTrapBox()
- {
- cost = 1000;
- while(1)
- {
- wait 0.1;
- self waittill("trigger", player);
- if( player.score >= cost )
- {
- player PlayLocalSound( "crusade_money" );
- player zm_score::minus_to_player_score(cost);
- randomb = randomint(5);
- switch(randomb)
- {
- case 0:
- iPrintLnBold("^2 Death Machine");
- level thread DeathM();
- break;
- case 1:
- iPrintLnBold("^2Claymore");
- thread zm_claymore::init();
- break;
- case 2:
- iPrintLnBold("^2 Flame Thrower");
- level thread Fthrower();
- break;
- case 3:
- iPrintLnBold("^2 RPG");
- level thread Rpg();
- break;
- case 4:
- iPrintLnBold("^2 Drone");
- level thread ks_Drone();
- break;
- /*
- case 5:
- iPrintLnBold("^1 Preditor Missile");
- //player thread PreditorMissile();
- break;
- case 6:
- //level thread supportbird();
- iPrintLnBold("^2 Support Bird");
- case 7:
- iPrintLnBold("^2 Assault Drone");
- //player thread ks_AssaultDrone();
- case 8:
- //level thread beartrap();
- iPrintLnBold("^2 Bear Trap");
- case 9:
- //player func_giveWeapon("bouncingbetty");
- iPrintLnBold("^2 Betty"); //bettys
- case 10:
- iPrintLnBold("^2 Drop Wire");
- //player thread DropWire();
- case 11:
- iPrintLnBold("^2 Undead Bait");
- player thread UndeadBait();
- case 12:
- iPrintLnBold("^2 Mines");
- //player thread Mines();
- case 13:
- //player thread kamikaze();
- iPrintLnBold("^2 Kamikaze");
- case 14:
- iPrintLnBold("^2 Zombie Blood");
- player thread ZBlood();
- case 15:
- iPrintLnBold("^2RCXD");
- player thread ks_RCXD();*/
- default:
- }
- return;
- }
- }
- }
- function ZBlood()
- {
- team = "Axis";
- wait 30;
- team = "Allies";
- }
- function DeathM()
- {
- player = GetPlayers();
- currentweapon = player GetCurrentWeapon();
- player TakeAllWeapons();
- player func_giveWeapon("minigun");
- wait 60;
- player giveWeapon(currentweapon);
- player SwitchToWeapon(currentweapon);
- player givemaxammo(currentweapon);
- }
- function Rpg()
- {
- player = GetPlayers();
- currentweapon = player GetCurrentWeapon();
- player TakeAllWeapons();
- player func_giveWeapon("iw4_rpg7");
- wait 60;
- player giveWeapon(currentweapon);
- player SwitchToWeapon(currentweapon);
- player givemaxammo(currentweapon);
- }
- function Fthrower()
- {
- player = GetPlayers();
- currentweapon = player GetCurrentWeapon();
- player TakeAllWeapons();
- player func_giveWeapon("m2_flamethrower");
- wait 60;
- player giveWeapon(currentweapon);
- player SwitchToWeapon(currentweapon);
- player givemaxammo(currentweapon);
- }
- function kamikaze()
- {
- while(1)
- {
- if(self usebuttonpressed())
- {
- RadiusDamage(self.origin + (0,0,12), 500, 110, 10, undefined, "MOD_GRENADE_SPLASH", GetWeapon("iw4_stinger_up"));
- PlayFX("explosions/fx_exp_bomb_demo_mp", self.origin+(0,0,5));
- }
- }
- }
- function mines()
- {
- level.mineSet = 0;
- mineSpot = undefined;
- zombies = GetAiTeamArray( level.zombie_team );
- if(IsDefined(zombies) && zombies.size > 0)
- for(;;)
- {
- if(self usebuttonpressed() && level.mineSet == 0)
- {
- mineSpot = self.origin;
- mineSpot SetModel("weapon_proximity_mine");
- level.mineSet = 1;
- }
- foreach(zombie in zombies)
- {
- if(distance(minespot, zombie.origin) < 10 && level.mineSet == "1" )
- {
- RadiusDamage(mineSpot.origin + (0,0,12), 256, 110, 10, undefined, "MOD_GRENADE_SPLASH", GetWeapon("iw4_stinger_up"));
- PlayFX("explosions/fx_exp_bomb_demo_mp", mineSpot.origin+(0,0,5));
- level.mineSet = 0;
- wait 3;
- }
- }
- wait 0.05;
- }
- }
- function UndeadBait()
- {
- player = GetPlayers();
- if( player UseButtonPressed())
- {
- iPrintLnBold("^1ZOMBIEFIED for 30 seconds");
- setdvar("zombify_player", "1");
- wait 30;
- setdvar("zombify_player", "0");
- /*
- bait = spawn("script_model", self.origin+(0,0,0));
- bait setModel("p7_food_jar_pepper_03_closed");
- hit_player thread zm_utility::create_zombie_point_of_interest( 1000, 15, 10000 );
- hit_player.attract_to_origin = true;
- hit_player thread zm_utility::create_zombie_point_of_interest_attractor_positions( 4, 45 );
- hit_player thread zm_utility::wait_for_attractor_positions_complete();
- wait 30;
- hit_player.attract_to_origin = false;*/
- }
- }
- function AmmoRestock()
- {
- ashops = getEntArray("trig_cp_ammo","targetname");
- forEach(ashop in ashops)
- {
- ashop thread MaxAmmo();
- ashop SetHintString("AMMO RESTOCK [1000] (PER WEAPON)");
- }
- }
- function MaxAmmo()
- {
- //trigger = GetEnt("maxammo_trigger", "targetname");
- //trigger SetHintString("Press ^3&&1^7 for max ammo. Cost [1000]"); // Changes the string that shows when looking at the trigger.
- //trigger SetCursorHint("HINT_NOICON"); // Changes the icon that shows when looking at the trigger.
- trigger1cost = 1000;
- while(1)
- {
- wait 0.1;
- {
- // Purchase Code
- self waittill("trigger", player);
- if(player.score >= trigger1cost)
- {
- player zm_score::minus_to_player_score(trigger1cost);
- player PlayLocalSound( "crusade_money" );
- currentweapon = player GetCurrentWeapon();
- currentweaponalt = player GetCurrentWeaponAltWeapon();
- player givemaxammo(currentweapon);
- player givemaxammo(currentweaponalt);
- }
- else
- {
- player PlayLocalSound( "nsz_deny" );
- }
- }
- wait(5);
- }
- }
- function func_giveWeapon(weapon)
- {
- //player = GetPlayers();
- //self zm_weapons::weapon_give(weapon);
- self TakeWeapon(self GetCurrentWeapon());
- weapon = getWeapon(weapon);
- self GiveWeapon(weapon);
- self GiveMaxAmmo(weapon);
- self SwitchToWeapon(weapon);
- }
- function create_simple_hud( client, team )
- {
- if ( IsDefined( team ) )
- {
- hud = NewTeamHudElem( team );
- hud.team = team;
- }
- else
- {
- if( IsDefined( client ) )
- {
- hud = NewClientHudElem( client );
- }
- else
- {
- hud = NewHudElem();
- }
- }
- level.hudelem_count++;
- hud.foreground = true;
- hud.sort = 1;
- hud.hidewheninmenu = false;
- return hud;
- }
- function RandWeap()
- {
- self endon( "disconnect" );
- cost = 1000;
- while(1)
- {
- wait 0.1;
- self waittill("trigger", player);
- if( player.score >= cost )
- {
- player PlayLocalSound( "crusade_money" );
- player zm_score::minus_to_player_score(cost);
- random = randomint(84);
- switch(random)
- {
- case 0:
- player func_giveWeapon("iw4_wa2000");
- break;
- case 1:
- player func_giveWeapon("iw4_wa2000");
- break;
- case 2:
- player func_giveWeapon("iw4_vector");
- break;
- case 3:
- player func_giveWeapon("iw4_vector");
- break;
- case 4:
- player func_giveWeapon("iw4_ump45");
- break;
- case 5:
- player func_giveWeapon("iw4_ump45");
- break;
- case 6:
- player func_giveWeapon("iw4_tmp");
- break;
- case 7:
- player func_giveWeapon("iw4_tmp");
- break;
- case 8:
- player func_giveWeapon("iw4_tar21");
- break;
- case 9:
- player func_giveWeapon("iw4_tar21");
- break;
- case 10:
- player func_giveWeapon("iw4_scarh");
- break;
- case 11:
- player func_giveWeapon("iw4_scarh");
- break;
- case 12:
- player func_giveWeapon("iw4_rpd");
- break;
- case 13:
- player func_giveWeapon("iw4_rpd");
- break;
- case 14:
- player func_giveWeapon("iw4_ranger_ldw_up_zm");
- player func_giveWeapon("iw4_ranger_rdw_up_zm");
- break;
- case 15:
- player func_giveWeapon("iw4_pp2000_ldw_up_zm");
- player func_giveWeapon("iw4_pp2000_rdw_up_zm");
- break;
- case 16:
- player func_giveWeapon("iw4_pp2000");
- break;
- case 17:
- player func_giveWeapon("iw4_p90_ldw_up_zm");
- player func_giveWeapon("iw4_p90_rdw_up_zm");
- break;
- case 18:
- player func_giveWeapon("iw4_mp5k_ldw_up_zm");
- player func_giveWeapon("iw4_mp5k_rdw_up_zm");
- break;
- case 19:
- player func_giveWeapon("iw4_model1887_ldw_up_zm");
- player func_giveWeapon("iw4_model1887_rdw_up_zm");
- break;
- case 20:
- player func_giveWeapon("iw4_mini_uzi");
- break;
- case 21:
- player func_giveWeapon("iw4_mini_uzi");
- break;
- case 22:
- player func_giveWeapon("iw4_mg4");
- break;
- case 23:
- player func_giveWeapon("iw4_mg4");
- break;
- case 24:
- player func_giveWeapon("iw4_m1014");
- break;
- case 25:
- player func_giveWeapon("iw4_m1014");
- break;
- case 26:
- player func_giveWeapon("iw4_m240");
- break;
- case 27:
- player func_giveWeapon("iw4_m240");
- break;
- case 28:
- player func_giveWeapon("iw4_m93r");
- break;
- case 29:
- player func_giveWeapon("iw4_m93r");
- break;
- case 30:
- player func_giveWeapon("iw4_m16a4");
- break;
- case 31:
- player func_giveWeapon("iw4_m16a4");
- break;
- case 32:
- player func_giveWeapon("iw4_m14ebr");
- break;
- case 33:
- player func_giveWeapon("iw4_m14ebr");
- break;
- case 34:
- player func_giveWeapon("iw4_l86_lsw_up");
- break;
- case 35:
- player func_giveWeapon("iw4_l86_lsw_up");
- break;
- case 36:
- player func_giveWeapon("iw4_intervention");
- break;
- case 37:
- player func_giveWeapon("iw4_g18_ldw_up_zm");
- player func_giveWeapon("iw4_g18_rdw_up_zm");
- break;
- case 38:
- player func_giveWeapon("iw4_f2000");
- break;
- case 39:
- player func_giveWeapon("iw4_f2000");
- break;
- case 40:
- player func_giveWeapon("iw4_famas");
- break;
- case 41:
- player func_giveWeapon("iw4_famas");
- break;
- case 42:
- player func_giveWeapon("iw4_fal");
- break;
- case 43:
- player func_giveWeapon("iw4_fal");
- break;
- case 44:
- player func_giveWeapon("iw4_dragunov");
- break;
- case 45:
- player func_giveWeapon("iw4_m82a1");
- break;
- case 46:
- player func_giveWeapon("iw4_m82a1");
- break;
- case 47:
- player func_giveWeapon("iw4_aug_hbar");
- break;
- case 48:
- player func_giveWeapon("iw4_aug_hbar");
- break;
- case 49:
- player func_giveWeapon("iw4_ak47");
- break;
- case 50:
- player func_giveWeapon("iw4_ak47");
- break;
- case 51:
- player func_giveWeapon("iw4_acr");
- break;
- case 52:
- player func_giveWeapon("iw4_acr");
- break;
- case 53:
- player func_giveWeapon("iw4_aa12");
- break;
- case 54:
- player func_giveWeapon("iw5_xm25");
- break;
- case 55:
- player func_giveWeapon("iw5_usas12");
- break;
- case 56:
- player func_giveWeapon("iw5_ump45");
- break;
- case 57:
- player func_giveWeapon("iw5_type95");
- break;
- case 58:
- player func_giveWeapon("iw5_spas12");
- break;
- case 59:
- player func_giveWeapon("iw5_scarl");
- break;
- case 60:
- player func_giveWeapon("iw5_rsass");
- break;
- case 61:
- player func_giveWeapon("iw5_pp90m1");
- break;
- case 62:
- player func_giveWeapon("iw5_pm9");
- break;
- case 63:
- player func_giveWeapon("iw5_pkp");
- break;
- case 64:
- player func_giveWeapon("iw5_p99");
- break;
- case 65:
- player func_giveWeapon("iw5_msr");
- break;
- case 66:
- player func_giveWeapon("iw5_mp7");
- break;
- case 67:
- player func_giveWeapon("iw5_mp412");
- break;
- case 68:
- player func_giveWeapon("iw5_mp5");
- break;
- case 69:
- player func_giveWeapon("iw5_mk46");
- break;
- case 70:
- player func_giveWeapon("iw5_mg36");
- break;
- case 71:
- player func_giveWeapon("iw5_m60e4");
- break;
- case 72:
- player func_giveWeapon("iw5_m16a4");
- break;
- case 73:
- player func_giveWeapon("iw5_m4a1");
- break;
- case 74:
- player func_giveWeapon("iw5_l118a");
- break;
- case 75:
- player func_giveWeapon("iw5_l86_lsw");
- break;
- case 76:
- player func_giveWeapon("iw5_ksg12");
- break;
- case 77:
- player func_giveWeapon("iw5_g36c");
- break;
- case 78:
- player func_giveWeapon("iw5_fmg9");
- break;
- case 79:
- player func_giveWeapon("iw5_fad");
- break;
- case 80:
- player func_giveWeapon("iw5_cm901");
- break;
- case 81:
- player func_giveWeapon("iw5_m82a1");
- break;
- case 82:
- player func_giveWeapon("iw5_as50");
- break;
- case 83:
- player func_giveWeapon("iw5_ak47");
- break;
- default:
- }
- return;
- }
- }
- }
- function vector_scal(vec, scale)
- {
- vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
- return vec;
- }
- function bo2_deathhands()
- {
- self thread giveDeathHands();
- }
- function giveDeathHands()
- {
- level waittill( "intermission" );
- self thread player1_deathhands();
- self thread player2_deathhands();
- self thread player3_deathhands();
- self thread player4_deathhands();
- }
- function player1_deathhands() //Dempsey
- {
- players = GetPlayers();
- player_1 = players[0];
- if ( self.playername == ""+player_1.playername+"" )
- {
- players func_giveWeapon("bo2_deathhands");
- }
- }
- function player2_deathhands() //Nikolai
- {
- players = GetPlayers();
- player_2 = players[1];
- if ( self.playername == ""+player_2.playername+"" )
- {
- players func_giveWeapon("bo2_deathhands");
- }
- }
- function player3_deathhands() //Richtofen
- {
- players = GetPlayers();
- player_3 = players[2];
- if ( self.playername == ""+player_3.playername+"" )
- {
- players func_giveWeapon("bo2_deathhands");
- }
- }
- function player4_deathhands() //Takeo
- {
- players = GetPlayers();
- player_4 = players[3];
- if ( self.playername == ""+player_4.playername+"" )
- {
- players func_giveWeapon("bo2_deathhands");
- }
- }
- function iceGrenade_autoZones()
- {
- //One thread below for each trigger
- thread triggerZone("start_zone_a");
- thread triggerZone("enter_zone2");
- thread triggerZone("enter_zone3");
- thread triggerZone("enter_zone4");
- thread triggerZone("enter_zone5");
- thread triggerZone("enter_zone6");
- thread triggerZone("enter_zone7");
- thread triggerZone("enter_zone8");
- thread triggerZone("enter_zone9");
- thread triggerZone("enter_zone10");
- thread triggerZone("enter_zone11");
- thread triggerZone("enter_zone12");
- thread triggerZone("enter_zone13");
- thread triggerZone("enter_zone14");
- thread triggerZone("enter_zone15");
- thread triggerZone("enter_zone16");
- thread triggerZone("enter_zone17");
- thread triggerZone("enter_zone18");
- thread triggerZone("enter_zone19");
- thread triggerZone("enter_zone20");
- }
- function triggerZone(ztarg)
- {
- runit = GetEnt( ztarg, "targetname");
- runit waittill("trigger", player);
- level flag::set( ztarg );
- }
- function TimedEndGame()
- {
- players = GetPlayers();
- highest_scorer = players[0];
- for(i = 0; i < players.size; i++)
- {
- // Don't process first player since we already set it
- if(i == 0)
- continue;
- if(players[i - 1].score < players[i].score)
- highest_scorer = players[i];
- }
- return highest_scorer;
- wait 1800;
- endgamehs = create_simple_hud();
- endgamehs.horzAlign = "center";
- endgamehs.vertAlign = "middle";
- endgamehs.alignX = "center";
- endgamehs.alignY = "middle";
- endgamehs.y = -100;
- endgamehs.x = 0;
- endgamehs.glowColor = (0.3,0.6,0.3);
- endgamehs.glowAlpha = 1;
- endgamehs.foreground = 1;
- endgamehs.fontscale = 1.5;
- endgamehs.alpha = 1;
- endgamehs.color = ( 0.8, 1.0, 0.8 );
- endgamehs setText( "GAMEMODE HAS NOW BEEN TERMINATED, " + highest_scorer + " is the winner!" );
- wait 10;
- endgamehs destroy();
- }
- function WakkaCash()
- {
- if(self.playername == "SainT")
- {
- self zm_score::add_to_player_score(50000);
- }
- }
- function preload_vars()
- {
- //ModVar( "god", 0 );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement