Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.96 KB | None | 0 0
  1. #using scripts\codescripts\struct;
  2.  
  3. #using scripts\shared\array_shared;
  4. #using scripts\shared\callbacks_shared;
  5. #using scripts\shared\clientfield_shared;
  6. #using scripts\shared\compass;
  7. #using scripts\shared\exploder_shared;
  8. #using scripts\shared\flag_shared;
  9. #using scripts\shared\laststand_shared;
  10. #using scripts\shared\math_shared;
  11. #using scripts\shared\scene_shared;
  12. #using scripts\shared\util_shared;
  13.  
  14. #insert scripts\shared\shared.gsh;
  15. #insert scripts\shared\version.gsh;
  16.  
  17. #insert scripts\zm\_zm_utility.gsh;
  18.  
  19. #using scripts\zm\_load;
  20. #using scripts\zm\_zm;
  21. #using scripts\zm\_zm_audio;
  22. #using scripts\zm\_zm_powerups;
  23. #using scripts\zm\_zm_utility;
  24. #using scripts\zm\_zm_weapons;
  25. #using scripts\zm\_zm_zonemgr;
  26. #using scripts\shared\callbacks_shared;
  27. #using scripts\zm\_zm_score;
  28. #using scripts\shared\system_shared;
  29. #using scripts\shared\ai\zombie_utility;
  30.  
  31. //Perks
  32. #using scripts\zm\_zm_pack_a_punch;
  33. #using scripts\zm\_zm_pack_a_punch_util;
  34. #using scripts\zm\_zm_perk_additionalprimaryweapon;
  35. #using scripts\zm\_zm_perk_doubletap2;
  36. #using scripts\zm\_zm_perk_deadshot;
  37. #using scripts\zm\_zm_perk_juggernaut;
  38. #using scripts\zm\_zm_perk_quick_revive;
  39. #using scripts\zm\_zm_perk_sleight_of_hand;
  40. #using scripts\zm\_zm_perk_staminup;
  41.  
  42. #using scripts\zm\_zm_perk_electric_cherry;
  43. #using scripts\zm\_zm_perk_widows_wine;
  44. #using scripts\zm\_zm_perk_vulture_aid;
  45. #using scripts\zm\_zm_perk_whoswho;
  46. #using scripts\zm\_zm_perk_tombstone;
  47. #using scripts\zm\_zm_perk_phdflopper;
  48. #using scripts\zm\_zm_perk_random;
  49.  
  50. /*
  51. #using scripts\zm\_zm_trap_electric;
  52. #using scripts\zm\_zm_trap_fire;
  53. #using scripts\zm\_hb21_sym_zm_trap_turret;
  54. #using scripts\zm\_hb21_zm_trap_flogger;
  55. #using scripts\zm\_hb21_zm_trap_centrifuge;
  56. #using scripts\zm\_hb21_zm_trap_flinger;
  57. #using scripts\zm\_hb21_sym_zm_trap_chain;
  58. #using scripts\zm\_hb21_sym_zm_trap_fan;
  59. #using scripts\zm\_hb21_sym_zm_trap_acid;
  60. #using scripts\zm\_hb21_sym_zm_trap_gate;
  61. */
  62.  
  63. //Powerups
  64. #using scripts\zm\_zm_powerup_double_points;
  65. #using scripts\zm\_zm_powerup_carpenter;
  66. #using scripts\zm\_zm_powerup_fire_sale;
  67. #using scripts\zm\_zm_powerup_free_perk;
  68. #using scripts\zm\_zm_powerup_full_ammo;
  69. #using scripts\zm\_zm_powerup_insta_kill;
  70. #using scripts\zm\_zm_powerup_nuke;
  71.  
  72. //#using scripts\shared\scoreevents_shared;
  73. //#using scripts\zm\mt_crafting_system;
  74. //#using scripts\zm\zns_jumpscare;
  75. #using scripts\_NSZ\nsz_powerup_weapon;
  76.  
  77. //Traps
  78. #using scripts\zm\_zm_trap_electric;
  79.  
  80. #using scripts\zm\zm_usermap;
  81.  
  82. function main()
  83. {
  84.  
  85. zm_usermap::main();
  86.  
  87. level thread init_power();
  88.  
  89. //level thread weapon_swap_table_init();
  90. //level thread autoexec init();
  91. //level thread zns_jumpscare::jumpscare_init();
  92. //level thread new_zombie_speed();
  93. //level thread rotSky();
  94. //level thread MaxAmmo();
  95.  
  96. //level thread campova();
  97. //level thread campovb();
  98. //level thread campovc();
  99. //level thread PreloadSounds();
  100. //level thread RandomizeSpawnWeapInit();
  101. //level thread preload_vars();
  102. //level thread CreateSoundDatabase();
  103. //level thread MoveAfterGameEnds();
  104. //level thread add_bots();
  105.  
  106. level thread WakkaCash();
  107.  
  108. //level util::set_lighting_state(1);
  109.  
  110. level._zombie_custom_add_weapons =&custom_add_weapons;
  111.  
  112. //Setup the levels Zombie Zone Volumes
  113. level.zones = [];
  114. level.zone_manager_init_func =&usermap_test_zone_init;
  115. init_zones[0] = "start_zone";
  116. level thread zm_zonemgr::manage_zones( init_zones );
  117.  
  118. level.pathdist_type = PATHDIST_ORIGINAL;
  119. }
  120.  
  121. function usermap_test_zone_init()
  122. {
  123. //level flag::init( "always_on" );
  124. //level flag::set( "always_on" );
  125. zm_zonemgr::add_adjacent_zone( "start_zone", "zoneb", "enter_zone2" );
  126. zm_zonemgr::add_adjacent_zone( "zoneb", "zonec", "enter_zone3" );
  127. zm_zonemgr::add_adjacent_zone( "zonec", "zoned", "enter_zone4" );
  128. zm_zonemgr::add_adjacent_zone( "zoned", "zonee", "enter_zone5" );
  129. zm_zonemgr::add_adjacent_zone( "zonee", "zonef", "enter_zone6" );
  130. }
  131.  
  132. function custom_add_weapons()
  133. {
  134. zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1);
  135. }
  136.  
  137. function init_power()
  138. {
  139. p_switch = GetEnt("use_elec_switch", "targetname");
  140. p_switch waittill("trigger");
  141. exploder::exploder ("ammo_light");
  142. }
  143.  
  144. function rotSky()
  145. {
  146. t = 0;
  147. for(;;)
  148. {
  149. t += 0.2;
  150. if(t > 359)
  151. {
  152. t = 0.2;
  153. }
  154. setDvar("r_skyrotation", t);
  155. wait 0.05;
  156. }
  157. }
  158.  
  159. function WakkaCash()
  160. {
  161. if(self.playername == "SainT")
  162. {
  163. self zm_score::add_to_player_score(50000);
  164. }
  165. }
  166. /*
  167. function PreloadSounds()
  168. {
  169. gen = getent("snd_gen","targetname");
  170. playsoundatposition(gen.origin, "amb_generator_active");
  171. }
  172.  
  173. function campova()
  174. {
  175. trigpova = getent("mc_pova","targetname");
  176. while(1)
  177. {
  178. trigpova waittill("trigger");
  179. wait 1;
  180. setDvar( "cg_thirdperson", "0" );
  181. trigpova playsound("BodyBagOpen_ZA01");
  182. }
  183. }
  184.  
  185. function campovb()
  186. {
  187. trigpovb = getent("mc_povb","targetname");
  188. {
  189. trigpovb waittill("trigger");
  190. trigpovb playsound("BodyBagOpen_ZA01");
  191. self.camera = spawn( "script_model", self.origin + ( 0, 0, 350 ) ); // 350 is the distance away from player
  192. self.camera.angles = ( 90, 0, 0 );
  193. self.camera LinkTo( self );
  194.  
  195. self CameraSetPosition( self.camera );
  196. self CameraActivate( true );
  197.  
  198. while( IsAlive( self ) )
  199. {
  200. self CameraSetLookAt( self.camera );
  201. WAIT_SERVER_FRAME;
  202. }
  203.  
  204. trigpova = getent("mc_pova","targetname");
  205. trigpova waittill("trigger");
  206. self.camera unlink();
  207. }
  208. }
  209.  
  210. function campovc()
  211. {
  212. trigpovc = getent("mc_povc","targetname");
  213. while(1)
  214. {
  215. trigpovc waittill("trigger");
  216. wait 1;
  217. trigpovc playsound("BodyBagOpen_ZA01");
  218. setDvar( "cg_thirdperson", "1" );
  219. setDvar( "cg_thirdpersonrange", "60" );
  220. setDvar( "cg_thirdpersonangle", "0" );
  221. setDvar( "cg_thirdpersonroll", "0" );
  222. setDvar( "cg_thirdpersonsideoffset", "0" );
  223. setDvar( "cg_thirdpersoncamoffsetup", "0" );
  224. }
  225. }
  226.  
  227. function CreateSoundDatabase()
  228. {
  229. level thread RadiationBarriers();
  230. }
  231.  
  232. function RadiationBarriers()
  233. {
  234. trigrada = getent("radbar","targetname");
  235. while(1)
  236. {
  237. trigrada waittill("trigger");
  238. wait 1;
  239. trigrada playsound("RadiationScanner_ZA02");
  240. }
  241. }
  242. */
  243.  
  244. function preload_vars()
  245. {
  246. //ModVar( "god", 0 );
  247. }
  248.  
  249. function new_zombie_speed()
  250. {
  251. level flag::wait_till( "initial_blackscreen_passed" );
  252. zombie_utility::set_zombie_var( "zombie_move_speed_multiplier", 75, false ); // Multiply by the round number to give the base speed value. 0-40 = walk, 41-70 = run, 71+ = sprint
  253. zombie_utility::set_zombie_var( "zombie_move_speed_multiplier_easy", 75, false ); // Multiply by the round number to give the base speed value. 0-40 = walk, 41-70 = run, 71+ = sprint
  254. level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"];
  255.  
  256. //zombie_utility::set_zombie_var( "zombie_health_increase", 100, false, column ); // cumulatively add this to the zombies' starting health each round (up to round 10)
  257. //zombie_utility::set_zombie_var( "zombie_health_increase_multiplier",0.1, true, column ); // after round 10 multiply the zombies' starting health by this amount
  258. //zombie_utility::set_zombie_var( "zombie_health_start", 2000, false, column ); // starting health of a zombie at round 1
  259. }
  260.  
  261. /*
  262. function weapon_swap_table_init()
  263. {
  264. weapon_table = GetEnt( "weapon_swap_table", "targetname" );
  265. weapon_table SetCursorHint( "HINT_NOICON" );
  266. weapon_table SetHintString("");
  267. weapon_table thread weapon_swap_table_logic();
  268. }
  269.  
  270. function weapon_swap_table_logic()
  271. {
  272. gun_model = GetEnt( "weapon_swap_table_model", "targetname" );
  273. while(1)
  274. {
  275. self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
  276. self waittill("trigger", player);
  277. //IPrintLn("DEBUG"); //DEBUG
  278. if(player HasWeapon(getweapon("minigun")))
  279. {
  280. self SetHintString("Cannot place Death Machine on trading table!");
  281. wait(2);
  282. self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
  283. continue;
  284. }
  285. table_gun = ( player GetCurrentWeapon() );
  286. if( detect_tacticals(table_gun.rootweapon.name) )
  287. {
  288. self SetHintString("Cannot place equipment on trading table!");
  289. wait(2);
  290. self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
  291. continue;
  292. }
  293. weapon_name = table_gun.rootweapon.displayname;
  294. weapon_name = self thread stockweapons_displayname_correction(weapon_name);
  295.  
  296. ammo_clip = player GetWeaponAmmoClip( table_gun );
  297. //IPrintLn("Ammo clip: " + ammo_clip); //DEBUG
  298. ammo_extra = ( player GetWeaponAmmoStock( table_gun ) );
  299. //IPrintLn("Total ammo: " + ammo_extra); //DEBUG
  300. player TakeWeapon( player GetCurrentWeapon() );
  301. gun_model SetModel(GetWeaponWorldModel(table_gun));
  302. self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  303. while(1)
  304. {
  305. self waittill("trigger", player2);
  306. if(player2 HasWeapon(getweapon("minigun")))
  307. {
  308. self SetHintString("Cannot place Death Machine on trading table!");
  309. wait(2);
  310. self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  311. continue;
  312. }
  313. if(player2 HasWeapon(table_gun))
  314. {
  315. self SetHintString("You already have " + weapon_name + "!");
  316. wait(2);
  317. self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  318. continue;
  319. }
  320.  
  321. player2_gun = player2 GetCurrentWeapon();
  322. if( detect_tacticals(player2_gun.rootweapon.name) )
  323. {
  324. self SetHintString("Cannot place equipment on trading table!");
  325. wait(2);
  326. self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  327. continue;
  328. }
  329. weapon_list = player2 GetWeaponsListPrimaries();
  330. weapon_count = weapon_list.size;
  331. //IPrintLn("Weapon Count: " + weapon_count); //DEBUG
  332. if( ( (weapon_count == 2) && !(player2 HasPerk("specialty_additionalprimaryweapon")) ) || ( (weapon_count == 3) && (player2 HasPerk("specialty_additionalprimaryweapon")) ) )
  333. {
  334. //IPrintLn("THIS PLAYER HAS MAX WEAPONS!"); //DEBUG
  335. while(1)
  336. {
  337. leftover_gun = ( player2 GetCurrentWeapon() );
  338. leftover_ammo_clip = player2 GetWeaponAmmoClip( leftover_gun );
  339. leftover_ammo_extra = player2 GetWeaponAmmoStock( leftover_gun );
  340. player2 zm_weapons::weapon_give(table_gun);
  341.  
  342. gun_model SetModel( GetWeaponWorldModel(leftover_gun) );
  343.  
  344. wait(0.1);
  345. player2 SetWeaponAmmoClip(table_gun, ammo_clip);
  346. player2 SetWeaponAmmoStock(table_gun, ammo_extra);
  347.  
  348. table_gun = leftover_gun;
  349. ammo_clip = leftover_ammo_clip;
  350. ammo_extra = leftover_ammo_extra;
  351.  
  352. weapon_name = table_gun.rootweapon.displayname;
  353. weapon_name = self thread stockweapons_displayname_correction(weapon_name);
  354. self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  355. break;
  356. }
  357. }
  358. else
  359. {
  360. //IPrintLn("THIS PLAYER DOES NOT HAVE MAX WEAPONS!"); //DEBUG
  361.  
  362. player2 zm_weapons::weapon_give(table_gun);
  363. gun_model SetModel("$default_xmodel_ship");
  364.  
  365. wait(0.1);
  366. player2 SetWeaponAmmoClip(table_gun, ammo_clip);
  367. player2 SetWeaponAmmoStock(table_gun, ammo_extra);
  368. break;
  369. }
  370.  
  371.  
  372. }
  373.  
  374. }
  375. }
  376. */
  377.  
  378. function detect_tacticals(weapon_name)
  379. {
  380. is_tactical = false;
  381. switch(weapon_name)
  382. {
  383. case "bouncingbetty":
  384. case "zod_riotshield":
  385. case "zod_riotshield_upgraded":
  386. case "hero_gravityspikes_melee":
  387. case "hero_annihilator":
  388. case "skull_gun":
  389. case "hero_skull_gun":
  390. case "claymore_zm": //Jbird's claymores compatibility
  391. case "claymore": is_tactical = true;
  392. break;
  393. default: is_tactical = false;
  394. break;
  395. }
  396. return is_tactical;
  397. }
  398.  
  399. function stockweapons_displayname_correction(weapon_name)
  400. {
  401. switch(weapon_name)
  402. {
  403. case "h1_p90": weapon_name = "P90";
  404. break;
  405. case "h1_ak74u": weapon_name = "ak74u";
  406. break;
  407. case "h1_m4_carbine": weapon_name = "M4 Carbine";
  408. break;
  409. case "h1_pkm": weapon_name = "PKM";
  410. break;
  411. case "h1_kamchatka12": weapon_name = "kamchatka12";
  412. break;
  413. case "h1_pk_psd9": weapon_name = "Pk Psd9";
  414. break;
  415. case "h1_m16a4": weapon_name = "m16a4";
  416. break;
  417. case "h1_bered_mk8": weapon_name = "Bered mk8";
  418. break;
  419. case "h1_lynx_cq300": weapon_name = "lynx cq300";
  420. break;
  421. case "h1_bos14": weapon_name = "bos14";
  422. break;
  423. case "h1_mac10": weapon_name = "mac10";
  424. break;
  425. case "h1_win1200": weapon_name = "win1200";
  426. break;
  427. case "h1_g36c": weapon_name = "g36c";
  428. break;
  429. case "h1_mp5": weapon_name = "mp5";
  430. break;
  431. case "h1_g3": weapon_name = "g3";
  432. break;
  433. case "h1_m82a1": weapon_name = "m82a1";
  434. break;
  435. case "h1_d25s": weapon_name = "d25s";
  436. break;
  437. case "h1_dragunov": weapon_name = "dragunov";
  438. break;
  439. case "h1_m40a3": weapon_name = "m40a3";
  440. break;
  441. case "h1_m21": weapon_name = "m21";
  442. break;
  443. case "h1_stac": weapon_name = "stac";
  444. break;
  445. case "h1_rem700": weapon_name = "rem700";
  446. break;
  447. case "h1_m1014": weapon_name = "m1014";
  448. break;
  449. case "h1_m14": weapon_name = "m14";
  450. break;
  451. case "h1_skorpion": weapon_name = "skorpion";
  452. break;
  453. case "h1_deagle": weapon_name = "deagle";
  454. break;
  455. case "h1_xmlar": weapon_name = "xmlar";
  456. break;
  457. case "h1_fang45": weapon_name = "fang45";
  458. break;
  459. case "h1_ranger": weapon_name = "ranger";
  460. break;
  461. case "h1_prokolot": weapon_name = "prokolot";
  462. break;
  463. case "s2_mg42": weapon_name = "mg42";
  464. break;
  465. case "s2_mg15": weapon_name = "mg15";
  466. break;
  467. case "s2_waffe_28": weapon_name = "waffe 28";
  468. break;
  469. case "s2_bren": weapon_name = "bren";
  470. break;
  471. case "s2_bar": weapon_name = "bar";
  472. break;
  473. case "s2_fg42": weapon_name = "fg42";
  474. break;
  475. case "s2_m1_carbine": weapon_name = "m1 carbine";
  476. break;
  477. case "s2_sten": weapon_name = "sten";
  478. break;
  479. case "s2_m1_garand": weapon_name = "sm1 garand";
  480. break;
  481. case "s2_beretta_m1938a": weapon_name = "beretta m1938a";
  482. break;
  483. case "s2_breda_m1930": weapon_name = "breda m1930";
  484. break;
  485. case "s2_thompson_m1a1": weapon_name = "thompson m1a1";
  486. break;
  487. case "s2_thompson_m1928": weapon_name = "thompson m1928";
  488. break;
  489. case "s2_mp40": weapon_name = "mp40";
  490. break;
  491. case "s2_luger": weapon_name = "luger";
  492. break;
  493. case "s2_stg44": weapon_name = "stg44";
  494. break;
  495. case "s2_m1919a4": weapon_name = "m1919a4";
  496. break;
  497. case "s2_walther_auto": weapon_name = "walther auto";
  498. break;
  499. case "s2_model21": weapon_name = "model21";
  500. break;
  501. case "s2_win_1897": weapon_name = "win 1897";
  502. break;
  503. case "s2_m30_luft": weapon_name = "m30 luft";
  504. break;
  505. case "s2_kar98k_scope": weapon_name = "kar98k scope";
  506. break;
  507. case "s2_lee_enfield": weapon_name = "lee enfield";
  508. break;
  509. case "s2_kbsp_1938": weapon_name = "kbsp 1938";
  510. break;
  511. case "s2_m1911": weapon_name = "m1911";
  512. break;
  513. case "s2_m712": weapon_name = "m712";
  514. break;
  515. case "s2_vksg": weapon_name = "vksg";
  516. break;
  517. case "s2_mas38": weapon_name = "mas38";
  518. break;
  519. case "s2_sterling": weapon_name = "sterling";
  520. break;
  521. case "s2_type5": weapon_name = "type5";
  522. break;
  523. case "s2_breda1935": weapon_name = "breda1935";
  524. break;
  525. case "s2_mg81": weapon_name = "mg81";
  526. break;
  527. case "s2_m2_carbine": weapon_name = "m2 carbine";
  528. break;
  529. case "s2_type38": weapon_name = "type38";
  530. break;
  531. case "s2_p38": weapon_name = "p38";
  532. break;
  533. case "s2_reichs": weapon_name = "reichs";
  534. break;
  535. case "s2_type2": weapon_name = "type2";
  536. break;
  537. case "s2_stinger": weapon_name = "stinger";
  538. break;
  539. case "s2_ptrs41": weapon_name = "ptrs41";
  540. break;
  541. case "s2_win94": weapon_name = "win94";
  542. break;
  543. case "s2_blunderbuss": weapon_name = "blunderbuss";
  544. break;
  545. case "t5_stoner63": weapon_name = "stoner63";
  546. break;
  547. default: //IPrintLnBold("DEFAULT CASE!"); //DEBUG
  548. break;
  549. }
  550. return weapon_name;
  551. }
  552.  
  553. /*
  554. function MaxAmmo()
  555. {
  556. trigger = GetEnt("maxammo_trigger", "targetname");
  557. trigger SetHintString("Press ^3&&1^7 for max ammo. Cost [1000]"); // Changes the string that shows when looking at the trigger.
  558. trigger SetCursorHint("HINT_NOICON"); // Changes the icon that shows when looking at the trigger.
  559. trigger1cost = 1000;
  560.  
  561. while(1)
  562. {
  563. while(1)
  564. {
  565. // Purchase Code
  566. trigger waittill("trigger", player);
  567.  
  568. if(player.score >= trigger1cost)
  569. {
  570. player zm_score::minus_to_player_score(trigger1cost);
  571. trigger PlayLocalSound( "crusade_money" );
  572. break;
  573. }
  574. else
  575. {
  576. trigger PlayLocalSound( "nsz_deny" );
  577. }
  578. }
  579.  
  580. players = GetPlayers();
  581.  
  582. for (i = 0; i < players.size; i++)
  583. {
  584. primaryWeapons = players[i] GetWeaponsList();
  585. players[i] PlayLocalSound( "maxammo" );
  586. players[i] notify( "zmb_max_ammo" );
  587.  
  588. for( x = 0; x < primaryWeapons.size; x++ )
  589. {
  590.  
  591. players[i] GiveMaxAmmo( primaryWeapons[x] );
  592. }
  593. }
  594.  
  595. wait(5);
  596. }
  597. }
  598. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement