Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include maps/mp/_utility;
- #include common_scripts/utility;
- #include maps/mp/gametypes_zm/_hud_util;
- #include maps/mp/zombies/_zm;
- #include maps/mp/zombies/_zm_utility;
- #include maps/mp/zombies/_zm_weapons;
- #include maps/mp/zombies/_zm_stats;
- #include maps/mp/gametypes_zm/_hud_message;
- #include maps/mp/gametypes_zm/_weapons;
- #include maps/mp/zombies/_zm_powerups;
- #include maps/mp/zombies/_zm_perks;
- starinit()
- {
- thread startinit();
- thread onplayerconnect();
- thread initcustompowerups();
- thread initserverdvars();
- level.playerdamagestub;
- level.callbackplayerdamage;
- }
- onplayerconnect()
- {
- for(;;)
- {
- level waittill("connected", player);
- player thread [[level.givecustomcharacters]]();
- player thread onplayerspawned();
- player thread spawnifroundone();
- player thread startcustompowerups();
- player thread startcustomperkmachines();
- player thread startcustombank();
- }
- }
- /*
- Name: onplayerspawned
- Namespace: _imcsx_gsc_studio
- Checksum: 0x1FD75731
- Offset: 0x2C1E
- Size: 0x72
- Parameters: 0
- Flags: None
- */
- onplayerspawned()
- {
- level endon("end_game");
- self endon("disconnect");
- for(;;)
- {
- self waittill("spawned_player");
- if(level.round_number >= 5 && self.score < 2500)
- {
- self.score = 2500;
- }
- else if(level.round_number >= 15 && self.score < 5000)
- {
- self.score = 5000;
- }
- wait(5);
- self thread connectmessages();
- self thread initcustomperksonplayer();
- }
- }
- /*
- Name: connectmessages
- Namespace: _imcsx_gsc_studio
- Checksum: 0x29EF3EB3
- Offset: 0x2C92
- Size: 0x247
- Parameters: 0
- Flags: None
- */
- connectmessages()
- {
- wait(5);
- self connectmessage("Welcome to ^1ZOMBIES++^7!
- Developed by ^5@ItsCahz", 0);
- wait(5);
- self connectmessage("Your ^2Perk Limit ^7is ^2" + level.perk_purchase_limit + " ^7perks!", 0);
- wait(5);
- if(GetDvar("mapname") == "zm_prison" || GetDvar("mapname") == "zm_highrise" || (GetDvar("mapname") == "zm_buried" || GetDvar("mapname") == "zm_nuked") || GetDvar("mapname") == "zm_transit")
- {
- if(level.disableallcustomperks == 0)
- {
- if(isdefined(level.customperksarespawned))
- {
- self connectmessage("There are extra perk machines located within the map!", 0);
- }
- if(isdefined(self.customperknum) && self.customperknum == 4)
- {
- wait(5);
- }
- if(GetDvar("mapname") == "zm_highrise")
- {
- if(level.enablephdflopper == 1)
- {
- self connectmessage("-^6PHD Flopper", 0);
- }
- if(level.enabledeadshot == 1)
- {
- self connectmessage("-^8Deadshot Daiquiari", 0);
- }
- if(level.enablestaminup == 1)
- {
- self connectmessage("-^3Stamin-Up", 0);
- }
- }
- else if(GetDvar("mapname") == "zm_buried")
- {
- if(level.enablephdflopper == 1)
- {
- self connectmessage("-^6PHD Flopper", 0);
- }
- if(level.enabledeadshot == 1)
- {
- self connectmessage("-^8Deadshot Daiquiari", 0);
- }
- }
- else if(GetDvar("mapname") == "zm_prison")
- {
- if(level.enablephdflopper == 1)
- {
- self connectmessage("-^6PHD Flopper", 0);
- }
- if(level.enablestaminup == 1)
- {
- self connectmessage("-^3Stamin-Up", 0);
- }
- }
- else if(GetDvar("mapname") == "zm_nuked" || GetDvar("mapname") == "zm_transit")
- {
- if(level.enablephdflopper == 1)
- {
- self connectmessage("-^6PHD Flopper", 0);
- }
- if(level.enabledeadshot == 1)
- {
- self connectmessage("-^8Deadshot Daiquiari", 0);
- }
- if(level.enablestaminup == 1)
- {
- self connectmessage("-^3Stamin-Up", 0);
- }
- if(level.enablemulekick == 1)
- {
- self connectmessage("-^2Mule Kick", 0);
- }
- }
- }
- }
- else if(GetDvar("mapname") != "zm_tomb" && level.disableallcustomperks == 0 && level.enablephdflopper == 1)
- {
- self connectmessage("^6PHD Flopper ^7is ^2Enabled ^7Automatically On This Map!", 0);
- }
- }
- /*
- Name: onplayerdowned
- Namespace: _imcsx_gsc_studio
- Checksum: 0xDF6A417A
- Offset: 0x2EDA
- Size: 0xB0
- Parameters: 0
- Flags: None
- */
- onplayerdowned()
- {
- self endon("disconnect");
- self endon("death");
- level endon("game_ended");
- for(;;)
- {
- self waittill("player_downed");
- self unsetperk("specialty_additionalprimaryweapon");
- self unsetperk("specialty_longersprint");
- self unsetperk("specialty_deadshot");
- self.hasphd = undefined;
- self.hasmulekick = undefined;
- self.hasstaminup = undefined;
- self.hasdeadshot = undefined;
- self.icon1 destroy();
- self.icon1 = undefined;
- self.icon2 destroy();
- self.icon2 = undefined;
- self.icon3 destroy();
- self.icon3 = undefined;
- self.icon4 destroy();
- self.icon4 = undefined;
- }
- }
- /*
- Name: initcustomperksonplayer
- Namespace: _imcsx_gsc_studio
- Checksum: 0xB86CD2E2
- Offset: 0x2F8C
- Size: 0x91
- Parameters: 0
- Flags: None
- */
- initcustomperksonplayer()
- {
- self.hasphd = undefined;
- if(GetDvar("mapname") == "zm_nuked" || GetDvar("mapname") == "zm_transit" || (GetDvar("mapname") == "zm_buried" || GetDvar("mapname") == "zm_highrise") || GetDvar("mapname") == "zm_prison")
- {
- self thread onplayerdowned();
- }
- else if(GetDvar("mapname") != "zm_tomb" && level.disableallcustomperks == 0 && level.enablephdflopper == 1)
- {
- self.hasphd = 1;
- self thread drawcustomperkhud("specialty_doubletap_zombies", 0, (1, 0.25, 1));
- }
- }
- /*
- Name: startcustomperkmachines
- Namespace: _imcsx_gsc_studio
- Checksum: 0x158FE7D7
- Offset: 0x301E
- Size: 0x3EF
- Parameters: 0
- Flags: None
- */
- startcustomperkmachines()
- {
- if(level.disableallcustomperks == 0)
- {
- self thread dophddive();
- if(GetDvar("mapname") == "zm_prison")
- {
- if(level.enablephdflopper == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_deadshot", "p6_zm_al_vending_nuke_on", "PHD Flopper", 3000, (2427.45, 10048.4, 1704.13), "PHD_FLOPPER", 0, 0, 0);
- }
- if(level.enablestaminup == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_deadshot", "p6_zm_al_vending_doubletap2_on", "Stamin-Up", 2000, (-339.642, -3915.84, -8447.88), "specialty_longersprint", (0, 270, 0));
- }
- }
- else if(GetDvar("mapname") == "zm_highrise")
- {
- if(level.enablephdflopper == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_whoswho", "zombie_vending_nuke_on_lo", "PHD Flopper", 3000, (1260.3, 2736.36, 3047.49), "PHD_FLOPPER", 0, 0, 0);
- }
- if(level.enabledeadshot == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_whoswho", "zombie_vending_revive", "Deadshot Daiquiri", 1500, (3690.54, 1932.36, 1420), "specialty_deadshot", (-15, 0, 0));
- }
- if(level.enablestaminup == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_revive", "zombie_vending_doubletap2", "Stamin-Up", 2000, (1704, -35, 1120.13), "specialty_longersprint", (0, -30, 0));
- }
- }
- else if(GetDvar("mapname") == "zm_buried")
- {
- if(level.enablephdflopper == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_marathon", "zombie_vending_jugg", "PHD Flopper", 3000, (2631.73, 304.165, 240.125), "PHD_FLOPPER", (5, 0, 0));
- }
- if(level.enabledeadshot == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_marathon", "zombie_vending_revive", "Deadshot Daiquiri", 1500, (1055.18, -1055.55, 201), "specialty_deadshot", (3, 270, 0));
- }
- }
- else if(GetDvar("mapname") == "zm_nuked")
- {
- if(level.enablephdflopper == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_revive", "zombie_vending_jugg", "PHD Flopper", 3000, (683, 727, -56), "PHD_FLOPPER", (5, 250, 0));
- }
- if(level.enabledeadshot == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_jugg", "zombie_vending_revive", "Deadshot Daiquiri", 1500, (747, 356, 91), "specialty_deadshot", (0, 330, 0));
- }
- if(level.enablestaminup == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_revive", "zombie_vending_doubletap2", "Stamin-Up", 2000, (-638, 268, -54), "specialty_longersprint", (0, 165, 0));
- }
- if(level.enablemulekick == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_jugg", "zombie_vending_sleight", "Mule Kick", 3000, (-953, 715, 83), "specialty_additionalprimaryweapon", (0, 75, 0));
- }
- }
- else if(GetDvar("mapname") == "zm_transit")
- {
- if(level.enablephdflopper == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_revive", "zombie_vending_jugg", "PHD Flopper", 3000, (-6304, 5430, -55), "PHD_FLOPPER", (0, 90, 0));
- }
- if(level.enabledeadshot == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_jugg", "zombie_vending_revive", "Deadshot Daiquiri", 1500, (-6088, -7419, 0), "specialty_deadshot", (0, 90, 0));
- }
- if(level.enablestaminup == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_revive", "zombie_vending_doubletap2", "Stamin-Up", 2000, (-11753, -2598, 228), "specialty_longersprint", (0, -225, 0));
- }
- if(level.enablemulekick == 1)
- {
- self thread customperkmachine("zombie_perk_bottle_jugg", "zombie_vending_sleight", "Mule Kick", 3000, (1149, -215, -304), "specialty_additionalprimaryweapon", (0, 180, 0));
- }
- }
- }
- }
- /*
- Name: dophddive
- Namespace: _imcsx_gsc_studio
- Checksum: 0x9571BE64
- Offset: 0x340E
- Size: 0xB2
- Parameters: 0
- Flags: None
- */
- dophddive()
- {
- self endon("disconnect");
- level endon("game_ended");
- while(isdefined(self.divetoprone) && self.divetoprone)
- {
- if(self isonground() && isdefined(self.hasphd))
- {
- if(level.script == "zm_tomb" || level.script == "zm_buried")
- {
- explosionfx = level._effect["divetonuke_groundhit"];
- }
- else
- {
- explosionfx = loadfx("explosions/fx_default_explosion");
- }
- self playsound("zmb_phdflop_explo");
- playfx(explosionfx, self.origin);
- self damagezombiesinrange(310, self, "kill");
- wait(0.3);
- }
- wait(0.05);
- }
- }
- /*
- Name: damagezombiesinrange
- Namespace: _imcsx_gsc_studio
- Checksum: 0x3F731474
- Offset: 0x34C2
- Size: 0x9E
- Parameters: 3
- Flags: None
- */
- damagezombiesinrange(range, what, amount)
- {
- enemy = getaiarray(level.zombie_team);
- foreach(zombie in enemy)
- {
- if(distance(zombie.origin, what.origin) < range)
- {
- if(amount == "kill")
- {
- zombie dodamage(zombie.health * 2, zombie.origin, self);
- continue;
- }
- zombie dodamage(amount, zombie.origin, self);
- }
- }
- }
- /*
- Name: phd_flopper_dmg_check
- Namespace: _imcsx_gsc_studio
- Checksum: 0x95ADBAB9
- Offset: 0x3562
- Size: 0x81
- Parameters: 11
- Flags: None
- */
- phd_flopper_dmg_check(einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, timeoffset, boneindex)
- {
- self endon("disconnect");
- if(smeansofdeath == "MOD_FALLING" || smeansofdeath == "MOD_PROJECTILE" || (smeansofdeath == "MOD_PROJECTILE_SPLASH" || smeansofdeath == "MOD_GRENADE") || (smeansofdeath == "MOD_GRENADE_SPLASH" || smeansofdeath == "MOD_EXPLOSIVE"))
- {
- if(isdefined(self.hasphd))
- {
- return;
- }
- }
- [[level.playerdamagestub]](einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, timeoffset, boneindex);
- }
- /*
- Name: customperkmachine
- Namespace: _imcsx_gsc_studio
- Checksum: 0x153F2CBE
- Offset: 0x35E4
- Size: 0x1E4
- Parameters: 7
- Flags: None
- */
- customperkmachine(bottle, model, perkname, cost, origin, perk, angles)
- {
- if(!isdefined(level.customperksarespawned))
- {
- level.customperksarespawned = 1;
- }
- if(!isdefined(self.customperknum))
- {
- self.customperknum = 1;
- }
- else
- {
- self.customperknum = self.customperknum + 1;
- }
- collision = spawn("script_model", origin);
- collision setmodel("collision_geo_cylinder_32x128_standard");
- collision rotateto(angles, 0.1);
- rperks = spawn("script_model", origin);
- rperks setmodel(model);
- rperks rotateto(angles, 0.1);
- level thread lowermessage("Custom Perks", "Hold ^3F ^7for " + perkname + " [Cost: " + cost + "]");
- trig = spawn("trigger_radius", origin, 1, 25, 25);
- trig setcursorhint("HINT_NOICON");
- trig setlowermessage(trig, "Custom Perks");
- for(;;)
- {
- trig waittill("trigger", GSC
- );
- if(self usebuttonpressed() && self.score >= cost && distance(self.origin, origin) < 125)
- {
- wait(0.25);
- if(self usebuttonpressed())
- {
- if(perk != "PHD_FLOPPER" && !self hasperk(perk) || (perk == "PHD_FLOPPER" && !isdefined(self.hasphd)))
- {
- self playsound("zmb_cha_ching");
- self.score = self.score - cost;
- level.trig hide();
- self thread giveperk(bottle, perk, perkname);
- wait(2);
- level.trig show();
- continue;
- }
- self iprintln("You Already Have " + perkname + "!");
- }
- }
- }
- }
- /*
- Name: giveperk
- Namespace: _imcsx_gsc_studio
- Checksum: 0x2C187D29
- Offset: 0x37CA
- Size: 0x183
- Parameters: 3
- Flags: None
- */
- giveperk(model, perk, perkname)
- {
- self disableoffhandweapons();
- self disableweaponcycling();
- weapona = self getcurrentweapon();
- weaponb = model;
- self giveweapon(weaponb);
- self switchtoweapon(weaponb);
- self waittill("weapon_change_complete");
- self enableoffhandweapons();
- self enableweaponcycling();
- self takeweapon(weaponb);
- self switchtoweapon(weapona);
- self setperk(perk);
- self maps/mp/zombies/_zm_audio::playerexert("burp");
- self setblur(4, 0.1);
- wait(0.1);
- self setblur(0, 0.1);
- if(perk == "PHD_FLOPPER")
- {
- self.hasphd = 1;
- self thread drawcustomperkhud("specialty_doubletap_zombies", 0, (1, 0.25, 1));
- }
- else if(perk == "specialty_additionalprimaryweapon")
- {
- self.hasmulekick = 1;
- self thread drawcustomperkhud("specialty_fastreload_zombies", 0, (0, 0.7, 0));
- }
- else if(perk == "specialty_longersprint")
- {
- self.hasstaminup = 1;
- self thread drawcustomperkhud("specialty_juggernaut_zombies", 0, 1, 1, 0);
- }
- else if(perk == "specialty_deadshot")
- {
- self.hasdeadshot = 1;
- self thread drawcustomperkhud("specialty_quickrevive_zombies", 0, (0.125, 0.125, 0.125));
- }
- }
- /*
- Name: lowermessage
- Namespace: _imcsx_gsc_studio
- Checksum: 0x24C017C2
- Offset: 0x394E
- Size: 0x2E
- Parameters: 2
- Flags: None
- */
- lowermessage(ref, text)
- {
- if(!isdefined(level.zombie_hints))
- {
- level.zombie_hints = [];
- }
- precachestring(text);
- level.zombie_hints[ref] = text;
- }
- /*
- Name: setlowermessage
- Namespace: _imcsx_gsc_studio
- Checksum: 0x7E12BEC7
- Offset: 0x397E
- Size: 0x3F
- Parameters: 2
- Flags: None
- */
- setlowermessage(ent, default_ref)
- {
- if(isdefined(ent.script_hint))
- {
- self sethintstring(get_zombie_hint(ent.script_hint));
- }
- else
- {
- self sethintstring(get_zombie_hint(default_ref));
- }
- }
- /*
- Name: drawshader
- Namespace: _imcsx_gsc_studio
- Checksum: 0xB6336CFD
- Offset: 0x39BE
- Size: 0x86
- Parameters: 8
- Flags: None
- */
- drawshader(shader, x, y, width, height, color, alpha, sort)
- {
- hud = newclienthudelem(self);
- hud.elemtype = "icon";
- hud.color = color;
- hud.alpha = alpha;
- hud.sort = sort;
- hud.children = [];
- hud setparent(level.uiparent);
- hud setshader(shader, width, height);
- hud.x = x;
- hud.y = y;
- return hud;
- }
- /*
- Name: drawcustomperkhud
- Namespace: _imcsx_gsc_studio
- Checksum: 0x29EC1038
- Offset: 0x3A46
- Size: 0x197
- Parameters: 4
- Flags: None
- */
- drawcustomperkhud(perk, x, color, perkname)
- {
- if(!isdefined(self.icon1))
- {
- x = -408;
- if(GetDvar("mapname") == "zm_buried")
- {
- self.icon1 = self drawshader(perk, x, 293, 24, 25, color, 100, 0);
- }
- else
- {
- self.icon1 = self drawshader(perk, x, 320, 24, 25, color, 100, 0);
- }
- }
- else if(!isdefined(self.icon2))
- {
- x = -378;
- if(GetDvar("mapname") == "zm_buried")
- {
- self.icon2 = self drawshader(perk, x, 293, 24, 25, color, 100, 0);
- }
- else
- {
- self.icon2 = self drawshader(perk, x, 320, 24, 25, color, 100, 0);
- }
- }
- else if(!isdefined(self.icon3))
- {
- x = -348;
- if(GetDvar("mapname") == "zm_buried")
- {
- self.icon3 = self drawshader(perk, x, 293, 24, 25, color, 100, 0);
- }
- else
- {
- self.icon3 = self drawshader(perk, x, 320, 24, 25, color, 100, 0);
- }
- }
- else if(!isdefined(self.icon4))
- {
- x = -318;
- if(GetDvar("mapname") == "zm_buried")
- {
- self.icon4 = self drawshader(perk, x, 293, 24, 25, color, 100, 0);
- }
- else
- {
- self.icon4 = self drawshader(perk, x, 320, 24, 25, color, 100, 0);
- }
- }
- }
- /*
- Name: startcustompowerups
- Namespace: _imcsx_gsc_studio
- Checksum: 0xF8AC6025
- Offset: 0x3BDE
- Size: 0x23
- Parameters: 0
- Flags: None
- */
- startcustompowerups()
- {
- if(!isdefined(level.custompowerupinit))
- {
- level.custompowerupinit = 1;
- wait(2);
- level._zombiemode_powerup_grab = &custom_powerup_grab;
- }
- }
- /*
- Name: initcustompowerups
- Namespace: _imcsx_gsc_studio
- Checksum: 0x176616C3
- Offset: 0x3C02
- Size: 0x1B7
- Parameters: 0
- Flags: None
- */
- initcustompowerups()
- {
- level.unlimited_ammo_duration = 20;
- include_zombie_powerup("unlimited_ammo");
- add_zombie_powerup("unlimited_ammo", "T6_WPN_AR_GALIL_WORLD", &"ZOMBIE_POWERUP_UNLIMITED_AMMO", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("unlimited_ammo", 1);
- if(GetDvar("mapname") == "zm_prison")
- {
- include_zombie_powerup("fast_feet");
- add_zombie_powerup("fast_feet", "bottle_whisky_01", &"ZOMBIE_POWERUP_FAST_FEET", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("fast_feet", 1);
- include_zombie_powerup("pack_a_punch");
- add_zombie_powerup("pack_a_punch", "p6_zm_al_vending_pap_on", &"ZOMBIE_POWERUP_PACK_A_PUNCH", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("pack_a_punch", 0);
- include_zombie_powerup("money_drop");
- add_zombie_powerup("money_drop", "p6_anim_zm_al_magic_box_lock_red", &"ZOMBIE_POWERUP_MONEY_DROP", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("money_drop", 1);
- }
- else
- {
- include_zombie_powerup("fast_feet");
- add_zombie_powerup("fast_feet", "zombie_pickup_perk_bottle", &"ZOMBIE_POWERUP_FAST_FEET", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("fast_feet", 1);
- include_zombie_powerup("pack_a_punch");
- add_zombie_powerup("pack_a_punch", "p6_anim_zm_buildable_pap", &"ZOMBIE_POWERUP_PACK_A_PUNCH", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("pack_a_punch", 0);
- include_zombie_powerup("money_drop");
- add_zombie_powerup("money_drop", "zombie_teddybear", &"ZOMBIE_POWERUP_MONEY_DROP", &func_should_always_drop, 0, 0, 0);
- powerup_set_can_pick_up_in_last_stand("money_drop", 1);
- }
- }
- /*
- Name: custom_powerup_grab
- Namespace: _imcsx_gsc_studio
- Checksum: 0xC8D72F14
- Offset: 0x3DBA
- Size: 0x73
- Parameters: 2
- Flags: None
- */
- custom_powerup_grab(powerup, player)
- {
- if(powerup.powerup_name == "money_drop")
- {
- player thread dorandomscore();
- }
- else if(powerup.powerup_name == "pack_a_punch")
- {
- player thread dopackapunchweapon();
- }
- else if(powerup.powerup_name == "unlimited_ammo")
- {
- player thread dounlimitedammo();
- }
- else if(powerup.powerup_name == "fast_feet")
- {
- player thread dofastfeet();
- }
- }
- /*
- Name: dofastfeet
- Namespace: _imcsx_gsc_studio
- Checksum: 0x82850421
- Offset: 0x3E2E
- Size: 0x4B
- Parameters: 0
- Flags: None
- */
- dofastfeet()
- {
- self thread poweruptext("Fast Feet!");
- self playsound("zmb_cha_ching");
- self setmovespeedscale(3);
- wait(15);
- self setmovespeedscale(1);
- self playsound("zmb_insta_kill");
- }
- /*
- Name: dounlimitedammo
- Namespace: _imcsx_gsc_studio
- Checksum: 0xA4E25BF
- Offset: 0x3E7A
- Size: 0x6E
- Parameters: 0
- Flags: None
- */
- dounlimitedammo()
- {
- foreach(player in level.players)
- {
- player notify("end_unlimited_ammo");
- player playsound("zmb_cha_ching");
- player thread poweruptext("Bottomless Clip");
- player thread monitorunlimitedammo();
- player thread notifyunlimitedammoend();
- }
- }
- /*
- Name: monitorunlimitedammo
- Namespace: _imcsx_gsc_studio
- Checksum: 0x2F3BB50
- Offset: 0x3EEA
- Size: 0x32
- Parameters: 0
- Flags: None
- */
- monitorunlimitedammo()
- {
- level endon("end_game");
- self endon("disonnect");
- self endon("end_unlimited_ammo");
- for(;;)
- {
- self setweaponammoclip(self getcurrentweapon(), 150);
- wait(0.05);
- }
- }
- /*
- Name: notifyunlimitedammoend
- Namespace: _imcsx_gsc_studio
- Checksum: 0x3125888C
- Offset: 0x3F1E
- Size: 0x2E
- Parameters: 0
- Flags: None
- */
- notifyunlimitedammoend()
- {
- level endon("end_game");
- self endon("disonnect");
- self endon("end_unlimited_ammo");
- wait(level.unlimited_ammo_duration);
- self playsound("zmb_insta_kill");
- self notify("end_unlimited_ammo");
- }
- /*
- Name: dopackapunchweapon
- Namespace: _imcsx_gsc_studio
- Checksum: 0x9532E5A8
- Offset: 0x3F4E
- Size: 0x77
- Parameters: 0
- Flags: None
- */
- dopackapunchweapon()
- {
- level endon("end_game");
- self endon("disonnect");
- baseweapon = get_base_name(self getcurrentweapon());
- weapon = get_upgrade(baseweapon);
- if(isdefined(weapon))
- {
- self takeweapon(baseweapon);
- self giveweapon(weapon, 0, self get_pack_a_punch_weapon_options(weapon));
- self switchtoweapon(weapon);
- self givemaxammo(weapon);
- }
- }
- /*
- Name: get_upgrade
- Namespace: _imcsx_gsc_studio
- Checksum: 0x5F8CCD4B
- Offset: 0x3FC6
- Size: 0x3B
- Parameters: 1
- Flags: None
- */
- get_upgrade(weapon)
- {
- if(isdefined(level.zombie_weapons[weapon].upgrade_name) && isdefined(level.zombie_weapons[weapon]))
- {
- return get_upgrade_weapon(weapon, 0);
- }
- else
- {
- return get_upgrade_weapon(weapon, 1);
- }
- }
- /*
- Name: dorandomscore
- Namespace: _imcsx_gsc_studio
- Checksum: 0x2EEE5F97
- Offset: 0x4002
- Size: 0x113
- Parameters: 0
- Flags: None
- */
- dorandomscore()
- {
- x = randomint(9);
- self playsound("zmb_cha_ching");
- if(x == 1)
- {
- self.score = self.score + 50;
- }
- else if(x == 2)
- {
- self.score = self.score + 100;
- }
- else if(x == 3)
- {
- self.score = self.score + 250;
- }
- else if(x == 4)
- {
- self.score = self.score + 500;
- }
- else if(x == 5)
- {
- self.score = self.score + 750;
- }
- else if(x == 6)
- {
- self.score = self.score + 1000;
- }
- else if(x == 7)
- {
- self.score = self.score + 2500;
- }
- else if(x == 8)
- {
- self.score = self.score + 5000;
- }
- else if(x == 9)
- {
- self.score = self.score + 7500;
- }
- else
- {
- self.score = self.score + 10000;
- }
- }
- /*
- Name: poweruptext
- Namespace: _imcsx_gsc_studio
- Checksum: 0x4CD4EF28
- Offset: 0x4116
- Size: 0x103
- Parameters: 1
- Flags: None
- */
- poweruptext(text)
- {
- self endon("disconnect");
- hud_string = newclienthudelem(self);
- hud_string.elemtype = "font";
- hud_string.font = "objective";
- hud_string.fontscale = 2;
- hud_string.x = 0;
- hud_string.y = 0;
- hud_string.width = 0;
- hud_string.height = int(level.fontheight * 2);
- hud_string.xoffset = 0;
- hud_string.yoffset = 0;
- hud_string.children = [];
- hud_string setparent(level.uiparent);
- hud_string.hidden = 0;
- hud_string maps/mp/gametypes_zm/_hud_util::setpoint("TOP", undefined, 0, level.zombie_vars["zombie_timer_offset"] - level.zombie_vars["zombie_timer_offset_interval"] * 2);
- hud_string.sort = 0.5;
- hud_string.alpha = 0;
- hud_string fadeovertime(0.5);
- hud_string.alpha = 1;
- hud_string settext(text);
- hud_string thread poweruptextmove();
- }
- /*
- Name: poweruptextmove
- Namespace: _imcsx_gsc_studio
- Checksum: 0x6D8D6C2F
- Offset: 0x421A
- Size: 0x47
- Parameters: 0
- Flags: None
- */
- poweruptextmove()
- {
- wait(0.5);
- self fadeovertime(1.5);
- self moveovertime(1.5);
- self.y = 270;
- self.alpha = 0;
- wait(1.5);
- self destroy();
- }
- /*
- Name: startinit
- Namespace: _imcsx_gsc_studio
- Checksum: 0x55249C3C
- Offset: 0x4262
- Size: 0x13B
- Parameters: 0
- Flags: None
- */
- startinit()
- {
- precachemodel("collision_geo_cylinder_32x128_standard");
- precachemodel("zombie_vending_jugg");
- precachemodel("zombie_perk_bottle_marathon");
- precachemodel("zombie_perk_bottle_whoswho");
- precachemodel("zombie_vending_nuke_on_lo");
- precachemodel("p6_zm_al_vending_pap_on");
- precachemodel("p6_anim_zm_buildable_pap");
- precachemodel("p6_zm_al_vending_pap_on");
- precachemodel("p6_zm_al_vending_jugg_on");
- precachemodel("p6_zm_al_vending_sleight_on");
- precachemodel("p6_zm_al_vending_doubletap2_on");
- precachemodel("p6_zm_al_vending_ads_on");
- precachemodel("p6_zm_al_vending_nuke_on");
- precachemodel("p6_zm_al_vending_three_gun_on");
- precachemodel("zombie_vending_revive");
- precachemodel("zombie_vending_doubletap2");
- precachemodel("zombie_x2_icon");
- precachemodel("zombie_bomb");
- precachemodel("zombie_ammocan");
- precachemodel("zombie_x2_icon");
- precachemodel("zombie_skull");
- precacheshader("specialty_deadshot_zombies");
- if(isdefined(level.player_out_of_playable_area_monitor))
- {
- level.player_out_of_playable_area_monitor = 0;
- }
- level.pers_sniper_misses = 9999;
- level.is_forever_solo_game = undefined;
- thread gscRestart();
- thread setPlayersToSpectator();
- for(;;)
- {
- level waittill("connected", player);
- player thread [[level.givecustomcharacters]]();
- //The real cause of the invisible player glitch is that this isn't always called on map_restart so call it here.
- //This will just call the method the map uses for give_personality_characters or give_team_characters without all the includes and it workes on NukeTown as well.
- //We don't need to check the game mode since each game mode's init does set level.givecustomcharacters with an pointer to the correct method.
- }
- }
- /*
- Name: initserverdvars
- Namespace: _imcsx_gsc_studio
- Checksum: 0x8E1D8EC6
- Offset: 0x439E
- Size: 0x9AF
- Parameters: 0
- Flags: None
- */
- initserverdvars()
- {
- level.player_starting_points = getdvarintdefault("playerStartingPoints", 500);
- level.perk_purchase_limit = getdvarintdefault("perkLimit", 4);
- level.zombie_ai_limit = getdvarintdefault("zombieAiLimit", 24);
- level.zombie_actor_limit = getdvarintdefault("zombieActorLimit", 32);
- level.mixed_rounds_enabled = getdvarintdefault("midroundDogs", 0);
- level.no_end_game_check = getdvarintdefault("noEndGameCheck", 0);
- level.default_solo_laststandpistol = GetDvar("soloLaststandWeapon");
- level.default_laststandpistol = GetDvar("coopLaststandWeapon");
- level.start_weapon = GetDvar("startWeaponZm");
- level.zombie_move_speed = getdvarintdefault("zombieMoveSpeed", 1);
- level.zombiemovespeedlocked = getdvarintdefault("zombieMoveSpeedLocked", 0);
- level.zombiemovespeedcap = getdvarintdefault("zombieMoveSpeedCap", 0);
- level.zombiemovespeedcapvalue = getdvarintdefault("zombieMoveSpeedCapValue", 1);
- level.round_number = getdvarintdefault("roundNumber", 1);
- level.overridezombietotalpermanently = getdvarintdefault("overrideZombieTotalPermanently", 0);
- level.overridezombietotalpermanentlyvalue = getdvarintdefault("overrideZombieTotalPermanentlyValue", 6);
- level.overridezombiehealthpermanently = getdvarintdefault("overrideZombieHealthPermanently", 0);
- level.overridezombiehealthpermanentlyvalue = getdvarintdefault("overrideZombieHealthPermanentlyValue", 150);
- level.overridezombiemaxhealth = getdvarintdefault("overrideZombieMaxHealth", 0);
- level.overridezombiemaxhealthvalue = getdvarintdefault("overrideZombieMaxHealthValue", 150);
- level.disablewalkers = getdvarintdefault("disableWalkers", 0);
- if(level.disablewalkers)
- {
- level.speed_change_round = undefined;
- }
- level.disablesolomode = getdvarintdefault("disableSoloMode", 0);
- if(level.disablesolomode)
- {
- level.is_forever_solo_game = undefined;
- }
- level.zmpowerupsnopowerupdrops = getdvarintdefault("zmPowerupsNoPowerupDrops", 0);
- level.maxpowerupsperround = getdvarintdefault("maxPowerupsPerRound", 4);
- level.zombie_vars["zombie_powerup_drop_max_per_round"] = level.maxpowerupsperround;
- level.powerupdroprate = getdvarintdefault("powerupDropRate", 2000);
- level.zombie_vars["zombie_powerup_drop_increment"] = level.powerupdroprate;
- level.zombiesalwaysdroppowerups = getdvarintdefault("zombiesAlwaysDropPowerups", 0);
- level.zombie_vars["zombie_drop_item"] = level.zombiesalwaysdroppowerups;
- level.fourplayerpowerupscore = getdvarintdefault("fourPlayerPowerupScore", 50);
- level.zombie_vars["zombie_score_kill_4p_team"] = level.fourplayerpowerupscore;
- level.threeplayerpowerupscore = getdvarintdefault("threePlayerPowerupScore", 50);
- level.zombie_vars["zombie_score_kill_3p_team"] = level.threeplayerpowerupscore;
- level.twoplayerpowerupscore = getdvarintdefault("twoPlayerPowerupScore", 50);
- level.zombie_vars["zombie_score_kill_2p_team"] = level.twoplayerpowerupscore;
- level.oneplayerpowerupscore = getdvarintdefault("onePlayerPowerupScore", 50);
- level.zombie_vars["zombie_score_kill_1p_team"] = level.oneplayerpowerupscore;
- level.powerupscoremeleekill = getdvarintdefault("powerupScoreMeleeKill", 80);
- level.zombie_vars["zombie_score_bonus_melee"] = level.powerupscoremeleekill;
- level.powerupscoreheadshotkill = getdvarintdefault("powerupScoreHeadshotKill", 50);
- level.zombie_vars["zombie_score_bonus_head"] = level.powerupscoreheadshotkill;
- level.powerupscoreneckkill = getdvarintdefault("powerupScoreNeckKill", 20);
- level.zombie_vars["zombie_score_bonus_neck"] = level.powerupscoreneckkill;
- level.powerupscoretorsokill = getdvarintdefault("powerupScoreTorsoKill", 10);
- level.zombie_vars["zombie_score_bonus_torso"] = level.powerupscoretorsokill;
- level.zombiespawnrate = getdvarfloatdefault("zombieSpawnRate", 2);
- level.zombie_vars["zombie_spawn_delay"] = level.zombiespawnrate;
- level.zombiespawnratemultiplier = getdvarfloatdefault("zombieSpawnRateMultiplier", 0.95);
- level.zombiespawnratelocked = getdvarintdefault("zombieSpawnRateLocked", 0);
- level.zombiesperplayer = getdvarintdefault("zombiesPerPlayer", 6);
- level.zombie_vars["zombie_ai_per_player"] = level.zombiesperplayer;
- level.zombiehealthincreaseflat = getdvarintdefault("zombieHealthIncreaseFlat", 100);
- level.zombie_vars["zombie_health_increase"] = level.zombiehealthincreaseflat;
- level.zombiehealthincreasemultiplier = getdvarfloatdefault("zombieHealthIncreaseMultiplier", 0.1);
- level.zombie_vars["zombie_health_increase_multiplier"] = level.zombiehealthincreasemultiplier;
- level.zombiehealthstart = getdvarintdefault("zombieHealthStart", 150);
- level.zombie_vars["zombie_health_start"] = level.zombiehealthstart;
- level.zombienewrunnerinterval = getdvarintdefault("zombieNewRunnerInterval", 10);
- level.zombie_vars["zombie_new_runner_interval"] = level.zombienewrunnerinterval;
- level.zombiemovespeedmultiplier = getdvarintdefault("zombieMoveSpeedMultiplier", 10);
- level.zombie_vars["zombie_move_speed_multiplier"] = level.zombiemovespeedmultiplier;
- level.zombiemovespeedmultipliereasy = getdvarintdefault("zombieMoveSpeedMultiplierEasy", 8);
- level.zombie_vars["zombie_move_speed_multiplier_easy"] = level.zombiemovespeedmultipliereasy;
- level.zombiemaxai = getdvarintdefault("zombieMaxAi", 24);
- level.zombie_vars["zombie_max_ai"] = level.zombiemaxai;
- level.belowworldcheck = getdvarintdefault("belowWorldCheck", -1000);
- level.zombie_vars["below_world_check"] = level.belowworldcheck;
- level.customspectatorsrespawn = getdvarintdefault("customSpectatorsRespawn", 1);
- level.zombie_vars["spectators_respawn"] = level.customspectatorsrespawn;
- level.zombieintermissiontime = getdvarintdefault("zombieIntermissionTime", 20);
- level.zombie_vars["zombie_intermission_time"] = level.zombieintermissiontime;
- level.zombiebetweenroundtime = getdvarintdefault("zombieBetweenRoundTime", 15);
- level.zombie_vars["zombie_between_round_time"] = level.zombiebetweenroundtime;
- level.roundstartdelay = getdvarintdefault("roundStartDelay", 0);
- level.zombie_vars["game_start_delay"] = level.roundstartdelay;
- level.bleedoutpointslostallplayers = getdvarfloatdefault("bleedoutPointsLostAllPlayers", 0.1);
- level.zombie_vars["penalty_no_revive"] = level.bleedoutpointslostallplayers;
- level.bleedoutpointslostself = getdvarfloatdefault("bleedoutPointsLostSelf", 0.1);
- level.zombie_vars["penalty_died"] = level.bleedoutpointslostself;
- level.downedpointslostself = getdvarfloatdefault("downedPointsLostSelf", 0.05);
- level.zombie_vars["penalty_downed"] = level.downedpointslostself;
- level.playerstartinglives = getdvarintdefault("playerStartingLives", 1);
- level.zombie_vars["starting_lives"] = level.playerstartinglives;
- level.fourplayerscoreperzombiekill = getdvarintdefault("fourPlayerScorePerZombieKill", 50);
- level.zombie_vars["zombie_score_kill_4player"] = level.fourplayerscoreperzombiekill;
- level.threeplayerscoreperzombiekill = getdvarintdefault("threePlayerScorePerZombieKill", 50);
- level.zombie_vars["zombie_score_kill_3player"] = level.threeplayerscoreperzombiekill;
- level.twoplayerscoreperzombiekill = getdvarintdefault("twoPlayerScorePerZombieKill", 50);
- level.zombie_vars["zombie_score_kill_2player"] = level.twoplayerscoreperzombiekill;
- level.oneplayerscoreperzombiekill = getdvarintdefault("onePlayerScorePerZombieKill", 50);
- level.zombie_vars["zombie_score_kill_1player"] = level.oneplayerscoreperzombiekill;
- level.pointspernormalattack = getdvarintdefault("pointsPerNormalAttack", 10);
- level.zombie_vars["zombie_score_damage_normal"] = level.pointspernormalattack;
- level.pointsperlightattack = getdvarintdefault("pointsPerLightAttack", 10);
- level.zombie_vars["zombie_score_damage_light"] = level.pointsperlightattack;
- level.shouldzombifyplayer = getdvarintdefault("shouldZombifyPlayer", 0);
- level.zombie_vars["zombify_player"] = level.shouldzombifyplayer;
- level.alliespointsmultiplier = getdvarintdefault("alliesPointsMultiplier", 1);
- level.zombie_vars["allies"]["zombie_point_scalar"] = level.alliespointsmultiplier;
- level.axispointsmultiplier = getdvarintdefault("axisPointsMultiplier", 1);
- level.zombie_vars["axis"]["zombie_point_scalar"] = level.axispointsmultiplier;
- level.empperkexplosionradius = getdvarintdefault("empPerkExplosionRadius", 420);
- level.zombie_vars["emp_perk_off_range"] = level.empperkexplosionradius;
- level.empperkoffduration = getdvarintdefault("empPerkOffDuration", 90);
- level.zombie_vars["emp_perk_off_time"] = level.empperkoffduration;
- level.riotshieldhitpoints = getdvarintdefault("riotshieldHitPoints", 2250);
- level.zombie_vars["riotshield_hit_points"] = level.riotshieldhitpoints;
- level.jugghealthbonus = getdvarintdefault("juggHealthBonus", 160);
- level.zombie_vars["zombie_perk_juggernaut_health"] = level.jugghealthbonus;
- level.permajugghealthbonus = getdvarintdefault("permaJuggHealthBonus", 190);
- level.zombie_vars["zombie_perk_juggernaut_health_upgrade"] = level.permajugghealthbonus;
- level.minphdexplosiondamage = getdvarintdefault("minPhdExplosionDamage", 1000);
- level.zombie_vars["zombie_perk_divetonuke_min_damage"] = level.minphdexplosiondamage;
- level.maxphdexplosiondamage = getdvarintdefault("maxPhdExplosionDamage", 5000);
- level.zombie_vars["zombie_perk_divetonuke_max_damage"] = level.maxphdexplosiondamage;
- level.phddamageradius = getdvarintdefault("phdDamageRadius", 300);
- level.zombie_vars["zombie_perk_divetonuke_radius"] = level.phddamageradius;
- level.enablezombiecounter = getdvarintdefault("enableZombieCounter", 1);
- level.zombie_vars["enableZombieCounter"] = level.enablezombiecounter;
- level.custombankenabled = getdvarintdefault("customBankEnabled", 1);
- level.zombie_vars["customBankEnabled"] = level.custombankenabled;
- level.custombanktotal = getdvarintdefault("customBankTotal", 10000);
- level.zombie_vars["customBankTotal"] = level.custombanktotal;
- level.antikitingenabled = getdvarintdefault("antiKitingEnabled", 0);
- level.zombie_vars["antiKitingEnabled"] = level.antikitingenabled;
- level.antikitingwaittime = getdvarintdefault("antiKitingWaittime", 45);
- level.zombie_vars["antiKitingWaittime"] = level.antikitingwaittime;
- level.custommysteryboxpriceenabled = getdvarintdefault("customMysteryBoxPriceEnabled", 0);
- level.zombie_vars["customMysteryBoxPriceEnabled"] = level.custommysteryboxpriceenabled;
- level.custommysteryboxprice = getdvarintdefault("customMysteryBoxPrice", 500);
- level.zombie_vars["customMysteryBoxPrice"] = level.custommysteryboxprice;
- level.disableallcustomperks = getdvarintdefault("disableAllCustomPerks", 0);
- level.zombie_vars["disableAllCustomPerks"] = level.disableallcustomperks;
- level.enablephdflopper = getdvarintdefault("enablePHDFlopper", 1);
- level.zombie_vars["enablePHDFlopper"] = level.enablephdflopper;
- level.enablestaminup = getdvarintdefault("enableStaminUp", 1);
- level.zombie_vars["enableStaminUp"] = level.enablestaminup;
- level.enabledeadshot = getdvarintdefault("enableDeadshot", 1);
- level.zombie_vars["enableDeadshot"] = level.enabledeadshot;
- level.enablemulekick = getdvarintdefault("enableMuleKick", 1);
- level.zombie_vars["enableMuleKick"] = level.enablemulekick;
- disable_specific_powerups();
- checks();
- thread zombies_always_drop_powerups();
- thread zombies_per_round_override();
- thread zombie_health_override();
- thread zombie_health_cap_override();
- thread zombie_spawn_delay_fix();
- thread zombie_speed_fix();
- thread dotimer();
- }
- /*
- Name: gscrestart
- Namespace: _imcsx_gsc_studio
- Checksum: 0xE8C4E15B
- Offset: 0x4D4E
- Size: 0x13
- Parameters: 0
- Flags: None
- */
- gscrestart()
- {
- level waittill( "end_game" );
- wait 20; //20 is ideal
- map_restart( false );
- }
- }
- /*
- Name: setplayerstospectator
- Namespace: _imcsx_gsc_studio
- Checksum: 0x448B62CE
- Offset: 0x4D62
- Size: 0x57
- Parameters: 0
- Flags: None
- */
- setplayerstospectator()
- {
- level.no_end_game_check = 1;
- wait 3;
- players = get_players();
- i = 0;
- while ( i < players.size )
- {
- if ( i == 0 )
- {
- i++;
- }
- players[ i ] setToSpectator();
- i++;
- }
- wait 5;
- spawnAllPlayers();
- }
- /*
- Name: settospectator
- Namespace: _imcsx_gsc_studio
- Checksum: 0x6449E9A6
- Offset: 0x4DBA
- Size: 0x19
- Parameters: 0
- Flags: None
- */
- settospectator()
- {
- self.sessionstate = "spectator";
- if (isDefined(self.is_playing))
- {
- self.is_playing = false;
- }
- }
- /*
- Name: spawnallplayers
- Namespace: _imcsx_gsc_studio
- Checksum: 0xBD8F27B4
- Offset: 0x4DD4
- Size: 0x8B
- Parameters: 0
- Flags: None
- */
- spawnallplayers()
- {
- players = get_players();
- i = 0;
- while ( i < players.size )
- {
- if ( players[ i ].sessionstate == "spectator" && isDefined( players[ i ].spectator_respawn ) )
- {
- players[ i ] [[ level.spawnplayer ]]();
- if ( level.script != "zm_tomb" || level.script != "zm_prison" || !is_classic() )
- {
- thread maps\mp\zombies\_zm::refresh_player_navcard_hud();
- }
- }
- i++;
- }
- level.no_end_game_check = 0;
- }
- /*
- Name: disable_all_powerups
- Namespace: _imcsx_gsc_studio
- Checksum: 0xA0C199B1
- Offset: 0x4E60
- Size: 0x15
- Parameters: 0
- Flags: None
- */
- disable_all_powerups()
- {
- if(level.zmpowerupsnopowerupdrops)
- {
- flag_clear("zombie_drop_powerups");
- }
- }
- /*
- Name: zombies_always_drop_powerups
- Namespace: _imcsx_gsc_studio
- Checksum: 0xB7B230EE
- Offset: 0x4E76
- Size: 0x2A
- Parameters: 0
- Flags: None
- */
- zombies_always_drop_powerups()
- {
- if(!level.zombiesalwaysdroppowerups)
- {
- return;
- }
- while(1)
- {
- level.zombie_vars["zombie_drop_item"] = level.zombiesalwaysdroppowerups;
- wait(0.05);
- }
- }
- /*
- Name: zombies_per_round_override
- Namespace: _imcsx_gsc_studio
- Checksum: 0xDE609186
- Offset: 0x4EA2
- Size: 0x2E
- Parameters: 0
- Flags: None
- */
- zombies_per_round_override()
- {
- if(!level.overridezombietotalpermanently)
- {
- return;
- }
- while(1)
- {
- level waittill("start_of_round");
- level.zombie_total = getdvarintdefault("overrideZombieTotalPermanentlyValue", 6);
- }
- }
- /*
- Name: zombie_health_override
- Namespace: _imcsx_gsc_studio
- Checksum: 0xA4E3F7AA
- Offset: 0x4ED2
- Size: 0x2E
- Parameters: 0
- Flags: None
- */
- zombie_health_override()
- {
- if(!level.overridezombiehealthpermanently)
- {
- return;
- }
- while(1)
- {
- level waittill("start_of_round");
- level.zombie_health = getdvarintdefault("overrideZombieHealthPermanentlyValue", 150);
- }
- }
- /*
- Name: zombie_health_cap_override
- Namespace: _imcsx_gsc_studio
- Checksum: 0x69793073
- Offset: 0x4F02
- Size: 0x3A
- Parameters: 0
- Flags: None
- */
- zombie_health_cap_override()
- {
- if(!level.overridezombiemaxhealth)
- {
- return;
- }
- while(1)
- {
- level waittill("start_of_round");
- if(level.zombie_health > level.overridezombiemaxhealthvalue)
- {
- level.zombie_health = getdvarintdefault("overrideZombieHealthMaxHealthValue", 150);
- }
- }
- }
- /*
- Name: zombie_spawn_delay_fix
- Namespace: _imcsx_gsc_studio
- Checksum: 0xF3F1B067
- Offset: 0x4F3E
- Size: 0xAC
- Parameters: 0
- Flags: None
- */
- zombie_spawn_delay_fix()
- {
- if(level.zombiespawnratelocked)
- {
- return;
- }
- i = 1;
- while(i <= level.round_number)
- {
- timer = level.zombiespawnrate;
- if(timer > 0.08)
- {
- level.zombiespawnrate = timer * level.zombiespawnratemultiplier;
- i++;
- continue;
- }
- else if(timer < 0.08)
- {
- level.zombiespawnrate = 0.08;
- break;
- }
- i++;
- }
- while(1)
- {
- level waittill("start_of_round");
- if(level.zombiespawnrate > 0.08)
- {
- level.zombiespawnrate = level.zombiespawnrate * level.zombiespawnratemultiplier;
- }
- level.zombie_vars["zombie_spawn_delay"] = level.zombiespawnrate;
- }
- }
- /*
- Name: zombie_speed_fix
- Namespace: _imcsx_gsc_studio
- Checksum: 0x302BECC2
- Offset: 0x4FEC
- Size: 0x3F
- Parameters: 0
- Flags: None
- */
- zombie_speed_fix()
- {
- if(level.zombiemovespeedlocked)
- {
- return;
- }
- if(level.gamedifficulty == 0)
- {
- level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier_easy"];
- }
- else
- {
- level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"];
- }
- }
- /*
- Name: zombie_speed_override
- Namespace: _imcsx_gsc_studio
- Checksum: 0x1B0FC110
- Offset: 0x502C
- Size: 0x2C
- Parameters: 0
- Flags: None
- */
- zombie_speed_override()
- {
- if(!level.zombiemovespeedlocked)
- {
- return;
- }
- while(1)
- {
- level waittill("start_of_round");
- level.zombie_move_speed = getdvarintdefault("zombieMoveSpeed", 1);
- }
- }
- /*
- Name: zombie_speed_cap_override
- Namespace: _imcsx_gsc_studio
- Checksum: 0x809C7D07
- Offset: 0x505A
- Size: 0x30
- Parameters: 0
- Flags: None
- */
- zombie_speed_cap_override()
- {
- if(!level.zombiemovespeedcap)
- {
- return;
- }
- while(1)
- {
- level waittill("start_of_round");
- if(level.zombie_move_speed > level.zombiemovespeedcapvalue)
- {
- level.zombie_move_speed = level.zombiemovespeedcapvalue;
- }
- }
- }
- /*
- Name: checks
- Namespace: _imcsx_gsc_studio
- Checksum: 0x3799B3B
- Offset: 0x508C
- Size: 0x11B
- Parameters: 0
- Flags: None
- */
- checks()
- {
- if(level.custommysteryboxpriceenabled == 1)
- {
- level thread setmysteryboxprice();
- }
- if(level.enablezombiecounter == 1)
- {
- level thread drawzombiescounter();
- }
- if(level.antikitingenabled == 1)
- {
- level thread antikiting();
- }
- if(level.mixed_rounds_enabled)
- {
- if(level.script != "zm_transit" || is_classic() || level.scr_zm_ui_gametype == "zgrief")
- {
- level.mixed_rounds_enabled = 0;
- }
- }
- if(level.start_weapon == "" || level.start_weapon == "m1911_zm")
- {
- level.start_weapon = "m1911_zm";
- if(level.script == "zm_tomb")
- {
- level.start_weapon = "c96_zm";
- }
- }
- if(level.default_laststandpistol == "" || level.default_laststandpistol == "m1911_zm")
- {
- level.default_laststandpistol = "m1911_zm";
- if(level.script == "zm_tomb")
- {
- level.default_laststandpistol = "c96_zm";
- }
- }
- if(level.default_solo_laststandpistol == "" || level.default_solo_laststandpistol == "m1911_upgraded_zm")
- {
- level.default_solo_laststandpistol = "m1911_upgraded_zm";
- if(level.script == "zm_tomb")
- {
- level.default_solo_laststandpistol = "c96_upgraded_zm";
- }
- }
- }
- /*
- Name: disable_specific_powerups
- Namespace: _imcsx_gsc_studio
- Checksum: 0xC382D3B5
- Offset: 0x51A8
- Size: 0x424
- Parameters: 0
- Flags: None
- */
- disable_specific_powerups()
- {
- level.powerupnames = array("fast_feet", "unlimited_ammo", "pack_a_punch", "money_drop", "nuke", "insta_kill", "full_ammo", "double_points", "fire_sale", "free_perk", "carpenter");
- array = level.powerupnames;
- level.zmpowerupsenabled = [];
- level.zmpowerupsenabled["fast_feet"] = spawnstruct();
- level.zmpowerupsenabled["fast_feet"].name = "fast_feet";
- level.zmpowerupsenabled["fast_feet"].active = getdvarintdefault("zmPowerupsFastFeetEnabled", 1);
- level.zmpowerupsenabled["unlimited_ammo"] = spawnstruct();
- level.zmpowerupsenabled["unlimited_ammo"].name = "unlimited_ammo";
- level.zmpowerupsenabled["unlimited_ammo"].active = getdvarintdefault("zmPowerupsUnlimitedAmmoEnabled", 1);
- level.zmpowerupsenabled["pack_a_punch"] = spawnstruct();
- level.zmpowerupsenabled["pack_a_punch"].name = "pack_a_punch";
- level.zmpowerupsenabled["pack_a_punch"].active = getdvarintdefault("zmPowerupsPackAPunchEnabled", 1);
- level.zmpowerupsenabled["money_drop"] = spawnstruct();
- level.zmpowerupsenabled["money_drop"].name = "money_drop";
- level.zmpowerupsenabled["money_drop"].active = getdvarintdefault("zmPowerupsMoneyDropEnabled", 1);
- level.zmpowerupsenabled["nuke"] = spawnstruct();
- level.zmpowerupsenabled["nuke"].name = "nuke";
- level.zmpowerupsenabled["nuke"].active = getdvarintdefault("zmPowerupsNukeEnabled", 1);
- level.zmpowerupsenabled["insta_kill"] = spawnstruct();
- level.zmpowerupsenabled["insta_kill"].name = "insta_kill";
- level.zmpowerupsenabled["insta_kill"].active = getdvarintdefault("zmPowerupsInstaKillEnabled", 1);
- level.zmpowerupsenabled["full_ammo"] = spawnstruct();
- level.zmpowerupsenabled["full_ammo"].name = "full_ammo";
- level.zmpowerupsenabled["full_ammo"].active = getdvarintdefault("zmPowerupsMaxAmmoEnabled", 1);
- level.zmpowerupsenabled["double_points"] = spawnstruct();
- level.zmpowerupsenabled["double_points"].name = "double_points";
- level.zmpowerupsenabled["double_points"].active = getdvarintdefault("zmPowerupsDoublePointsEnabled", 1);
- level.zmpowerupsenabled["fire_sale"] = spawnstruct();
- level.zmpowerupsenabled["fire_sale"].name = "fire_sale";
- level.zmpowerupsenabled["fire_sale"].active = getdvarintdefault("zmPowerupsFireSaleEnabled", 1);
- level.zmpowerupsenabled["free_perk"] = spawnstruct();
- level.zmpowerupsenabled["free_perk"].name = "free_perk";
- level.zmpowerupsenabled["free_perk"].active = getdvarintdefault("zmPowerupsPerkBottleEnabled", 1);
- level.zmpowerupsenabled["carpenter"] = spawnstruct();
- level.zmpowerupsenabled["carpenter"].name = "carpenter";
- level.zmpowerupsenabled["carpenter"].active = getdvarintdefault("zmPowerupsCarpenterEnabled", 1);
- level.zmpowerupsenabled["zombie_blood"] = spawnstruct();
- level.zmpowerupsenabled["zombie_blood"].name = "zombie_blood";
- level.zmpowerupsenabled["zombie_blood"].active = getdvarintdefault("zmPowerupsZombieBloodEnabled", 1);
- for(i = 0; i < array.size; i++)
- {
- if(!level.zmpowerupsenabled[array[i]].active)
- {
- name = level.zmpowerupsenabled[array[i]].name;
- if(isinarray(level.zombie_include_powerups, name))
- {
- arrayremovevalue(level.zombie_include_powerups, name);
- }
- if(isinarray(level.zombie_powerups, name))
- {
- arrayremovevalue(level.zombie_powerups, name);
- }
- if(isinarray(level.zombie_powerup_array, name))
- {
- arrayremovevalue(level.zombie_powerup_array, name);
- }
- }
- }
- }
- /*
- Name: connectmessage
- Namespace: _imcsx_gsc_studio
- Checksum: 0x80E7EE9E
- Offset: 0x55CE
- Size: 0x47
- Parameters: 2
- Flags: None
- */
- connectmessage(string, bold)
- {
- if(!isdefined(self.pers[string]))
- {
- self.pers[string] = 1;
- if(!isdefined(bold) || bold != 1)
- {
- self iprintln(string);
- }
- else
- {
- self iprintlnbold(string);
- }
- }
- }
- /*
- Name: drawzombiescounter
- Namespace: _imcsx_gsc_studio
- Checksum: 0x40112DC8
- Offset: 0x5616
- Size: 0x43
- Parameters: 0
- Flags: None
- */
- drawzombiescounter()
- {
- level.zombiescounter = createserverfontstring("hudsmall", 1.9);
- level.zombiescounter setpoint("CENTER", "CENTER", "CENTER", 190);
- level thread updatezombiescounter();
- }
- /*
- Name: updatezombiescounter
- Namespace: _imcsx_gsc_studio
- Checksum: 0x58553DEA
- Offset: 0x565A
- Size: 0x76
- Parameters: 0
- Flags: None
- */
- updatezombiescounter()
- {
- oldzombiescount = get_current_zombie_count();
- while(1)
- {
- newzombiescount = get_current_zombie_count();
- wait(0.05);
- if(oldzombiescount != newzombiescount)
- {
- level thread updatezombiescounter();
- return;
- }
- else if(newzombiescount != 0)
- {
- level.zombiescounter.label = &"Zombies: ^1";
- }
- else
- {
- level.zombiescounter.label = &"Zombies: ^6";
- }
- level.zombiescounter setvalue(newzombiescount);
- }
- }
- /*
- Name: antikiting
- Namespace: _imcsx_gsc_studio
- Checksum: 0x20F2694F
- Offset: 0x56D2
- Size: 0x8C
- Parameters: 0
- Flags: None
- */
- antikiting()
- {
- level endon("end_game");
- while(level.round_number >= 3 && zombie <= 0)
- {
- wait(level.antikitingwaittime);
- if(get_current_zombie_count() <= 3)
- {
- enemy = getaiarray(level.zombie_team);
- foreach(zombie in enemy)
- {
- zombie dodamage(zombie.health * 2, zombie.origin);
- }
- }
- wait(1);
- }
- }
- /*
- Name: setmysteryboxprice
- Namespace: _imcsx_gsc_studio
- Checksum: 0xD7DBE89
- Offset: 0x5760
- Size: 0x3E
- Parameters: 0
- Flags: None
- */
- setmysteryboxprice()
- {
- for(i = 0; i < level.chests.size; i++)
- {
- level.chests[i].zombie_cost = level.custommysteryboxprice;
- level.chests[i].old_cost = level.custommysteryboxprice;
- }
- }
- /*
- Name: spawnifroundone
- Namespace: _imcsx_gsc_studio
- Checksum: 0xF0288FF3
- Offset: 0x57A0
- Size: 0x79
- Parameters: 0
- Flags: None
- */
- spawnifroundone()
- {
- wait(3);
- if(self.sessionstate == "spectator" && level.round_number == 1)
- {
- self iprintln("Get ready to be spawned!");
- }
- wait(5);
- if(self.sessionstate == "spectator" && level.round_number == 1)
- {
- self [[level.spawnplayer]]();
- if(level.script != "zm_tomb" || level.script != "zm_prison" || !is_classic())
- {
- thread maps/mp/zombies/_zm::refresh_player_navcard_hud();
- }
- }
- }
- /*
- Name: startcustombank
- Namespace: _imcsx_gsc_studio
- Checksum: 0x4A851A98
- Offset: 0x581A
- Size: 0x73
- Parameters: 0
- Flags: None
- */
- startcustombank()
- {
- if(level.custombankenabled == 1)
- {
- self.amountinbank = level.custombanktotal;
- if(GetDvar("mapname") == "zm_buried")
- {
- self thread custombank((-276, -315, 11));
- }
- if(GetDvar("mapname") == "zm_highrise")
- {
- self thread custombank((2262, 623, 1296));
- }
- if(GetDvar("mapname") == "zm_transit")
- {
- self thread custombank((587, 504, -35));
- }
- }
- }
- /*
- Name: custombank
- Namespace: _imcsx_gsc_studio
- Checksum: 0x74BE1AD8
- Offset: 0x588E
- Size: 0xFE
- Parameters: 1
- Flags: None
- */
- custombank(origin)
- {
- level thread lowermessage("Custom Perks", "Hold ^3F ^7to withdraw 1000");
- trig = spawn("trigger_radius", origin, 1, 25, 25);
- trig setcursorhint("HINT_NOICON");
- trig setlowermessage(trig, "Custom Perks");
- for(;;)
- {
- trig waittill("trigger", GSC
- );
- if(self usebuttonpressed())
- {
- wait(0.2);
- if(self usebuttonpressed())
- {
- if(self.amountinbank != 0)
- {
- self connectmessage("You can withdraw money, but depositing will not save!", 0);
- self iprintln("Money Available: " + self.amountinbank);
- self playsound("zmb_cha_ching");
- self.score = self.score + 1000;
- self.score = self.score - 100;
- self.amountinbank = self.amountinbank - 1000;
- continue;
- }
- self connectmessage("Your Bank is Empty!", 0);
- }
- }
- }
- }
- /*
- Name: dotimer
- Namespace: _imcsx_gsc_studio
- Checksum: 0xDC687133
- Offset: 0x598E
- Size: 0x5A
- Parameters: 0
- Flags: None
- */
- dotimer()
- {
- level endon("end_game");
- level endon("timer_started");
- while(level.round_number == 1 && level.players.size > 0 && !isdefined(level.timerstarted))
- {
- level.timerstarted = 1;
- level thread starttimer();
- level thread notifytimeonendgame();
- wait(0.1);
- level notify("timer_started");
- }
- }
- /*
- Name: starttimer
- Namespace: _imcsx_gsc_studio
- Checksum: 0x924803FC
- Offset: 0x59EA
- Size: 0x40
- Parameters: 0
- Flags: None
- */
- starttimer()
- {
- level.minutesplayed = 0;
- level.hoursplayed = 0;
- for(;;)
- {
- wait(59);
- level.minutesplayed = level.minutesplayed + 1;
- wait(1);
- if(level.minutesplayed == 60)
- {
- level.hoursplayed = level.hoursplayed + 1;
- level.minutesplayed = 0;
- }
- }
- }
- /*
- Name: notifytimeonendgame
- Namespace: _imcsx_gsc_studio
- Checksum: 0x9F44280D
- Offset: 0x5A2C
- Size: 0x134
- Parameters: 0
- Flags: None
- */
- notifytimeonendgame()
- {
- for(;;)
- {
- level waittill("end_game");
- foreach(player in level.players)
- {
- if(level.hoursplayed > 0)
- {
- if(level.hoursplayed == 1)
- {
- if(level.minutesplayed == 1)
- {
- player iprintln("That game lasted " + level.hoursplayed + " hour and " + level.minutesplayed + " minute!");
- }
- else
- {
- player iprintln("That game lasted " + level.hoursplayed + " hour and " + level.minutesplayed + " minutes!");
- }
- }
- else if(level.minutesplayed == 1)
- {
- player iprintln("That game lasted " + level.hoursplayed + " hours and " + level.minutesplayed + " minute!");
- }
- else
- {
- player iprintln("That game lasted " + level.hoursplayed + " hours and " + level.minutesplayed + " minutes!");
- }
- continue;
- }
- if(level.minutesplayed == 1)
- {
- player iprintln("That game lasted " + level.minutesplayed + " minute!");
- continue;
- }
- player iprintln("That game lasted " + level.minutesplayed + " minutes!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment