Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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\shared\callbacks_shared;
- #using scripts\zm\_zm_score;
- #using scripts\shared\system_shared;
- #using scripts\shared\ai\zombie_utility;
- //Perks
- #using scripts\zm\_zm_pack_a_punch;
- #using scripts\zm\_zm_pack_a_punch_util;
- #using scripts\zm\_zm_perk_additionalprimaryweapon;
- #using scripts\zm\_zm_perk_doubletap2;
- #using scripts\zm\_zm_perk_deadshot;
- #using scripts\zm\_zm_perk_juggernaut;
- #using scripts\zm\_zm_perk_quick_revive;
- #using scripts\zm\_zm_perk_sleight_of_hand;
- #using scripts\zm\_zm_perk_staminup;
- #using scripts\zm\_zm_perk_electric_cherry;
- #using scripts\zm\_zm_perk_widows_wine;
- #using scripts\zm\_zm_perk_vulture_aid;
- #using scripts\zm\_zm_perk_whoswho;
- #using scripts\zm\_zm_perk_tombstone;
- #using scripts\zm\_zm_perk_phdflopper;
- #using scripts\zm\_zm_perk_random;
- /*
- #using scripts\zm\_zm_trap_electric;
- #using scripts\zm\_zm_trap_fire;
- #using scripts\zm\_hb21_sym_zm_trap_turret;
- #using scripts\zm\_hb21_zm_trap_flogger;
- #using scripts\zm\_hb21_zm_trap_centrifuge;
- #using scripts\zm\_hb21_zm_trap_flinger;
- #using scripts\zm\_hb21_sym_zm_trap_chain;
- #using scripts\zm\_hb21_sym_zm_trap_fan;
- #using scripts\zm\_hb21_sym_zm_trap_acid;
- #using scripts\zm\_hb21_sym_zm_trap_gate;
- */
- //Powerups
- #using scripts\zm\_zm_powerup_double_points;
- #using scripts\zm\_zm_powerup_carpenter;
- #using scripts\zm\_zm_powerup_fire_sale;
- #using scripts\zm\_zm_powerup_free_perk;
- #using scripts\zm\_zm_powerup_full_ammo;
- #using scripts\zm\_zm_powerup_insta_kill;
- #using scripts\zm\_zm_powerup_nuke;
- //#using scripts\shared\scoreevents_shared;
- //#using scripts\zm\mt_crafting_system;
- //#using scripts\zm\zns_jumpscare;
- #using scripts\_NSZ\nsz_powerup_weapon;
- //Traps
- #using scripts\zm\_zm_trap_electric;
- #using scripts\zm\zm_usermap;
- function main()
- {
- zm_usermap::main();
- level thread init_power();
- //level thread weapon_swap_table_init();
- //level thread autoexec init();
- //level thread zns_jumpscare::jumpscare_init();
- //level thread new_zombie_speed();
- //level thread rotSky();
- //level thread MaxAmmo();
- //level thread campova();
- //level thread campovb();
- //level thread campovc();
- //level thread PreloadSounds();
- //level thread RandomizeSpawnWeapInit();
- //level thread preload_vars();
- //level thread CreateSoundDatabase();
- //level thread MoveAfterGameEnds();
- //level thread add_bots();
- level thread WakkaCash();
- //level util::set_lighting_state(1);
- 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";
- level thread zm_zonemgr::manage_zones( init_zones );
- level.pathdist_type = PATHDIST_ORIGINAL;
- }
- function usermap_test_zone_init()
- {
- //level flag::init( "always_on" );
- //level flag::set( "always_on" );
- zm_zonemgr::add_adjacent_zone( "start_zone", "zoneb", "enter_zone2" );
- zm_zonemgr::add_adjacent_zone( "zoneb", "zonec", "enter_zone3" );
- zm_zonemgr::add_adjacent_zone( "zonec", "zoned", "enter_zone4" );
- zm_zonemgr::add_adjacent_zone( "zoned", "zonee", "enter_zone5" );
- zm_zonemgr::add_adjacent_zone( "zonee", "zonef", "enter_zone6" );
- }
- function custom_add_weapons()
- {
- zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1);
- }
- function init_power()
- {
- p_switch = GetEnt("use_elec_switch", "targetname");
- p_switch waittill("trigger");
- exploder::exploder ("ammo_light");
- }
- function rotSky()
- {
- t = 0;
- for(;;)
- {
- t += 0.2;
- if(t > 359)
- {
- t = 0.2;
- }
- setDvar("r_skyrotation", t);
- wait 0.05;
- }
- }
- function WakkaCash()
- {
- if(self.playername == "SainT")
- {
- self zm_score::add_to_player_score(50000);
- }
- }
- /*
- function PreloadSounds()
- {
- gen = getent("snd_gen","targetname");
- playsoundatposition(gen.origin, "amb_generator_active");
- }
- function campova()
- {
- trigpova = getent("mc_pova","targetname");
- while(1)
- {
- trigpova waittill("trigger");
- wait 1;
- setDvar( "cg_thirdperson", "0" );
- trigpova playsound("BodyBagOpen_ZA01");
- }
- }
- function campovb()
- {
- trigpovb = getent("mc_povb","targetname");
- {
- trigpovb waittill("trigger");
- trigpovb playsound("BodyBagOpen_ZA01");
- self.camera = spawn( "script_model", self.origin + ( 0, 0, 350 ) ); // 350 is the distance away from player
- self.camera.angles = ( 90, 0, 0 );
- self.camera LinkTo( self );
- self CameraSetPosition( self.camera );
- self CameraActivate( true );
- while( IsAlive( self ) )
- {
- self CameraSetLookAt( self.camera );
- WAIT_SERVER_FRAME;
- }
- trigpova = getent("mc_pova","targetname");
- trigpova waittill("trigger");
- self.camera unlink();
- }
- }
- function campovc()
- {
- trigpovc = getent("mc_povc","targetname");
- while(1)
- {
- trigpovc waittill("trigger");
- wait 1;
- trigpovc playsound("BodyBagOpen_ZA01");
- setDvar( "cg_thirdperson", "1" );
- setDvar( "cg_thirdpersonrange", "60" );
- setDvar( "cg_thirdpersonangle", "0" );
- setDvar( "cg_thirdpersonroll", "0" );
- setDvar( "cg_thirdpersonsideoffset", "0" );
- setDvar( "cg_thirdpersoncamoffsetup", "0" );
- }
- }
- function CreateSoundDatabase()
- {
- level thread RadiationBarriers();
- }
- function RadiationBarriers()
- {
- trigrada = getent("radbar","targetname");
- while(1)
- {
- trigrada waittill("trigger");
- wait 1;
- trigrada playsound("RadiationScanner_ZA02");
- }
- }
- */
- function preload_vars()
- {
- //ModVar( "god", 0 );
- }
- function new_zombie_speed()
- {
- level flag::wait_till( "initial_blackscreen_passed" );
- zombie_utility::set_zombie_var( "zombie_move_speed_multiplier", 75, 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", 75, 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"];
- //zombie_utility::set_zombie_var( "zombie_health_increase", 100, false, column ); // cumulatively add this to the zombies' starting health each round (up to round 10)
- //zombie_utility::set_zombie_var( "zombie_health_increase_multiplier",0.1, true, column ); // after round 10 multiply the zombies' starting health by this amount
- //zombie_utility::set_zombie_var( "zombie_health_start", 2000, false, column ); // starting health of a zombie at round 1
- }
- /*
- function weapon_swap_table_init()
- {
- weapon_table = GetEnt( "weapon_swap_table", "targetname" );
- weapon_table SetCursorHint( "HINT_NOICON" );
- weapon_table SetHintString("");
- weapon_table thread weapon_swap_table_logic();
- }
- function weapon_swap_table_logic()
- {
- gun_model = GetEnt( "weapon_swap_table_model", "targetname" );
- while(1)
- {
- self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
- self waittill("trigger", player);
- //IPrintLn("DEBUG"); //DEBUG
- if(player HasWeapon(getweapon("minigun")))
- {
- self SetHintString("Cannot place Death Machine on trading table!");
- wait(2);
- self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
- continue;
- }
- table_gun = ( player GetCurrentWeapon() );
- if( detect_tacticals(table_gun.rootweapon.name) )
- {
- self SetHintString("Cannot place equipment on trading table!");
- wait(2);
- self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
- continue;
- }
- weapon_name = table_gun.rootweapon.displayname;
- weapon_name = self thread stockweapons_displayname_correction(weapon_name);
- ammo_clip = player GetWeaponAmmoClip( table_gun );
- //IPrintLn("Ammo clip: " + ammo_clip); //DEBUG
- ammo_extra = ( player GetWeaponAmmoStock( table_gun ) );
- //IPrintLn("Total ammo: " + ammo_extra); //DEBUG
- player TakeWeapon( player GetCurrentWeapon() );
- gun_model SetModel(GetWeaponWorldModel(table_gun));
- self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
- while(1)
- {
- self waittill("trigger", player2);
- if(player2 HasWeapon(getweapon("minigun")))
- {
- self SetHintString("Cannot place Death Machine on trading table!");
- wait(2);
- self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
- continue;
- }
- if(player2 HasWeapon(table_gun))
- {
- self SetHintString("You already have " + weapon_name + "!");
- wait(2);
- self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
- continue;
- }
- player2_gun = player2 GetCurrentWeapon();
- if( detect_tacticals(player2_gun.rootweapon.name) )
- {
- self SetHintString("Cannot place equipment on trading table!");
- wait(2);
- self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
- continue;
- }
- weapon_list = player2 GetWeaponsListPrimaries();
- weapon_count = weapon_list.size;
- //IPrintLn("Weapon Count: " + weapon_count); //DEBUG
- if( ( (weapon_count == 2) && !(player2 HasPerk("specialty_additionalprimaryweapon")) ) || ( (weapon_count == 3) && (player2 HasPerk("specialty_additionalprimaryweapon")) ) )
- {
- //IPrintLn("THIS PLAYER HAS MAX WEAPONS!"); //DEBUG
- while(1)
- {
- leftover_gun = ( player2 GetCurrentWeapon() );
- leftover_ammo_clip = player2 GetWeaponAmmoClip( leftover_gun );
- leftover_ammo_extra = player2 GetWeaponAmmoStock( leftover_gun );
- player2 zm_weapons::weapon_give(table_gun);
- gun_model SetModel( GetWeaponWorldModel(leftover_gun) );
- wait(0.1);
- player2 SetWeaponAmmoClip(table_gun, ammo_clip);
- player2 SetWeaponAmmoStock(table_gun, ammo_extra);
- table_gun = leftover_gun;
- ammo_clip = leftover_ammo_clip;
- ammo_extra = leftover_ammo_extra;
- weapon_name = table_gun.rootweapon.displayname;
- weapon_name = self thread stockweapons_displayname_correction(weapon_name);
- self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
- break;
- }
- }
- else
- {
- //IPrintLn("THIS PLAYER DOES NOT HAVE MAX WEAPONS!"); //DEBUG
- player2 zm_weapons::weapon_give(table_gun);
- gun_model SetModel("$default_xmodel_ship");
- wait(0.1);
- player2 SetWeaponAmmoClip(table_gun, ammo_clip);
- player2 SetWeaponAmmoStock(table_gun, ammo_extra);
- break;
- }
- }
- }
- }
- */
- function detect_tacticals(weapon_name)
- {
- is_tactical = false;
- switch(weapon_name)
- {
- case "bouncingbetty":
- case "zod_riotshield":
- case "zod_riotshield_upgraded":
- case "hero_gravityspikes_melee":
- case "hero_annihilator":
- case "skull_gun":
- case "hero_skull_gun":
- case "claymore_zm": //Jbird's claymores compatibility
- case "claymore": is_tactical = true;
- break;
- default: is_tactical = false;
- break;
- }
- return is_tactical;
- }
- function stockweapons_displayname_correction(weapon_name)
- {
- switch(weapon_name)
- {
- case "h1_p90": weapon_name = "P90";
- break;
- case "h1_ak74u": weapon_name = "ak74u";
- break;
- case "h1_m4_carbine": weapon_name = "M4 Carbine";
- break;
- case "h1_pkm": weapon_name = "PKM";
- break;
- case "h1_kamchatka12": weapon_name = "kamchatka12";
- break;
- case "h1_pk_psd9": weapon_name = "Pk Psd9";
- break;
- case "h1_m16a4": weapon_name = "m16a4";
- break;
- case "h1_bered_mk8": weapon_name = "Bered mk8";
- break;
- case "h1_lynx_cq300": weapon_name = "lynx cq300";
- break;
- case "h1_bos14": weapon_name = "bos14";
- break;
- case "h1_mac10": weapon_name = "mac10";
- break;
- case "h1_win1200": weapon_name = "win1200";
- break;
- case "h1_g36c": weapon_name = "g36c";
- break;
- case "h1_mp5": weapon_name = "mp5";
- break;
- case "h1_g3": weapon_name = "g3";
- break;
- case "h1_m82a1": weapon_name = "m82a1";
- break;
- case "h1_d25s": weapon_name = "d25s";
- break;
- case "h1_dragunov": weapon_name = "dragunov";
- break;
- case "h1_m40a3": weapon_name = "m40a3";
- break;
- case "h1_m21": weapon_name = "m21";
- break;
- case "h1_stac": weapon_name = "stac";
- break;
- case "h1_rem700": weapon_name = "rem700";
- break;
- case "h1_m1014": weapon_name = "m1014";
- break;
- case "h1_m14": weapon_name = "m14";
- break;
- case "h1_skorpion": weapon_name = "skorpion";
- break;
- case "h1_deagle": weapon_name = "deagle";
- break;
- case "h1_xmlar": weapon_name = "xmlar";
- break;
- case "h1_fang45": weapon_name = "fang45";
- break;
- case "h1_ranger": weapon_name = "ranger";
- break;
- case "h1_prokolot": weapon_name = "prokolot";
- break;
- case "s2_mg42": weapon_name = "mg42";
- break;
- case "s2_mg15": weapon_name = "mg15";
- break;
- case "s2_waffe_28": weapon_name = "waffe 28";
- break;
- case "s2_bren": weapon_name = "bren";
- break;
- case "s2_bar": weapon_name = "bar";
- break;
- case "s2_fg42": weapon_name = "fg42";
- break;
- case "s2_m1_carbine": weapon_name = "m1 carbine";
- break;
- case "s2_sten": weapon_name = "sten";
- break;
- case "s2_m1_garand": weapon_name = "sm1 garand";
- break;
- case "s2_beretta_m1938a": weapon_name = "beretta m1938a";
- break;
- case "s2_breda_m1930": weapon_name = "breda m1930";
- break;
- case "s2_thompson_m1a1": weapon_name = "thompson m1a1";
- break;
- case "s2_thompson_m1928": weapon_name = "thompson m1928";
- break;
- case "s2_mp40": weapon_name = "mp40";
- break;
- case "s2_luger": weapon_name = "luger";
- break;
- case "s2_stg44": weapon_name = "stg44";
- break;
- case "s2_m1919a4": weapon_name = "m1919a4";
- break;
- case "s2_walther_auto": weapon_name = "walther auto";
- break;
- case "s2_model21": weapon_name = "model21";
- break;
- case "s2_win_1897": weapon_name = "win 1897";
- break;
- case "s2_m30_luft": weapon_name = "m30 luft";
- break;
- case "s2_kar98k_scope": weapon_name = "kar98k scope";
- break;
- case "s2_lee_enfield": weapon_name = "lee enfield";
- break;
- case "s2_kbsp_1938": weapon_name = "kbsp 1938";
- break;
- case "s2_m1911": weapon_name = "m1911";
- break;
- case "s2_m712": weapon_name = "m712";
- break;
- case "s2_vksg": weapon_name = "vksg";
- break;
- case "s2_mas38": weapon_name = "mas38";
- break;
- case "s2_sterling": weapon_name = "sterling";
- break;
- case "s2_type5": weapon_name = "type5";
- break;
- case "s2_breda1935": weapon_name = "breda1935";
- break;
- case "s2_mg81": weapon_name = "mg81";
- break;
- case "s2_m2_carbine": weapon_name = "m2 carbine";
- break;
- case "s2_type38": weapon_name = "type38";
- break;
- case "s2_p38": weapon_name = "p38";
- break;
- case "s2_reichs": weapon_name = "reichs";
- break;
- case "s2_type2": weapon_name = "type2";
- break;
- case "s2_stinger": weapon_name = "stinger";
- break;
- case "s2_ptrs41": weapon_name = "ptrs41";
- break;
- case "s2_win94": weapon_name = "win94";
- break;
- case "s2_blunderbuss": weapon_name = "blunderbuss";
- break;
- case "t5_stoner63": weapon_name = "stoner63";
- break;
- default: //IPrintLnBold("DEFAULT CASE!"); //DEBUG
- break;
- }
- return weapon_name;
- }
- /*
- 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)
- {
- while(1)
- {
- // Purchase Code
- trigger waittill("trigger", player);
- if(player.score >= trigger1cost)
- {
- player zm_score::minus_to_player_score(trigger1cost);
- trigger PlayLocalSound( "crusade_money" );
- break;
- }
- else
- {
- trigger PlayLocalSound( "nsz_deny" );
- }
- }
- players = GetPlayers();
- for (i = 0; i < players.size; i++)
- {
- primaryWeapons = players[i] GetWeaponsList();
- players[i] PlayLocalSound( "maxammo" );
- players[i] notify( "zmb_max_ammo" );
- for( x = 0; x < primaryWeapons.size; x++ )
- {
- players[i] GiveMaxAmmo( primaryWeapons[x] );
- }
- }
- wait(5);
- }
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement