coolbunny1234

Untitled

Mar 20th, 2013
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 59.82 KB | None | 0 0
  1. #include common_scripts\utility;
  2. #include maps\_utility;
  3. #include maps\_hud_util;
  4. #include maps\_createdynents;
  5. #using_animtree( "generic_human" );
  6. #using_animtree( "dog" );
  7.  
  8. precache_init()
  9. {
  10. shader = strTok("specialty_instakill_zombies;damage_feedback;floatz_display;line_horizontal;hud_status_dead;ui_scrollbar;offscreen_icon_us;hint_health;damage_feedback;cinematic;objectivea;objectiveb;objectivec;objectived;hud_checkbox_active;menu_map_nazi_zombie_factory;gradient;ui_sliderbutt_1;ui_slider2;hud_checkbox_done;ui_host;menu_button_backing_highlight;menu_popup_back;talkingicon;checkerboard;white_line_faded_center;gradient_center;scorebar_zom_1;scorebar_zom_2;scorebar_zom_3;scorebar_zom_4", ";");
  11. model = strTok("zombie_teleporter;weapon_usa_kbar_knife;static_peleliu_sandbags_lego_end;static_peleliu_sandbags_lego_mdl;static_peleliu_sandbag;projectile_usa_m9a1_riflegrenade;static_peleliu_palette;prefab_brick_group;static_peleliu_corrugated_metal1;zombie_beaker_small;zombie_beaker_med;static_peleliu_shelves_ammo;static_berlin_furnacedoor;static_berlin_furnacelatch;zombie_beaker_sphere;zombie_lab_dead_rat;static_global_trash_4x4;zombie_perk_bottle_sleight;zombie_perk_bottle_revive;zombie_perk_bottle_doubletap;zombie_perk_bottle_jugg;clutter_peleliu_tire_single;zombie_teleporter_control_panel;static_seelow_blackbarrel;zombie_wallclock_main;defaultvehicle;zombie_teleporter_pad;defaultactor;weapon_zombie_monkey_bomb;zombie_wolf;zombie_vending_jugg_on;zombie_vending_doubletap_on;zombie_vending_revive_on;zombie_vending_sleight_on;zombie_vending_packapunch_on;zombie_transformer;zombie_pile_wood_box;static_peleliu_corrugated_metal4;zombie_nameplate_maxis;static_peleliu_crate01_short;static_peleliu_crate01;zombie_beaker_brain;zombie_brain;defaultactor;defaultvehicle;test_sphere_silver;dest_opel_blitz_body_dmg0;dest_peleliu_generator_mobile_dmg0;static_berlin_victorian_couch_d;static_peleliu_filecabinet_metal;static_berlin_crate_metal;zombie_treasure_box;zombie_treasure_box_lid;test_sphere_silver;static_peleliu_b17_bomber_body;zombie_bomb;zombie_vending_sleight_on;zombie_vending_jugg_on;zombie_vending_revive_on;static_berlin_ger_radio;prefab_berlin_asylum_dbldoor_dr;zombie_wheelchair;zombie_zapper_power_box;zombie_asylum_chair;zombie_treasure_box_rubble;zombie_metal_cart;zombie_power_lever;static_seelow_woodbarrel_single;static_berlin_plainchair;static_peleliu_barbedwire;zombie_sumpf_bearpile;static_berlin_ger_radio;static_berlin_loudspeaker;static_berlin_loudspeaker_d;static_peleliu_blackbarrel01;zombie_vending_doubletap_price;zombie_vending_revive_on_price;zombie_vending_sleight_on_price;zombie_vending_jugg_on_price;zombie_lab_cage;static_berlin_metal_desk;zombie_spine;zombie_teleporter_pad;zombie_wolf;zombie_teddybear;static_peleliu_filecabinet_metal;zombie_teleporter_mainframe_ring1;zombie_vending_packapunch;zombie_teddybear_perkaholic;zombie_difference_engine;zombie_vending_doubletap_on;zombie_teleporter_powerline;zombie_factory_bearpile;zombie_chalkboard;zombie_wallclock_main", ";");
  12. item = strTok("zombie_perk_bottle_revive;zombie_perk_bottle_sleight;zombie_perk_bottle_doubletap;zombie_perk_bottle_jugg", ";");
  13. maps\_cheat::array_precache(shader, "shader");
  14. maps\_cheat::array_precache(model, "model");
  15. maps\_cheat::array_precache(item, "item");
  16. level.tokkk = strTok("static_berlin_ger_radio static_peleliu_corrugated_metal1 static_peleliu_corrugated_metal3 static_peleliu_corrugated_metal4 static_peleliu_corrugated_metal5 static_peleliu_sandbags_lego_end static_peleliu_sandbag static_peleliu_crate01 static_peleliu_crate02 static_berlin_wood_ammo_box01 static_berlin_wood_ammobox_02 static_berlin_wood_ammobox_03 static_berlin_wood_ammobox_04 static_peleliu_palette static_berlin_metal_desk static_peleliu_shelves_ammo static_berlin_plainchair static_makin_dockpost static_okinawa_int_chair static_peleliu_beigebarrel01 static_peleliu_beigebarrel01_d static_seelow_woodbarrel_single static_peleliu_crate_jpn_mrtr_clsd static_peleliu_blackbarrel01 static_peleliu_blackbarrel01_d static_peleliu_stick_trap_single static_seelow_burnbarrel_plain static_peleliu_rock01 static_peleliu_crate01_short static_peleliu_sandbags_lego_mdl static_peleliu_barbedwire static_berlin_radio_headset static_berlin_telephone_hang static_berlin_electrical_panelb static_berlin_typewriter static_berlin_engine_control_a static_berlin_books_row01 static_berlin_books_row02 static_berlin_books_row03 static_berlin_books_old3 static_berlin_books_old4 static_berlin_books_open static_berlin_loudspeaker static_berlin_loudspeaker_d clutter_peleliu_wood_ammo_box_closed clutter_peleliu_lilly_pad clutter_peleliu_tire_single clutter_berlin_books_single foliage_oki2_tree_jungle foliage_cod5_tree_willow_01 foliage_cod5_tree_mgrve_2 foliage_pacific_forest_shrubs03 foliage_oki2_tallgrass foliage_pacific_fern01 foliage_pacific_grass04_clump02 foliage_pacific_hangrice_piece1 foliage_pacific_riceplant_large foliage_pacific_ground_cover01 foliage_cod5_tree_mgrve_2_noshadow foliage_pacific_rice_cut foliage_pacific_fern02 foliage_pacific_forest_shrubs02 foliage_pacific_grass07_clump02 foliage_pacific_forest_shrubs01 foliage_pacific_grass07_clump01 fx_axis_createfx lantern_hang_on lantern_on lights_jap_field_lantern_on lights_indlight_on lights_tinhatlamp_on radio_jap_bro prefabs_bamboo_pole_d zombie_bomb zombie_skull zombie_x2_icon zombie_ammocan zombie_metal_cart zombie_surgical_case zombie_surgical_bonesaw zombie_sumpf_parachute2 zombie_lantern_on zombie_lantern_off zombie_zapper_power_box zombie_sumpf_fish_float zombie_zapper_tesla_coil zombie_sumpf_zipcage_box zombie_vending_sleight_on_price zombie_vending_revive_on_price zombie_vending_jugg_on_price zombie_vending_doubletap_price zombie_treasure_box zombie_treasure_box_lid zombie_sumpf_bearpile zombie_wolf zombie_wolf_variant_a zombie_teddybear defaultvehicle defaultactor test_sphere_silver", " ");
  17. level.tokk = strTok("Radio;Corrugated Metal 1;Corrugated Metal 2;Corrugated Metal 3;Corrugated Metal 4;Sandbags End;Sandbag;Crate;Dirty Crate;Wooden Ammo Box 1;Wooden Ammo Box 2;Wooden Ammo Box 3;Wooden Ammo Box 3;Palette;Metal Desk;Ammo Shelves;Plain Chair;Dock Post;Chair;Beige Barrel;Destroyed Beige Barrel;Wooden Barrel;Mortar Box;Black Barrel;Destroyed Black Barrel;Stick Trap;Burning Barrel;Rock;Short Crate;Sandbags Middle;Barbed Wire;Headset;Hanging Telephone;Electrical Panel;Typewriter;Engine Control;Row of Books 1;Row of Books 2;Row of Books 3;Old Books 1;Old Books 2;Open Book;Loudspeaker;Destroyed Loudspeaker;Wooden Ammo Box Closed;Lilly Pad;Tire;Book;Jungle Tree;Willow Tree;Tree 1;Shrubs 1;Tall Grass;Fern 1;Grass Clump;Hanging Rice;Rice Plant;Plant;Tree 2;Cut Rice;Fern 2;Shrubs 2;Grass Clump 2;Shrubs 3;Grass Clump 3;Axis Test;Hanging Lantern On;Lantern On;Field Lantern On;Overhanging Light On;Tinhat Lamp On;Broken Radio;Bamboo Pole Destroyed;Nuke;Insta-Kill;Double Points;Max Ammo;Metal Cart;Surgical Case;Surgical Bonesaw;Parachute;Lantern On;Lantern Off;Power Box;Floating Fish;Tesla Coil;Zipline Power Box;Speed Cola Machine;Quick Revive Machine;Jugger-Nog Machine;Double Tap Machine;Random Box;Random Box Lid;Bear Pile;Wolf;Clean Wolf;Teddybear;Default Vehicle;Default Actor;Dev Sphere;Exploding Barrel Test", ";");
  18. maps\_cheat::array_precache(level.tokkk, "model");
  19. }
  20.  
  21. deevs(){
  22. self iprintln("dvars");
  23. //level.zombie_vars["zombie_health_start"] = 700;
  24. //level.zombie_vars["zombie_health_increase"] = 700;
  25. level.zombie_vars["zombie_health_increase_percent"] = 50;
  26. level.zombie_vars["zombie_max_ai"] = 200;
  27. level.zombie_vars["zombie_ai_per_player"] = 50;
  28. level.zombie_vars["zombie_spawn_delay"] = 0.2;
  29. //level.zombie_vars["zombie_powerup_point_doubler_time"] = 120;
  30. //level.zombie_vars["zombie_powerup_insta_kill_time"] = 120;
  31. //level.zombie_vars["zombie_powerup_drop_increment"] = 4;
  32. //level.zombie_vars["zombie_powerup_drop_max_per_round"] = 5;
  33. }
  34. init()
  35. {
  36. self thread onPlayerConnect();
  37. }
  38.  
  39. onPlayerConnect()
  40. {
  41. for(;;)
  42. {
  43. level waittill("connected", player);
  44. player thread onPlayerSpawned();
  45. }
  46. }
  47.  
  48. onPlayerSpawned()
  49. {
  50. level.modelsSpawns = 0;
  51. self dvars_begin();
  52. precachemodel("grenade_bag");
  53. player = get_players();
  54. for(;;)
  55. {
  56. self waittill("spawned_player");
  57. self setVision("fly_dark");
  58. self thread handler();
  59. if(self == getPlayers()[0])
  60. {
  61. level thread deleteShit();
  62. level thread jumpToRound(6);
  63. level thread doLunarLander();
  64. level thread build_barrier();//models
  65. level thread maps\_createcam::Packapunch();
  66. level thread maps\_createmenu::Packapunch();
  67. level thread disableBuyables();
  68. level thread StratFog();
  69. level thread r_Lightning();
  70. level thread sLights();
  71. level thread sLightning();//models
  72. }
  73. level thread deevs();
  74. //self thread Location();
  75. }
  76. }
  77.  
  78. handler() {
  79. /*
  80. level thread deleteShit();
  81. level thread jumpToRound(6);
  82. level thread doLunarLander();
  83. level thread build_barrier();//models
  84. level thread maps\_createcam::Packapunch();
  85. level thread maps\_createmenu::Packapunch();
  86. level thread disableBuyables();
  87. level thread StratFog();
  88. level thread r_Lightning();
  89. level thread sLights();
  90. level thread sLightning();//models
  91. */
  92. self.score = 555250;
  93. self.score_total = 555250;
  94. self thread do_hit_markers();
  95. if(self == get_players()[0] && !isdefined(level.hostThreaded)) {
  96. self.currentKills = 0;
  97. self thread createEscapes();
  98. self thread doStratVision();
  99. //self thread do_hit_markers();
  100. //self thread roundText();
  101. //self thread doEquip();
  102. level.hostThreaded = true;
  103. }
  104. if(self != get_players()[0]) {
  105. self.currentKills = 0;
  106. self thread doStratVision();
  107. //self thread do_hit_markers();
  108. self thread roundText();
  109. }
  110. self thread give_gun_on_spawn();
  111. self thread doEquip();
  112. self thread Strat_clientDvars();
  113. self thread roundText();
  114. self thread sLightning();
  115. self thread entry();
  116. self thread watch_kills();
  117. self thread debug_kills();
  118. wait 5;
  119. level thread openDoors();
  120. }
  121. give_gun_on_spawn(){
  122. wait 2;
  123. self takeAllWeapons();
  124. self thread give_gun("zombie_type100_smg");
  125. }
  126. doEquip()
  127. {
  128. for(;;)
  129. {
  130. self giveWeapon("stielhandgranate", 4);
  131. wait .05;
  132. }
  133. }
  134. roundText()
  135. {
  136. self endon("death");
  137. self endon("disconnect");
  138. level.round = 1;
  139. for(;;)
  140. {
  141. maps\_zombiemode::round_wait();
  142. check = self createRectangle("CENTER", "CENTER", -200, 195, 10, 10, (1, 1, 1), "hud_checkbox_done", 3, 0);
  143. check thread hudFade(1, .5);
  144. bg = self createRectangle("CENTER", "CENTER", -200, 210, 125, 40, (1, 0, 0), "scorebar_zom_2", 1, 0);
  145. bg thread hudFade(1, .5);
  146. round = self createText("default", 1, "CENTER", "CENTER", -200, 210, 2, 0, "Round "+level.round+" Complete!");
  147. round hudFade(1, .5);
  148. round thread flashThread();
  149. wait 5;
  150. for(m = 5; m > 0; m--)
  151. {
  152. round setText("Next Round In: "+m+"...");
  153. wait 1;
  154. }
  155. round setText("The Horror Begins..");
  156. wait 1;
  157. round notify("flashThread Over");
  158. round thread hudFadenDestroy(0, 1);
  159. bg thread hudFadenDestroy(0, 1);
  160. check thread hudFadenDestroy(0, 1);
  161. level notify("hudChecksOver");
  162. if(self == getPlayers()[0])
  163. level.round++;
  164. }
  165. }
  166. hudFadenDestroy(alpha, time)
  167. {
  168. self hudFade(alpha, time);
  169. self destroy();
  170. }
  171. entry() {
  172. self.menuOpts = [];
  173. self thread welcomeText("^1Bunny's Strat","^2Big Thanks To: ^7Aok Mikey! -- ^2Created By: ^7Bunny");
  174. self thread initOpts();
  175. self thread BuildMenu();
  176. self thread WatchScrolling();
  177. }
  178. lookPos()
  179. {
  180. vector = anglesToForward(self getPlayerAngles());
  181. return(bulletTrace(self getEye(), (vector[0] * 100000000, vector[1] * 100000000, vector[2] * 100000000), 0, self)["position"]);
  182. }
  183. deleteTextAfterTime(time)
  184. {
  185. wait(time);
  186. self destroy();
  187. }
  188. deleteShit(){
  189. level.chalk_hud1 destroy();
  190. level.chalk_hud2 destroy();
  191. level.chalk_hud destroy();
  192. }
  193. Location(){
  194. self endon("disconnect");
  195. self endon("death");
  196. loc = createFontString("objective", 2, self);
  197. loc setPoint("TOPRIGHT", "TOPRIGHT", 0, 0);
  198. ang = createFontString("smallfixed", 1.5, self);
  199. ang setPoint("TOPRIGHT", "TOPRIGHT", 0, 20);
  200. for(;;){
  201. loc setText("^1Location : " + self.origin);
  202. ang setText("^1Angles : " + self.angles);
  203. wait .5;
  204. }
  205. }
  206. dvars_begin(){
  207. //self setClientDvars( "g_ai", "0");
  208. self setClientDvar("actionSlotsHide", 1);
  209. self SetClientDvars( "loc_warnings", "0",
  210. "loc_warningsAsErrors", "0",
  211. "sv_cheats", "1",
  212. "ui_mapname", "mak",
  213. "ui_gametype", "cmp",
  214. "scr_game_difficulty", "1",
  215. "scr_game_arcadescoring", "0",
  216. "scr_game_pinups", "0",
  217. "stat_version", "22",
  218. "zombiemode", "1",
  219. "arcademode", "0",
  220. "developeruser", "1",
  221. "developeruser", "2",
  222. "developeruser", "3");
  223. }
  224.  
  225. getMap()
  226. {
  227. if(level.script == "nazi_zombie_prototype")
  228. return "nzp";
  229. if(level.script == "nazi_zombie_asylum")
  230. return "nza";
  231. if(level.script == "nazi_zombie_sumpf")
  232. return "nzs";
  233. if(level.script == "nazi_zombie_factory")
  234. return "nzf";
  235. return "";
  236. }
  237. getHostName()
  238. {
  239. for(x=0;x<get_players().size;x++)
  240. {
  241. players=get_players()[x];
  242. if(players getEntityNumber()==0)
  243. {
  244. return players.playername;
  245. }
  246. }
  247. }
  248. getSelfName()
  249. {
  250. for(x=0;x<get_players().size;x++)
  251. {
  252. players=get_players()[x];
  253. if(players==self)
  254. {
  255. return players.playername;
  256. }
  257. }
  258. }
  259. spawnSM(origin, model, angles)
  260. {
  261. level.modelsSpawns++;
  262. ent = spawn("script_model", origin);
  263. ent setModel(model);
  264. if(isDefined(angles))
  265. ent.angles = angles;
  266. return ent;
  267. }
  268. spawnTrigger1(origin, width, height, hintString)
  269. {
  270. ent = spawn("trigger_radius", origin, 1, width, height);
  271. ent setCursorHint("HINT_NOICON");
  272. ent setHintString(hintString);
  273. return(ent);
  274. }
  275. initOpts()
  276. {
  277.  
  278. self AddTitle("Main", "Strat Lobby");
  279. self AddMenu("Main", 0, "Gun Menu", ::OpenSub, "Gun");
  280. self AddMenu("Main", 1, "Killstreaks Menu", ::OpenSub, "Kstreaks");
  281. self AddMenu("Main", 2, "Perks Menu", ::OpenSub, "Perk");
  282. self AddMenu("Main", 3, "Power Ups", ::OpenSub, "Pups");
  283. self AddMenu("Main", 4, "Escapes >Cost: 5000<", ::bought_escapes);
  284. self AddMenu("Main", 5, "Close Menu", ::Closed, "");
  285.  
  286. self AddTitle("Gun", "Gun Menu");
  287. self AddBack("Gun", "Main");
  288. self AddMenu("Gun", 0, "Machine Guns", ::OpenSub, "MGun");
  289. self AddMenu("Gun", 1, "Sub Machine Guns", ::OpenSub, "SGun");
  290. self AddMenu("Gun", 2, "Snipers", ::OpenSub, "SNGun");
  291. self AddMenu("Gun", 3, "Special Guns", ::OpenSub, "XGun");
  292. self AddMenu("Gun", 4, "Bowie Knife >Cost: 2500<", ::giveBowie, "");
  293. self AddMenu("Gun", 5, "Upgrade Gun >Cost: 5000<", ::give_gun_upgraded, "");
  294.  
  295. self AddTitle("Perk", "Perk Menu: Cost: 2000");
  296. self AddBack("Perk", "Main");
  297. self AddMenu("Perk", 0, "Speed Cola", ::giveFR, "");
  298. self AddMenu("Perk", 1, "Quick Revive", ::giveQR, "");
  299. self AddMenu("Perk", 2, "Juggernaut >Cost: 3000<", ::giveJN, "");
  300. self AddMenu("Perk", 3, "Double Tap", ::giveDT, "");
  301. self AddMenu("Perk", 4, "Stamin Up", ::giveSU, "");
  302. self AddMenu("Perk", 5, "Second Chance (Must Have Quick Revive) >Cost: 100<", ::perk_2nd, "");
  303.  
  304. self AddTitle("Kstreaks", "KillStreaks: Cost: 3000");
  305. self AddBack("Kstreaks", "Main");
  306. self AddMenu("Kstreaks", 0, "[Strikes]", ::OpenSub, "Strikes");
  307. self AddMenu("Kstreaks", 1, "Attack UFO", ::attackUfo, "");
  308. self AddMenu("Kstreaks", 2, "Wunder Walther>5000<", ::doWunderWalther, "");
  309. self AddMenu("Kstreaks", 3, "Berserker Mode", ::crawlerArms, "");
  310. self AddMenu("Kstreaks", 4, "Friendly Dogs", ::SpawnFriendlyDogs, "");
  311.  
  312. self AddTitle("Strikes", "Strikes: Cost: 3000");
  313. self AddBack("Strikes", "Kstreaks");
  314. self AddMenu("Strikes", 0, "Orbital Strike", ::OrbitalStrike, "");
  315. self AddMenu("Strikes", 1, "Wrath Of God", ::doWrath, "");
  316. self AddMenu("Strikes", 2, "Mortar Strike", ::initMortarStrike, "");
  317. self AddMenu("Strikes", 3, "Artillery Strike", ::initArtilleryStrike, "");
  318.  
  319.  
  320. mguns = strTok("zombie_30cal zombie_bar zombie_fg42 zombie_mg42", " ");
  321. self AddTitle("MGun", "Machine Gun Menu");
  322. self AddBack("MGun", "Gun");
  323. for(e = 0; e < mguns.size; e++)
  324. self AddMenu("MGun", e, mguns[e]+" >Cost: 2500<", ::give_gun_m, mguns[e]);
  325.  
  326. sguns = strTok("zombie_mp40 zombie_ppsh zombie_thompson zombie_type100_smg", " ");
  327. self AddTitle("SGun", "Sub Machine Gun Menu");
  328. self AddBack("SGun", "Gun");
  329. for(s = 0; s < sguns.size; s++)
  330. self AddMenu("SGun", s, sguns[s]+" >Cost: 1500<", ::give_gun_s, sguns[s]);
  331.  
  332. snguns = strTok("zombie_m1carbine zombie_m1garand zombie_gewehr43 zombie_kar98k ptrs41_zombie", " ");
  333. self AddTitle("SNGun", "Snipers Menu");
  334. self AddBack("SNGun", "Gun");
  335. for(q = 0; q < snguns.size; q++)
  336. self AddMenu("SNGun", q, snguns[q]+" >Cost: 1300<", ::give_gun_sn, snguns[q]);
  337.  
  338. xguns = strTok("tesla_gun ray_gun zombie_doublebarrel zombie_shotgun", " ");
  339. self AddTitle("XGun", "Special Guns Menu");
  340. self AddBack("XGun", "Gun");
  341. for(x = 0; x < xguns.size; x++)
  342. self AddMenu("XGun", x, xguns[x]+" >Cost: 3000<", ::give_gun_z, xguns[x]);
  343.  
  344. self AddTitle("Pups", "Power Ups");
  345. self AddBack("Pups", "Main");
  346. self AddMenu("Pups", 0, "Drop Ammo", ::doDropAmmo, "");
  347. self AddMenu("Pups", 1, "AimBot [4000]", ::AimBot, "");
  348. self AddMenu("Pups", 2, "Hyper Speed [20 Seconds]", ::giveHS, "");
  349.  
  350. self AddTitle("Players", "Player Menu");
  351. self AddBack("Players", "Main");
  352.  
  353. self AddTitle("Player_Options", get_players()[self.Selected].playername+"'s Options");
  354. self AddBack("Player_Options", "Players");
  355. self AddMenu("Player_Options", 0, "Umm....", ::test, "1");
  356.  
  357. }
  358. AddBack(menu, backMenu)
  359. {
  360. self.menuOpts["BackMenu"][menu]=backMenu;
  361. }
  362. createText(font, fontScale, align, relative, x, y, sort, alpha, text)
  363. {
  364. textElem = self createFontString(font, fontScale, self);
  365. textElem setPoint(align, relative, x, y);
  366. textElem.sort = sort;
  367. textElem.alpha = alpha;
  368. textElem setText(text);
  369. return textElem;
  370. }
  371. createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
  372. {
  373. boxElem = newClientHudElem(self);
  374. boxElem.elemType = "bar";
  375. if(!level.splitScreen)
  376. {
  377. boxElem.x = -2;
  378. boxElem.y = -2;
  379. }
  380. boxElem.width = width;
  381. boxElem.height = height;
  382. boxElem.align = align;
  383. boxElem.relative = relative;
  384. boxElem.xOffset = 0;
  385. boxElem.yOffset = 0;
  386. boxElem.children = [];
  387. boxElem.sort = sort;
  388. boxElem.color = color;
  389. boxElem.alpha = alpha;
  390. boxElem.shader = shader;
  391. boxElem setParent(level.uiParent);
  392. boxElem setShader(shader, width, height);
  393. boxElem.hidden = false;
  394. boxElem setPoint(align, relative, x, y);
  395. return boxElem;
  396. }
  397. test(num){self iPrintln("^2Option Number "+num);}
  398. testSub(num){self iPrintln("^2Sub Option Number "+num);}
  399. Playertest(num){self iPrintln("^2Player Option Number "+num);}
  400. BuildMenu()
  401. {
  402. self endon("death");
  403. self endon("disconnect");
  404. self endon("StopFgt");
  405. self.menuOpen=false;
  406. for(;;)
  407. {
  408. if(self FragButtonPressed() && self.menuOpen==false)
  409. {
  410. self.Curs=0;
  411. self.AllowedToExit=false;
  412. self.CurSub="Main";
  413. //self.Menu["Shader"]=createRectangle("LEFT", "LEFT", 0, 90, 150, 150, (0,0,0), "white", -2, 0.75 );
  414. self.menuOpen=true;
  415. self notify("MenuOpen");
  416. self thread DrawMenu(self.CurSub);
  417. self waittill("AllowedToClose");
  418. self.AllowedToExit=true;
  419. wait 0.5;
  420. }
  421. if(self AdsButtonPressed() && self.menuOpen==true)
  422. {
  423. self.BeforeColor=self.Text[self.Curs].color;
  424. self.Curs--;
  425.  
  426. if(self.Curs<0)
  427. self.Curs=self.menuOpts["Name"][self.CurSub].size-1;
  428.  
  429. self notify("Scrolled");
  430. wait 0.2;
  431. }
  432. if(self AttackButtonPressed() && self.menuOpen==true)
  433. {
  434. self.BeforeColor=self.Text[self.Curs].color;
  435. self.Curs++;
  436.  
  437. if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
  438. self.Curs=0;
  439.  
  440. self notify("Scrolled");
  441. wait 0.2;
  442. }
  443. if(self UseButtonPressed() && self.menuOpen==true)
  444. {
  445.  
  446. if(self.CurSub=="Players")
  447. self.Selected=self.Curs;
  448.  
  449. self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
  450. wait 0.2;
  451. }
  452. if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main" && self.AllowedToExit==true)
  453. {
  454. self.CurSub=self.menuOpts["BackMenu"][self.CurSub];
  455. self thread OpenSub(self.CurSub);
  456. wait 0.2;
  457. }
  458. if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main" && self.AllowedToExit==true)
  459. {
  460. self thread Close();
  461. self waittill("Done");
  462. self.Menu["Shader"] destroy();
  463. self.Title destroy();
  464. self.menuOpen=false;
  465. wait 0.2;
  466. }
  467. wait 0.01;
  468. }
  469. }
  470. Close()
  471. {
  472. for(i=self.menuOpts["Name"]["Main"].size-1;i<self.menuOpts["Name"]["Main"].size;i--)
  473. {
  474. self.Text[i] destroy();
  475. wait 0.05;
  476. if(i==0)self notify("Done");
  477. }
  478. }
  479.  
  480. WatchScrolling()
  481. {
  482. self endon("death");
  483. self endon("StopFgt");
  484. self endon("disconnect");
  485. for(;;)
  486. {
  487. self waittill_any("MenuOpen","Scrolled");
  488. for(i=0;i<self.menuOpts["Name"][self.CurSub].size;i++)
  489. {
  490. self.Text[i].color=(1,1,1);
  491. self.Text[i].glowAlpha=0;
  492. }
  493. self thread ShowOptionOn();
  494. }
  495. }
  496. ShowOptionOn()
  497. {
  498. self endon("Scrolled");
  499. self endon("death");
  500. self endon("StopFgt");
  501. self endon("disconnect");
  502. for(;;)
  503. {
  504. self.Text[self.Curs].color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
  505. self.Title.color=(randomInt(255)/255, randomInt(255)/255, randomInt(255)/255);
  506. wait 0.2;
  507. }
  508. }
  509. AddTitle(menu, text)
  510. {
  511. self.menuOpts["Title"][menu]=text;
  512. }
  513. AddMenu(menu, numb, text, func, input)
  514. {
  515. self.menuOpts["Name"][menu][numb]=text;
  516. self.menuOpts["Func"][menu][numb]=func;
  517. self.menuOpts["Input"][menu][numb]=input;
  518. }
  519. OpenSub(newMenu)
  520. {
  521. self.AllowedToExit=false;
  522. self thread Close();
  523. self waittill("Done");
  524. self.CurSub=newMenu;
  525. self.Title destroy();
  526. self.AllowedToExit=true;
  527. self.Curs=0;
  528. self thread DrawMenu(self.CurSub);
  529. }
  530. DrawMenu(menu)
  531. {
  532. self.Title=self createFontString( "objective", 2.0, self );
  533. self.Title setPoint("LEFT", "LEFT", 0, 30 );
  534. self.Title setText(self.menuOpts["Title"][self.CurSub]);
  535. if(menu!="Players")
  536. {
  537. for(i=0;i<self.menuOpts["Name"][menu].size;i++)
  538. {
  539. self.AllowedToExit=false;
  540. self.Text[i] = self createFontString( "default", 1.5, self );
  541. self.Text[i] setPoint( "LEFT", "LEFT", 0, 50+(i*20));
  542. self.Text[i] setText(self.menuOpts["Name"][menu][i]);
  543. wait 0.1;
  544. }
  545. self.AllowedToExit=true;
  546. self notify("AllowedToClose");
  547. }
  548. else
  549. {
  550. for(i=0; i<get_players().size; i++)
  551. {
  552. self.menuOpts["Name"]["Players"][i]="["+get_players()[i].status+"]"+get_players()[i].playername;
  553. self.menuOpts["Func"]["Players"][i]=::OpenSub;
  554. self.menuOpts["Input"]["Players"][i]="Player_Options";
  555. self.Text[i] = self createFontString( "default", 1.5, self );
  556. self.Text[i] setPoint( "CENTER", "TOP", 0, 50+(i*20));
  557. self.Text[i] setText("["+get_players()[i].status+"]"+get_players()[i].playername);
  558. }
  559. }
  560. }
  561.  
  562. Closed(){
  563. self thread Close();
  564. self waittill("Done");
  565. self.Menu["Shader"] destroy();
  566. self.Title destroy();
  567. self.menuOpen=false;
  568. }
  569.  
  570. build_barrier(){
  571. //left side
  572. //65 origin difference
  573. self build_((-1428, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  574. self build_((-1493, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  575. self build_((-1558, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  576. self build_((-1623, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  577. self build_((-1688, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  578. self build_((-1753, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  579. self build_((-1818, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  580. self build_((-1883, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  581. self build_((-1948, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  582. self build_((-1363, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  583. self build_((-1298, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  584. self build_((-1233, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  585. self build_((-1168, -720, 619), "static_berlin_metal_desk", (0, 180, 0),0,100,100,1);
  586. //backside
  587. self build_((-1972, -660, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
  588. self build_((-1972, -595, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
  589. self build_((-1972, -530, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
  590. self build_((-1972, -465, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
  591. self build_((-1972, -400, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
  592. self build_((-1972, -335, 619), "static_berlin_metal_desk", (0, 90, 0),0,100,100,1);
  593. //right side
  594. self build_((-1434, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  595. self build_((-1499, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  596. self build_((-1564, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  597. self build_((-1629, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  598. self build_((-1694, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  599. self build_((-1759, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  600. self build_((-1824, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  601. self build_((-1889, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  602. self build_((-1369, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  603. self build_((-1304, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  604. self build_((-1239, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  605. self build_((-1174, -335, 619), "static_berlin_metal_desk", (0, 360, 0),0,100,100,1);
  606. //frontside
  607. self build_((-1120, -375, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
  608. self build_((-1120, -440, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
  609. self build_((-1120, -505, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
  610. self build_((-1120, -570, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
  611. self build_((-1120, -635, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
  612. self build_((-1120, -700, 619), "static_berlin_metal_desk", (0, 90, 0),0,0,0,0);
  613. }
  614. createEscapes(){
  615. self build_((235, -603, 60), "zombie_teleporter_control_panel", (0, 270, 0),0,0,0,0,"Purchase Escapes From Menu");
  616. self build_((476, 43, 90), "zombie_teleporter_control_panel", (0, 180, 0),0,0,0,0,"Purchase Escapes From Menu");
  617. self build_((1264, 575, 90), "zombie_teleporter_control_panel", (0, 360, 0),0,0,0,0,"Purchase Escapes From Menu");
  618. self build_((-837, -1020, 110), "zombie_teleporter_control_panel", (0, 180, 0),0,0,0,0,"Purchase Escapes From Menu");
  619. self build_((635, -1475, 110), "zombie_teleporter_control_panel", (0, 270, 0),0,0,0,0,"Purchase Escapes From Menu");
  620. self build_((-99, -2220, 70), "zombie_teleporter_control_panel", (0, 360, 0),0,0,0,0,"Purchase Escapes From Menu");
  621. self build_((-1426, -755, 250), "zombie_teleporter_control_panel", (0, 360, 0),0,0,0,0,"Purchase Escapes From Menu");
  622. self build_((845, -1310, 190), "zombie_teleporter_control_panel", (0, 90, 0),0,0,0,0,"Purchase Escapes From Menu");
  623. self build_((-1972, -660, 619), "zombie_teleporter_control_panel", (0, 90, 0),0,0,0,0,"Purchase Escapes From Menu");
  624. }
  625. createEscapesReal() //208, -603, 30
  626. {
  627. //add threads for functions here
  628. self thread escape_1();
  629. self thread escape_2();
  630. self thread escape_3();
  631. self thread escape_4();
  632. self thread escape_5();
  633. self thread escape_6();
  634. self thread escape_7();
  635. self thread go_to_sm();
  636. //mainframe
  637. self build_1((235, -603, 60), "", (0, 270, 0),0,0,0,0,"Press &&1 to Escape!","mainframe_escape");
  638. }
  639. bought_escapes(){
  640. if( self.score >= 5000 ){
  641. if(self.bought_escapes == false){
  642. self Closed();
  643. self maps\_zombiemode_score::minus_to_player_score( 5000 );
  644. p=get_players();
  645. for(b=0;b<=p.size;b++)
  646. {
  647. p[b] thread createEscapesReal();
  648. p[b].bought_escapes = true;
  649. }
  650. //self thread createEscapesReal();
  651. self thread BuildMessage("You Just", "Purchased", "The Escapes");
  652. //self.bought_escapes = true;
  653. } else{
  654. self iPrintlnBold("Escapes Already Purchased");
  655. }
  656. }else{
  657. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  658. }
  659. }
  660. //626 1460
  661. escape_1(){self build_1((476, 43, 90), "", (0, 180, 0),0,0,0,0,"Press &&1 to Escape!","escape_1");}
  662. escape_2(){self build_1((1264, 575, 90), "", (0, 360, 0),0,0,0,0,"Press &&1 to Escape!","escape_2");}
  663. escape_3(){self build_1((-837, -1020, 110), "", (0, 180, 0),0,0,0,0,"Press &&1 to Escape!","escape_3");}
  664. escape_4(){self build_1((635, -1475, 110), "", (0, 270, 0),0,0,0,0,"Press &&1 to Escape!","escape_4");}
  665. escape_5(){self build_1((-99, -2220, 70), "", (0, 360, 0),0,0,0,0,"Press &&1 to Escape!","escape_5");}
  666. escape_6(){self build_1((-1426, -755, 250), "", (0, 360, 0),0,0,0,0,"Press &&1 to Escape!","escape_6");}
  667. escape_7(){self build_1((845, -1310, 190), "", (0, 90, 0),0,0,0,0,"Press &&1 to Escape!","escape_7");}
  668. go_to_sm(){self build_1((-1972, -660, 619), "", (0, 90, 0), 0,0,0,0,"Press &&1 to Travel;)","go_to_sm");}
  669.  
  670. build_(loc,model,angle,s1,s2,s3,sc,text){
  671. x = spawnStruct();
  672. x = spawnSM(loc, model, angle);
  673. x.solid = spawn("trigger_radius", x.origin, s1, s2, s3);
  674. x.solid setContents(sc);
  675. x.trigger = spawnTrigger1(x.origin, 60, 60, text);
  676. }
  677. build_1(loc,model,angle,s1,s2,s3,sc,text,mod){
  678. x = spawnStruct();
  679. x = spawnSM(loc, model, angle);
  680. x.solid = spawn("trigger_radius", x.origin, s1, s2, s3);
  681. x.solid setContents(sc);
  682. x.trigger = spawnTrigger1(x.origin, 60, 60, text);
  683. for(;;)
  684. {
  685. x.trigger waittill("trigger", user);
  686. if(user useButtonPressed() && !isDefined(user.select_tho) && !isDefined(user.revivetrigger))
  687. {
  688. user.select_tho = true;
  689. user thread whatModTho(mod);
  690. }
  691. }
  692. }
  693. whatModTho(w){
  694. self.wMod = w;
  695. switch(self.wMod){
  696. case "mainframe_escape":
  697. self thread escape_array((820,986,168));
  698. break;
  699. case "escape_1":
  700. self thread escape_array((-55,285,103));
  701. break;
  702. case "escape_2":
  703. self thread escape_array((-773,-831,68));
  704. break;
  705. case "escape_3":
  706. self thread escape_array((305,-1512,55));
  707. break;
  708. case "escape_4":
  709. self thread escape_array((295,-3178,189));
  710. break;
  711. case "escape_5":
  712. self thread escape_array((36,-1385,191));
  713. break;
  714. case "escape_6":
  715. self thread escape_array((930,-1503,133));
  716. break;
  717. case "escape_7":
  718. self thread escape_array((-57,295,103));
  719. break;
  720. case "go_to_sm":
  721. self thread escape_array((-621,-2029,466));
  722. self thread watch_time_there();
  723. break;
  724. default:
  725. //default
  726. break;
  727. }
  728. }
  729. watch_time_there(){
  730. self iprintln("You Have 20 Seconds!");
  731. bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
  732. for(m = 45; m > 0; m--){
  733. bunny setText(m);
  734. wait 1;
  735. }
  736. bunny hudFadenDestroy(0, 1);
  737. self thread maps\_createmenu::Closed();
  738. self thread maps\_createmenu::Kill_Shit();
  739. wait .5;
  740. self thread escape_array((-1583,-534,619));
  741. self.select_tho = undefined;
  742. }
  743. escape_array(go1){
  744. self setelectrified(1.25);
  745. wait .5;
  746. self setOrigin(go1);
  747. self shellshock( "electrocution", 4 );
  748. self.select_tho = undefined;
  749. }
  750. give_gun(gun){
  751. self Closed();
  752. PrecacheItem( gun );
  753. self giveweapon( gun );
  754. self switchToWeapon( gun );
  755. self giveMaxAmmo( gun );
  756. self iPrintln("Equipped ^1 " +gun);
  757. }
  758. give_gun_m(gun){
  759. if( self.score >= 2500 ){
  760. self Closed();
  761. self maps\_zombiemode_score::minus_to_player_score( 2500 );
  762. PrecacheItem( gun );
  763. self giveweapon( gun );
  764. self switchToWeapon( gun );
  765. self giveMaxAmmo( gun );
  766. self iPrintln("Equipped ^1 " +gun);
  767. }
  768. else{
  769. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  770. }
  771.  
  772. }
  773. give_gun_s(gun){
  774. if( self.score >= 1500 ){
  775. self Closed();
  776. self maps\_zombiemode_score::minus_to_player_score( 1500 );
  777. PrecacheItem( gun );
  778. self giveweapon( gun );
  779. self switchToWeapon( gun );
  780. self giveMaxAmmo( gun );
  781. self iPrintln("Equipped ^1 " +gun);
  782. }
  783. else{
  784. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  785. }
  786.  
  787. }
  788. give_gun_sn(gun){
  789. if( self.score >= 1300 ){
  790. self Closed();
  791. self maps\_zombiemode_score::minus_to_player_score( 1300 );
  792. PrecacheItem( gun );
  793. self giveweapon( gun );
  794. self switchToWeapon( gun );
  795. self giveMaxAmmo( gun );
  796. self iPrintln("Equipped ^1 " +gun);
  797. }
  798. else{
  799. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  800. }
  801.  
  802. }
  803. give_gun_z(gun){
  804. if( self.score >= 3000 ){
  805. self Closed();
  806. self maps\_zombiemode_score::minus_to_player_score( 3000 );
  807. PrecacheItem( gun );
  808. self giveweapon( gun );
  809. self switchToWeapon( gun );
  810. self giveMaxAmmo( gun );
  811. self iPrintln("Equipped ^1 " +gun);
  812. }
  813. else{
  814. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  815. }
  816.  
  817. }
  818. give_gun_upgraded(){
  819. if( self.score >= 5000 ){
  820. self Closed();
  821. self maps\_zombiemode_score::minus_to_player_score( 5000 );
  822. currentWeapon = self getCurrentWeapon();
  823. gun = currentWeapon+"_upgraded";
  824. PrecacheItem( gun );
  825. self takeWeapon(self getCurrentWeapon());
  826. self giveweapon( gun );
  827. self switchToWeapon( gun );
  828. self giveMaxAmmo( gun );
  829. self iPrintln("Equipped Upgraded ^1 " +gun);
  830. }
  831. else{
  832. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  833. }
  834. }
  835. giveBowie()
  836. {
  837. if( self.score >= 2500 ){
  838. self Closed();
  839. self maps\_zombiemode_score::minus_to_player_score( 2500 );
  840. self setPerk("specialty_altmelee");
  841. self.has_altmelee = true;
  842. gun = self getCurrentWeapon();
  843. self disableOffhandWeapons();
  844. self disableWeaponCycling();
  845. weapon = "zombie_bowie_flourish";
  846. self giveWeapon(weapon);
  847. self switchToWeapon(weapon);
  848. self playSound("plr_"+self getEntityNumber()+"_vox_bowie_0");
  849. self.is_drinking = 1;
  850. self waittill_any("fake_death", "death", "player_downed", "weapon_change_complete");
  851. self takeWeapon(weapon);
  852. self switchToWeapon(gun);
  853. self enableOffhandWeapons();
  854. self enableWeaponCycling();
  855. self.is_drinking = undefined;
  856. }
  857. else{
  858. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  859. }
  860. }
  861. do_hit_markers()
  862. {
  863. self.hud_damagefeedback = newClientHudElem(self);
  864. self.hud_damagefeedback.horzAlign = "center";
  865. self.hud_damagefeedback.vertAlign = "middle";
  866. self.hud_damagefeedback.x = -12;
  867. self.hud_damagefeedback.y = -12;
  868. self.hud_damagefeedback.alpha = 0;
  869. self.hud_damagefeedback.archived = true;
  870. self.hud_damagefeedback setShader("damage_feedback", 24, 48);
  871. for(;;)
  872. {
  873. wait(0.05);
  874. zoms = getAISpeciesArray("axis", "all");
  875. for(m = 0; m < zoms.size; m++)
  876. if(!isDefined(zoms[m].hit_marker))
  877. zoms[m] thread zom_do_hit_markers();
  878. }
  879. }
  880.  
  881. zom_do_hit_markers()
  882. {
  883. self endon("death");
  884. self.hit_marker = true;
  885. for(;;)
  886. {
  887. self waittill("damage", amount, attacker);
  888. if(isPlayer(attacker))
  889. attacker maps\_damagefeedback::updateDamageFeedback();
  890. }
  891. }
  892. StratFog()
  893. {}
  894. Fog()
  895. {
  896. //self setClientDvar( "r_lightTweakSunlight", "0" );
  897. playfx( level._effect["edge_fog"], (294.433, -1165.22, 50.9094));
  898. playfx( level._effect["edge_fog"], (319.793, -1714.6, 92.2927));
  899. playfx( level._effect["edge_fog"], (288.938, -2659.81, 101.939));
  900. playfx( level._effect["edge_fog"], (-813.818, -625.947, 64.5579));
  901. playfx( level._effect["edge_fog"], (750.756, -371.866, 69.8954));
  902. self SetExpFog(256, 512, 0, 0, 0, 0);
  903. setVolFog(5000, 1000, 1000, 4500, 0, 0,0, 10);
  904. }
  905. r_Lightning()
  906. {
  907. while(1)
  908. {
  909. x = RandomFloatRange( 3.0, 25.0 );
  910. SetSunLight( 4, 4, 4.5 );
  911. SetSunLight( 1, 1, 1.5 );
  912. wait( 0.0014 );
  913. SetSunLight( 3, 3, 3.5 );
  914. SetSunLight( 2, 2, 2.5 );
  915. SetSunLight( 1.5, 1.5, 2 );
  916. wait( 0.0010 );
  917. SetSunLight( 1, 1, 1.5 );
  918. SetSunLight( 5, 5, 5.5 );
  919. wait( 0.0011 );
  920. SetSunLight( 4, 4, 4.5 );
  921. SetSunLight( 1, 1, 1.5 );
  922. wait( 0.0015 );
  923. SetSunLight( 2.5, 2.5, 3 );
  924. wait( 0.0011 );
  925. ResetSunLight();
  926. wait x;
  927. }
  928. }
  929. sLights()
  930. {
  931. tok = strTok("191.306;-2392.63;88;58.7277;-2392.63;88;191.676;-2347.37;88;58.7277;-2347.37;88;197.371;-2871.1;87;392.125;-2871.1;87;379.676;-2016.13;89;142.701;-2016.13;89;400.072;-1931.32;64;159.323;-1931.32;90;456.875;-1071.4;66;456.875;-1209.9;67;108.916;-1039.37;191;108.916;-1170.1;192;-876.048;-344.874;67;-699.122;-344.874;67;-620.874;-101.744;69;-620.874;-284.661;69;832.599;373.126;64;679.603;373.126;64;-309.911;-23.1251;69;-309.911;-164.308;69;-148.874;90.165;93;36.8359;90.165;93;-110.799;-280.874;-2;-227.639;-280.874;-2;-569.126;-811.675;67;-569.126;-910.765;67;-403.125;-1279.74;199;-403.125;-1156.98;199;500.127;-1066.93;249;500.127;-960.876;253;582.874;-2712.7;93;582.874;-2679.92;118;582.874;-2630.89;155;582.874;-2574.91;197;582.874;-2520.04;238;582.874;-2471.26;272;496.126;-2712.7;93;496.126;-2679.92;118;496.126;-2630.89;155;496.126;-2574.91;197;496.126;-2520.04;238;496.126;-2471.26;272;145;-1188;207;219;-1188;214;303;-1188;223;388;-1188;234;472;-1188;247;145;-1317;207;219;-1317;214;303;-1317;223;388;-1317;234;472;-1317;247;-867;-1143;199;-867;-1264;199;-1139;-1270;199;-1139;-1138;199;-1379;-767;199;-1246;-767;199;-1299;-1464;199;-1432;-1464;199;-1306;-1503;191;-1428;-1503;191;-1310;-1169;199;-1343;-1169;199;-1384;-1169;199;-1428;-1169;199;-1310;-1077;199;-1343;-1077;199;-1384;-1077;199;-1428;-1077;199;-505;-814;105;-456;-814;133;-505;-910;105;-456;-910;133;-454;-964;167;-454;-1013;199;682;322;64;820;322;64;792;-60;66;792;-212;64;1066;367;64;1067;321;64;1211;321;65;1039;650;70;1039;710;114;1039;760;152;1039;794;166;1039;912;167;933;650;70;933;710;114;933;760;152;933;794;166;933;912;167;933;833;167;933;880;167;1479;650;71;1479;709;111;1479;760;148;1479;795;164;1479;890;164;1479;920;164;1584;650;71;1584;709;111;1584;760;148;1584;795;164;1584;890;164;1584;920;164;326;368;64;326;227;63;-364;-1156;191;-364;-1282;191", ";");
  932. for(m = 0; m < tok.size; m+=3)
  933. playFx(level._effect["mp_light_lamp"], (int(tok[m]), int(tok[m+1]), int(tok[m+2])));
  934. }
  935.  
  936. sLightning()
  937. {
  938. for(;;)
  939. {
  940. self playLocalSound("couch_slam");
  941. earthquake(.3, 1, self.origin, 100);
  942. for(m = 0; m < 2; m++)
  943. {
  944. self setClientDvars("r_lightTweakSunColor", ".9 .9 .9", "r_lightTweakSunLight", "3");
  945. wait .1;
  946. self setClientDvars("r_lightTweakSunLight", "1.2", "r_lightTweakSunColor", "0.588235 0.788235 1 1");
  947. wait .1;
  948. }
  949. wait(randomIntRange(5, 20));
  950. }
  951. }
  952. doStratVision()
  953. {
  954. self setclientdvar("r_glow", "0");
  955. self setclientdvar("r_glowtweakradius0", "5");
  956. self setclientdvar("r_glowTweakBloomCutoff", "0.5");
  957. self setclientdvar("r_glowTweakBloomDesaturation", "0");
  958. self setclientdvar("r_glowTweakBloomIntensity0", "1");
  959. self setclientdvar("r_FilmTweakEnable", "1");
  960. self setclientdvar("r_FilmUseTweaks", "1");
  961. self setclientdvar("r_FilmTweakContrast", "1.2");
  962. self setclientdvar("r_FilmTweakBrightness", "0");
  963. self setclientdvar("r_FilmTweakDesturation", "0");
  964. self setclientdvar("r_FilmTweakInvert", "0");
  965. }
  966.  
  967. Strat_clientDvars()
  968. {
  969. player_colour[0] = "0.33 0 0.623529 0";
  970. player_colour[1] = "0.386275 0.711765 0.833333 0";
  971. player_colour[2] = "0.864706 0.692157 0.213726 0";
  972. player_colour[3] = "0.413726 0.82549 0.433333 0";
  973. self SetClientDvars( "cg_deadChatWithDead", "1", "cg_deadChatWithTeam", "1", "cg_deadHearTeamLiving", "1", "cg_deadHearAllLiving", "1", "cg_everyoneHearsEveryone", "1", "compass", "0", "hud_showStance", "0", "cg_thirdPerson", "0", "cg_fov", "80", "cg_thirdPersonAngle", "0", "ammoCounterHide", "0", "miniscoreboardhide", "0", "ui_hud_hardcore", "0", "cg_ScoresColor_Zombie", player_colour[self.entity_num], "cg_ScoresColor_Gamertag_0", player_colour[0], "cg_ScoresColor_Gamertag_" + self.entity_num, "1 1 1 0");
  974. self setClientDvar( "r_specularMap", "0" );
  975. }
  976.  
  977. giveFR(){
  978. if( self.score >= 2000 )
  979. {
  980. if( self.FR == false )
  981. {
  982. self Closed();
  983. self maps\_zombiemode_score::minus_to_player_score( 2000 );
  984. self thread givePerk("specialty_fastreload", "zombie_perk_bottle_sleight", "mx_speed_sting", "specialty_fastreload_zombies");
  985. self.FR = true;
  986. }
  987. else
  988. {
  989. self iPrintlnBold("^1Already Have Perk");
  990. }
  991. }
  992. else
  993. {
  994. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  995. }
  996. }
  997. giveQR(){
  998. if( self.score >= 2000 )
  999. {
  1000. if( self.QR == false )
  1001. {
  1002. self Closed();
  1003. self maps\_zombiemode_score::minus_to_player_score( 2000 );
  1004. self thread givePerk("specialty_quickrevive", "zombie_perk_bottle_revive", "mx_revive_sting", "specialty_quickrevive_zombies");
  1005. self.QR = true;
  1006. }
  1007. else
  1008. {
  1009. self iPrintlnBold("^1Already Have Perk");
  1010. }
  1011. }
  1012. else
  1013. {
  1014. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1015. }
  1016. }
  1017. giveJN(){
  1018. if( self.score >= 3000 )
  1019. {
  1020. if( self.JN == false )
  1021. {
  1022. self Closed();
  1023. self maps\_zombiemode_score::minus_to_player_score( 3000 );
  1024. self thread givePerk("specialty_armorvest", "zombie_perk_bottle_jugg", "mx_jugger_sting", "specialty_juggernaut_zombies");
  1025. self.JN = true;
  1026. }
  1027. else
  1028. {
  1029. self iPrintlnBold("^1Already Have Perk");
  1030. }
  1031. }
  1032. else
  1033. {
  1034. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1035. }
  1036. }
  1037. giveDT(){
  1038. if( self.score >= 2000 )
  1039. {
  1040. if( self.DT == false )
  1041. {
  1042. self Closed();
  1043. self maps\_zombiemode_score::minus_to_player_score( 2000 );
  1044. self thread givePerk("specialty_doubletap", "zombie_perk_bottle_doubletap", "mx_doubletap_sting", "specialty_doubletap_zombies");
  1045. self.DT = true;
  1046. }
  1047. else
  1048. {
  1049. self iPrintlnBold("^1Already Have Perk");
  1050. }
  1051. }
  1052. else
  1053. {
  1054. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1055. }
  1056. }
  1057. giveSU(){
  1058. if( self.score >= 2000 )
  1059. {
  1060. if( self.SU == false )
  1061. {
  1062. self Closed();
  1063. self maps\_zombiemode_score::minus_to_player_score( 2000 );
  1064. self thread givePerk("specialty_rof", "zombie_perk_bottle_doubletap", "mx_doubletap_sting", "rank_prestige10");
  1065. self setMoveSpeedScale(1.3);
  1066. self.SU = true;
  1067. }
  1068. else
  1069. {
  1070. self iPrintlnBold("^1Already Have Perk");
  1071. }
  1072. }
  1073. else
  1074. {
  1075. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1076. }
  1077. }
  1078. giveHS(){
  1079. if( self.score >= 500 )
  1080. {
  1081. self Closed();
  1082. self maps\_zombiemode_score::minus_to_player_score( 500 );
  1083. self thread doHyper();
  1084. }
  1085. else
  1086. {
  1087. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1088. }
  1089. }
  1090. doHyper(){
  1091. self endon("hyperspeed");
  1092. self Closed();
  1093. self iPrintlnBold("Hyper Speed Activated! Run!");
  1094. self setMoveSpeedScale(2.0);
  1095. bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
  1096. for(m = 20; m > 0; m--){
  1097. bunny setText(m);
  1098. wait 1;
  1099. }
  1100. self iPrintlnBold("Hyper Speed ^1Over");
  1101. bunny HudFadenDestroy(0,1);
  1102. self setMoveSpeedScale(1.0);
  1103. self notify("hyperspeed");
  1104. }
  1105. perk_2nd()
  1106. {
  1107. self endon("kill_second_chance");
  1108. if( self.score >= 100 )
  1109. {
  1110. self maps\_zombiemode_score::minus_to_player_score( 100 );
  1111. self iPrintLn("Bought Second Chance");
  1112. check = self createRectangle("BOTTOM", "BOTTOM", 10, -37, 15, 15, (1, 1, 1), "hud_checkbox_done", 2, 0);
  1113. check hudFade(1, .5);
  1114. self.surv_permaPerkCheck = check;
  1115. while( 1 )
  1116. {
  1117. p = getplayers();
  1118. for( j=0;j<p.size;j++ )
  1119. {
  1120. if( p[j] HasPerk( "specialty_quickrevive" ) )
  1121. {
  1122. p[j] waittill_any( "player_downed", "second_chance" );
  1123. p[j] GiveWeapon("ray_gun");
  1124. p[j] SwitchToWeapon("ray_gun");
  1125. p[j] iprintlnbold( "You Have A Second Chance" );
  1126. wait 5;
  1127. p[j] maps\_laststand::revive_force_revive( self );
  1128. p[j] iprintlnbold( "Now Run Like ^1Fuck" );
  1129. self.surv_permaPerkCheck destroy();
  1130. }
  1131. }
  1132. wait( 0.1 );
  1133. self notify("kill_second_chance");
  1134. }
  1135. }
  1136. else
  1137. {
  1138. //self iPrintLnBold("^1Not Enough Points");
  1139. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1140. }
  1141. }
  1142.  
  1143. doDropAmmo(){
  1144. self Closed();
  1145. self thread DropScavengerPack();
  1146. }
  1147.  
  1148. doLunarLander(){
  1149. self thread survivalLunarLanders();
  1150. }
  1151. AimBot()
  1152. {
  1153. if( self.score >= 4000 ){
  1154. if( self.AimBot == false )
  1155. {
  1156. self Closed();
  1157. self maps\_zombiemode_score::minus_to_player_score( 4000 );
  1158. self thread doAimbot();
  1159. self iPrintlnBold( "AimBot For ^230 Seconds" );
  1160. self.AimBot = true;
  1161. }
  1162. else
  1163. {
  1164. self iPrintln( "^1Already Bought AimBot" );
  1165. }
  1166. } else {
  1167. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1168. }
  1169. }
  1170. do_eyeFx()
  1171. {
  1172. self endon("kill_fx");
  1173. self.hasEyefx = true;
  1174. while(1)
  1175. {
  1176. playFxOnTag(loadFx("maps/zombie/fx_zombie_tesla_shock_eyes"), self, "J_Eyeball_LE");
  1177. wait 3;
  1178. }
  1179. self notify("kill_fx");
  1180. }
  1181. do_eyeFX1(){
  1182. playFxOnTag(loadFx("maps/zombie/fx_zombie_tesla_shock_eyes"), self, "J_Eyeball_LE");
  1183. }
  1184. setZombieFX(){
  1185. self endon("end_FX");
  1186. for(;;)
  1187. {
  1188. zombies = getaiarray("axis");
  1189. for ( i = 0; i < zombies.size; i++ )
  1190. {
  1191. zombies[i] thread do_eyeFX();
  1192. //zombies[i] playFxOnTag(loadFx("maps/zombie/fx_zombie_tesla_shock_eyes"), self, "J_Eyeball_LE");
  1193. //wait .1;
  1194. wait 3;
  1195. }
  1196. wait .1;
  1197. }
  1198. }
  1199. setVision(vision, time)
  1200. {
  1201. timer = 1.5;
  1202. if(isDefined(time))
  1203. timer = time;
  1204. if(vision == "default")
  1205. {
  1206. if(getMap() == "nzp") self visionSetNaked("zombie", timer);
  1207. if(getMap() == "nza") self visionSetNaked("zombie_asylum", timer);
  1208. if(getMap() == "nzs") self visionSetNaked("zombie_sumpf", timer);
  1209. if(getMap() == "nzf") self visionSetNaked("zombie_factory", timer);
  1210. }
  1211. else
  1212. self visionSetNaked(vision, timer);
  1213. }
  1214. doWrath(){if( self.score >= 3000 ){ self Closed();self maps\_zombiemode_score::minus_to_player_score( 3000 );self thread Wrath("zombie_mainframe_link_all");} else { self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0"); }}
  1215. Wrath(z)
  1216. {
  1217. self iprintln("melee to activate; laggy as shit");
  1218. self endon("OSO");
  1219. players=get_players();
  1220. marker = spawnSM(self lookPos(), "tag_origin", (-90, 0, 0));
  1221. for(m = 0; m < 10; m++)
  1222. playFxOnTag(loadFx("maps/mp_maps/fx_mp_light_lamp"), marker, "tag_origin");
  1223. for(;;)
  1224. {
  1225. marker moveTo(self lookPos(), .1);
  1226. if(self MeleeButtonPressed())
  1227. {
  1228. forward = self getTagOrigin("j_head");
  1229. end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
  1230. Location = BulletTrace( forward, end, 0, self )[ "position" ];
  1231. self.wrath = Location;
  1232. Earthquake( 0.6, 9, self.wrath, 1000 );
  1233. self thread hurtzoms();
  1234. marker delete();
  1235. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1236. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1237. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1238. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1239. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1240. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1241. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1242. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1243. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1244. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1245. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1246. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1247. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1248. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1249. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1250. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1251. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1252. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1253. self setClientDvar( "timescale", "0.9" );
  1254. wait 0.1;
  1255. self setClientDvar( "timescale", "0.8" );
  1256. wait 0.1;
  1257. self setClientDvar( "timescale", "0.7" );
  1258. wait 0.1;
  1259. self setClientDvar( "timescale", "0.6" );
  1260. wait 0.2;
  1261. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1262. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1263. playfx(level._effect["lightning_dog_spawn"], self.wrath);
  1264. playfx(level._effect["rise_burst"], self.wrath);
  1265. playfx(level._effect["rise_billow"], self.wrath);
  1266. playfx(level._effect["rise_dust"], self.wrath);
  1267. playfx( level._effect["mine_explosion"], self.wrath);
  1268. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1269. self setClientDvar( "timescale", "0.5" );
  1270. wait 0.4;
  1271. self setClientDvar( "timescale", "0.4" );
  1272. wait 0.5;
  1273. self setClientDvar( "timescale", "0.3" );
  1274. wait 0.7;
  1275. self setClientDvar( "timescale", "0.2" );
  1276. wait 0.8;
  1277. self setClientDvar( "timescale", "1" );
  1278. Earthquake( 2, 2, self.wrath, 2500 );
  1279. playfx(level._effect[z], self.wrath);
  1280. playfx(level._effect[z], self.wrath+(0,0,80));
  1281. playfx(level._effect[z], self.wrath+(0,0,160));
  1282. playfx( level._effect["mine_explosion"], self.wrath);
  1283. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1284. Earthquake( 1.8, 1, self.wrath, 2500 );
  1285. playfx(loadfx(z), self.wrath+(0,0,240));
  1286. playfx(level._effect["rise_burst"], self.wrath);
  1287. playfx(level._effect["rise_billow"], self.wrath);
  1288. playfx(level._effect["rise_dust"], self.wrath);
  1289. playfx( level._effect["mine_explosion"], self.wrath);
  1290. Earthquake( 2, 2, self.wrath, 2500 );
  1291. playfx(level._effect[z], self.wrath+(0,0,320));
  1292. playfx(level._effect["mine_explosion"], self.wrath);
  1293. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1294. Earthquake( 1.8, 5, self.wrath, 2500 );
  1295. playfx(level._effect[z], self.wrath+(0,0,400));
  1296. playfx(level._effect[z], self.wrath+(0,0,480));
  1297. playfx(level._effect[z], self.wrath+(0,0,560));
  1298. playfx(level._effect[z], self.wrath+(0,0,640));
  1299. playfx(level._effect["rise_burst"], self.wrath);
  1300. playfx(level._effect["rise_billow"], self.wrath);
  1301. playfx(level._effect["rise_dust"], self.wrath);
  1302. playfx( level._effect["mine_explosion"], self.wrath);
  1303. Earthquake( 2, 2, self.wrath, 2500 );
  1304. playfx(level._effect[z], self.wrath+(0,0,720));
  1305. playfx(level._effect[z], self.wrath+(0,0,800));
  1306. playfx(level._effect[z], self.wrath+(0,0,880));
  1307. playfx(level._effect[z], self.wrath+(0,0,960));
  1308. playfx( level._effect["mine_explosion"], self.wrath);
  1309. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1310. Earthquake( 1.8, 2, self.wrath, 2500 );
  1311. playfx(loadfx(z), self.wrath+(0,0,1040));
  1312. self thread hurtzomsall();
  1313. wait 2.5;
  1314. playfx(level._effect[z], self.wrath);
  1315. playfx(level._effect[z], self.wrath+(0,0,80));
  1316. playfx(level._effect[z], self.wrath+(0,0,160));
  1317. playfx(level._effect["rise_burst"], self.wrath);
  1318. playfx(level._effect["rise_billow"], self.wrath);
  1319. playfx(level._effect["rise_dust"], self.wrath);
  1320. playfx( level._effect["mine_explosion"], self.wrath);
  1321. Earthquake( 2, 2, self.wrath, 2500 );
  1322. playfx(level._effect[z], self.wrath+(0,0,240));
  1323. playfx(level._effect[z], self.wrath+(0,0,320));
  1324. playfx(level._effect[z], self.wrath+(0,0,400));
  1325. playfx(level._effect[z], self.wrath+(0,0,480));
  1326. playfx( level._effect["mine_explosion"], self.wrath);
  1327. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1328. Earthquake( 1.8, 2, self.wrath, 2500 );
  1329. playfx(level._effect[z], self.wrath+(0,0,560));
  1330. playfx(level._effect[z], self.wrath+(0,0,640));
  1331. playfx(level._effect[z], self.wrath+(0,0,720));
  1332. playfx(level._effect[z], self.wrath+(0,0,800));
  1333. playfx(level._effect["rise_burst"], self.wrath);
  1334. playfx(level._effect["rise_billow"], self.wrath);
  1335. playfx(level._effect["rise_dust"], self.wrath);
  1336. playfx( level._effect["mine_explosion"], self.wrath);
  1337. Earthquake( 2, 2, self.wrath, 2500 );
  1338. playfx(level._effect[z], self.wrath+(0,0,880));
  1339. playfx(level._effect[z], self.wrath+(0,0,960));
  1340. playfx(level._effect[z], self.wrath+(0,0,1040));
  1341. self thread hurtzomsall();
  1342. wait 2.5;
  1343. playfx(level._effect[z], self.wrath);
  1344. playfx(level._effect[z], self.wrath+(0,0,80));
  1345. playfx(level._effect[z], self.wrath+(0,0,160));
  1346. playfx(level._effect[z], self.wrath+(0,0,240));
  1347. playfx(level._effect["rise_burst"], self.wrath);
  1348. playfx(level._effect["rise_billow"], self.wrath);
  1349. playfx(level._effect["rise_dust"], self.wrath);
  1350. playfx( level._effect["mine_explosion"], self.wrath);
  1351. Earthquake( 2, 2, self.wrath, 2500 );
  1352. playfx(level._effect[z], self.wrath+(0,0,320));
  1353. playfx(level._effect[z], self.wrath+(0,0,400));
  1354. playfx(level._effect[z], self.wrath+(0,0,480));
  1355. playfx( level._effect["mine_explosion"], self.wrath);
  1356. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1357. Earthquake( 1.8, 2, self.wrath, 2500 );
  1358. playfx(level._effect[z], self.wrath+(0,0,560));
  1359. playfx(level._effect[z], self.wrath+(0,0,640));
  1360. playfx(level._effect[z], self.wrath+(0,0,720));
  1361. playfx(level._effect["rise_burst"], self.wrath);
  1362. playfx(level._effect["rise_billow"], self.wrath);
  1363. playfx(level._effect["rise_dust"], self.wrath);
  1364. playfx( level._effect["mine_explosion"], self.wrath);
  1365. Earthquake( 2, 2, self.wrath, 2500 );
  1366. playfx(level._effect[z], self.wrath+(0,0,800));
  1367. playfx(level._effect[z], self.wrath+(0,0,880));
  1368. playfx( level._effect["mine_explosion"], self.wrath);
  1369. playfx(level._effect["fx_mortarExp_dirt"], self.wrath);
  1370. Earthquake( 1.8, 2, self.wrath, 2500 );
  1371. playfx(level._effect[z], self.wrath+(0,0,960));
  1372. playfx(level._effect[z], self.wrath+(0,0,1040));
  1373. wait 2.5;
  1374. self notify("OSO");
  1375. }
  1376. wait .5;
  1377. }
  1378. }
  1379. hurtzomsall()
  1380. {
  1381. self endon("OSO");
  1382. zombies = GetAiSpeciesArray( "axis", "all" );
  1383. while(1)
  1384. {
  1385. for (i=0;i<zombies.size;i++)
  1386. {
  1387. zombies[i] dodamage(zombies[i].health + 999999999, zombies[i].origin);
  1388. wait .1;
  1389. }
  1390. }
  1391. }
  1392.  
  1393. hurtzoms()
  1394. {
  1395. }
  1396. vector_scal(vec, scale)
  1397. {
  1398. vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
  1399. return vec;
  1400. }
  1401. initMortarStrike()
  1402. {
  1403. if( self.score >= 3000 ){
  1404. self maps\_zombiemode_score::minus_to_player_score( 3000 );
  1405. if(getMap() == "nzp") self mortarStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "m7_launcher");
  1406. if(getMap() == "nza") self mortarStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "colt_dirty_harry");
  1407. if(getMap() == "nzs") self mortarStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "m7_launcher_zombie");
  1408. if(getMap() == "nzf") self mortarStrike(loadFx("maps/mp_maps/fx_mp_light_lamp"), "m7_launcher_zombie");
  1409. }else{
  1410. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1411. }
  1412. }
  1413. initArtilleryStrike()
  1414. {
  1415. if( self.score >= 3000 ){
  1416. self maps\_zombiemode_score::minus_to_player_score( 3000 );
  1417. if(getMap() == "nzf") self artilleryStrike(loadFx("maps/mp_maps/fx_mp_light_lamp"), "panzerschrek_zombie");
  1418. if(getMap() == "nzs") self artilleryStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "panzerschrek_zombie");
  1419. else self artilleryStrike(loadFx("env/light/fx_ray_ceiling_amber_dim_sm"), "panzerschrek");
  1420. }else{
  1421. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1422. }
  1423. }
  1424. crawlerArms(){
  1425. if( self.score >= 3000 ){
  1426. if( self.berz == false ){
  1427. self maps\_zombiemode_score::minus_to_player_score( 3000 );
  1428. self thread crawlerArmz();
  1429. self.berz = true;
  1430. } else {
  1431. self Closed();
  1432. }
  1433. }else{
  1434. self playSound("plr_"+self getEntityNumber()+"_vox_nomoney_perk_0");
  1435. }
  1436. }
  1437. crawlerArmz()
  1438. {
  1439. self endon("berserker_done");
  1440. self Closed();
  1441. self ViewKick( 127, self.origin );
  1442. wait 1;
  1443. self ViewKick( 127, self.origin );
  1444. wait 1;
  1445. self ViewKick( 127, self.origin );
  1446. self.bunny = self getCurrentWeapon();
  1447. self thread doCrawlerArms();
  1448. self enableGodMode();
  1449. self setVision("kamikaze");
  1450. self giveWeapon("zombie_melee");
  1451. self switchToWeapon("zombie_melee");
  1452. hud = self createRectangle("BOTTOM", "BOTTOM", 0, 0, 25, 25, (1, 1, 1), "specialty_instakill_zombies", 1, 1);
  1453. self iprintln("Berserker Activated");
  1454. level.zombie_vars["zombie_insta_kill"] = 1;
  1455. bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
  1456. for(m = 45; m > 0; m--){
  1457. bunny setText(m);
  1458. wait 1;
  1459. }
  1460. bunny hudFadenDestroy(0, 1);
  1461. hud hudFadenDestroy(0, 1);
  1462. self TakeWeapon( "zombie_melee" );
  1463. self SwitchToWeapon(self.bunny);
  1464. self setVision("fly_dark");
  1465. self disableGodMode();
  1466. self.berz = false;
  1467. level.zombie_vars["zombie_insta_kill"] = 0;
  1468. self notify("berserker_done");
  1469. }
  1470. doCrawlerArms()
  1471. {
  1472. self endon("berserker_done");
  1473. for(;;)
  1474. {
  1475. self waittill("action_notify_melee");
  1476. if(self getCurrentWeapon() != "zombie_melee")
  1477. continue;
  1478. trace = bulletTrace(self getEye(), self getEye()+anglesToForward(self getPlayerAngles())*50, true, self);
  1479. if(isDefined(trace["entity"].is_zombie))
  1480. trace["entity"] thread forceZombieCrawler();
  1481. }
  1482. }
  1483. SpawnFriendlyDogs(){
  1484. self endon("death");
  1485. self endon("disconnect");
  1486. self Closed();
  1487. if(self.score >= 3000){
  1488. self maps\_zombiemode_score::minus_to_player_score(3000);
  1489. self playsound("purchase");
  1490. dog_spawners = GetEntArray( "special_dog_spawner", "targetname" );
  1491. self thread TurnDogTeam();
  1492. self thread ZombieDogTrigger();
  1493. self thread setDogTarget();
  1494. maps\_zombiemode_dogs::special_dog_spawn( dog_spawners, 4 );
  1495. } else {
  1496. self iPrintln("Not enough money!");
  1497. self playsound("deny");
  1498. self thread maps\_zombiemode_perks::play_no_money_perk_dialog();
  1499. wait 0.2;
  1500. }
  1501. }
  1502. TurnDogTeam(){
  1503. self endon("death");
  1504. self endon("disocnnect");
  1505. level endon("DogKillStreakOver");
  1506. for(;;){
  1507. dogs = GetAISpeciesArray( "axis", "dog" );
  1508. for(i=0;i<dogs.size;i++){
  1509. dogs[i].team = "allies";
  1510. dogs[i].targetname = "zombie_dog";
  1511. dogs[i].animname = "zombie_dog";
  1512. dogs[i].grenadeawareness = 1;
  1513. dogs[i].ignoreSuppression = false;
  1514. dogs[i].suppressionThreshold = 0;
  1515. dogs[i].noDodgeMove = false;
  1516. dogs[i].pathenemylookahead = 1;
  1517. dogs[i].is_zombie = true;
  1518. dogs[i].isai = false;
  1519. dogs[i].ai = false;}
  1520. wait 0.1;
  1521. }
  1522. }
  1523. setDogTarget(){
  1524. level endon("DogKillStreakOver");
  1525. for(;;){
  1526. zombies = GetAISpeciesArray( "axis", "zombie" );
  1527. zombiedogs = GetAiSpeciesArray( "allies", "dog" );
  1528. for(d=0;d<zombies.size;d++){
  1529. for(i=0;i<zombiedogs.size;i++){
  1530. zombiedogs[i] setGoalPos(zombies[i].origin);
  1531. }
  1532. level waittill("zom_kill");
  1533. wait 0.05;
  1534. }
  1535. }
  1536. }
  1537. ZombieDogTrigger(){
  1538. level endon("DogKillStreakOver");
  1539. self thread MonitorDogTime(45);
  1540. for(;;){
  1541. zombies = GetAiSpeciesArray( "axis", "all" );
  1542. zombiedogs = GetAiSpeciesArray( "allies", "dog" );
  1543. for(i=0;i<zombies.size;i++){
  1544. for(d=0;d<zombiedogs.size;d++){
  1545. if((distance(zombies[i].origin, zombiedogs[d].origin) < 50) || (distance(zombiedogs[d].origin, zombies[i].origin) < 50)){
  1546. zombies[i] DoDamage(zombies[i].health*500, (0,0,0), self);
  1547. wait 0.1;
  1548. }
  1549. }
  1550. }
  1551. wait 0.1;
  1552. }
  1553. }
  1554. MonitorDogTime(time){
  1555. self endon("death");
  1556. self endon("discpnnect");
  1557. bunny = self createText("small", 1.25, "CENTER", "CENTER", 0, 70, 1, 1, "");
  1558. for(m = time; m > 0; m--){
  1559. bunny setText(m);
  1560. wait 1;
  1561. }
  1562. //wait (time);
  1563. bunny HudFadenDestroy(0,1);
  1564. self iPrintln("Dogs Over!");
  1565. level notify("DogKillStreakOver");
  1566. zombiedogs = GetAiSpeciesArray( "allies", "dog" );
  1567. for(i=0;i<zombiedogs.size;i++){
  1568. zombiedogs[i] DoDamage(zombiedogs[i].health*500, (0,0,0), self);
  1569. }
  1570. }
  1571. gerschDevice()
  1572. {
  1573. self endon("death");
  1574. self endon("disconnect");
  1575. if(isDefined(self.has_gersch))
  1576. return;
  1577. nades = 4;
  1578. txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, nades+" Thunder Nades Left");
  1579. txt thread deleteTextAfterTime(1);
  1580. self giveWeapon("stielhandgranate", 4);
  1581. self.has_gersch = true;
  1582. for(;;)
  1583. {
  1584. self waittill("grenade_fire", grenade, weapName);
  1585. if((isSubStr(weapName, "granate") || isSubStr(weapName, "frag")) && !isDefined(grenade.gersch_device))
  1586. {
  1587. grenade.gersch_device = true;
  1588. nades--;
  1589. string = nades+" Gersch Devices Left";
  1590. if(nades == 1)
  1591. string = nades+" Gersch Device Left";
  1592. txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, string);
  1593. txt thread deleteTextAfterTime(1);
  1594. grenade hide();
  1595. grenade.gersch = spawnSM(grenade.origin, "static_berlin_ger_radio", grenade.angles);
  1596. grenade.gersch linkTo(grenade);
  1597. self thread gerschDevice_init(grenade);
  1598. if(nades <= 0)
  1599. break;
  1600. }
  1601. }
  1602. self.has_gersch = undefined;
  1603. }
  1604. thunderNades()
  1605. {
  1606. self endon("death");
  1607. self endon("disconnect");
  1608. if(isDefined(self.has_thunderNades))
  1609. return;
  1610. nades = 4;
  1611. txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, nades+" Thunder Nades Left");
  1612. txt thread deleteTextAfterTime(1);
  1613. self giveWeapon("stielhandgranate", 4);
  1614. self.has_thunderNades = true;
  1615. for(;;)
  1616. {
  1617. self waittill("grenade_fire", grenade, weapName);
  1618. if((isSubStr(weapName, "granate") || isSubStr(weapName, "frag")) && !isDefined(grenade.thunder_gun))
  1619. {
  1620. grenade.thunder_gun = true;
  1621. nades--;
  1622. string = nades+" Thunder Nades Left";
  1623. if(nades == 1)
  1624. string = nades+" Thunder Nade Left";
  1625. txt = self createText("default", 1, "TOPRIGHT", "TOPRIGHT", -20, 20, 1, 1, string);
  1626. txt thread deleteTextAfterTime(1);
  1627. self thread thunderNade_init(grenade);
  1628. playFxOnTag(level._effect["tesla_bolt"], grenade, "tag_origin");
  1629. if(nades <= 0)
  1630. break;
  1631. }
  1632. }
  1633. self.has_thunderNades = undefined;
  1634. }
Advertisement
Add Comment
Please, Sign In to add comment