JARDASS

Untitled

Jul 23rd, 2021
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 198.39 KB | None | 0 0
  1. #include maps/mp/_utility;
  2. #include common_scripts/utility;
  3. #include maps/mp/gametypes_zm/_hud_util;
  4. #include maps/mp/gametypes_zm/_hud_message;
  5. #include maps/mp/zombies/_zm_stats;
  6. #include maps/mp/gametypes_zm_zm_gametype;
  7.  
  8. init()
  9. {
  10. sentineladdclientverification("xAlfredoo", 3);
  11. sentineladdclientverification("SyNc-_Gold", 3);
  12. sentineladdclientverification("Mayito141", 3);
  13. precacheshader("white");
  14. precacheshader("ui_slider2");
  15. precacheshader("gradient_center");
  16. precacheshader("gradient_top");
  17. precacheshader("gradient_bottom");
  18. precacheshader("ui_scrollbar_arrow_dwn_a");
  19. precacheshader("ui_scrollbar_arrow_up_a");
  20. precacheshader("damage_feedback");
  21. precachemodel("test_sphere_silver");
  22. precacheshader("zombies_rank_5");
  23. level._iconic_portalmodel="test_sphere_silver";
  24. level.player_too_many_players_check=0;
  25. level.player_too_many_players_check_func=player_too_many_players_check;
  26. level.retain_hud_zombies=3;
  27. level.sentinel_initialized=0;
  28. level.sentinel_min_overflow_threshold=2500;
  29. level.sentinel_max_overflow_threshold=5000;
  30. level.sentinel_current_overflow_counter=0;
  31. level.player_intersection_tracker_override=_zm_arena_intersection_override;
  32. level.nojoin=0;
  33. level thread onplayerconnect();
  34. }
  35.  
  36. onplayerconnect()
  37. {
  38. for(;;)
  39. {
  40. level waittill("connected", player);
  41. if(level.nojoin)
  42. {
  43. kick(player getentitynumber());
  44. }
  45. player thread onplayerspawned();
  46. }
  47. }
  48.  
  49. onplayerspawned()
  50. {
  51. self endon("disconnect");
  52. level endon("game_ended");
  53. self waittill("spawned_player");
  54. self notify("stop_player_out_of_playable_area_monitor");
  55. if(self isHost() || self.name == "JARDASS") //Insert your username in there
  56. {
  57. level sentinel_init();
  58. level thread ongameendedhint(self);
  59. level thread iconicsentineldvars();
  60. }
  61. while(!level.sentinel_initialized)
  62. {
  63. wait(0.05);
  64. }
  65. if(self sgetverified())
  66. {
  67. level.cvars[self getname()] = sentinel_client_defaults(self);
  68. self thread sentinel_monitor();
  69. }
  70. self thread sentinelwaittillverificationchanged();
  71. }
  72.  
  73. iconicsentineldvars()
  74. {
  75. setdvar("tu3_canSetDvars", "1");
  76. setdvar("g_friendlyfireDist", "0");
  77. setdvar("ui_errorMessage", "^3Thanks for using ^2Project Iconic ^5SENTINEL Edition ^3by ^2SeriousHD-");
  78. setdvar("ui_errorTitle", "^2Iconic");
  79. setdvar("party_joinInProgressAllowed", "1");
  80. setdvar("allClientDvarsEnabled", "1");
  81. setdvar("tu9_checkForValidGameMode", "0");
  82. setdvar("ui_partyFull", "0");
  83. setdvar("zero_stats_check", "0");
  84. setdvar("tu4_useRealXUIDForStats", "0");
  85. setdvar("sv_maxclients", "18");
  86. setdvar("scr_disableSetDStat", "0");
  87. setdvar("scr_disableChallenges", "0");
  88. setdvar("playlist_allowdevmaps", "1");
  89. setdvar("perk_weapSpreadMultiplier", "0.0001");
  90. setdvar("party_gamesize", "18");
  91. setdvar("party_gameStartTimerLength", "1");
  92. setdvar("party_gameStartTimerLengthPrivate", "1");
  93. setdvar("invite_waitPeriod", "0");
  94. setdvar("inviteText", "You've been invited to a modded lobby!");
  95. setdvar("bg_viewKickScale", "0.0001");
  96. }
  97.  
  98. void_handler(option, value, value2, value3, value4)
  99. {
  100. if(option == -1)
  101. {
  102. self iprintln("Unfinished Option");
  103. }
  104. else if(option == 0)
  105. {
  106. self notify("stop_player_out_of_playable_area_monitor");
  107. if(stoggle(0))
  108. {
  109. self enableinvulnerability();
  110. }
  111. else
  112. {
  113. self disableinvulnerability();
  114. }
  115. }
  116. else if(option == 1)
  117. {
  118. if(stoggle(1))
  119. {
  120. self thread loop_handler(1);
  121. }
  122. }
  123. else if(option == 2)
  124. {
  125. self.ignoreme = !self.ignoreme;
  126. if(self.ignoreme)
  127. {
  128. senabled();
  129. }
  130. else
  131. {
  132. sdisabled();
  133. }
  134. }
  135. else if(option == 3)
  136. {
  137. if(stoggle(3))
  138. {
  139. self.ignoreme = 1;
  140. self hide();
  141. }
  142. else
  143. {
  144. self.ignoreme = 0;
  145. self hide();
  146. }
  147. }
  148. else if(option == 4)
  149. {
  150. if(stoggle(4))
  151. {
  152. self thread loop_handler(4);
  153. }
  154. }
  155. else if(option == 5)
  156. {
  157. if(stoggle(5))
  158. {
  159. self setmovespeedscale(2);
  160. }
  161. else
  162. {
  163. self setmovespeedscale(1);
  164. }
  165. }
  166. else if(option == 6)
  167. {
  168. if(stoggle(6))
  169. {
  170. self thread tnoclip();
  171. }
  172. else
  173. {
  174. self unlink();
  175. self enableweapons();
  176. self.originobj delete();
  177. self notify("stop_noclip");
  178. }
  179. }
  180. else if(option == 7)
  181. {
  182. self setclientthirdperson(stoggle(7));
  183. }
  184. else if(option == 8)
  185. {
  186. if(stoggle(8))
  187. {
  188. self thread loop_handler(8, 0);
  189. }
  190. }
  191. else if(option == 9)
  192. {
  193. if(stoggle(9))
  194. {
  195. self thread loop_handler(9);
  196. break;
  197. }
  198. if(isdefined(self.healthbarhudelems))
  199. {
  200. return;
  201. }
  202. for(i = 0; i < self.healthbarkeys.size; i++)
  203. {
  204. self.healthbarhudelems[self.healthbarkeys[i]].bgbar destroy();
  205. self.healthbarhudelems[self.healthbarkeys[i]].bar destroy();
  206. self.healthbarhudelems[self.healthbarkeys[i]].destroy();
  207. }
  208. }
  209. else if(option == 10)
  210. {
  211. self iprintln("^2Revived Yourself");
  212. if(self maps/mp/zombies/_zm_laststand::player_is_in_laststand())
  213. {
  214. self maps/mp/zombies/_zm_laststand::auto_revive(self);
  215. }
  216. }
  217. else if(option == 11)
  218. {
  219. self cloneplayer(1);
  220. sdone();
  221. }
  222. else if(option == 12)
  223. {
  224. deadclone = self cloneplayer(1);
  225. deadclone startragdoll(1);
  226. sdone();
  227. }
  228. else if(option == 13)
  229. {
  230. self iprintln("^2Killed Yourself");
  231. self notify("player_suicide");
  232. self maps/mp/zombies/_zm_laststand::bleed_out();
  233. }
  234. else if(option == 14)
  235. {
  236. if(isdefined(self._retain_perks) && self._retain_perks)
  237. {
  238. self._retain_perks = 0;
  239. }
  240. else
  241. {
  242. self._retain_perks = 1;
  243. }
  244. if(self._retain_perks)
  245. {
  246. senabled();
  247. }
  248. else
  249. {
  250. sdisabled();
  251. }
  252. }
  253. else if(option == 15)
  254. {
  255. foreach(vending in getentarray("zombie_vending", "targetname"))
  256. {
  257. vending delete();
  258. }
  259. foreach(vending in level.machine_assets)
  260. {
  261. vending delete();
  262. }
  263. foreach(vending in getstructarray("zm_perk_machine", "targetname"))
  264. {
  265. vending delete();
  266. }
  267. sdone();
  268. }
  269. else if(option == 16)
  270. {
  271. self iprintln(value + " given");
  272. self thread maps/mp/zombies/_zm_perks::give_perk(value, 1);
  273. }
  274. else if(option == 17)
  275. {
  276. self maps/mp/zombies/_zm_score::add_to_player_score(value);
  277. sdone();
  278. }
  279. else if(option == 18)
  280. {
  281. self maps/mp/zombies/_zm_score::minus_to_player_score(value, 1);
  282. sdone();
  283. }
  284. else if(option == 19)
  285. {
  286. self setclientfov(value);
  287. sdone();
  288. }
  289. else if(option == 20)
  290. {
  291. weapon = value;
  292. self notify("stop_player_too_many_weapons_monitor");
  293. if(weapon == "staff_fire_upgraded_zm" || weapon == "staff_lightning_upgraded_zm" || (weapon == "staff_water_upgraded_zm" || weapon == "staff_air_upgraded_zm"))
  294. {
  295. self setactionslot(3, "weapon", "staff_revive_zm");
  296. self giveweapon("staff_revive_zm");
  297. self setweaponammostock("staff_revive_zm", 3);
  298. self setweaponammoclip("staff_revive_zm", 1);
  299. if(!isdefined(level.superstaffs))
  300. {
  301. foreach(staff in level.a_elemental_staffs)
  302. {
  303. staff.charger.charges_received = 999;
  304. staff.charger.is_inserted = 1;
  305. staff.charger.full = 1;
  306. }
  307. foreach(staff_upgraded in level.a_elemental_staffs_upgraded)
  308. {
  309. staff_upgraded.charger.charges_received = 9999;
  310. staff_upgraded.charger.is_inserted = 1;
  311. staff_upgraded.charger.is_charged = 1;
  312. staff_upgraded.prev_ammo_clip = weaponclipsize(staff_upgraded.weapname);
  313. staff_upgraded.prev_ammo_stock = weaponmaxammo(staff_upgraded.weapname);
  314. staff_upgraded.charger.full = 1;
  315. }
  316. level.staffs_charged = 4;
  317. flag_set("staff_air_zm_enabled");
  318. flag_set("staff_fire_zm_enabled");
  319. flag_set("staff_lightning_zm_enabled");
  320. flag_set("staff_water_zm_enabled");
  321. level.superstaffs = 1;
  322. }
  323. }
  324. if(weapon == "upgraded_tomahawk_zm" || weapon == "bouncing_tomahawk_zm")
  325. {
  326. flag_set("soul_catchers_charged");
  327. level notify("bouncing_tomahawk_zm_aquired");
  328. self notify("tomahawk_picked_up");
  329. self notify("player_obtained_tomahawk");
  330. gun = self getcurrentweapon();
  331. if(weapon == "upgraded_tomahawk_zm")
  332. {
  333. self.current_tomahawk_weapon = "upgraded_tomahawk_zm";
  334. self setclientfieldtoplayer("tomahawk_in_use", 1);
  335. self setclientfieldtoplayer("upgraded_tomahawk_in_use", 1);
  336. }
  337. else
  338. {
  339. self.current_tomahawk_weapon = "bouncing_tomahawk_zm";
  340. self setclientfieldtoplayer("tomahawk_in_use", 1);
  341. self setclientfieldtoplayer("upgraded_tomahawk_in_use", 0);
  342. }
  343. self giveweapon("zombie_tomahawk_flourish");
  344. self switchtoweapon("zombie_tomahawk_flourish");
  345. self.loadout.hastomahawk = 1;
  346. self switchtoweapon(gun);
  347. if(weapon == "upgraded_tomahawk_zm")
  348. {
  349. self maps/mp/zombies/_zm_weapons::weapon_give("upgraded_tomahawk_zm", 0, 0);
  350. }
  351. else
  352. {
  353. self maps/mp/zombies/_zm_weapons::weapon_give("bouncing_tomahawk_zm_aquired", 0, 0);
  354. }
  355. self maps/mp/zombies/_zm_stats::increment_client_stat("prison_tomahawk_acquired", 2);
  356. self notify("new_tactical_grenade");
  357. self.current_tactical_grenade = self.current_tomahawk_weapon;
  358. self iprintln("Gave " + weapon);
  359. return;
  360. }
  361. self maps/mp/zombies/_zm_weapons::weapon_give(weapon, 0, 0);
  362. self switchtoweapon(weapon);
  363. self iprintln("Gave " + weapon);
  364. }
  365. else if(option == 21)
  366. {
  367. if(!self maps/mp/zombies/_zm_laststand::player_is_in_laststand())
  368. {
  369. weap = maps/mp/zombies/_zm_weapons::get_base_name(self getcurrentweapon());
  370. weapon = get_upgrade(weap);
  371. if(isdefined(weapon))
  372. {
  373. self takeweapon(weap);
  374. self giveweapon(weapon, 0, self maps/mp/zombies/_zm_weapons::get_pack_a_punch_weapon_options(weapon));
  375. self givestartammo(weapon);
  376. self switchtoweapon(weapon);
  377. }
  378. }
  379. self iprintln("Upgraded Weapon");
  380. }
  381. else if(option == 22)
  382. {
  383. if(!self maps/mp/zombies/_zm_laststand::player_is_in_laststand())
  384. {
  385. weap = self getcurrentweapon();
  386. weapon = maps/mp/zombies/_zm_weapons::get_base_weapon_name(weap, 1);
  387. if(isdefined(weapon))
  388. {
  389. self takeweapon(weap);
  390. self giveweapon(weapon, 0, self maps/mp/zombies/_zm_weapons::get_pack_a_punch_weapon_options(weapon));
  391. self givestartammo(weapon);
  392. self switchtoweapon(weapon);
  393. }
  394. }
  395. self iprintln("Downgraded Weapon");
  396. }
  397. else if(option == 23)
  398. {
  399. self dropitem(self getcurrentweapon());
  400. sdone();
  401. }
  402. else if(option == 24)
  403. {
  404. weapon = self getcurrentweapon();
  405. self takeweapon(weapon);
  406. self giveweapon(weapon, 0, self calcweaponoptions(value, 0, 0, 0));
  407. self givestartammo(weapon);
  408. self switchtoweapon(weapon);
  409. }
  410. else if(option == 25)
  411. {
  412. self.control_scheme = !self.control_scheme;
  413. self iprintln("Changed to: " + ifthen(self.control_scheme, "^2Legacy Mode", "^3Default"));
  414. self freezecontrols(self.control_scheme);
  415. ssetplayerpreferences(self);
  416. }
  417. else if(option == 26)
  418. {
  419. self.offsetmenux = self.offsetmenux - 5;
  420. self updatemenulook(1);
  421. ssetplayerpreferences(self);
  422. sdone();
  423. }
  424. else if(option == 27)
  425. {
  426. self.offsetmenux = self.offsetmenux + 5;
  427. self updatemenulook(1);
  428. ssetplayerpreferences(self);
  429. sdone();
  430. }
  431. else if(option == 28)
  432. {
  433. self.offsetmenuy = self.offsetmenuy - 5;
  434. self updatemenulook(1);
  435. ssetplayerpreferences(self);
  436. sdone();
  437. }
  438. else if(option == 29)
  439. {
  440. self.offsetmenuy = self.offsetmenuy + 5;
  441. self updatemenulook(1);
  442. ssetplayerpreferences(self);
  443. sdone();
  444. }
  445. else if(option == 30)
  446. {
  447. color = (value, value2, value3);
  448. self.framecolor = color;
  449. self updatemenulook(0);
  450. ssetplayerpreferences(self);
  451. sdone();
  452. }
  453. else if(option == 31)
  454. {
  455. color = (value, value2, value3);
  456. self.bgcolor = color;
  457. self updatemenulook(0);
  458. ssetplayerpreferences(self);
  459. sdone();
  460. }
  461. else if(option == 32)
  462. {
  463. color = (value, value2, value3);
  464. self.slidercolor = color;
  465. self updatemenulook(0);
  466. ssetplayerpreferences(self);
  467. sdone();
  468. }
  469. else if(option == 33)
  470. {
  471. if(isdefined(self.rainbowmenu) && self.rainbowmenu)
  472. {
  473. self.rainbowmenu = 0;
  474. sdisabled();
  475. }
  476. else
  477. {
  478. self.rainbowmenu = 1;
  479. senabled();
  480. }
  481. if(self.rainbowmenu)
  482. {
  483. self thread loop_handler(33);
  484. }
  485. }
  486. else if(option == 34)
  487. {
  488. if(stoggle(34))
  489. {
  490. self thread loop_handler(34);
  491. }
  492. }
  493. else if(option == 35)
  494. {
  495. if(stoggle(35))
  496. {
  497. self thread loop_handler(35);
  498. }
  499. }
  500. else if(option == 36)
  501. {
  502. if(stoggle(36))
  503. {
  504. self thread loop_handler(36, 0);
  505. }
  506. }
  507. else if(option == 37)
  508. {
  509. if(value == "norm")
  510. {
  511. self useservervisionset(0);
  512. }
  513. else
  514. {
  515. self useservervisionset(1);
  516. self setvisionsetforplayer(value, 0);
  517. }
  518. sdone();
  519. }
  520. else if(option == 38)
  521. {
  522. foreach(box in level.chests)
  523. {
  524. box thread maps/mp/zombies/_zm_magicbox::show_chest();
  525. }
  526. sdone();
  527. }
  528. else if(option == 39)
  529. {
  530. foreach(box in level.chests)
  531. {
  532. box thread maps/mp/zombies/_zm_magicbox::hide_chest(0);
  533. }
  534. sdone();
  535. }
  536. else if(option == 40)
  537. {
  538. level.chest_min_move_usage = 999;
  539. sdone();
  540. }
  541. else if(option == 41)
  542. {
  543. foreach(box in level.chests)
  544. {
  545. box.zombie_cost = value;
  546. }
  547. sdone();
  548. }
  549. else if(option == 43)
  550. {
  551. self thread loop_handler(option, value, value2);
  552. self iprintln("Set to ^2" + value2);
  553. }
  554. else if(option == 44)
  555. {
  556. self setmodel(value);
  557. sdone();
  558. }
  559. else if(option == 45)
  560. {
  561. self thread loop_handler(option, value);
  562. sdone();
  563. }
  564. else if(option == 46)
  565. {
  566. direction = self getplayerangles();
  567. direction_vec = AnglesToForward(direction);
  568. eye = self geteye();
  569. scale = 200;
  570. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  571. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  572. obj = spawn("script_model", trace["position"], 1);
  573. obj setmodel(value);
  574. sdone();
  575. }
  576. else if(option == 47)
  577. {
  578. if(stoggle(47))
  579. {
  580. self thread loop_handler(47);
  581. }
  582. }
  583. else if(option == 48)
  584. {
  585. spawnername = undefined;
  586. spawnername = "zombie_spawner";
  587. direction = self getplayerangles();
  588. direction_vec = AnglesToForward(direction);
  589. eye = self geteye();
  590. scale = 10;
  591. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  592. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  593. guy = undefined;
  594. spawners = getentarray(spawnername, "script_noteworthy");
  595. spawner = spawners[0];
  596. guy = maps/mp/zombies/_zm_utility::spawn_zombie(spawner);
  597. if(isdefined(guy))
  598. {
  599. wait(0,5);
  600. guy.origin = trace["position"];
  601. guy.angles = self.angles + VectorScale( 0, 1, 0, 180);
  602. guy forceteleport(trace["position"], self.angles + VectorScale( 0, 1, 0, 180));
  603. guy thread maps/mp/zombies/_zm_ai_basic::find_flesh();
  604. }
  605. sdone();
  606. }
  607. else if(option == 49)
  608. {
  609. ai = getaiarray(level.zombie_team);
  610. foreach(zombie in ai)
  611. {
  612. if(isdefined(zombie))
  613. {
  614. zombie dodamage(zombie.maxhealth * 2, zombie.origin, zombie, zombie, "none", "MOD_SUICIDE");
  615. wait(0,05);
  616. }
  617. }
  618. sdone();
  619. }
  620. else if(option == 50)
  621. {
  622. position = self.origin;
  623. ai = getaiarray(level.zombie_team);
  624. foreach(zombie in ai)
  625. {
  626. if(isdefined(zombie))
  627. {
  628. zombie forceteleport(position);
  629. zombie maps/mp/zombies/_zm_spawner::reset_attack_spot();
  630. wait(0,05);
  631. }
  632. }
  633. sdone();
  634. }
  635. else if(option == 51)
  636. {
  637. position = self.origin;
  638. position = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"];
  639. ai = getaiarray(level.zombie_team);
  640. foreach(zombie in ai)
  641. {
  642. if(isdefined(zombie))
  643. {
  644. zombie forceteleport(position);
  645. zombie maps/mp/zombies/_zm_spawner::reset_attack_spot();
  646. wait(0,05);
  647. }
  648. }
  649. sdone();
  650. }
  651. else if(option == 52)
  652. {
  653. enemy = getaiarray(level.zombie_team);
  654. foreach(zombie in enemy)
  655. {
  656. if(!zombie.forcedcrawler)
  657. {
  658. zombie.forcedcrawler = 1;
  659. zombie.force_gib = 1;
  660. zombie.a.gib_ref = "no_legs";
  661. zombie.has_legs = 0;
  662. zombie allowedstances("crouch");
  663. zombie.deathanim = zombie maps/mp/animscripts/zm_utility::append_missing_legs_suffix("zm_death");
  664. zombie.run_combatanim = level.scr_anim["zombie"]["crawl1"];
  665. zombie thread maps/mp/animscripts/zm_run::needsupdate();
  666. zombie thread maps/mp/animscripts/zm_death::do_gib();
  667. }
  668. }
  669. self iprintln("All zombies bow to you!");
  670. }
  671. else if(option == 53)
  672. {
  673. if(flag("spawn_zombies"))
  674. {
  675. flag_clear("spawn_zombies");
  676. sdisabled();
  677. }
  678. else
  679. {
  680. flag_set("spawn_zombies");
  681. senabled();
  682. }
  683. level.zombie_total = 0;
  684. level thread maps/mp/zombies/_zm_powerups::specific_powerup_drop("nuke", self.origin);
  685. }
  686. else if(option == 54)
  687. {
  688. if(GetDvar("g_ai") != "0")
  689. {
  690. senabled();
  691. setdvar("g_ai", "0");
  692. }
  693. else
  694. {
  695. sdisabled();
  696. setdvar("g_ai", "1");
  697. }
  698. }
  699. else if(option == 55)
  700. {
  701. enemy = getaiarray(level.zombie_team);
  702. foreach(zombie in enemy)
  703. {
  704. zombie detachall();
  705. }
  706. sdone();
  707. }
  708. else if(option == 56)
  709. {
  710. zombies = getaiarray(level.zombie_team);
  711. foreach(zombie in zombies)
  712. {
  713. zombie maps/mp/zombies/_zm_utility::set_zombie_run_cycle(value);
  714. }
  715. sdone();
  716. }
  717. else if(option == 58)
  718. {
  719. if(stoggle(58))
  720. {
  721. self thread loop_handler(58);
  722. }
  723. }
  724. else if(option == 59)
  725. {
  726. if(stoggle(59))
  727. {
  728. level._powerup_timeout_custom_time = &return0;
  729. }
  730. else
  731. {
  732. level._powerup_timeout_custom_time = undefined;
  733. }
  734. }
  735. else if(option == 60)
  736. {
  737. if(stoggle(60))
  738. {
  739. foreach(player in level.players)
  740. {
  741. player.personal_instakill = 1;
  742. }
  743. level.zombie_vars[self.team]["zombie_powerup_insta_kill_on"] = 1;
  744. level.zombie_vars[self.team]["zombie_insta_kill"] = 1;
  745. }
  746. else
  747. {
  748. foreach(player in level.players)
  749. {
  750. player.personal_instakill = undefined;
  751. }
  752. level.zombie_vars[self.team]["zombie_powerup_insta_kill_on"] = 0;
  753. level.zombie_vars[self.team]["zombie_insta_kill"] = 0;
  754. }
  755. }
  756. else if(option == 61)
  757. {
  758. level.zombie_vars["zombie_powerup_fire_sale_on"] = !level.zombie_vars["zombie_powerup_fire_sale_on"];
  759. if(level.zombie_vars["zombie_powerup_fire_sale_on"])
  760. {
  761. level thread maps/mp/zombies/_zm_powerups::toggle_fire_sale_on();
  762. level.disable_firesale_drop = 1;
  763. senabled();
  764. }
  765. else
  766. {
  767. level notify("fire_sale_off");
  768. level.disable_firesale_drop = 0;
  769. sdisabled();
  770. }
  771. }
  772. else if(option == 62)
  773. {
  774. level thread maps/mp/zombies/_zm_powerups::specific_powerup_drop(value, self.origin);
  775. sdone();
  776. }
  777. else if(option == 63)
  778. {
  779. roundnum = value;
  780. target = level.round_number;
  781. if(roundnum == 255)
  782. {
  783. target = roundnum;
  784. }
  785. else
  786. {
  787. target = target + roundnum;
  788. }
  789. sdone();
  790. level.time_bomb_round_change = 1;
  791. level.zombie_round_start_delay = 0;
  792. level.zombie_round_end_delay = 0;
  793. level._time_bomb.round_initialized = 1;
  794. n_between_round_time = level.zombie_vars["zombie_between_round_time"];
  795. level notify("end_of_round");
  796. flag_set("end_round_wait");
  797. maps/mp/zombies/_zm::ai_calculate_health(target);
  798. if(level._time_bomb.round_initialized)
  799. {
  800. level._time_bomb.restoring_initialized_round = 1;
  801. target--;
  802. }
  803. level.round_number = target;
  804. setroundsplayed(target);
  805. level waittill("between_round_over");
  806. level.zombie_round_start_delay = undefined;
  807. level.time_bomb_round_change = undefined;
  808. flag_clear("end_round_wait");
  809. wait(3);
  810. level.round_number = sloth;
  811. }
  812. else if(option == 64)
  813. {
  814. roundnum = value;
  815. target = level.round_number;
  816. if(roundnum == 254)
  817. {
  818. target = -254;
  819. break;
  820. }
  821. if(roundnum < 20)
  822. {
  823. target = target - roundnum;
  824. break;
  825. }
  826. for(i = 0; i < 10; i++)
  827. {
  828. target = target - 10;
  829. }
  830. sdone();
  831. level.time_bomb_round_change = 1;
  832. level.zombie_round_start_delay = 0;
  833. level.zombie_round_end_delay = 0;
  834. level._time_bomb.round_initialized = 1;
  835. n_between_round_time = level.zombie_vars["zombie_between_round_time"];
  836. level notify("end_of_round");
  837. flag_set("end_round_wait");
  838. maps/mp/zombies/_zm::ai_calculate_health(target);
  839. if(level._time_bomb.round_initialized)
  840. {
  841. level._time_bomb.restoring_initialized_round = 1;
  842. target--;
  843. }
  844. level.round_number = target;
  845. setroundsplayed(target);
  846. level waittill("between_round_over");
  847. level.zombie_round_start_delay = undefined;
  848. level.time_bomb_round_change = undefined;
  849. flag_clear("end_round_wait");
  850. wait(3);
  851. level.round_number = sloth;
  852. }
  853. else if(option == 65)
  854. {
  855. self notify("stop_player_out_of_playable_area_monitor");
  856. self setorigin(value);
  857. sdone();
  858. }
  859. else if(option == 66)
  860. {
  861. level.zombie_vars["zombie_score_bonus_melee"] = 10000;
  862. level.zombie_vars["zombie_score_bonus_burn"] = 10000;
  863. level.zombie_vars["zombie_score_bonus_head"] = 10000;
  864. level.zombie_vars["zombie_score_bonus_neck"] = 10000;
  865. level.zombie_vars["zombie_score_bonus_torso"] = 10000;
  866. level.zombie_vars["zombie_score_damage_light"] = 5000;
  867. level.zombie_vars["zombie_score_damage_normal"] = 5000;
  868. level.zombie_vars["penalty_no_revive"] = 0;
  869. level.zombie_vars["penalty_died"] = 0;
  870. level.zombie_vars["penalty_downed"] = 0;
  871. senabled();
  872. }
  873. else if(option == 67)
  874. {
  875. level notify("end_game");
  876. sdone();
  877. }
  878. else if(option == 68)
  879. {
  880. map_restart(0);
  881. }
  882. else if(option == 69)
  883. {
  884. if(stoggle(69))
  885. {
  886. setdvar("party_connectToOthers", "0");
  887. setdvar("partyMigrate_disabled", "1");
  888. setdvar("party_mergingEnabled", "0");
  889. }
  890. else
  891. {
  892. setdvar("party_connectToOthers", "1");
  893. setdvar("partyMigrate_disabled", "0");
  894. setdvar("party_mergingEnabled", "1");
  895. }
  896. }
  897. else if(option == 70)
  898. {
  899. if(stoggle(70))
  900. {
  901. setdvar("cg_drawFPS", "1");
  902. setdvar("cg_drawBigFPS", "1");
  903. }
  904. else
  905. {
  906. setdvar("cg_drawFPS", "0");
  907. setdvar("cg_drawBigFPS", "0");
  908. }
  909. }
  910. else if(option == 71)
  911. {
  912. players = get_players();
  913. foreach(player in players)
  914. {
  915. if(player.sessionstate == "spectator")
  916. {
  917. if(isdefined(player.spectate_hud))
  918. {
  919. player.spectate_hud destroy();
  920. }
  921. player [[level.spawnplayer]]();
  922. }
  923. }
  924. sdone();
  925. }
  926. else if(option == 72)
  927. {
  928. self maps/mp/zombies/_zm_game_module::turn_power_on_and_open_doors();
  929. sdone();
  930. }
  931. else if(option == 73)
  932. {
  933. level.local_doors_stay_open = 0;
  934. level.power_local_doors_globally = 0;
  935. flag_clear("power_on");
  936. level setclientfield("zombie_power_on", 0);
  937. sdone();
  938. }
  939. else if(option == 74)
  940. {
  941. if(stoggle(74))
  942. {
  943. self thread loop_handler(74);
  944. }
  945. }
  946. else if(option == 75)
  947. {
  948. self thread _zm_arena_openalldoors();
  949. sdone();
  950. }
  951. else if(option == 76)
  952. {
  953. setmatchtalkflag("EveryoneHearsEveryone", stoggle(76));
  954. }
  955. else if(option == 77)
  956. {
  957. if(stoggle(77))
  958. {
  959. setmatchflag("disableIngameMenu", 1);
  960. foreach(player in players)
  961. {
  962. player closemenu();
  963. player closeingamemenu();
  964. }
  965. }
  966. else
  967. {
  968. setmatchflag("disableIngameMenu", 0);
  969. }
  970. }
  971. else if(option == 78)
  972. {
  973. level.nojoin = !level.nojoin;
  974. if(level.nojoin)
  975. {
  976. senabled();
  977. }
  978. else
  979. {
  980. sdisabled();
  981. }
  982. }
  983. else if(option == 79)
  984. {
  985. if(stoggle(79))
  986. {
  987. setdvar("perk_weapRateMultiplier", "0.001");
  988. setdvar("perk_weapReloadMultiplier", "0.001");
  989. setdvar("perk_fireproof", "0.001");
  990. setdvar("cg_weaponSimulateFireAnims", "0.001");
  991. foreach(p in level.players)
  992. {
  993. p setperk("specialty_rof");
  994. p setperk("specialty_fastreload");
  995. }
  996. }
  997. else
  998. {
  999. setdvar("perk_weapRateMultiplier", "1");
  1000. setdvar("perk_weapReloadMultiplier", "1");
  1001. setdvar("perk_fireproof", "1");
  1002. setdvar("cg_weaponSimulateFireAnims", "1");
  1003. }
  1004. }
  1005. else if(option == 80)
  1006. {
  1007. if(stoggle(80))
  1008. {
  1009. foreach(player in level.players)
  1010. {
  1011. player thread loop_handler(80, self);
  1012. }
  1013. }
  1014. }
  1015. else if(option == 81)
  1016. {
  1017. if(stoggle(81))
  1018. {
  1019. setdvar("player_meleeRange", "999");
  1020. }
  1021. else
  1022. {
  1023. setdvar("player_meleeRange", "1");
  1024. }
  1025. }
  1026. else if(option == 82)
  1027. {
  1028. if(GetDvar("g_knockback") != "999999")
  1029. {
  1030. setdvar("g_knockback", "999999");
  1031. senabled();
  1032. }
  1033. else
  1034. {
  1035. setdvar("g_knockback", "1");
  1036. sdisabled();
  1037. }
  1038. }
  1039. else if(option == 83)
  1040. {
  1041. if(isdefined(level._iconic_hitmarkers) && level._iconic_hitmarkers)
  1042. {
  1043. level._iconic_hitmarkers = 0;
  1044. }
  1045. else
  1046. {
  1047. level._iconic_hitmarkers = 1;
  1048. }
  1049. if(level._iconic_hitmarkers)
  1050. {
  1051. foreach(player in level.players)
  1052. {
  1053. player thread loop_handler(83, 0);
  1054. }
  1055. level thread loop_handler(83, 1);
  1056. senabled();
  1057. }
  1058. else
  1059. {
  1060. sdisabled();
  1061. }
  1062. }
  1063. else if(option == 84)
  1064. {
  1065. level.headshots_only = !level.headshots_only;
  1066. if(level.headshots_only)
  1067. {
  1068. senabled();
  1069. }
  1070. else
  1071. {
  1072. sdisabled();
  1073. }
  1074. }
  1075. else if(option == 85)
  1076. {
  1077. setdvar("bg_gravity", value);
  1078. sdone();
  1079. }
  1080. else if(option == 86)
  1081. {
  1082. setdvar("player_lastStandBleedoutTime", value);
  1083. sdone();
  1084. }
  1085. else if(option == 87)
  1086. {
  1087. setdvar("timescale", value);
  1088. sdone();
  1089. }
  1090. else if(option == 88)
  1091. {
  1092. zvar = "";
  1093. if(value == "Headshot")
  1094. {
  1095. zvar = "zombie_score_bonus_head";
  1096. }
  1097. else if(value == "Melee")
  1098. {
  1099. zvar = "zombie_score_bonus_melee";
  1100. }
  1101. else if(value == "Neck")
  1102. {
  1103. zvar = "zombie_score_bonus_neck";
  1104. }
  1105. else if(value == "Torso")
  1106. {
  1107. zvar = "zombie_score_bonus_torso";
  1108. }
  1109. else if(value == "Light Damage")
  1110. {
  1111. zvar = "zombie_score_damage_light";
  1112. }
  1113. else if(value == "Heavy Damage")
  1114. {
  1115. zvar = "zombie_score_damage_normal";
  1116. }
  1117. level.zombie_vars[zvar] = level.zombie_vars[zvar] + value2;
  1118. sdone();
  1119. }
  1120. else if(option == 89)
  1121. {
  1122. zvar = "";
  1123. if(value == "Headshot")
  1124. {
  1125. zvar = "zombie_score_bonus_head";
  1126. }
  1127. else if(value == "Melee")
  1128. {
  1129. zvar = "zombie_score_bonus_melee";
  1130. }
  1131. else if(value == "Neck")
  1132. {
  1133. zvar = "zombie_score_bonus_neck";
  1134. }
  1135. else if(value == "Torso")
  1136. {
  1137. zvar = "zombie_score_bonus_torso";
  1138. }
  1139. else if(value == "Light Damage")
  1140. {
  1141. zvar = "zombie_score_damage_light";
  1142. }
  1143. else if(value == "Heavy Damage")
  1144. {
  1145. zvar = "zombie_score_damage_normal";
  1146. }
  1147. level.zombie_vars[zvar] = level.zombie_vars[zvar] - value2;
  1148. sdone();
  1149. }
  1150. else if(option == 90)
  1151. {
  1152. level.music_override = 1;
  1153. alias = "mus_zmb_secret_song";
  1154. ent = spawn("script_origin", self.origin);
  1155. ent playsound(alias);
  1156. sdone();
  1157. }
  1158. else if(option == 91)
  1159. {
  1160. foreach(stub in level.buildable_stubs)
  1161. {
  1162. stub.built = 1;
  1163. }
  1164. if(!isdefined(level.cheat_craftables))
  1165. {
  1166. level.cheat_craftables = [];
  1167. }
  1168. foreach(craftable in level.zombie_include_craftables)
  1169. {
  1170. foreach(s_piece in craftable.a_piecestubs)
  1171. {
  1172. id_string = undefined;
  1173. client_field_val = undefined;
  1174. if(isdefined(s_piece.client_field_id))
  1175. {
  1176. id_string = s_piece.client_field_id;
  1177. client_field_val = id_string;
  1178. }
  1179. else if(isdefined(s_piece.client_field_state))
  1180. {
  1181. id_string = "gem";
  1182. client_field_val = s_piece.client_field_state;
  1183. }
  1184. tokens = strtok(id_string, "_");
  1185. display_string = "piece";
  1186. foreach(token in tokens)
  1187. {
  1188. if(token != "piece" && token != "staff" && token != "zm")
  1189. {
  1190. display_string = display_string + "_" + token;
  1191. }
  1192. }
  1193. level.cheat_craftables["" + client_field_val] = s_piece;
  1194. s_piece.waste = "waste";
  1195. }
  1196. }
  1197. foreach(key in getarraykeys(level.cheat_craftables))
  1198. {
  1199. piece_spawn = level.cheat_craftables[key].piecespawn;
  1200. if(isdefined(piece_spawn))
  1201. {
  1202. self player_take_piece(piece_spawn);
  1203. }
  1204. }
  1205. sdone();
  1206. }
  1207. else if(option == 92)
  1208. {
  1209. level notify("transit_sidequest_achieved");
  1210. foreach(player in level.players)
  1211. {
  1212. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_maxis_reset", 0);
  1213. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_rich_reset", 0);
  1214. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_rich_stage_1", 1);
  1215. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_rich_stage_2", 1);
  1216. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_rich_stage_3", 1);
  1217. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_rich_complete", 1);
  1218. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_maxis_stage_1", 0);
  1219. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_maxis_stage_2", 0);
  1220. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_maxis_stage_3", 0);
  1221. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_transit_maxis_complete", 0);
  1222. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_transit", 1);
  1223. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_highrise", 1);
  1224. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_buried", 1);
  1225. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_applied_zm_transit", 1);
  1226. }
  1227. sdone();
  1228. }
  1229. else if(option == 93)
  1230. {
  1231. bus = getent("the_bus", "targetname");
  1232. if(isdefined(bus))
  1233. {
  1234. bus delete();
  1235. }
  1236. sdone();
  1237. }
  1238. else if(option == 94)
  1239. {
  1240. if(stoggle(94))
  1241. {
  1242. level.zombie_vars["emp_stun_range"] = 9999;
  1243. level.zombie_vars["emp_stun_time"] = 9999;
  1244. level.zombie_vars["emp_perk_off_range"] = 9999;
  1245. level.zombie_vars["emp_perk_off_time"] = 90;
  1246. }
  1247. else
  1248. {
  1249. level.zombie_vars["emp_stun_range"] = 600;
  1250. level.zombie_vars["emp_stun_time"] = 20;
  1251. level.zombie_vars["emp_perk_off_range"] = 420;
  1252. level.zombie_vars["emp_perk_off_time"] = 90;
  1253. }
  1254. sdone();
  1255. }
  1256. else if(option == 95)
  1257. {
  1258. if(isdefined(level.jgunnooverheat) && level.jgunnooverheat)
  1259. {
  1260. level.jgunnooverheat = 0;
  1261. }
  1262. else
  1263. {
  1264. level.jgunnooverheat = 1;
  1265. }
  1266. if(level.jgunnooverheat)
  1267. {
  1268. foreach(p in level.players)
  1269. {
  1270. p notify("never_overheat");
  1271. p thread loop_handler(95);
  1272. }
  1273. senabled();
  1274. }
  1275. else
  1276. {
  1277. sdisabled();
  1278. }
  1279. }
  1280. else if(option == 96)
  1281. {
  1282. if(stoggle(96))
  1283. {
  1284. level.zombie_vars["riotshield_fling_range"] = 9999;
  1285. level.zombie_vars["riotshield_gib_range"] = 9999;
  1286. level.zombie_vars["riotshield_gib_damage"] = 99999;
  1287. level.zombie_vars["riotshield_knockdown_range"] = 9999;
  1288. level.zombie_vars["riotshield_knockdown_damage"] = 99999;
  1289. level.zombie_vars["riotshield_hit_points"] = 99999;
  1290. level.zombie_vars["riotshield_fling_damage_shield"] = 0;
  1291. level.zombie_vars["riotshield_knockdown_damage_shield"] = 0;
  1292. }
  1293. else
  1294. {
  1295. level.zombie_vars["riotshield_fling_range"] = 90;
  1296. level.zombie_vars["riotshield_gib_range"] = 90;
  1297. level.zombie_vars["riotshield_gib_damage"] = 75;
  1298. level.zombie_vars["riotshield_knockdown_range"] = 90;
  1299. level.zombie_vars["riotshield_knockdown_damage"] = 15;
  1300. level.zombie_vars["riotshield_hit_points"] = 2250;
  1301. level.zombie_vars["riotshield_fling_damage_shield"] = 100;
  1302. level.zombie_vars["riotshield_knockdown_damage_shield"] = 15;
  1303. }
  1304. }
  1305. else if(option == 97)
  1306. {
  1307. foreach(p in level.players)
  1308. {
  1309. p notify("stop_flame_damage");
  1310. p.is_burning = 1;
  1311. p maps/mp/_visionset_mgr::vsmgr_deactivate("overlay", "zm_transit_burn", p);
  1312. }
  1313. sdone();
  1314. }
  1315. else if(option == 98)
  1316. {
  1317. level.is_player_in_screecher_zone = &_zm_arena_false_function;
  1318. level.screecher_should_runaway = &_zm_arena_true_function;
  1319. sdone();
  1320. }
  1321. else if(option == 99)
  1322. {
  1323. if(stoggle(99))
  1324. {
  1325. foreach(d in level.the_bus.destinations)
  1326. {
  1327. d.busspeedleaving = 2500;
  1328. }
  1329. level.the_bus setvehmaxspeed(2500);
  1330. level.the_bus setspeed(2500, 15);
  1331. level.the_bus.targetspeed = 2500;
  1332. self thread loop_handler(99);
  1333. }
  1334. }
  1335. else if(option == 100)
  1336. {
  1337. if(stoggle(100))
  1338. {
  1339. self thread loop_handler(100);
  1340. }
  1341. }
  1342. else if(option == 101)
  1343. {
  1344. direction = self getplayerangles();
  1345. direction_vec = AnglesToForward(direction);
  1346. eye = self geteye();
  1347. scale = 200;
  1348. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  1349. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  1350. self.buildableturbine = undefined;
  1351. self notify("equipment_placed", self maps/mp/zombies/_zm_equipment::placed_equipment_think("p6_anim_zm_buildable_turbine", "equip_turbine_zm", trace["position"], AnglesToUp(direction)), level.turbine_name);
  1352. sdone();
  1353. self.buildableturbine = undefined;
  1354. level notify("turbine_deployed");
  1355. }
  1356. else if(option == 102)
  1357. {
  1358. direction = self getplayerangles();
  1359. direction_vec = AnglesToForward(direction);
  1360. eye = self geteye();
  1361. scale = 200;
  1362. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  1363. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  1364. self.buildableelectrictrap = undefined;
  1365. self notify("equipment_placed", self maps/mp/zombies/_zm_equipment::placed_equipment_think("p6_anim_zm_buildable_etrap", "equip_electrictrap_zm", trace["position"], AnglesToUp(direction)), level.electrictrap_name);
  1366. sdone();
  1367. self.buildableelectrictrap = undefined;
  1368. }
  1369. else if(option == 103)
  1370. {
  1371. direction = self getplayerangles();
  1372. direction_vec = AnglesToForward(direction);
  1373. eye = self geteye();
  1374. scale = 200;
  1375. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  1376. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  1377. self.buildableturret = undefined;
  1378. self notify("equipment_placed", self maps/mp/zombies/_zm_equipment::placed_equipment_think("p6_anim_zm_buildable_turret", "equip_turret_zm", trace["position"], AnglesToUp(direction)), level.turret_name);
  1379. sdone();
  1380. self.buildableturret = undefined;
  1381. }
  1382. else if(option == 104)
  1383. {
  1384. level.music_override = 1;
  1385. sdone();
  1386. alias = "zmb_nuked_song_1";
  1387. ent = spawn("script_origin", self.origin);
  1388. ent playsound(alias);
  1389. }
  1390. else if(option == 105)
  1391. {
  1392. level.music_override = 1;
  1393. sdone();
  1394. alias = "zmb_nuked_song_2";
  1395. ent = spawn("script_origin", self.origin);
  1396. ent playsound(alias);
  1397. }
  1398. else if(option == 106)
  1399. {
  1400. level.music_override = 1;
  1401. sdone();
  1402. alias = "zmb_nuked_song_3";
  1403. ent = spawn("script_origin", self.origin);
  1404. ent playsound(alias);
  1405. }
  1406. else if(option == 107)
  1407. {
  1408. sdone();
  1409. foreach(player in level.players)
  1410. {
  1411. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_highrise_started", 1);
  1412. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_transit", 1);
  1413. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_highrise", 1);
  1414. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_applied_zm_highrise", 1);
  1415. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_highrise_maxis_reset", 0);
  1416. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_highrise_rich_reset", 0);
  1417. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_highrise_rich_complete", 1);
  1418. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_highrise_maxis_complete", 0);
  1419. }
  1420. level notify("highrise_sidequest_achieved");
  1421. }
  1422. else if(option == 108)
  1423. {
  1424. if(level.zombie_vars["slipgun_chain_radius"] == 9999)
  1425. {
  1426. senabled();
  1427. level.zombie_vars["slipgun_chain_radius"] = 120;
  1428. level.zombie_vars["slipgun_chain_wait_min"] = 0,8;
  1429. level.zombie_vars["slipgun_chain_wait_max"] = 1,9;
  1430. level.zombie_vars["slipgun_max_kill_chain_depth"] = 16;
  1431. level.zombie_vars["slipgun_max_kill_round"] = 100;
  1432. }
  1433. else
  1434. {
  1435. sdisabled();
  1436. level.zombie_vars["slipgun_chain_radius"] = 9999;
  1437. level.zombie_vars["slipgun_chain_wait_min"] = 0,75;
  1438. level.zombie_vars["slipgun_chain_wait_max"] = 2;
  1439. level.zombie_vars["slipgun_max_kill_chain_depth"] = 9999;
  1440. level.zombie_vars["slipgun_max_kill_round"] = 1555;
  1441. }
  1442. }
  1443. else if(option == 109)
  1444. {
  1445. direction = self getplayerangles();
  1446. direction_vec = AnglesToForward(direction);
  1447. eye = self geteye();
  1448. scale = 200;
  1449. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  1450. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  1451. self.buildablespringpad = undefined;
  1452. item = self maps/mp/zombies/_zm_equipment::placed_equipment_think("p6_anim_zm_buildable_tramplesteam", "equip_springpad_zm", trace["position"], AnglesToUp(direction), 96, -32);
  1453. item.springpad_kills = -999;
  1454. item.requires_pickup = 1;
  1455. item.zombie_attack_callback = &springpad_add_fling_ent;
  1456. self notify("equipment_placed", item, level.springpad_name);
  1457. sdone();
  1458. self.buildablespringpad = undefined;
  1459. }
  1460. else if(option == 110)
  1461. {
  1462. sdone();
  1463. level.music_override = 1;
  1464. playsoundatposition("mus_zmb_secret_song_2", 0, 0, 0);
  1465. wait(140);
  1466. level.music_override = 0;
  1467. }
  1468. else if(option == 111)
  1469. {
  1470. level notify("pop_goes_the_weasel_achieved");
  1471. sdone();
  1472. }
  1473. else if(option == 112)
  1474. {
  1475. sdone();
  1476. foreach(player in level.players)
  1477. {
  1478. player.lives = player.lives + 999;
  1479. player setclientfieldtoplayer("player_lives", player.lives);
  1480. }
  1481. }
  1482. else if(option == 113)
  1483. {
  1484. level notify("spawn_brutus", 1);
  1485. sdone();
  1486. }
  1487. else if(option == 114)
  1488. {
  1489. foreach(player in level.players)
  1490. {
  1491. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_transit", 1);
  1492. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_highrise", 1);
  1493. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_buried", 1);
  1494. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_applied_zm_buried", 1);
  1495. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_buried_maxis_reset", 0);
  1496. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_buried_rich_reset", 0);
  1497. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_buried_rich_complete", 1);
  1498. player maps/mp/gametypes_zm/_globallogic_score::incpersstat("sq_buried_maxis_complete", 0);
  1499. }
  1500. level notify("sq_richtofen_complete");
  1501. sdone();
  1502. }
  1503. else if(option == 115)
  1504. {
  1505. level notify("end_game_reward_starts_maxis");
  1506. sdone();
  1507. }
  1508. else if(option == 116)
  1509. {
  1510. level notify("end_game_reward_starts_richtofen");
  1511. sdone();
  1512. }
  1513. else if(option == 117)
  1514. {
  1515. if(level.slowgun_damage == 999999)
  1516. {
  1517. senabled();
  1518. level.slowgun_damage = 40;
  1519. level.slowgun_damage_ug = 60;
  1520. }
  1521. else
  1522. {
  1523. sdisabled();
  1524. level.slowgun_damage = 999999;
  1525. level.slowgun_damage_ug = 999999;
  1526. }
  1527. }
  1528. else if(option == 118)
  1529. {
  1530. if(stoggle(118))
  1531. {
  1532. foreach(p in level.players)
  1533. {
  1534. p thread loop_handler(118);
  1535. }
  1536. }
  1537. }
  1538. else if(option == 119)
  1539. {
  1540. level.sloth delete();
  1541. self iprintln("Congratulations... Leroy is gone forever... Prick...");
  1542. }
  1543. else if(option == 120)
  1544. {
  1545. level.sloth_spawners[0].script_forcespawn = 1;
  1546. ai = maps/mp/zombies/_zm_utility::spawn_zombie(level.sloth_spawners[0], "sloth");
  1547. ai thread loop_handler(120);
  1548. ai.damage_taken = 99999;
  1549. ai.is_pain = 0;
  1550. ai.state = "berserk";
  1551. ai forceteleport(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
  1552. sdone();
  1553. }
  1554. else if(option == 121)
  1555. {
  1556. sloth = level.sloth;
  1557. if(isdefined(sloth))
  1558. {
  1559. sloth forceteleport(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
  1560. sloth.got_booze = 1;
  1561. }
  1562. sdone();
  1563. }
  1564. else if(option == 122)
  1565. {
  1566. direction = self getplayerangles();
  1567. direction_vec = AnglesToForward(direction);
  1568. eye = self geteye();
  1569. scale = 200;
  1570. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  1571. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  1572. self.buildablesubwoofer = undefined;
  1573. item = self maps/mp/zombies/_zm_equipment::placed_equipment_think("t6_wpn_zmb_subwoofer", level.subwoofer_name, trace["position"], AnglesToUp(direction), 32, 0);
  1574. item.subwoofer_kills = -666;
  1575. item.requires_pickup = 1;
  1576. self notify("equipment_placed", item, level.subwoofer_name);
  1577. self.subwoofer_kills = undefined;
  1578. sdone();
  1579. self.buildablesubwoofer = undefined;
  1580. self.subwoofer_health = 9999;
  1581. self.subwoofer_power_level = 8;
  1582. }
  1583. else if(option == 123)
  1584. {
  1585. direction = self getplayerangles();
  1586. direction_vec = AnglesToForward(direction);
  1587. eye = self geteye();
  1588. scale = 200;
  1589. direction_vec = (direction_vec[0] * scale, direction_vec[1] * scale, direction_vec[2] * scale);
  1590. trace = bullettrace(eye, eye + direction_vec, 0, undefined);
  1591. self.buildableheadchopper = undefined;
  1592. item = self maps/mp/zombies/_zm_equipment::placed_equipment_think("t6_wpn_zmb_chopper", level.headchopper_name, trace["position"], AnglesToUp(direction), 100, 0);
  1593. item.headchopper_kills = -666;
  1594. item.requires_pickup = 1;
  1595. item.zombie_attack_callback = &headchopper_add_chop_ent;
  1596. self notify("equipment_placed", item, level.headchopper_name);
  1597. sdone();
  1598. self.buildableheadchopper = undefined;
  1599. }
  1600. else if(option == 124)
  1601. {
  1602. level.music_override = 1;
  1603. sdone();
  1604. alias = "mus_zmb_secret_song_aether";
  1605. ent = spawn("script_origin", self.origin);
  1606. ent playsound(alias);
  1607. }
  1608. else if(option == 125)
  1609. {
  1610. level.music_override = 1;
  1611. sdone();
  1612. alias = "mus_zmb_secret_song_a7x";
  1613. ent = spawn("script_origin", self.origin);
  1614. ent playsound(alias);
  1615. }
  1616. else if(option == 126)
  1617. {
  1618. sdone();
  1619. level notify("tomb_sidequest_complete");
  1620. level setclientfield("ee_ending", 1);
  1621. flag_set("ee_all_staffs_crafted");
  1622. flag_set("ee_all_staffs_upgraded");
  1623. flag_set("ee_all_staffs_placed");
  1624. flag_set("ee_mech_zombie_hole_opened");
  1625. flag_set("ee_mech_zombie_fight_completed");
  1626. flag_set("ee_maxis_drone_retrieved");
  1627. flag_set("ee_all_players_upgraded_punch");
  1628. flag_set("ee_souls_absorbed");
  1629. flag_set("ee_samantha_released");
  1630. flag_set("ee_sam_portal_active");
  1631. level.n_chamber_wall_active = 0;
  1632. level notify("stop_random_chamber_walls");
  1633. }
  1634. else if(option == 127)
  1635. {
  1636. self thread devgui_award_challenge(1);
  1637. self thread devgui_award_challenge(2);
  1638. self thread devgui_award_challenge(3);
  1639. self thread devgui_award_challenge(4);
  1640. sdone();
  1641. }
  1642. else if(option == 128)
  1643. {
  1644. foreach(player in level.players)
  1645. {
  1646. player thread devgui_award_challenge(1);
  1647. player thread devgui_award_challenge(2);
  1648. player thread devgui_award_challenge(3);
  1649. player thread devgui_award_challenge(4);
  1650. }
  1651. sdone();
  1652. }
  1653. else if(option == 129)
  1654. {
  1655. if(stoggle(129))
  1656. {
  1657. self thread loop_handler(129);
  1658. }
  1659. }
  1660. else if(option == 130)
  1661. {
  1662. if(stoggle(130))
  1663. {
  1664. self thread loop_handler(130);
  1665. }
  1666. }
  1667. else if(option == 131)
  1668. {
  1669. foreach(player in level.players)
  1670. {
  1671. player.dig_vars["has_shovel"] = 1;
  1672. player.dig_vars["has_upgraded_shovel"] = 1;
  1673. player.dig_vars["has_helmet"] = 1;
  1674. player.dig_vars["n_spots_dug"] = 9999;
  1675. player.dig_vars["n_losing_streak"] = 999;
  1676. }
  1677. level setclientfield("shovel_player1", 2);
  1678. level setclientfield("shovel_player2", 2);
  1679. level setclientfield("shovel_player3", 2);
  1680. level setclientfield("shovel_player4", 2);
  1681. level setclientfield("helmet_player1", 1);
  1682. level setclientfield("helmet_player2", 1);
  1683. level setclientfield("helmet_player3", 1);
  1684. level setclientfield("helmet_player4", 1);
  1685. sdone();
  1686. }
  1687. else if(option == 132)
  1688. {
  1689. self.dig_vars["has_shovel"] = 1;
  1690. self.dig_vars["has_upgraded_shovel"] = 1;
  1691. self.dig_vars["has_helmet"] = 1;
  1692. self.dig_vars["n_spots_dug"] = 9999;
  1693. self.dig_vars["n_losing_streak"] = 999;
  1694. level setclientfield("shovel_player1", 2);
  1695. level setclientfield("helmet_player1", 1);
  1696. sdone();
  1697. }
  1698. else if(option == 133)
  1699. {
  1700. level.a_e_slow_areas = undefined;
  1701. sdone();
  1702. }
  1703. else if(option == 134)
  1704. {
  1705. level notify("staff_fire_zm_crafted", self);
  1706. level notify("staff_air_zm_crafted", self);
  1707. level notify("staff_lightning_zm_crafted", self);
  1708. level notify("staff_water_zm_crafted", self);
  1709. flag_set("air_open");
  1710. flag_set("fire_open");
  1711. flag_set("lightning_open");
  1712. flag_set("ice_open");
  1713. level setclientfield("piece_record_zm_player", 1);
  1714. level setclientfield("piece_staff_zm_gem_air", 1);
  1715. level setclientfield("piece_staff_zm_ustaff_air", 1);
  1716. level setclientfield("piece_staff_zm_mstaff_air", 1);
  1717. level setclientfield("piece_staff_zm_lstaff_air", 1);
  1718. level setclientfield("piece_staff_zm_gem_fire", 1);
  1719. level setclientfield("piece_staff_zm_ustaff_fire", 1);
  1720. level setclientfield("piece_staff_zm_mstaff_fire", 1);
  1721. level setclientfield("piece_staff_zm_lstaff_fire", 1);
  1722. level setclientfield("piece_staff_zm_gem_lightning", 1);
  1723. level setclientfield("piece_staff_zm_ustaff_lightning", 1);
  1724. level setclientfield("piece_staff_zm_mstaff_lightning", 1);
  1725. level setclientfield("piece_staff_zm_lstaff_lightning", 1);
  1726. level setclientfield("piece_staff_zm_gem_water", 1);
  1727. level setclientfield("piece_staff_zm_ustaff_water", 1);
  1728. level setclientfield("piece_staff_zm_mstaff_water", 1);
  1729. level setclientfield("piece_staff_zm_lstaff_water", 1);
  1730. level setclientfield("piece_record_zm_vinyl_master", 1);
  1731. level setclientfield("piece_record_zm_vinyl_air", 1);
  1732. level setclientfield("piece_record_zm_vinyl_water", 1);
  1733. level setclientfield("piece_record_zm_vinyl_fire", 1);
  1734. level setclientfield("piece_record_zm_vinyl_lightning", 1);
  1735. level notify("gramophone_vinyl_fire_picked_up");
  1736. level notify("gramophone_vinyl_air_picked_up");
  1737. level notify("gramophone_vinyl_lightning_picked_up");
  1738. level notify("gramophone_vinyl_water_picked_up");
  1739. level notify("gramophone_vinyl_master_picked_up");
  1740. level notify("elemental_staff_fire_all_pieces_found");
  1741. level notify("elemental_staff_air_all_pieces_found");
  1742. level notify("elemental_staff_water_all_pieces_found");
  1743. level notify("elemental_staff_lightning_all_pieces_found");
  1744. level notify("gramophone_vinyl_fire_picked_up");
  1745. level notify("gramophone_vinyl_air_picked_up");
  1746. level notify("gramophone_vinyl_elec_picked_up");
  1747. level notify("gramophone_vinyl_ice_picked_up");
  1748. level notify("gramophone_vinyl_master_picked_up");
  1749. level notify("gramophone_vinyl_player_picked_up");
  1750. level setclientfield("piece_record_zm_player", 1);
  1751. flag_set("air_puzzle_1_complete");
  1752. flag_set("ice_puzzle_1_complete");
  1753. flag_set("electric_puzzle_1_complete");
  1754. flag_set("fire_puzzle_1_complete");
  1755. flag_set("chamber_puzzle_cheat");
  1756. setdvar("complete_puzzles1", "off");
  1757. level notify("open_all_gramophone_doors");
  1758. flag_set("show_morse_code");
  1759. flag_set("air_puzzle_2_complete");
  1760. flag_set("ice_puzzle_2_complete");
  1761. flag_set("electric_puzzle_2_complete");
  1762. flag_set("fire_puzzle_2_complete");
  1763. flag_set("chamber_puzzle_cheat");
  1764. flag_set("staff_air_zm_upgrade_unlocked");
  1765. flag_set("staff_water_zm_upgrade_unlocked");
  1766. flag_set("staff_fire_zm_upgrade_unlocked");
  1767. flag_set("staff_lightning_zm_upgrade_unlocked");
  1768. flag_set("activate_zone_chamber");
  1769. level notify("stop_random_chamber_walls");
  1770. foreach(staff in level.a_elemental_staffs)
  1771. {
  1772. staff.charger.charges_received = 999;
  1773. staff.charger.is_inserted = 1;
  1774. staff.charger.full = 1;
  1775. }
  1776. foreach(staff_upgraded in level.a_elemental_staffs_upgraded)
  1777. {
  1778. staff_upgraded.charger.charges_received = 9999;
  1779. staff_upgraded.charger.is_inserted = 1;
  1780. staff_upgraded.charger.is_charged = 1;
  1781. staff_upgraded.prev_ammo_clip = weaponclipsize(staff_upgraded.weapname);
  1782. staff_upgraded.prev_ammo_stock = weaponmaxammo(staff_upgraded.weapname);
  1783. staff_upgraded.charger.full = 1;
  1784. }
  1785. level.staffs_charged = 4;
  1786. level setclientfield("quest_state1", 3);
  1787. level setclientfield("quest_state2", 3);
  1788. level setclientfield("quest_state3", 3);
  1789. level setclientfield("quest_state4", 3);
  1790. flag_set("any_crystal_picked_up");
  1791. flag_set("staff_air_zm_enabled");
  1792. flag_set("staff_fire_zm_enabled");
  1793. flag_set("staff_lightning_zm_enabled");
  1794. flag_set("staff_water_zm_enabled");
  1795. flag_set("staff_air_zm_enabled");
  1796. flag_set("staff_fire_zm_enabled");
  1797. flag_set("staff_lightning_zm_enabled");
  1798. flag_set("staff_water_zm_enabled");
  1799. sdone();
  1800. }
  1801. else if(option == 135)
  1802. {
  1803. level.mechz_left_to_spawn++;
  1804. level notify("spawn_mechz");
  1805. sdone();
  1806. }
  1807. else if(option == 136)
  1808. {
  1809. if(stoggle(136))
  1810. {
  1811. level.vh_tank thread supertank(self);
  1812. }
  1813. }
  1814. else if(option == 137)
  1815. {
  1816. if(isdefined(level.sneakyrobots) && level.sneakyrobots)
  1817. {
  1818. level.sneakyrobots = 0;
  1819. sdisabled();
  1820. break;
  1821. }
  1822. level.sneakyrobots = 1;
  1823. senabled();
  1824. foreach(robot in level.a_giant_robots)
  1825. {
  1826. robot thread hidetherobots();
  1827. }
  1828. }
  1829. else if(option == 138)
  1830. {
  1831. if(stoggle(138))
  1832. {
  1833. foreach(box in getentarray("foot_box", "script_noteworthy"))
  1834. {
  1835. box.n_souls_absorbed = -9999;
  1836. }
  1837. break;
  1838. }
  1839. foreach(box in getentarray("foot_box", "script_noteworthy"))
  1840. {
  1841. box.n_souls_absorbed = 0;
  1842. }
  1843. }
  1844. else if(option == 139)
  1845. {
  1846. flag_set("enable_teleporter_" + 1);
  1847. flag_set("enable_teleporter_" + 2);
  1848. flag_set("enable_teleporter_" + 3);
  1849. flag_set("enable_teleporter_" + 4);
  1850. sdone();
  1851. }
  1852. else if(option == 153)
  1853. {
  1854. level.zombie_vars["zombie_intermission_time"] = 99999;
  1855. sdone();
  1856. }
  1857. else if(option == 154)
  1858. {
  1859. level.round_number = 13373;
  1860. foreach(player in level.players)
  1861. {
  1862. player.score = 13373;
  1863. player.pers["score"] = 13373;
  1864. player.kills = 13373;
  1865. player.pers["kills"] = 13373;
  1866. player.downs = 0;
  1867. player.pers["downs"] = 0;
  1868. player.revives = 13373;
  1869. player.pers["revives"] = 13373;
  1870. player.headshots = 13373;
  1871. player.pers["headshots"] = 13373;
  1872. player uploadleaderboards();
  1873. }
  1874. setdvar("g_ScoresColor_Spectator", "0 1 0");
  1875. setdvar("g_ScoresColor_Free", "1 0 0");
  1876. setdvar("g_teamColor_MyTeam", "0 0 1");
  1877. setdvar("g_teamColor_EnemyTeam", "1 1 0");
  1878. setdvar("g_teamColor_MyTeamAlt", "0 1 1");
  1879. setdvar("g_teamColor_EnemyTeamAlt", "1 0 1");
  1880. setdvar("g_teamColor_Squad", "1 1 1");
  1881. setdvar("g_TeamIcon_Axis", "zombies_rank_5");
  1882. setdvar("g_TeamIcon_Allies", "zombies_rank_5");
  1883. game["icons"]["axis"] = "zombies_rank_5";
  1884. game["icons"]["allies"] = "zombies_rank_5";
  1885. sdone();
  1886. }
  1887. else if(option == 155)
  1888. {
  1889. modded_zombies_weapons();
  1890. sdone();
  1891. }
  1892. else if(option == 156)
  1893. {
  1894. if(stoggle(156))
  1895. {
  1896. self thread loop_handler(156);
  1897. }
  1898. }
  1899. else if(option == 157)
  1900. {
  1901. }
  1902. else if(option == 158)
  1903. {
  1904. players = get_players();
  1905. for(i = 0; i < players.size; i++)
  1906. {
  1907. players[i] notify("stop_fog");
  1908. }
  1909. sdone();
  1910. }
  1911. else if(option == 159)
  1912. {
  1913. if(!isdefined(level.iconic_modded_box))
  1914. {
  1915. allweaponsinbox();
  1916. }
  1917. level.zombie_weapons[value].is_in_box = 1;
  1918. level.limited_weapons[value] = undefined;
  1919. level.iconic_box_weapons = add_to_array(level.iconic_box_weapons, value, 0);
  1920. sdone();
  1921. }
  1922. else if(option == 160)
  1923. {
  1924. if(!isdefined(level.iconic_modded_box))
  1925. {
  1926. allweaponsinbox();
  1927. }
  1928. level.zombie_weapons[value].is_in_box = 0;
  1929. level.limited_weapons[value] = undefined;
  1930. arrayremovevalue(level.limited_weapons, value);
  1931. sdone();
  1932. }
  1933. else if(option == 161)
  1934. {
  1935. if(!isdefined(level.iconic_modded_box))
  1936. {
  1937. allweaponsinbox();
  1938. }
  1939. level.zombie_weapons[value].is_in_box = 1;
  1940. level.limited_weapons[value] = undefined;
  1941. level.iconic_box_weapons = [];
  1942. level.iconic_box_weapons[0] = value;
  1943. sdone();
  1944. }
  1945. else if(option == 162)
  1946. {
  1947. allweaponsinbox();
  1948. sdone();
  1949. }
  1950. else if(option == 163)
  1951. {
  1952. if(!isdefined(level.iconic_modded_box))
  1953. {
  1954. allweaponsinbox();
  1955. }
  1956. level.limited_weapons = [];
  1957. level.iconic_box_weapons = [];
  1958. sdone();
  1959. }
  1960. }
  1961.  
  1962. /*
  1963. Name: loop_handler
  1964. Namespace: _imcsx_gsc_studio
  1965. Checksum: 0x5A9CD989
  1966. Offset: 0xC1DA
  1967. Size: 0x19E6
  1968. Parameters: 3
  1969. Flags: None
  1970. */
  1971. function loop_handler(option, a_id, arg1)
  1972. {
  1973. if(option == 1)
  1974. {
  1975. while(sgetbool(1))
  1976. {
  1977. weapon = self getcurrentweapon();
  1978. if(weapon != "none")
  1979. {
  1980. self setweaponammoclip(weapon, weaponclipsize(weapon));
  1981. self givemaxammo(weapon);
  1982. }
  1983. if(self getcurrentoffhand() != "none")
  1984. {
  1985. self givemaxammo(self getcurrentoffhand());
  1986. }
  1987. self waittill_any("weapon_fired", "grenade_fire", "missile_fire");
  1988. }
  1989. break;
  1990. }
  1991. if(option == 4)
  1992. {
  1993. while(sgetbool(4))
  1994. {
  1995. while(self adsbuttonpressed())
  1996. {
  1997. trace = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 1, self);
  1998. while(self adsbuttonpressed())
  1999. {
  2000. trace["entity"] setorigin(self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 200);
  2001. trace["entity"].origin = self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 200;
  2002. wait(0,05);
  2003. }
  2004. }
  2005. wait(0,05);
  2006. }
  2007. break;
  2008. }
  2009. if(option == 8 && isdefined(a_id) && a_id == 0)
  2010. {
  2011. self thread loop_handler(8, 1);
  2012. while(sgetbool(8))
  2013. {
  2014. while(self adsbuttonpressed())
  2015. {
  2016. zombies = getclosest(self getorigin(), getaispeciesarray("axis", "all"));
  2017. self setplayerangles(VectorToAngles(zombies gettagorigin("j_head") - self gettagorigin("j_head")));
  2018. if(isdefined(self.aim_shoot))
  2019. {
  2020. magicbullet(self getcurrentweapon(), zombies gettagorigin("j_head") + (0, 0, 5), zombies gettagorigin("j_head"), self);
  2021. }
  2022. wait(0,05);
  2023. }
  2024. wait(0,05);
  2025. }
  2026. break;
  2027. }
  2028. if(option == 8 && isdefined(a_id) && a_id == 1)
  2029. {
  2030. while(sgetbool(8))
  2031. {
  2032. self.aim_shoot = 1;
  2033. wait(0,05);
  2034. self.aim_shoot = undefined;
  2035. self waittill("weapon_fired");
  2036. }
  2037. break;
  2038. }
  2039. if(option == 9)
  2040. {
  2041. x = 40;
  2042. y = 40;
  2043. self.healthbarhudelems = [];
  2044. self.healthbarkeys[0] = "Health";
  2045. for(i = 0; i < self.healthbarkeys.size; i++)
  2046. {
  2047. key = self.healthbarkeys[i];
  2048. textelem = newclienthudelem(self);
  2049. textelem.x = x;
  2050. textelem.y = y;
  2051. textelem.alignx = "left";
  2052. textelem.aligny = "top";
  2053. textelem.horzalign = "fullscreen";
  2054. textelem.vertalign = "fullscreen";
  2055. textelem settext(key);
  2056. bgbar = newclienthudelem(self);
  2057. bgbar.x = x + 79;
  2058. bgbar.y = y + 1;
  2059. bgbar.alignx = "left";
  2060. bgbar.aligny = "top";
  2061. bgbar.horzalign = "fullscreen";
  2062. bgbar.vertalign = "fullscreen";
  2063. bgbar.maxwidth = 3;
  2064. bgbar setshader("white", bgbar.maxwidth, 10);
  2065. bgbar.color = VectorScale( 1, 1, 1, 0,5);
  2066. bar = newclienthudelem(self);
  2067. bar.x = x + 80;
  2068. bar.y = y + 2;
  2069. bar.alignx = "left";
  2070. bar.aligny = "top";
  2071. bar.horzalign = "fullscreen";
  2072. bar.vertalign = "fullscreen";
  2073. bar setshader("black", 1, 8);
  2074. textelem.bar = bar;
  2075. textelem.bgbar = bgbar;
  2076. textelem.key = key;
  2077. y = y + 10;
  2078. self.healthbarhudelems[key] = textelem;
  2079. }
  2080. while(sgetbool(9))
  2081. {
  2082. wait(0,05);
  2083. i = 0;
  2084. key = self.healthbarkeys[i];
  2085. player = self;
  2086. width = 0;
  2087. if(i == 0)
  2088. {
  2089. width = player.health / player.maxhealth * 300;
  2090. }
  2091. else if(i == 1)
  2092. {
  2093. width = self.playerinvultimeend - GetTime() / 1000 * 40;
  2094. }
  2095. else if(i == 2)
  2096. {
  2097. width = self.player_deathinvulnerabletimeout - GetTime() / 1000 * 40;
  2098. }
  2099. width = int(max(width, 1));
  2100. width = int(min(width, 300));
  2101. bar = self.healthbarhudelems[key].bar;
  2102. bar setshader("black", width, 8);
  2103. bgbar = self.healthbarhudelems[key].bgbar;
  2104. if(width + 2 > bgbar.maxwidth)
  2105. {
  2106. bgbar.maxwidth = width + 2;
  2107. bgbar setshader("white", bgbar.maxwidth, 10);
  2108. bgbar.color = VectorScale( 1, 1, 1, 0,5);
  2109. }
  2110. i++;
  2111. }
  2112. break;
  2113. }
  2114. if(option == 33)
  2115. {
  2116. while(self.rainbowmenu)
  2117. {
  2118. self.framecolor = (randomfloatrange(0, 1), randomfloatrange(0, 1), randomfloatrange(0, 1));
  2119. self.slidercolor = self.framecolor;
  2120. self updatemenulook(0);
  2121. wait(0,25);
  2122. }
  2123. ssetplayerpreferences(self);
  2124. self updatemenulook(0);
  2125. break;
  2126. }
  2127. if(option == 34)
  2128. {
  2129. while(sgetbool(34))
  2130. {
  2131. if(self usebuttonpressed() && self jumpbuttonpressed())
  2132. {
  2133. self iprintln("^2Saved Position");
  2134. self.teletoloc = self.origin;
  2135. wait(0,5);
  2136. }
  2137. if(self usebuttonpressed() && self changeseatbuttonpressed())
  2138. {
  2139. if(!isdefined(self.teletoloc))
  2140. {
  2141. self iprintln("^1Failed to load location! No location was previously saved");
  2142. }
  2143. else
  2144. {
  2145. self setorigin(self.teletoloc);
  2146. self iprintln("^2Loaded Location");
  2147. }
  2148. wait(0,5);
  2149. }
  2150. wait(0,1);
  2151. }
  2152. break;
  2153. }
  2154. if(option == 35)
  2155. {
  2156. self iprintln("Press [{+gostand}] & [{+usereload}]");
  2157. self.jetboots = 100;
  2158. while(sgetbool(35))
  2159. {
  2160. if(self usebuttonpressed() && self.jetboots > 0)
  2161. {
  2162. self.jetboots--;
  2163. if(self getvelocity()[2] < 300)
  2164. {
  2165. self setvelocity(self getvelocity() + (0, 0, 60));
  2166. }
  2167. }
  2168. if(self.jetboots < 100 && !self usebuttonpressed())
  2169. {
  2170. self.jetboots++;
  2171. }
  2172. wait(0,05);
  2173. }
  2174. break;
  2175. }
  2176. if(option == 36 && a_id == 0)
  2177. {
  2178. object1 = undefined;
  2179. object2 = undefined;
  2180. self void_handler(20, level.laststandpistol);
  2181. self.cooldowntime = 0;
  2182. self.lastportal = undefined;
  2183. while(sgetbool(36))
  2184. {
  2185. self waittill("weapon_fired", weapon);
  2186. if(!sgetbool(36))
  2187. {
  2188. break;
  2189. }
  2190. if(weapon != level.laststandpistol)
  2191. {
  2192. continue;
  2193. }
  2194. if(isdefined(object1) && isdefined(object2))
  2195. {
  2196. self iprintln("Portals Cleared");
  2197. object1 delete();
  2198. object2 delete();
  2199. }
  2200. else if(isdefined(object1))
  2201. {
  2202. trace = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 1, self);
  2203. pos = trace["position"];
  2204. object2 = spawn("script_model", pos);
  2205. object2 setmodel(level._iconic_portalmodel);
  2206. object1.portalto = pos;
  2207. object2.portalto = object1 getorigin();
  2208. object2 thread loop_handler(36, 1);
  2209. self iprintln("Portal 2 spawned");
  2210. }
  2211. else
  2212. {
  2213. trace = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 1, self);
  2214. pos = trace["position"];
  2215. object1 = spawn("script_model", pos);
  2216. object1 setmodel(level._iconic_portalmodel);
  2217. object1 thread loop_handler(36, 1);
  2218. self iprintln("Portal 1 spawned");
  2219. }
  2220. }
  2221. object1 delete();
  2222. object2 delete();
  2223. self.cooldowntime = 0;
  2224. self.lastportal = undefined;
  2225. break;
  2226. }
  2227. if(option == 36 && a_id == 1)
  2228. {
  2229. while(!isdefined(self.portalto))
  2230. {
  2231. wait(0,1);
  2232. }
  2233. while(isdefined(self))
  2234. {
  2235. foreach(player in level.players)
  2236. {
  2237. if(self istouching(player) && !player.cooldowntime)
  2238. {
  2239. player.cooldowntime = 1;
  2240. wait(0,1);
  2241. player setorigin(self.portalto);
  2242. continue;
  2243. }
  2244. if(self istouching(player) && !isdefined(player.lastportal))
  2245. {
  2246. player.lastportal = self;
  2247. player thread loop_handler(36, 2, self);
  2248. }
  2249. }
  2250. wait(0,1);
  2251. }
  2252. break;
  2253. }
  2254. if(option == 36 && a_id == 2)
  2255. {
  2256. portal = arg1;
  2257. while(isdefined(portal) && portal istouching(self))
  2258. {
  2259. wait(0,1);
  2260. }
  2261. self.lastportal = undefined;
  2262. self.cooldowntime = 0;
  2263. break;
  2264. }
  2265. if(option == 43 && a_id == 0)
  2266. {
  2267. self.magic_weapon = arg1;
  2268. if(self.magic_weapon == "norm")
  2269. {
  2270. return;
  2271. }
  2272. while(self.magic_weapon == arg1)
  2273. {
  2274. magicbullet(arg1, self gettagorigin("tag_eye"), bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"], self);
  2275. self waittill("weapon_fired");
  2276. }
  2277. break;
  2278. }
  2279. if(option == 43 && a_id == 1)
  2280. {
  2281. self.magic_weapon1 = arg1;
  2282. if(self.magic_weapon1 == "norm")
  2283. {
  2284. return;
  2285. }
  2286. while(self.magic_weapon1 == arg1)
  2287. {
  2288. radiusdamage(bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"], 200, 300, 100, self);
  2289. playfx(level._effect[arg1], bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"]);
  2290. self waittill("weapon_fired");
  2291. }
  2292. break;
  2293. }
  2294. if(option == 45)
  2295. {
  2296. self.iconicmodelpref = a_id;
  2297. if(a_id == "Reset")
  2298. {
  2299. self show();
  2300. self.iconicmodel delete();
  2301. return;
  2302. }
  2303. self.iconicmodel delete();
  2304. self hide();
  2305. self.iconicmodel = spawn("script_model", self.origin);
  2306. self.iconicmodel setmodel(a_id);
  2307. torigin = self.origin;
  2308. tangles = self.angles;
  2309. while(self.iconicmodelpref == a_id)
  2310. {
  2311. if(self getorigin() != torigin)
  2312. {
  2313. torigin = self getorigin();
  2314. self.iconicmodel moveto(self.origin, 0,01);
  2315. }
  2316. if(self.angles != tangles)
  2317. {
  2318. tangles = self.angles;
  2319. self.iconicmodel rotateto(self.angles, 0,01);
  2320. }
  2321. wait(0,1);
  2322. }
  2323. break;
  2324. }
  2325. if(option == 47)
  2326. {
  2327. self iprintln("^3Press ^2AIM ^3to ^2Move Objects");
  2328. wait(0,25);
  2329. self iprintln("^3Press ^2AIM + SHOOT ^3to ^2Paste Objects");
  2330. wait(0,25);
  2331. self iprintln("^3Press ^2AIM + [{+usereload}] ^3to ^2Copy Objects");
  2332. wait(0,25);
  2333. self iprintln("^3Press ^2AIM + [{+gostand}] ^3to ^2Delete Objects");
  2334. wait(0,25);
  2335. self iprintln("^3Press ^2DPAD & GRENADE BUTTONS ^3to ^2Rotate Objects");
  2336. object = undefined;
  2337. trace = undefined;
  2338. cannotsetmodel = undefined;
  2339. while(sgetbool(47))
  2340. {
  2341. if(self adsbuttonpressed())
  2342. {
  2343. trace = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 1, self);
  2344. if(!isdefined(trace["entity"]))
  2345. {
  2346. cannotsetmodel = 0;
  2347. foreach(model in getentarray("script_brushmodel", "classname"))
  2348. {
  2349. if(!isdefined(currentent) && distance(model.origin, trace["position"]) < 100)
  2350. {
  2351. currentent = model;
  2352. cannotsetmodel = 1;
  2353. }
  2354. if(isdefined(currentent) && closer(trace["position"], model.origin, currentent.origin))
  2355. {
  2356. currentent = model;
  2357. cannotsetmodel = 1;
  2358. }
  2359. }
  2360. foreach(model in getentarray("script_model", "classname"))
  2361. {
  2362. if(!isdefined(currentent) && distance(model.origin, trace["position"]) < 100)
  2363. {
  2364. currentent = model;
  2365. cannotsetmodel = 0;
  2366. }
  2367. if(isdefined(currentent) && closer(trace["position"], model.origin, currentent.origin))
  2368. {
  2369. currentent = model;
  2370. cannotsetmodel = 0;
  2371. }
  2372. }
  2373. trace["entity"] = currentent;
  2374. }
  2375. while(self adsbuttonpressed())
  2376. {
  2377. trace["entity"] setorigin(self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 200);
  2378. trace["entity"].origin = self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 200;
  2379. if(self attackbuttonpressed())
  2380. {
  2381. if(isdefined(object))
  2382. {
  2383. trace = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 1, self);
  2384. if(isdefined(trace["entity"]) && !cannotsetmodel)
  2385. {
  2386. self iprintln("Overwrote Objects Model With:^2 " + object);
  2387. trace["entity"] setmodel(object);
  2388. }
  2389. else
  2390. {
  2391. obj = spawn("script_model", trace["position"], 1);
  2392. obj setmodel(object);
  2393. self iprintln("Spawned Object:^2 " + object);
  2394. }
  2395. }
  2396. else
  2397. {
  2398. self iprintln("No Object in memory!");
  2399. }
  2400. wait(0,75);
  2401. }
  2402. if(self usebuttonpressed())
  2403. {
  2404. if(isdefined(trace["entity"].model))
  2405. {
  2406. object = trace["entity"].model;
  2407. self iprintln("Copied Model: ^2" + object);
  2408. }
  2409. else
  2410. {
  2411. self iprintln("No Object Found");
  2412. }
  2413. wait(0,75);
  2414. break;
  2415. }
  2416. if(self jumpbuttonpressed())
  2417. {
  2418. if(!isdefined(trace["entity"]))
  2419. {
  2420. self iprintln("No Object to Delete!");
  2421. }
  2422. else
  2423. {
  2424. trace["entity"] delete();
  2425. self iprintln("Entity Deleted");
  2426. }
  2427. wait(0,75);
  2428. break;
  2429. }
  2430. if(self actionslotonebuttonpressed())
  2431. {
  2432. if(isdefined(trace["entity"]))
  2433. {
  2434. trace["entity"] rotatepitch(6, 0,05);
  2435. }
  2436. else
  2437. {
  2438. self iprintln("No Entity Found");
  2439. wait(0,5);
  2440. break;
  2441. }
  2442. wait(0,1);
  2443. }
  2444. if(self actionslottwobuttonpressed())
  2445. {
  2446. if(isdefined(trace["entity"]))
  2447. {
  2448. trace["entity"] rotatepitch(-6, 0,05);
  2449. }
  2450. else
  2451. {
  2452. self iprintln("No Entity Found");
  2453. wait(0,5);
  2454. break;
  2455. }
  2456. wait(0,1);
  2457. }
  2458. if(self actionslotthreebuttonpressed())
  2459. {
  2460. if(isdefined(trace["entity"]))
  2461. {
  2462. trace["entity"] rotateyaw(-6, 0,05);
  2463. }
  2464. else
  2465. {
  2466. self iprintln("No Entity Found");
  2467. wait(0,5);
  2468. break;
  2469. }
  2470. wait(0,1);
  2471. }
  2472. if(self actionslotfourbuttonpressed())
  2473. {
  2474. if(isdefined(trace["entity"]))
  2475. {
  2476. trace["entity"] rotateyaw(6, 0,05);
  2477. }
  2478. else
  2479. {
  2480. self iprintln("No Entity Found");
  2481. wait(0,5);
  2482. break;
  2483. }
  2484. wait(0,1);
  2485. }
  2486. if(self secondaryoffhandbuttonpressed())
  2487. {
  2488. if(isdefined(trace["entity"]))
  2489. {
  2490. trace["entity"] rotateroll(-6, 0,05);
  2491. }
  2492. else
  2493. {
  2494. self iprintln("No Entity Found");
  2495. wait(0,5);
  2496. break;
  2497. }
  2498. wait(0,1);
  2499. }
  2500. if(self fragbuttonpressed())
  2501. {
  2502. if(isdefined(trace["entity"]))
  2503. {
  2504. trace["entity"] rotateroll(6, 0,05);
  2505. }
  2506. else
  2507. {
  2508. self iprintln("No Entity Found");
  2509. wait(0,5);
  2510. break;
  2511. }
  2512. wait(0,1);
  2513. }
  2514. wait(0,05);
  2515. }
  2516. }
  2517. wait(0,1);
  2518. }
  2519. break;
  2520. }
  2521. if(option == 57)
  2522. {
  2523. sdone();
  2524. level.zmodel_tobe = a_id;
  2525. if(a_id == "Reset")
  2526. {
  2527. return;
  2528. }
  2529. while(a_id == level.zmodel_tobe)
  2530. {
  2531. foreach(zombie in getaiarray(level.zombie_team))
  2532. {
  2533. if(!isdefined(zombie.remodeled) || zombie.remodeled != a_id)
  2534. {
  2535. zombie setmodel(a_id);
  2536. zombie.remodeled = a_id;
  2537. }
  2538. }
  2539. wait(1);
  2540. }
  2541. break;
  2542. }
  2543. if(option == 58)
  2544. {
  2545. while(sgetbool(58))
  2546. {
  2547. origin = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"];
  2548. pup = maps/mp/zombies/_zm_powerups::get_next_powerup();
  2549. level thread maps/mp/zombies/_zm_powerups::specific_powerup_drop(pup, origin);
  2550. self waittill("weapon_fired");
  2551. }
  2552. break;
  2553. }
  2554. if(option == 74)
  2555. {
  2556. while(sgetbool(74))
  2557. {
  2558. foreach(p in level.players)
  2559. {
  2560. if(p maps/mp/zombies/_zm_laststand::player_is_in_laststand())
  2561. {
  2562. p maps/mp/zombies/_zm_laststand::auto_revive(p);
  2563. }
  2564. wait(0,5);
  2565. }
  2566. }
  2567. break;
  2568. }
  2569. if(option == 80)
  2570. {
  2571. while(sgethost() sgetbool(80))
  2572. {
  2573. if(self jumpbuttonpressed())
  2574. {
  2575. for(i = 0; i < 10; i++)
  2576. {
  2577. self setvelocity(self getvelocity() + (0, 0, 999));
  2578. wait(0,05);
  2579. }
  2580. }
  2581. wait(0,05);
  2582. }
  2583. break;
  2584. }
  2585. if(option == 83 && a_id == 0)
  2586. {
  2587. hitmarker = newdamageindicatorhudelem(self);
  2588. hitmarker.horzalign = "center";
  2589. hitmarker.vertalign = "middle";
  2590. hitmarker.x = -12;
  2591. hitmarker.y = -12;
  2592. hitmarker.alpha = 0;
  2593. hitmarker setshader("damage_feedback", 24, 48);
  2594. while(level._iconic_hitmarkers)
  2595. {
  2596. self waittill("HitTarget_hma");
  2597. hitmarker.alpha = 1;
  2598. hitmarker fadeovertime(1);
  2599. hitmarker.alpha = 0;
  2600. }
  2601. hitmarker destroy();
  2602. break;
  2603. }
  2604. if(option == 83 && a_id == 1)
  2605. {
  2606. while(level._iconic_hitmarkers)
  2607. {
  2608. foreach(zombie in getaiarray(level.zombie_team))
  2609. {
  2610. if(!isdefined(zombie.waitingfordamage))
  2611. {
  2612. zombie thread loop_handler(83, 2);
  2613. }
  2614. }
  2615. wait(0,25);
  2616. }
  2617. break;
  2618. }
  2619. if(option == 83 && a_id == 2)
  2620. {
  2621. self.waitingfordamage = 1;
  2622. while(level._iconic_hitmarkers && isalive(self))
  2623. {
  2624. self waittill("damage", amount, attacker, dir, point, mod);
  2625. if(isplayer(attacker))
  2626. {
  2627. attacker notify("HitTarget_hma");
  2628. }
  2629. }
  2630. break;
  2631. }
  2632. if(option == 95)
  2633. {
  2634. while(level.jgunnooverheat)
  2635. {
  2636. if(self getcurrentweapon() == "jetgun_zm")
  2637. {
  2638. self setweaponoverheating(0, 0);
  2639. }
  2640. self waittill("weapon_fired");
  2641. }
  2642. break;
  2643. }
  2644. if(option == 99)
  2645. {
  2646. while(sgetbool(99))
  2647. {
  2648. level.the_bus setvehmaxspeed(2500);
  2649. level.the_bus setspeed(2500, 15);
  2650. level.the_bus.targetspeed = 2500;
  2651. wait(1);
  2652. }
  2653. break;
  2654. }
  2655. if(option == 100)
  2656. {
  2657. self disableweapons();
  2658. self iprintln("Press Shoot to lightning attack!");
  2659. while(sgetbool(100))
  2660. {
  2661. if(self attackbuttonpressed())
  2662. {
  2663. enemy = getclosest(self getorigin(), getaiarray(level.zombie_team));
  2664. if(isdefined(enemy))
  2665. {
  2666. self thread shoot_bolt(enemy);
  2667. }
  2668. wait(0,5);
  2669. }
  2670. wait(0,1);
  2671. }
  2672. self enableweapons();
  2673. break;
  2674. }
  2675. if(option == 118)
  2676. {
  2677. while(sgetbool(118))
  2678. {
  2679. self waittill("weapon_fired", weapon);
  2680. if(issubstr(weapon, "slowgun"))
  2681. {
  2682. self setweaponoverheating(0, 0);
  2683. wait(0,025);
  2684. }
  2685. else
  2686. {
  2687. wait(1);
  2688. }
  2689. }
  2690. break;
  2691. }
  2692. if(option == 120)
  2693. {
  2694. while(1)
  2695. {
  2696. self [[self.update_funcs[self.state]]]();
  2697. wait(0,1);
  2698. }
  2699. break;
  2700. }
  2701. if(option == 129)
  2702. {
  2703. while(sgetbool(129))
  2704. {
  2705. flag_clear("gramophone_placed");
  2706. level setclientfield("piece_record_zm_player", 1);
  2707. level notify("gramophone_vinyl_player_picked_up");
  2708. wait(1);
  2709. }
  2710. break;
  2711. }
  2712. if(option == 130)
  2713. {
  2714. while(sgetbool(130))
  2715. {
  2716. foreach(player in level.players)
  2717. {
  2718. player thread devgui_award_challenge(1);
  2719. player thread devgui_award_challenge(2);
  2720. player thread devgui_award_challenge(3);
  2721. player thread devgui_award_challenge(4);
  2722. }
  2723. wait(5);
  2724. }
  2725. break;
  2726. }
  2727. if(option == 156)
  2728. {
  2729. a_ent = self get_ahead_ent();
  2730. g_ent = undefined;
  2731. g_tonext = undefined;
  2732. x = undefined;
  2733. y = undefined;
  2734. z = undefined;
  2735. while(sgetbool(156))
  2736. {
  2737. a_ent = self get_ahead_ent();
  2738. if(isdefined(a_ent))
  2739. {
  2740. g_tonext = self get_free_space();
  2741. if(isdefined(g_tonext))
  2742. {
  2743. g_ent = self getgroundzposition(g_tonext);
  2744. if(isdefined(g_ent))
  2745. {
  2746. z = g_ent[2];
  2747. }
  2748. else
  2749. {
  2750. z = self getorigin()[2];
  2751. }
  2752. x = g_tonext[0];
  2753. y = g_tonext[1];
  2754. self setorigin((x, y, z));
  2755. }
  2756. while(!self isonground())
  2757. {
  2758. wait(0,01);
  2759. }
  2760. }
  2761. wait(0,2);
  2762. }
  2763. }
  2764. }
  2765.  
  2766. /*
  2767. Name: createshader
  2768. Namespace: _imcsx_gsc_studio
  2769. Checksum: 0x3C651D52
  2770. Offset: 0xDBC2
  2771. Size: 0x9C
  2772. Parameters: 10
  2773. Flags: None
  2774. */
  2775. function createshader(shader, align, relative, x, y, width, height, color, alpha, sort)
  2776. {
  2777. hud = newclienthudelem(self);
  2778. hud.elemtype = "icon";
  2779. hud.color = color;
  2780. hud.alpha = alpha;
  2781. hud.sort = sort;
  2782. hud.children = [];
  2783. hud setparent(level.uiparent);
  2784. hud setshader(shader, width, height);
  2785. hud setpoint(align, relative, x, y);
  2786. hud.hidewheninmenu = 1;
  2787. hud.archived = 0;
  2788. return hud;
  2789. }
  2790.  
  2791. /*
  2792. Name: drawshader
  2793. Namespace: _imcsx_gsc_studio
  2794. Checksum: 0xC3FA59E
  2795. Offset: 0xDC60
  2796. Size: 0x96
  2797. Parameters: 8
  2798. Flags: None
  2799. */
  2800. function drawshader(shader, x, y, width, height, color, alpha, sort)
  2801. {
  2802. hud = newclienthudelem(self);
  2803. hud.elemtype = "icon";
  2804. hud.color = color;
  2805. hud.alpha = alpha;
  2806. hud.sort = sort;
  2807. hud.children = [];
  2808. hud setparent(level.uiparent);
  2809. hud setshader(shader, width, height);
  2810. hud.x = x;
  2811. hud.y = y;
  2812. hud.hidewheninmenu = 1;
  2813. hud.archived = 0;
  2814. return hud;
  2815. }
  2816.  
  2817. /*
  2818. Name: drawtext
  2819. Namespace: _imcsx_gsc_studio
  2820. Checksum: 0xB871C34B
  2821. Offset: 0xDCF8
  2822. Size: 0xAC
  2823. Parameters: 12
  2824. Flags: None
  2825. */
  2826. function drawtext(text, font, fontscale, align, relative, x, y, color, alpha, glowcolor, glowalpha, sort)
  2827. {
  2828. hud = self createfontstring(font, fontscale);
  2829. hud setpoint(align, relative, x, y);
  2830. hud.color = color;
  2831. hud.alpha = alpha;
  2832. hud.glowcolor = glowcolor;
  2833. hud.glowalpha = glowalpha;
  2834. hud.sort = sort;
  2835. hud.alpha = alpha;
  2836. hud settext(text);
  2837. if(text == "SInitialization")
  2838. {
  2839. hud.foreground = 1;
  2840. }
  2841. hud.hidewheninmenu = 1;
  2842. hud.archived = 0;
  2843. return hud;
  2844. }
  2845.  
  2846. /*
  2847. Name: optionsinit
  2848. Namespace: _imcsx_gsc_studio
  2849. Checksum: 0x4B0B4233
  2850. Offset: 0xDDA6
  2851. Size: 0x220F
  2852. Parameters: 0
  2853. Flags: None
  2854. */
  2855. function optionsinit()
  2856. {
  2857. vending_triggers = getentarray("zombie_vending", "targetname");
  2858. createroot("Project Iconic [SENTINEL]");
  2859. addsubmenu("Personal Mods", 1);
  2860. addoption("God Mode", &void_handler, 0);
  2861. addoption("Infinite Ammo", &void_handler, 1);
  2862. addoption("No Target", &void_handler, 2);
  2863. addoption("Invisibility", &void_handler, 3);
  2864. addoption("Basic Forge Mode", &void_handler, 4);
  2865. addoption("Double Speed", &void_handler, 5);
  2866. addoption("No Clip", &void_handler, 6);
  2867. addoption("Ghost Walker", &void_handler, 156);
  2868. addoption("Third Person", &void_handler, 7);
  2869. addoption("Toggle Aimbot", &void_handler, 8);
  2870. addoption("Health Bar", &void_handler, 9);
  2871. addoption("Revive Yourself", &void_handler, 10);
  2872. addoption("Spawn Clone", &void_handler, 11);
  2873. addoption("Spawn Dead Clone", &void_handler, 12);
  2874. addoption("Kill Yourself", &void_handler, 13);
  2875. addsubmenu("Perks Menu", 1);
  2876. addoption("Keep Perks When Down", &void_handler, 14);
  2877. addoption("Disable Perk Machines", &void_handler, 15);
  2878. foreach(perk in vending_triggers)
  2879. {
  2880. if(perk.script_noteworthy != "specialty_weapupgrade")
  2881. {
  2882. addoption(perk.script_noteworthy, &void_handler, 16, perk.script_noteworthy);
  2883. }
  2884. }
  2885. scaseadditions(0);
  2886. closesubmenu();
  2887. addsubmenu("Points Menu", 1);
  2888. addoption("Give 1K", &void_handler, 17, 1000);
  2889. addoption("Give 10K", &void_handler, 17, 10000);
  2890. addoption("Give 100K", &void_handler, 17, 100000);
  2891. addoption("Give Max Points", &void_handler, 17, 2000000);
  2892. addoption("Give Min Points", &void_handler, 18, 2000000);
  2893. addoption("Take 100K", &void_handler, 18, 100000);
  2894. addoption("Take 10K", &void_handler, 18, 10000);
  2895. addoption("Take 1K", &void_handler, 18, 1000);
  2896. closesubmenu();
  2897. addsubmenu("FOV Menu", 1);
  2898. addoption("Set FOV to 120", &void_handler, 19, 120);
  2899. addoption("Set FOV to 100", &void_handler, 19, 100);
  2900. addoption("Set FOV to 90", &void_handler, 19, 90);
  2901. addoption("Set FOV to 75", &void_handler, 19, 75);
  2902. addoption("Set FOV to 65", &void_handler, 19, 65);
  2903. addoption("Set FOV to 45", &void_handler, 19, 45);
  2904. addoption("Set FOV to 25", &void_handler, 19, 25);
  2905. closesubmenu();
  2906. closesubmenu();
  2907. addsubmenu("Weapons Menu", 1);
  2908. addsubmenu("Weapons Options", 2) addoption("Pack A Punch", &void_handler, 21);
  2909. addoption("Pack A Punch", &void_handler, 21);
  2910. addoption("Un Pack A Punch", &void_handler, 22);
  2911. addoption("Drop Weapon", &void_handler, 23);
  2912. addsubmenu("Weapon Camo", 2);
  2913. addoption("Default", &void_handler, 24, 0);
  2914. addoption("PAP 1", &void_handler, 24, 39);
  2915. addoption("PAP 2", &void_handler, 24, 40);
  2916. addoption("PAP 3", &void_handler, 24, 45);
  2917. closesubmenu();
  2918. addsubmenu("Bullets Menu", 2);
  2919. scaseadditions(1);
  2920. closesubmenu();
  2921. addsubmenu("Bullets FX Menu", 2);
  2922. scaseadditions(2);
  2923. closesubmenu();
  2924. closesubmenu();
  2925. foreach(weapon in level.zombie_weapons)
  2926. {
  2927. addoption(weapon.weapon_name, &void_handler, 20, weapon.weapon_name);
  2928. }
  2929. scaseadditions(11);
  2930. closesubmenu();
  2931. addsubmenu("Fun Menu", 1);
  2932. addoption("Save Load Position", &void_handler, 34);
  2933. addoption("Jet Pack", &void_handler, 35);
  2934. addoption("Portal Gun", &void_handler, 36);
  2935. addsubmenu("Visions Menu", 1);
  2936. addoption("Default", &void_handler, 37, "norm");
  2937. addoption("Last Stand", &void_handler, 37, "zombie_last_stand");
  2938. addoption("Zombie Death", &void_handler, 37, "zombie_death");
  2939. addoption("Enhanced", &void_handler, 37, "remote_mortar_enhanced");
  2940. closesubmenu();
  2941. addsubmenu("Mystery Box Mods", 3);
  2942. addoption("All Boxes Show", &void_handler, 38);
  2943. addoption("All Boxes Hide", &void_handler, 39);
  2944. addoption("Box Never Moves", &void_handler, 40);
  2945. addsubmenu("Box Cost", 3);
  2946. addoption("Box Cost: 1", &void_handler, 41, 1);
  2947. addoption("Box Cost: 950", &void_handler, 41, 950);
  2948. addoption("Box Cost: 1337", &void_handler, 41, 1337);
  2949. addoption("Box Cost: 10000", &void_handler, 41, 10000);
  2950. addoption("Box Cost: -1337", &void_handler, 41, -1337);
  2951. addoption("Box Cost: -420", &void_handler, 41, -420);
  2952. closesubmenu();
  2953. addoption("All Weapons In Box", &void_handler, 162);
  2954. addoption("No Weapons In Box", &void_handler, 163);
  2955. addsubmenu("Add Weapon to Box", 3);
  2956. foreach(weapon in level.zombie_weapons)
  2957. {
  2958. addoption(weapon.weapon_name, &void_handler, 159, weapon.weapon_name);
  2959. }
  2960. closesubmenu();
  2961. addsubmenu("One Weapon in Box", 3);
  2962. foreach(weapon in level.zombie_weapons)
  2963. {
  2964. addoption(weapon.weapon_name, &void_handler, 161, weapon.weapon_name);
  2965. }
  2966. closesubmenu();
  2967. closesubmenu();
  2968. closesubmenu();
  2969. addsubmenu("Models Menu", 2);
  2970. scaseadditions(3);
  2971. closesubmenu();
  2972. addsubmenu("Forge Menu", 2);
  2973. scaseadditions(4);
  2974. closesubmenu();
  2975. addsubmenu("Zombies Menu", 3);
  2976. addoption("Spawn Zombies", &void_handler, 48);
  2977. addoption("Kill All Zombies", &void_handler, 49);
  2978. addoption("Tele to Crosshair", &void_handler, 51);
  2979. addoption("Tele to Me", &void_handler, 50);
  2980. addoption("Make All Crawl", &void_handler, 52);
  2981. addoption("Toggle Zombies", &void_handler, 53);
  2982. addoption("Freeze Zombies", &void_handler, 54);
  2983. addoption("No Heads", &void_handler, 55);
  2984. addsubmenu("Change Run Speed", 3);
  2985. addoption("Walk", &void_handler, 56, "walk");
  2986. addoption("Run", &void_handler, 56, "run");
  2987. addoption("Sprint", &void_handler, 56, "sprint");
  2988. addoption("Super Sprint", &void_handler, 56, "super_sprint");
  2989. scaseadditions(5);
  2990. closesubmenu();
  2991. addsubmenu("Change Zombies Models", 4);
  2992. scaseadditions(6);
  2993. closesubmenu();
  2994. closesubmenu();
  2995. addsubmenu("Powerups Menu", 2);
  2996. addoption("Shoot Powerups", &void_handler, 58);
  2997. addoption("Powerups Never Leave", &void_handler, 59);
  2998. addoption("Infinite Insta Kill", &void_handler, 60);
  2999. addoption("Infinite Firesale", &void_handler, 61);
  3000. addsubmenu("Spawn Powerup", 2);
  3001. scaseadditions(7);
  3002. closesubmenu();
  3003. closesubmenu();
  3004. addsubmenu("Rounds Menu", 3);
  3005. addoption("+ 1 Round", &void_handler, 63, 1);
  3006. addoption("+ 10 Rounds", &void_handler, 63, 10);
  3007. addoption("+ 100 Rounds", &void_handler, 63, 100);
  3008. addoption("Round 255", &void_handler, 63, 255);
  3009. addoption("Round -254", &void_handler, 64, 254);
  3010. addoption("- 100 Rounds", &void_handler, 64, 100);
  3011. addoption("- 10 Rounds", &void_handler, 64, 10);
  3012. addoption("- 1 Round", &void_handler, 64, 1);
  3013. closesubmenu();
  3014. addsubmenu("Teleport Menu", -1);
  3015. scaseadditions(8);
  3016. closesubmenu();
  3017. addsubmenu("Map Mods", -1);
  3018. scaseadditions(9);
  3019. closesubmenu();
  3020. addsubmenu("Lobby Mods", 4);
  3021. addoption("Points Lobby", &void_handler, 66);
  3022. addoption("Elite Scoreboard", &void_handler, 154);
  3023. addoption("Modded Wallbuys", &void_handler, 155);
  3024. addoption("Infinite Outro", &void_handler, 153);
  3025. addoption("End Game", &void_handler, 67);
  3026. addoption("Restart Map", &void_handler, 68);
  3027. addoption("Force Host", &void_handler, 69);
  3028. addoption("Toggle FPS", &void_handler, 70);
  3029. addoption("Respawn Spectators", &void_handler, 71);
  3030. addoption("Turn On Power", &void_handler, 72);
  3031. addoption("Turn Off Power", &void_handler, 73);
  3032. addoption("Auto Revive", &void_handler, 74);
  3033. addoption("Open All Doors", &void_handler, 75);
  3034. closesubmenu();
  3035. addsubmenu("Game Settings", 4);
  3036. addoption("Hear All Players", &void_handler, 76);
  3037. addoption("Perfect Anti-quit", &void_handler, 77);
  3038. addoption("Anti-Join", &void_handler, 78);
  3039. addoption("Rapid Fire", &void_handler, 79);
  3040. addoption("Super Jump", &void_handler, 80);
  3041. addoption("Super Melee", &void_handler, 81);
  3042. addoption("Knockback", &void_handler, 82);
  3043. addoption("Toggle Hitmarkers", &void_handler, 83);
  3044. addoption("Toggle Headshots Only", &void_handler, 84);
  3045. addsubmenu("Edit Gravity", 4);
  3046. addoption("Gravity: 1", &void_handler, 85, 1);
  3047. addoption("Gravity: 250", &void_handler, 85, 250);
  3048. addoption("Gravity: 500", &void_handler, 85, 500);
  3049. addoption("Gravity: Default", &void_handler, 85, 800);
  3050. addoption("Gravity: 1000", &void_handler, 85, 1000);
  3051. addoption("Gravity: 1250", &void_handler, 85, 1250);
  3052. addoption("Gravity: 5000", &void_handler, 85, 5000);
  3053. closesubmenu();
  3054. addsubmenu("Edit Timescale", 4);
  3055. addoption("Timescale: .1", &void_handler, 86, 0,1);
  3056. addoption("Timescale: .25", &void_handler, 86, 0,25);
  3057. addoption("Timescale: .75", &void_handler, 86, 0,75);
  3058. addoption("Timescale: Default", &void_handler, 86, 1);
  3059. addoption("Timescale: 1.25", &void_handler, 86, 1,25);
  3060. addoption("Timescale: 1.75", &void_handler, 86, 1,75);
  3061. addoption("Timescale: 2.0", &void_handler, 86, 2);
  3062. closesubmenu();
  3063. addsubmenu("Edit Bleed Out Time", 4);
  3064. addoption("Set to 1", &void_handler, 87, 1);
  3065. addoption("Set to 15", &void_handler, 87, 15);
  3066. addoption("Set to 30", &void_handler, 87, 30);
  3067. addoption("Set to Default", &void_handler, 87, 45);
  3068. addoption("Set to 60", &void_handler, 87, 60);
  3069. addoption("Set to 120", &void_handler, 87, 120);
  3070. addoption("Set to 9999", &void_handler, 87, 9999);
  3071. closesubmenu();
  3072. addsubmenu("Edit Point Modifiers", 4);
  3073. scaseadditions(10);
  3074. closesubmenu();
  3075. closesubmenu();
  3076. addsubmenu("Menu Settings", 1);
  3077. addoption("Legacy Controls", &void_handler, 25);
  3078. addoption("Move Menu Left", &void_handler, 26);
  3079. addoption("Move Menu Right", &void_handler, 27);
  3080. addoption("Move Menu Up", &void_handler, 28);
  3081. addoption("Move Menu Down", &void_handler, 29);
  3082. addoption("Rainbow Menu", &void_handler, 33);
  3083. addsubmenu("Frame Color", 1);
  3084. addoption("Default", &void_handler, 30, 0, 0,75, 0);
  3085. addoption("White", &void_handler, 30, 1, 1, 1);
  3086. addoption("Blue", &void_handler, 30, 0, 0, 1);
  3087. addoption("Black", &void_handler, 30, 0, 0, 0);
  3088. addoption("Red", &void_handler, 30, 1, 0, 0);
  3089. addoption("Pink", &void_handler, 30, 1, 0, 1);
  3090. addoption("Purple", &void_handler, 30, 0,25, 0, 0,25);
  3091. addoption("Yellow", &void_handler, 30, 1, 1, 0);
  3092. addoption("Light Blue", &void_handler, 30, 0, 1, 1);
  3093. addoption("Dark Blue", &void_handler, 30, 0, 0, 0,35);
  3094. addoption("Dark Red", &void_handler, 30, 0,35, 0, 0);
  3095. addoption("Dark Green", &void_handler, 30, 0, 0,15, 0);
  3096. closesubmenu();
  3097. addsubmenu("Slider Color", -1);
  3098. addoption("Default", &void_handler, 32, 0, 1, 0);
  3099. addoption("White", &void_handler, 32, 1, 1, 1);
  3100. addoption("Blue", &void_handler, 32, 0, 0, 1);
  3101. addoption("Black", &void_handler, 32, 0, 0, 0);
  3102. addoption("Red", &void_handler, 32, 1, 0, 0);
  3103. addoption("Pink", &void_handler, 32, 1, 0, 1);
  3104. addoption("Purple", &void_handler, 32, 0,25, 0, 0,25);
  3105. addoption("Yellow", &void_handler, 32, 1, 1, 0);
  3106. addoption("Light Blue", &void_handler, 32, 0, 1, 1);
  3107. addoption("Dark Blue", &void_handler, 32, 0, 0, 0,35);
  3108. addoption("Dark Red", &void_handler, 32, 0,35, 0, 0);
  3109. addoption("Dark Green", &void_handler, 32, 0, 0,15, 0);
  3110. closesubmenu();
  3111. addsubmenu("Background Color", 1);
  3112. addoption("Default", &void_handler, 31, 0, 0, 0);
  3113. addoption("White", &void_handler, 31, 1, 1, 1);
  3114. addoption("Blue", &void_handler, 31, 0, 0, 1);
  3115. addoption("Green", &void_handler, 31, 0, 1, 0);
  3116. addoption("Red", &void_handler, 31, 1, 0, 0);
  3117. addoption("Pink", &void_handler, 31, 1, 0, 1);
  3118. addoption("Purple", &void_handler, 31, 0,25, 0, 0,25);
  3119. addoption("Yellow", &void_handler, 31, 1, 1, 0);
  3120. addoption("Light Blue", &void_handler, 31, 0, 1, 1);
  3121. addoption("Dark Blue", &void_handler, 31, 0, 0, 0,35);
  3122. addoption("Dark Red", &void_handler, 31, 0,35, 0, 0);
  3123. addoption("Dark Green", &void_handler, 31, 0, 0,15, 0);
  3124. closesubmenu();
  3125. closesubmenu();
  3126. addplayersmenu();
  3127. addsubmenu("Main Mods", 3);
  3128. addoption("Toggle Godmode", &playersmanager, 0, 0);
  3129. addoption("Infinite Ammo", &playersmanager, 0, 1);
  3130. addoption("No Target", &playersmanager, 0, 2);
  3131. addoption("Invisible", &playersmanager, 0, 3);
  3132. addoption("Forge Mode", &playersmanager, 0, 4);
  3133. addoption("Double Speed", &playersmanager, 0, 5);
  3134. addoption("No Clip", &playersmanager, 0, 6);
  3135. addoption("Third Person", &playersmanager, 0, 7);
  3136. addoption("Toggle Aimbot", &playersmanager, 0, 8);
  3137. addoption("Revive Player", &playersmanager, 0, 10);
  3138. addoption("Kill Player", &playersmanager, 0, 13);
  3139. addoption("Freeze No Look", &playersmanager, 0, 140);
  3140. addoption("Freeze With Look", &playersmanager, 0, 141);
  3141. addoption("Kick Player", &playersmanager, 0, 142);
  3142. closesubmenu();
  3143. addoption("Teleport to Player", &playersmanager, 0, 151);
  3144. addoption("Teleport to Crosshair", &playersmanager, 0, 150);
  3145. addoption("Zombies to Player", &playersmanager, 0, 152);
  3146. addsubmenu("Points Menu", 3);
  3147. addoption("Give 1000", &playersmanager, 0, 17, 1000);
  3148. addoption("Give 10000", &playersmanager, 0, 17, 10000);
  3149. addoption("Give 100000", &playersmanager, 0, 17, 100000);
  3150. addoption("Give Max", &playersmanager, 0, 17, 2000000);
  3151. addoption("Give Min", &playersmanager, 0, 18, 2000000);
  3152. addoption("Take 100000", &playersmanager, 0, 18, 100000);
  3153. addoption("Take 10000", &playersmanager, 0, 18, 10000);
  3154. addoption("Take 1000", &playersmanager, 0, 18, 1000);
  3155. closesubmenu();
  3156. addsubmenu("Weapons Menu", 3);
  3157. addsubmenu("Weapons Options", 3);
  3158. addoption("Pack A Punch", &playersmanager, 0, 21);
  3159. addoption("Un Pack A Punch", &playersmanager, 0, 22);
  3160. addoption("Drop Weapon", &playersmanager, 0, 23);
  3161. addsubmenu("Weapon Camo", 2);
  3162. addoption("Default", &playersmanager, 0, 24, 0);
  3163. addoption("PAP 1", &playersmanager, 0, 24, 39);
  3164. addoption("PAP 2", &playersmanager, 0, 24, 40);
  3165. addoption("PAP 3", &playersmanager, 0, 24, 45);
  3166. closesubmenu();
  3167. closesubmenu();
  3168. foreach(weapon in level.zombie_weapons)
  3169. {
  3170. addoption(weapon.weapon_name, &playersmanager, 0, 20, weapon.weapon_name);
  3171. }
  3172. closesubmenu();
  3173. addsubmenu("Perks Menu", 3);
  3174. addoption("Keep Perks When Down", &playersmanager, 0, 14);
  3175. foreach(perk in vending_triggers)
  3176. {
  3177. if(perk.script_noteworthy != "specialty_weapupgrade")
  3178. {
  3179. addoption(perk.script_noteworthy, &playersmanager, 0, 16, perk.script_noteworthy);
  3180. }
  3181. }
  3182. scaseadditions(12);
  3183. closesubmenu();
  3184. addsubmenu("Account Menu", 4);
  3185. addoption("Shotguns", &playersmanager, 0, 143);
  3186. addoption("1 Tally", &playersmanager, 0, 144, 1);
  3187. addoption("2 Tallies", &playersmanager, 0, 144, 2);
  3188. addoption("3 Tallies", &playersmanager, 0, 144, 3);
  3189. addoption("4 Tallies", &playersmanager, 0, 144, 4);
  3190. addoption("5 Tallies", &playersmanager, 0, 144, 5);
  3191. addoption("All Perma Perks", &playersmanager, 0, 145);
  3192. closesubmenu();
  3193. addsubmenu("Teleport Menu", 3);
  3194. scaseadditions(16);
  3195. closesubmenu();
  3196. addsubmenu("Verification Menu", 3);
  3197. addoption("Set Standard Access", &playersmanager, 0, 1337, 1);
  3198. addoption("Set Elevated Access", &playersmanager, 0, 1337, 2);
  3199. addoption("Set CoHost Access", &playersmanager, 0, 1337, 3);
  3200. addoption("Unverify Player", &playersmanager, 0, -1337);
  3201. closesubmenu();
  3202. scaseadditions(14);
  3203. closeplayersmenu();
  3204. addsubmenu("All Players Menu", 3);
  3205. addsubmenu("Main Mods", 3);
  3206. addoption("Toggle Godmode", &playersmanager, 1, 0);
  3207. addoption("Infinite Ammo", &playersmanager, 1, 1);
  3208. addoption("No Target", &playersmanager, 1, 2);
  3209. addoption("Invisible", &playersmanager, 1, 3);
  3210. addoption("Forge Mode", &playersmanager, 1, 4);
  3211. addoption("Double Speed", &playersmanager, 1, 5);
  3212. addoption("No Clip", &playersmanager, 1, 6);
  3213. addoption("Third Person", &playersmanager, 1, 7);
  3214. addoption("Toggle Aimbot", &playersmanager, 1, 8);
  3215. addoption("Revive Player", &playersmanager, 1, 10);
  3216. addoption("Kill Player", &playersmanager, 1, 13);
  3217. addoption("Freeze No Look", &playersmanager, 1, 140);
  3218. addoption("Freeze With Look", &playersmanager, 1, 141);
  3219. addoption("Kick Player", &playersmanager, 1, 142);
  3220. closesubmenu();
  3221. addoption("Teleport to Crosshair", &playersmanager, 1, 150);
  3222. addsubmenu("Points Menu", 3);
  3223. addoption("Give 1000", &playersmanager, 1, 17, 1000);
  3224. addoption("Give 10000", &playersmanager, 1, 17, 10000);
  3225. addoption("Give 100000", &playersmanager, 1, 17, 100000);
  3226. addoption("Give Max", &playersmanager, 1, 17, 2000000);
  3227. addoption("Give Min", &playersmanager, 1, 18, 2000000);
  3228. addoption("Take 100000", &playersmanager, 1, 18, 100000);
  3229. addoption("Take 10000", &playersmanager, 1, 18, 10000);
  3230. addoption("Take 1000", &playersmanager, 1, 18, 1000);
  3231. closesubmenu();
  3232. addsubmenu("Weapons Menu", 3);
  3233. addsubmenu("Weapons Options", 3);
  3234. addoption("Pack A Punch", &playersmanager, 1, 21);
  3235. addoption("Un Pack A Punch", &playersmanager, 1, 22);
  3236. addoption("Drop Weapon", &playersmanager, 1, 23);
  3237. addsubmenu("Weapon Camo", 2);
  3238. addoption("Default", &playersmanager, 1, 24, 0);
  3239. addoption("PAP 1", &playersmanager, 1, 24, 39);
  3240. addoption("PAP 2", &playersmanager, 1, 24, 40);
  3241. addoption("PAP 3", &playersmanager, 1, 24, 45);
  3242. closesubmenu();
  3243. closesubmenu();
  3244. foreach(weapon in level.zombie_weapons)
  3245. {
  3246. addoption(weapon.weapon_name, &playersmanager, 1, 20, weapon.weapon_name);
  3247. }
  3248. closesubmenu();
  3249. addsubmenu("Perks Menu", 3);
  3250. addoption("Keep Perks When Down", &playersmanager, 1, 14);
  3251. foreach(perk in vending_triggers)
  3252. {
  3253. if(perk.script_noteworthy != "specialty_weapupgrade")
  3254. {
  3255. addoption(perk.script_noteworthy, &playersmanager, 1, 16, perk.script_noteworthy);
  3256. }
  3257. }
  3258. scaseadditions(13);
  3259. closesubmenu();
  3260. addsubmenu("Account Menu", 4);
  3261. addoption("Shotguns", &playersmanager, 1, 143);
  3262. addoption("1 Tally", &playersmanager, 1, 144, 1);
  3263. addoption("2 Tallies", &playersmanager, 1, 144, 2);
  3264. addoption("3 Tallies", &playersmanager, 1, 144, 3);
  3265. addoption("4 Tallies", &playersmanager, 1, 144, 4);
  3266. addoption("5 Tallies", &playersmanager, 1, 144, 5);
  3267. addoption("All Perma Perks", &playersmanager, 1, 145);
  3268. closesubmenu();
  3269. addsubmenu("Teleport Menu", 3);
  3270. scaseadditions(17);
  3271. closesubmenu();
  3272. addsubmenu("Verification Menu", 3);
  3273. addoption("Set Standard Access", &playersmanager, 1, 1337, 1);
  3274. addoption("Set Elevated Access", &playersmanager, 1, 1337, 2);
  3275. addoption("Set CoHost Access", &playersmanager, 1, 1337, 3);
  3276. addoption("Unverify Player", &playersmanager, 1, -1337);
  3277. closesubmenu();
  3278. scaseadditions(15);
  3279. closesubmenu();
  3280. level.sentinel_initialized = 1;
  3281. }
  3282.  
  3283. /*
  3284. Name: test
  3285. Namespace: _imcsx_gsc_studio
  3286. Checksum: 0x4A948BDF
  3287. Offset: 0xFFB6
  3288. Size: 0xF
  3289. Parameters: 0
  3290. Flags: None
  3291. */
  3292. function test()
  3293. {
  3294. self iprintln("Test");
  3295. }
  3296.  
  3297. /*
  3298. Name: scaseadditions
  3299. Namespace: _imcsx_gsc_studio
  3300. Checksum: 0x7DD01147
  3301. Offset: 0xFFC6
  3302. Size: 0x421B
  3303. Parameters: 1
  3304. Flags: None
  3305. */
  3306. function scaseadditions(c_id)
  3307. {
  3308. map = mapnametoint(GetDvar("mapname"));
  3309. origins = 5;
  3310. buried = 4;
  3311. mobofthedead = 3;
  3312. dierise = 2;
  3313. nuketown = 1;
  3314. tranzit = 0;
  3315. if(c_id == 0)
  3316. {
  3317. if(map == origins)
  3318. {
  3319. addoption("grenadepulldeath", &void_handler, 16, "specialty_grenadepulldeath");
  3320. addoption("specialty_deadshot", &void_handler, 16, "specialty_deadshot");
  3321. addoption("specialty_flakjacket", &void_handler, 16, "specialty_flakjacket");
  3322. addoption("specialty_rof", &void_handler, 16, "specialty_rof");
  3323. }
  3324. }
  3325. if(c_id == 1)
  3326. {
  3327. addoption("Default", &void_handler, 43, 0, "norm");
  3328. addoption("Raygun Green", &void_handler, 43, 0, "ray_gun_zm");
  3329. addoption("Raygun Red", &void_handler, 43, 0, "ray_gun_upgraded_zm");
  3330. addoption("Raygun MKII Green", &void_handler, 43, 0, "raygun_mark2_zm");
  3331. addoption("Raygun MKII Red", &void_handler, 43, 0, "raygun_mark2_upgraded_zm");
  3332. addoption("DSR-50", &void_handler, 43, 0, "nodsr50_upgraded_zmrm");
  3333. if(map == tranzit || map == dierise || map == buried)
  3334. {
  3335. addoption("RPG", &void_handler, 43, 0, "usrpg_upgraded_zm");
  3336. addoption("Mustang And Sally", &void_handler, 43, 0, "m1911_upgraded_zm");
  3337. }
  3338. if(map == mobofthedead)
  3339. {
  3340. addoption("Mustang And Sally", &void_handler, 43, 0, "m1911_upgraded_zm");
  3341. addoption("Acid Gat", &void_handler, 43, 0, "blundersplat_bullet_zm");
  3342. addoption("Minigun", &void_handler, 43, 0, "minigun_alcatraz_upgraded_zm");
  3343. }
  3344. if(map == origins)
  3345. {
  3346. addoption("Lightning Staff UG", &void_handler, 43, 0, "staff_lightning_upgraded3_zm");
  3347. addoption("Fire Staff UG", &void_handler, 43, 0, "staff_fire_upgraded3_zm");
  3348. addoption("Ice Staff UG", &void_handler, 43, 0, "staff_water_upgraded3_zm");
  3349. addoption("Wind Staff UG", &void_handler, 43, 0, "staff_air_zm");
  3350. addoption("Start Pistol PAP", &void_handler, 43, 0, "c96_upgraded_zm");
  3351. }
  3352. }
  3353. if(c_id == 2)
  3354. {
  3355. addoption("Default", &void_handler, 43, 1, "norm");
  3356. addoption("Debris", &void_handler, 43, 1, "grenade_samantha_steal");
  3357. addoption("Zombie Gib", &void_handler, 43, 1, "zomb_gib");
  3358. addoption("Powerup", &void_handler, 43, 1, "powerup_grabbed");
  3359. addoption("Fire", &void_handler, 43, 1, "character_fire_death_sm");
  3360. addoption("Blood Explosion", &void_handler, 43, 1, "zombie_guts_explosion");
  3361. addoption("Rise", &void_handler, 43, 1, "rise_burst");
  3362. if(map == tranzit)
  3363. {
  3364. addoption("Turbine", &void_handler, 43, 1, "turbine_on");
  3365. addoption("Avogadro", &void_handler, 43, 1, "avogadro_health_half");
  3366. addoption("Lava", &void_handler, 43, 1, "lava_burning");
  3367. addoption("Screecher", &void_handler, 43, 1, "screecher_death");
  3368. addoption("Electric Trap", &void_handler, 43, 1, "etrap_on");
  3369. addoption("Jetgun Kill", &void_handler, 43, 1, "jetgun_meat_grinder");
  3370. }
  3371. if(map == dierise)
  3372. {
  3373. addoption("Sliquifier Splatter", &void_handler, 43, 1, "slipgun_explode");
  3374. addoption("Poltergeist", &void_handler, 43, 1, "poltergeist");
  3375. addoption("Dragon Breath", &void_handler, 43, 1, "fx_highrise_dragon_breath_max");
  3376. addoption("Sliquifier Explode", &void_handler, 43, 1, "slipgun_explode");
  3377. addoption("Leaper Death", &void_handler, 43, 1, "leaper_death");
  3378. addoption("Electricity", &void_handler, 43, 1, "elec_torso");
  3379. }
  3380. if(map == mobofthedead)
  3381. {
  3382. addoption("Electric Cherry", &void_handler, 43, 1, "electric_cherry_explode");
  3383. addoption("Brutus Death", &void_handler, 43, 1, "brutus_death");
  3384. addoption("Electricity", &void_handler, 43, 1, "elec_torso");
  3385. addoption("Electric Cherry Big", &void_handler, 43, 1, "electric_cherry_reload_large");
  3386. addoption("Blue Tomahawk", &void_handler, 43, 1, "tomahawk_charge_up_ug");
  3387. addoption("Red Tomahawk", &void_handler, 43, 1, "tomahawk_charge_up");
  3388. }
  3389. if(map == buried)
  3390. {
  3391. addoption("Petrifier", &void_handler, 43, 1, "zombie_slowgun_explosion_ug");
  3392. addoption("Barrier Break", &void_handler, 43, 1, "barrier_break");
  3393. addoption("Petrifier Sizzle", &void_handler, 43, 1, "zombie_slowgun_sizzle_ug");
  3394. addoption("Resonator", &void_handler, 43, 1, "subwoofer_audio_wave");
  3395. addoption("Time Bomb Kill", &void_handler, 43, 1, "time_bomb_kills_enemy");
  3396. addoption("Time Bomb Set", &void_handler, 43, 1, "time_bomb_set");
  3397. }
  3398. if(map == origins)
  3399. {
  3400. addoption("Teleporter", &void_handler, 43, 1, "teleport_3p");
  3401. addoption("Electricity", &void_handler, 43, 1, "tesla_elec_kill");
  3402. addoption("Flamethrower", &void_handler, 43, 1, "mech_wpn_flamethrower");
  3403. addoption("Digging FX", &void_handler, 43, 1, "digging");
  3404. addoption("Wall Drop", &void_handler, 43, 1, "crypt_wall_drop");
  3405. addoption("Capture Generator", &void_handler, 43, 1, "capture_complete");
  3406. }
  3407. }
  3408. if(c_id == 3)
  3409. {
  3410. level.addtionalmodels = undefined;
  3411. if(map == tranzit)
  3412. {
  3413. addoption("c_zom_player_reporter_fb", &void_handler, 44, "c_zom_player_reporter_fb");
  3414. addoption("c_zom_player_engineer_fb", &void_handler, 44, "c_zom_player_engineer_fb");
  3415. addoption("c_zom_player_farmgirl_fb", &void_handler, 44, "c_zom_player_farmgirl_fb");
  3416. addoption("c_zom_player_oldman_fb", &void_handler, 44, "c_zom_player_oldman_fb");
  3417. addoption("c_zom_avagadro_fb", &void_handler, 44, "c_zom_avagadro_fb");
  3418. addoption("p6_anim_zm_bus_driver", &void_handler, 44, "p6_anim_zm_bus_driver");
  3419. addoption("c_zom_zombie1_body01", &void_handler, 44, "c_zom_zombie1_body01");
  3420. addoption("c_zom_zombie1_body02", &void_handler, 44, "c_zom_zombie1_body02");
  3421. level.addtionalmodels = strtok("p6_anim_zm_magic_box_fake,p6_anim_zm_magic_box,p_rus_door_white_window_plain_left,p_rus_door_white_plain_right,storefront_door02_window,p_cub_door01_wood_fullsize,p6_zm_bank_vault_door,p6_zm_core_reactor_top,p6_door_metal_no_decal_left,p6_zm_window_dest_glass_big,p6_zm_garage_door_01,p6_zm_door_security_depot,veh_t6_civ_bus_zombie,p6_anim_zm_bus_driver,veh_t6_civ_movingtrk_cab_dead,veh_t6_civ_bus_zombie_roof_hatch,p6_anim_zm_buildable_turret,p6_anim_zm_buildable_etrap,p6_anim_zm_buildable_turbine,p6_anim_zm_buildable_sq,zombie_teddybear,p6_anim_zm_buildable_pap,zombie_sign_please_wait,ch_tombstone1,zombie_bomb,zombie_skull,zombie_ammocan,zombie_x2_icon,zombie_carpenter,t6_wpn_zmb_shield_dmg1_world,t6_wpn_zmb_shield_dmg2_world,p6_zm_screecher_hole,p6_zm_buildable_battery,t6_wpn_zmb_shield_dolly,t6_wpn_zmb_shield_door,p6_zm_buildable_pap_body,p6_zm_buildable_pap_table,p6_zm_buildable_turbine_fan,p6_zm_buildable_turbine_rudder,p6_zm_buildable_turbine_mannequin,p6_zm_buildable_turret_mower,p6_zm_buildable_turret_ammo,p6_zm_buildable_etrap_base,p6_zm_buildable_etrap_tvtube,p6_zm_buildable_jetgun_wires,p6_zm_buildable_jetgun_engine,p6_zm_buildable_jetgun_guages,p6_zm_buildable_jetgun_handles,p6_zm_buildable_sq_electric_box,p6_zm_buildable_sq_meteor,p6_zm_buildable_sq_scaffolding,p6_zm_buildable_sq_transceiver,p_glo_tools_chest_tall", ",");
  3422. }
  3423. if(map == nuketown)
  3424. {
  3425. addoption("c_zom_player_cdc_fb", &void_handler, 44, "c_zom_player_cdc_fb");
  3426. addoption("c_zom_player_cia_fb", &void_handler, 44, "c_zom_player_cia_fb");
  3427. addoption("c_zom_dlc0_zom_haz_body1", &void_handler, 44, "c_zom_dlc0_zom_haz_body1");
  3428. addoption("c_zom_dlc0_zom_haz_body2", &void_handler, 44, "c_zom_dlc0_zom_haz_body2");
  3429. level.addtionalmodels = strtok("p6_anim_zm_magic_box_fake,p6_anim_zm_magic_box,zombie_wolf,p6_zm_nuked_chair_01,p6_zm_nuked_couch_02,p6_zm_door_white,p6_zm_door_brown,p6_zm_cratepile,defaultvehicle,fxanim_gp_shirt01_mod,fxanim_gp_tanktop_mod,fxanim_gp_dress_mod,fxanim_gp_pant01_mod,fxanim_gp_shirt_grey_mod,fxanim_gp_roaches_mod,fxanim_zom_nuketown_shutters_mod,fxanim_zom_curtains_yellow_a_mod,fxanim_zom_curtains_yellow_b_mod,fxanim_zom_curtains_yellow_c_mod,fxanim_zom_curtains_blue_a_mod,fxanim_zom_curtains_blue_c_mod,fxanim_zom_nuketown_cabinets_brwn_mod,fxanim_zom_nuketown_cabinets_red_mod,fxanim_zom_nuketown_shutters02_mod,fxanim_gp_cloth_sheet_med01_mod,fxanim_zom_nuketown_cabinets_brwn02_mod,fxanim_gp_roofvent_small_mod,fxanim_gp_wirespark_long_mod,fxanim_gp_wirespark_med_mod,mp_nuked_townsign_counter,dest_zm_nuked_male_01_d0,p_rus_clock_green_sechand,p_rus_clock_green_minhand,p_rus_clock_green_hourhand,p6_zm_nuked_clocktower_sec_hand,p6_zm_nuked_clocktower_min_hand,dest_zm_nuked_female_01_d0,dest_zm_nuked_female_02_d0,dest_zm_nuked_female_03_d0,dest_zm_nuked_male_02_d0,zombie_teddybear,t6_wpn_zmb_perk_bottle_doubletap_world,t6_wpn_zmb_perk_bottle_jugg_world,t6_wpn_zmb_perk_bottle_revive_world,t6_wpn_zmb_perk_bottle_sleight_world,zombie_bomb,zombie_skull,zombie_ammocan,zombie_x2_icon,zombie_firesale", ",");
  3430. }
  3431. if(map == dierise)
  3432. {
  3433. addoption("c_zom_player_reporter_fb", &void_handler, 44, "c_zom_player_reporter_fb");
  3434. addoption("c_zom_player_engineer_fb", &void_handler, 44, "c_zom_player_engineer_fb");
  3435. addoption("c_zom_player_farmgirl_fb", &void_handler, 44, "c_zom_player_farmgirl_fb");
  3436. addoption("c_zom_player_oldman_fb", &void_handler, 44, "c_zom_player_oldman_fb");
  3437. addoption("c_zom_leaper_body", &void_handler, 44, "c_zom_leaper_body");
  3438. addoption("c_zom_zombie_civ_shorts_body", &void_handler, 44, "c_zom_zombie_civ_shorts_body");
  3439. level.addtionalmodels = strtok("p6_anim_zm_magic_box_fake,p6_anim_zm_magic_box,p6_zm_hr_luxury_door,p6_zm_nuked_couch_02,p6_zm_hr_lion_statue_ball,p6_anim_zm_hr_buildable_sq,p6_anim_zm_buildable_tramplesteam,zombie_teddybear,zombie_pickup_perk_bottle,p6_zm_buildable_tramplesteam_door,p6_zm_buildable_tramplesteam_bellows,p6_zm_buildable_tramplesteam_compressor,p6_zm_buildable_tramplesteam_flag,t6_zmb_buildable_slipgun_extinguisher,t6_zmb_buildable_slipgun_cooker,t6_zmb_buildable_slipgun_foot,t6_zmb_buildable_slipgun_throttle,p6_zm_buildable_sq_electric_box,p6_zm_buildable_sq_meteor,p6_zm_buildable_sq_scaffolding,p6_zm_buildable_sq_transceiver", ",");
  3440. }
  3441. if(map == mobofthedead)
  3442. {
  3443. addoption("c_zom_player_arlington_fb", &void_handler, 44, "c_zom_player_arlington_fb");
  3444. addoption("c_zom_player_deluca_fb", &void_handler, 44, "c_zom_player_deluca_fb");
  3445. addoption("c_zom_player_handsome_fb", &void_handler, 44, "c_zom_player_handsome_fb");
  3446. addoption("c_zom_player_oleary_fb", &void_handler, 44, "c_zom_player_oleary_fb");
  3447. addoption("c_zom_cellbreaker_fb", &void_handler, 44, "c_zom_cellbreaker_fb");
  3448. addoption("c_zom_guard_body", &void_handler, 44, "c_zom_guard_body");
  3449. addoption("c_zom_inmate_body1", &void_handler, 44, "c_zom_inmate_body1");
  3450. addoption("c_zom_inmate_body2", &void_handler, 44, "c_zom_inmate_body2");
  3451. level.addtionalmodels = strtok("p6_anim_zm_al_magic_box,storefront_door02_window,p6_zm_al_cell_door_collmap,p6_zm_al_cell_isolation,p6_zm_al_large_generator,fxanim_zom_al_trap_fan_mod,p6_zm_al_gondola,p6_zm_al_gondola_gate,p6_zm_al_gondola_door,p6_zm_al_shock_box_off,p6_zm_al_cell_door,veh_t6_dlc_zombie_plane_whole,p6_zm_al_electric_chair,p6_zm_al_infirmary_case,p6_zm_al_industrial_dryer,p6_zm_al_clothes_pile_lrg,veh_t6_dlc_zombie_part_engine,p6_zm_al_dream_catcher_off,c_zom_wolf_head,zombie_bomb,zombie_skull,zombie_ammocan,zombie_x2_icon,zombie_firesale,zombie_teddybear,t6_wpn_zmb_shield_dlc2_dmg0_view,p6_zm_al_packasplat_suitcase,p6_zm_al_packasplat_engine,p6_zm_al_packasplat_iv,veh_t6_dlc_zombie_part_fuel,veh_t6_dlc_zombie_part_rigging,p6_anim_zm_al_packasplat,p6_zm_al_shock_box_on,p6_zm_al_audio_headset_icon,p6_zm_al_power_station_panels_03", ",");
  3452. }
  3453. if(map == buried)
  3454. {
  3455. addoption("c_zom_player_reporter_fb", &void_handler, 44, "c_zom_player_reporter_fb");
  3456. addoption("c_zom_player_engineer_fb", &void_handler, 44, "c_zom_player_engineer_fb");
  3457. addoption("c_zom_player_farmgirl_fb", &void_handler, 44, "c_zom_player_farmgirl_fb");
  3458. addoption("c_zom_player_oldman_fb", &void_handler, 44, "c_zom_player_oldman_fb");
  3459. addoption("c_zom_buried_sloth_fb", &void_handler, 44, "c_zom_buried_sloth_fb");
  3460. addoption("c_zom_zombie_buried_sgirl_body1", &void_handler, 44, "c_zom_zombie_buried_sgirl_body1");
  3461. addoption("c_zom_zombie_buried_sgirl_body2", &void_handler, 44, "c_zom_zombie_buried_sgirl_body2");
  3462. level.addtionalmodels = strtok("p6_anim_zm_magic_box_fake,p6_anim_zm_magic_box,p6_zm_work_bench,p6_anim_zm_buildable_view_tramplesteam,p6_anim_zm_buildable_turbine,t6_wpn_zmb_subwoofer,p6_anim_zm_buildable_tramplesteam,p6_anim_zm_hr_buildable_sq,fxanim_zom_buried_orbs_mod,p6_zm_bu_gallows,p6_zm_bu_guillotine,p6_zm_bu_end_game_machine,t6_wpn_zmb_chopper,zombie_teddybear,zombie_pickup_perk_bottle,p6_zm_bu_hedge_gate,p6_zm_buildable_turbine_fan,p6_zm_buildable_turbine_rudder,p6_zm_buildable_turbine_mannequin,p6_zm_buildable_tramplesteam_door,p6_zm_buildable_tramplesteam_bellows,p6_zm_buildable_tramplesteam_compressor,p6_zm_buildable_tramplesteam_flag,p6_zm_buildable_sq_electric_box,p6_zm_buildable_sq_meteor,p6_zm_buildable_sq_scaffolding,p6_zm_buildable_sq_transceiver,p6_zm_bu_sq_vaccume_tube,p6_zm_bu_sq_buildable_battery,p6_zm_bu_sq_crystal,p6_zm_bu_sq_satellite_dish,p6_zm_bu_sq_antenna,p6_zm_bu_sq_wire_spool,p6_zm_bu_booze,p6_zm_bu_sloth_candy_bowl,p6_zm_bu_chalk,p6_zm_bu_sloth_booze_jug", ",");
  3463. }
  3464. if(map == origins)
  3465. {
  3466. addoption("c_zom_tomb_dempsey_fb", &void_handler, 44, "c_zom_tomb_dempsey_fb");
  3467. addoption("c_zom_tomb_nikolai_fb", &void_handler, 44, "c_zom_tomb_nikolai_fb");
  3468. addoption("c_zom_tomb_richtofen_fb", &void_handler, 44, "c_zom_tomb_richtofen_fb");
  3469. addoption("c_zom_tomb_takeo_fb", &void_handler, 44, "c_zom_tomb_takeo_fb");
  3470. addoption("c_zom_mech_body", &void_handler, 44, "c_zom_mech_body");
  3471. addoption("c_zom_tomb_german_body2", &void_handler, 44, "c_zom_tomb_german_body2");
  3472. level.addtionalmodels = strtok("p6_anim_zm_tm_magic_box,veh_t6_dlc_mkiv_tank,veh_t6_dlc_zm_biplane,fxanim_zom_tomb_portal_mod,p6_zm_tm_packapunch,fxanim_zom_tomb_generator_pump_mod,p6_zm_tm_wind_ceiling_ring_2,p6_zm_tm_wind_ceiling_ring_3,p6_zm_tm_wind_ceiling_ring_4,p6_zm_tm_wind_ceiling_ring_1,p6_zm_tm_challenge_box,p6_zm_tm_soul_box,veh_t6_dlc_zm_quadrotor,zombie_teddybear,veh_t6_dlc_zm_zeppelin,p6_zm_tm_gramophone,veh_t6_dlc_zm_robot_2", ",");
  3473. }
  3474. addsubmenu("Other Models", 2);
  3475. addoption("Reset Model", &void_handler, 45, "Reset");
  3476. menumodels = [];
  3477. foreach(model in getentarray("script_model", "classname"))
  3478. {
  3479. if(!isinarray(menumodels, model.model))
  3480. {
  3481. menumodels[menumodels.size] = model.model;
  3482. }
  3483. }
  3484. foreach(model in level.addtionalmodels)
  3485. {
  3486. if(!isinarray(menumodels, model))
  3487. {
  3488. menumodels[menumodels.size] = model;
  3489. }
  3490. }
  3491. foreach(model in menumodels)
  3492. {
  3493. precachemodel(model);
  3494. addoption(model, &void_handler, 45, model);
  3495. }
  3496. closesubmenu();
  3497. }
  3498. if(c_id == 4)
  3499. {
  3500. addoption("Forge Tool", &void_handler, 47);
  3501. menumodels = [];
  3502. foreach(model in getentarray("script_model", "classname"))
  3503. {
  3504. if(!isinarray(menumodels, model.model))
  3505. {
  3506. menumodels[menumodels.size] = model.model;
  3507. }
  3508. }
  3509. foreach(model in level.addtionalmodels)
  3510. {
  3511. if(!isinarray(menumodels, model))
  3512. {
  3513. menumodels[menumodels.size] = model;
  3514. }
  3515. }
  3516. foreach(model in menumodels)
  3517. {
  3518. addoption(model, &void_handler, 46, model);
  3519. }
  3520. }
  3521. else if(c_id == 5)
  3522. {
  3523. if(map == tranzit)
  3524. {
  3525. addoption("Bus Sprint", &void_handler, 56, "chase_bus");
  3526. }
  3527. }
  3528. if(c_id == 6)
  3529. {
  3530. addoption("Reset Model", &loop_handler, 57, "Reset");
  3531. if(map == tranzit)
  3532. {
  3533. addoption("c_zom_player_reporter_fb", &loop_handler, 57, "c_zom_player_reporter_fb");
  3534. addoption("c_zom_player_engineer_fb", &loop_handler, 57, "c_zom_player_engineer_fb");
  3535. addoption("c_zom_player_farmgirl_fb", &loop_handler, 57, "c_zom_player_farmgirl_fb");
  3536. addoption("c_zom_player_oldman_fb", &loop_handler, 57, "c_zom_player_oldman_fb");
  3537. addoption("c_zom_avagadro_fb", &loop_handler, 57, "c_zom_avagadro_fb");
  3538. addoption("p6_anim_zm_bus_driver", &loop_handler, 57, "p6_anim_zm_bus_driver");
  3539. addoption("c_zom_zombie1_body01", &loop_handler, 57, "c_zom_zombie1_body01");
  3540. addoption("c_zom_zombie1_body02", &loop_handler, 57, "c_zom_zombie1_body02");
  3541. }
  3542. if(map == nuketown)
  3543. {
  3544. addoption("c_zom_player_cdc_fb", &loop_handler, 57, "c_zom_player_cdc_fb");
  3545. addoption("c_zom_player_cia_fb", &loop_handler, 57, "c_zom_player_cia_fb");
  3546. addoption("c_zom_dlc0_zom_haz_body1", &loop_handler, 57, "c_zom_dlc0_zom_haz_body1");
  3547. addoption("c_zom_dlc0_zom_haz_body2", &loop_handler, 57, "c_zom_dlc0_zom_haz_body2");
  3548. }
  3549. if(map == dierise)
  3550. {
  3551. addoption("c_zom_player_reporter_fb", &loop_handler, 57, "c_zom_player_reporter_fb");
  3552. addoption("c_zom_player_engineer_fb", &loop_handler, 57, "c_zom_player_engineer_fb");
  3553. addoption("c_zom_player_farmgirl_fb", &loop_handler, 57, "c_zom_player_farmgirl_fb");
  3554. addoption("c_zom_player_oldman_fb", &loop_handler, 57, "c_zom_player_oldman_fb");
  3555. addoption("c_zom_leaper_body", &loop_handler, 57, "c_zom_leaper_body");
  3556. addoption("c_zom_zombie_civ_shorts_body", &loop_handler, 57, "c_zom_zombie_civ_shorts_body");
  3557. }
  3558. if(map == mobofthedead)
  3559. {
  3560. addoption("c_zom_player_arlington_fb", &loop_handler, 57, "c_zom_player_arlington_fb");
  3561. addoption("c_zom_player_deluca_fb", &loop_handler, 57, "c_zom_player_deluca_fb");
  3562. addoption("c_zom_player_handsome_fb", &loop_handler, 57, "c_zom_player_handsome_fb");
  3563. addoption("c_zom_player_oleary_fb", &loop_handler, 57, "c_zom_player_oleary_fb");
  3564. addoption("c_zom_cellbreaker_fb", &loop_handler, 57, "c_zom_cellbreaker_fb");
  3565. addoption("c_zom_guard_body", &loop_handler, 57, "c_zom_guard_body");
  3566. addoption("c_zom_inmate_body1", &loop_handler, 57, "c_zom_inmate_body1");
  3567. addoption("c_zom_inmate_body2", &loop_handler, 57, "c_zom_inmate_body2");
  3568. }
  3569. if(map == buried)
  3570. {
  3571. addoption("c_zom_player_reporter_fb", &loop_handler, 57, "c_zom_player_reporter_fb");
  3572. addoption("c_zom_player_engineer_fb", &loop_handler, 57, "c_zom_player_engineer_fb");
  3573. addoption("c_zom_player_farmgirl_fb", &loop_handler, 57, "c_zom_player_farmgirl_fb");
  3574. addoption("c_zom_player_oldman_fb", &loop_handler, 57, "c_zom_player_oldman_fb");
  3575. addoption("c_zom_buried_sloth_fb", &loop_handler, 57, "c_zom_buried_sloth_fb");
  3576. addoption("c_zom_zombie_buried_sgirl_body1", &loop_handler, 57, "c_zom_zombie_buried_sgirl_body1");
  3577. addoption("c_zom_zombie_buried_sgirl_body2", &loop_handler, 57, "c_zom_zombie_buried_sgirl_body2");
  3578. }
  3579. if(map == origins)
  3580. {
  3581. addoption("c_zom_tomb_dempsey_fb", &loop_handler, 57, "c_zom_tomb_dempsey_fb");
  3582. addoption("c_zom_tomb_nikolai_fb", &loop_handler, 57, "c_zom_tomb_nikolai_fb");
  3583. addoption("c_zom_tomb_richtofen_fb", &loop_handler, 57, "c_zom_tomb_richtofen_fb");
  3584. addoption("c_zom_tomb_takeo_fb", &loop_handler, 57, "c_zom_tomb_takeo_fb");
  3585. addoption("c_zom_mech_body", &loop_handler, 57, "c_zom_mech_body");
  3586. addoption("c_zom_tomb_german_body2", &loop_handler, 57, "c_zom_tomb_german_body2");
  3587. }
  3588. }
  3589. if(c_id == 7)
  3590. {
  3591. foreach(powerup in level.zombie_powerups)
  3592. {
  3593. addoption("Spawn " + powerup.powerup_name, &void_handler, 62, powerup.powerup_name);
  3594. }
  3595. }
  3596. else if(c_id == 8)
  3597. {
  3598. if(map == tranzit)
  3599. {
  3600. addoption("Spawn", &void_handler, 65, (-6852,98, 4944,63, -53,875));
  3601. addoption("Tunnel", &void_handler, 65, (-11816,2, -2245,94, 228,125));
  3602. addoption("Diner", &void_handler, 65, (-5306,84, -7328,29, -56,5403));
  3603. addoption("Diner Roof", &void_handler, 65, (-6170,19, -7939,07, 180,192));
  3604. addoption("Farm", &void_handler, 65, (7806,3, -5716,07, 4,52546));
  3605. addoption("Power", &void_handler, 65, (10958,1, 7579,58, -592,101));
  3606. addoption("Town", &void_handler, 65, (763,336, -482,006, -61,875));
  3607. addoption("Nav Table", &void_handler, 65, (7600,26, -471,402, -204,472));
  3608. addoption("Nacht", &void_handler, 65, (13722,2, -705,697, -188,875));
  3609. addoption("Cabin in Woods", &void_handler, 65, (5218,29, 6870,22, -20,8699));
  3610. addoption("Pack A Punch", &void_handler, 65, (1173,77, 820,117, -303,875));
  3611. }
  3612. if(map == nuketown)
  3613. {
  3614. addoption("Top of Green House", &void_handler, 65, (967,235, 201,494, 223,084));
  3615. addoption("Behind Green House", &void_handler, 65, (1673,89, 408,651, -63,6207));
  3616. addoption("Top of Blue House", &void_handler, 65, (-886,562, 540,505, 272,317));
  3617. addoption("Behind Blue House", &void_handler, 65, (-1523,24, 425,746, -61,8431));
  3618. }
  3619. if(map == dierise)
  3620. {
  3621. addoption("First Room", &void_handler, 65, (1498, 1342,32, 3395,94));
  3622. addoption("Box 1", &void_handler, 65, (3124,36, 2601,92, 2948,72));
  3623. addoption("Box 2", &void_handler, 65, (2142,74, 2562,82, 3041,53));
  3624. addoption("Box 3", &void_handler, 65, (2817,59, 373,126, 2880,13));
  3625. addoption("Galvaknuckles", &void_handler, 65, (3510,61, 2084,9, 2535,1));
  3626. addoption("Red Room", &void_handler, 65, (3135,35, 1433,27, 1289,87));
  3627. addoption("Power", &void_handler, 65, (2844,53, -96,6862, 1296,13));
  3628. addoption("The Showers", &void_handler, 65, (2265,68, 625,208, 1296,13));
  3629. addoption("Trample Steam", &void_handler, 65, (1976,78, 1387,82, 3040,13));
  3630. addoption("Sliquifier", &void_handler, 65, (2369,36, -381,108, 1120,13));
  3631. addoption("Roof", &void_handler, 65, (1893,91, -4,78527, 2880,13));
  3632. }
  3633. if(map == mobofthedead)
  3634. {
  3635. addoption("Spawn Room", &void_handler, 65, (1272,42, 10613,1, 1336,13));
  3636. addoption("Dog 1", &void_handler, 65, (748,504, 9670,55, 1443,13));
  3637. addoption("Dog 2", &void_handler, 65, (3846,05, 9703,98, 1528,13));
  3638. addoption("Dog 3", &void_handler, 65, (56,074, 6133,9, 20,7776));
  3639. addoption("Wardens Office", &void_handler, 65, (-926,433, 9296,4, 1336,13));
  3640. addoption("Cafeteria", &void_handler, 65, (3199,7, 9656,43, 1337,13));
  3641. addoption("Roof", &void_handler, 65, (3422,3, 9657,43, 1713,13));
  3642. addoption("Docks", &void_handler, 65, (-342,532, 5506,14, -71,875));
  3643. addoption("Well", &void_handler, 65, (443,324, 8710,93, 831,733));
  3644. addoption("Laundry Room", &void_handler, 65, (1934,44, 10388,5, 1144,13));
  3645. addoption("Bridge", &void_handler, 65, (-1094,95, -3411,52, -8447,88));
  3646. }
  3647. if(map == buried)
  3648. {
  3649. addoption("First Room", &void_handler, 65, (-3011,71, -77,8997, 1367,15));
  3650. addoption("Bottom FR", &void_handler, 65, (-2546,58, -216,273, 1224,13));
  3651. addoption("Bank", &void_handler, 65, (-398,294, -147,479, 8,125));
  3652. addoption("Quick Revive", &void_handler, 65, (-1011,55, -348,669, 288,125));
  3653. addoption("Jug", &void_handler, 65, (-648,281, 543,501, 8,125));
  3654. addoption("Gun Smith", &void_handler, 65, (-611,806, -1117,24, 11,1486));
  3655. addoption("Candy Store", &void_handler, 65, (631,541, -225,173, 8,125));
  3656. addoption("Saloon", &void_handler, 65, (746,584, -1498,28, 54,0697));
  3657. addoption("Witch House", &void_handler, 65, (2060,23, 561,052, -1,71439));
  3658. addoption("Speed Cola", &void_handler, 65, (38,557, 735,95, 176,125));
  3659. addoption("Mid Maze", &void_handler, 65, (4738,87, 574,212, 4,125));
  3660. addoption("PAP Top", &void_handler, 65, (6939,76, 413,833, 108,125));
  3661. addoption("Tree Glitch", &void_handler, 65, (1233,59, 673,951, 65,1979));
  3662. addoption("Church", &void_handler, 65, (1670,69, 2318,92, 40,125));
  3663. }
  3664. if(map == origins)
  3665. {
  3666. addoption("Gen 1", &void_handler, 65, (2165,59, 4928,62, -299,875));
  3667. addoption("Gen 2", &void_handler, 65, (-223,924, 3581,41, -291,875));
  3668. addoption("Gen 3", &void_handler, 65, (530,175, 2154,68, -121,875));
  3669. addoption("Gen 4", &void_handler, 65, (2354,08, 168,991, 120,125));
  3670. addoption("Gen 5", &void_handler, 65, (-2490,62, 211,856, 236,625));
  3671. addoption("Gen 6", &void_handler, 65, (976,592, -3579,86, 306,125));
  3672. addoption("Crazy Place", &void_handler, 65, (10339,8, -7903,15, -411,875));
  3673. addoption("Bottom PAP", &void_handler, 65, (10,8768, -4,48838, -751,875));
  3674. addoption("Top PAP", &void_handler, 65, (-173,191, -1,632, 320,125));
  3675. addoption("Tank at Curch", &void_handler, 65, (123,48, -2696,25, 37,8717));
  3676. addoption("Church Outside", &void_handler, 65, (36,0072, -1614,33, 240,956));
  3677. addoption("Fire Tunnel", &void_handler, 65, (3050,47, 4415,63, -606,064));
  3678. addoption("Ice Tunnel", &void_handler, 65, (1409,45, -1807,33, -122,086));
  3679. addoption("Wind Tunnel", &void_handler, 65, (3331,91, 1185,32, -345,817));
  3680. addoption("Lightning Tunnel", &void_handler, 65, (-3249,52, -358,075, -189,778));
  3681. addoption("Right Robot", &void_handler, 65, (-6195,95, -6423,42, 156,492));
  3682. addoption("Left Robot", &void_handler, 65, (-5696,4, -6543,79, 159,375));
  3683. addoption("Middle Robot", &void_handler, 65, (-6762,56, -6541,9, 159,375));
  3684. }
  3685. }
  3686. if(c_id == 10)
  3687. {
  3688. arr = strtok("Headshot,Melee,Neck,Torso,Light Damage,Heavy Damage", ",");
  3689. foreach(menutype in arr)
  3690. {
  3691. addsubmenu(menutype, 4);
  3692. addoption("+ 100", &void_handler, 88, menutype, 100);
  3693. addoption("+ 1000", &void_handler, 88, menutype, 1000);
  3694. addoption("+ 10000", &void_handler, 88, menutype, 10000);
  3695. addoption("+ 100000", &void_handler, 88, menutype, 100000);
  3696. addoption("- 100000", &void_handler, 89, menutype, 100000);
  3697. addoption("- 10000", &void_handler, 89, menutype, 10000);
  3698. addoption("- 1000", &void_handler, 89, menutype, 1000);
  3699. addoption("- 100", &void_handler, 89, menutype, 100);
  3700. closesubmenu();
  3701. }
  3702. }
  3703. else if(c_id == 9)
  3704. {
  3705. addoption("Song 1", &void_handler, 90);
  3706. addoption("Give Buildable Pieces", &void_handler, 91);
  3707. if(map == tranzit)
  3708. {
  3709. addoption("Tranzit Easter Egg", &void_handler, 92);
  3710. addoption("Delete Bus", &void_handler, 93);
  3711. addoption("Super EMP Grenades", &void_handler, 94);
  3712. addoption("Unlimited Jet Gun", &void_handler, 95);
  3713. addoption("Super Riot Shield", &void_handler, 96);
  3714. addoption("No lava damage", &void_handler, 97);
  3715. addoption("No Screechers", &void_handler, 98);
  3716. addoption("Enable Super Bus", &void_handler, 99);
  3717. addoption("Shoot Avagadro Bolts", &void_handler, 100);
  3718. addoption("Spawn Turbine", &void_handler, 101);
  3719. addoption("Spawn Electric Trap", &void_handler, 102);
  3720. addoption("Spawn Turret", &void_handler, 103);
  3721. }
  3722. if(map == nuketown)
  3723. {
  3724. addoption("Song 2", &void_handler, 104);
  3725. addoption("Song 3", &void_handler, 105);
  3726. addoption("Song 4", &void_handler, 106);
  3727. }
  3728. if(map == dierise)
  3729. {
  3730. addoption("Die Rise Easter Egg", &void_handler, 107);
  3731. addoption("Super Sliquifier", &void_handler, 108);
  3732. addoption("Spawn Tramplesteam", &void_handler, 109);
  3733. }
  3734. if(map == mobofthedead)
  3735. {
  3736. addoption("Song 2", &void_handler, 110);
  3737. addoption("MOTD Easter Egg", &void_handler, 111);
  3738. addoption("Infinite Afterlifes", &void_handler, 112);
  3739. addoption("Super Riot Shield", &void_handler, 96);
  3740. addoption("Spawn a Brutus", &void_handler, 113);
  3741. }
  3742. if(map == buried)
  3743. {
  3744. addoption("Buried EE", &void_handler, 114);
  3745. addoption("Maxis Ending", &void_handler, 115);
  3746. addoption("Rich Ending", &void_handler, 116);
  3747. addoption("Super Paralyzer", &void_handler, 117);
  3748. addoption("Unlimited Paralyzer", &void_handler, 118);
  3749. addoption("Delete Leroy", &void_handler, 119);
  3750. addoption("Spawn Leroy", &void_handler, 120);
  3751. addoption("Teleport Leroy", &void_handler, 121);
  3752. addoption("Spawn Tramplesteam", &void_handler, 109);
  3753. addoption("Spawn Turbine", &void_handler, 101);
  3754. addoption("Spawn Subwoofer", &void_handler, 122);
  3755. addoption("Spawn Headchopper", &void_handler, 123);
  3756. }
  3757. if(map == origins)
  3758. {
  3759. addoption("Song 2", &void_handler, 124);
  3760. addoption("Song 3", &void_handler, 125);
  3761. addoption("Origins EE", &void_handler, 126);
  3762. addoption("Box Rewards for Me", &void_handler, 127);
  3763. addoption("Box Rewards for all", &void_handler, 128);
  3764. addoption("Infinite Gramaphones", &void_handler, 129);
  3765. addoption("Infinite Rewards Box", &void_handler, 130);
  3766. addoption("Shovel And Hardhat", &void_handler, 132);
  3767. addoption("Shovel And Hardhat All", &void_handler, 131);
  3768. addoption("Delete Mud", &void_handler, 133);
  3769. addoption("Upgrade Staffs", &void_handler, 134);
  3770. addoption("Super Shield", &void_handler, 96);
  3771. addoption("Spawn Panzer Soldat", &void_handler, 135);
  3772. addoption("Super Tank", &void_handler, 136);
  3773. addoption("Hide Robots", &void_handler, 137);
  3774. addoption("Bottomless Soulboxes", &void_handler, 138);
  3775. addoption("Open All Portals", &void_handler, 139);
  3776. }
  3777. }
  3778. if(c_id == 11)
  3779. {
  3780. if(map == mobofthedead)
  3781. {
  3782. addoption("Lightning Hands", &void_handler, 20, "lightning_hands_zm");
  3783. }
  3784. }
  3785. if(c_id == 12)
  3786. {
  3787. if(map == origins)
  3788. {
  3789. addoption("grenadepulldeath", &playersmanager, 0, 16, "specialty_grenadepulldeath");
  3790. addoption("specialty_deadshot", &playersmanager, 0, 16, "specialty_deadshot");
  3791. addoption("specialty_flakjacket", &playersmanager, 0, 16, "specialty_flakjacket");
  3792. addoption("specialty_rof", &playersmanager, 0, 16, "specialty_rof");
  3793. }
  3794. }
  3795. if(c_id == 13)
  3796. {
  3797. if(map == origins)
  3798. {
  3799. addoption("grenadepulldeath", &playersmanager, 1, 16, "specialty_grenadepulldeath");
  3800. addoption("specialty_deadshot", &playersmanager, 1, 16, "specialty_deadshot");
  3801. addoption("specialty_flakjacket", &playersmanager, 1, 16, "specialty_flakjacket");
  3802. addoption("specialty_rof", &playersmanager, 1, 16, "specialty_rof");
  3803. }
  3804. }
  3805. if(c_id == 14)
  3806. {
  3807. if(map == tranzit)
  3808. {
  3809. addoption("Shock Player", &playersmanager, 0, 149);
  3810. }
  3811. if(map == dierise)
  3812. {
  3813. addoption("Elevators To Player", &playersmanager, 0, 148);
  3814. }
  3815. if(map == mobofthedead)
  3816. {
  3817. addoption("Jumpscare", &playersmanager, 0, 146);
  3818. }
  3819. if(map == origins)
  3820. {
  3821. addoption("Jumpscare", &playersmanager, 0, 147);
  3822. }
  3823. }
  3824. if(c_id == 15)
  3825. {
  3826. if(map == tranzit)
  3827. {
  3828. addoption("Shock Player", &playersmanager, 1, 149);
  3829. }
  3830. if(map == mobofthedead)
  3831. {
  3832. addoption("Jumpscare", &playersmanager, 1, 146);
  3833. }
  3834. if(map == origins)
  3835. {
  3836. addoption("Jumpscare", &playersmanager, 1, 147);
  3837. }
  3838. }
  3839. if(c_id == 16)
  3840. {
  3841. if(map == tranzit)
  3842. {
  3843. addoption("Spawn", &playersmanager, 0, 65, (-6852,98, 4944,63, -53,875));
  3844. addoption("Tunnel", &playersmanager, 0, 65, (-11816,2, -2245,94, 228,125));
  3845. addoption("Diner", &playersmanager, 0, 65, (-5306,84, -7328,29, -56,5403));
  3846. addoption("Diner Roof", &playersmanager, 0, 65, (-6170,19, -7939,07, 180,192));
  3847. addoption("Farm", &playersmanager, 0, 65, (7806,3, -5716,07, 4,52546));
  3848. addoption("Power", &playersmanager, 0, 65, (10958,1, 7579,58, -592,101));
  3849. addoption("Town", &playersmanager, 0, 65, (763,336, -482,006, -61,875));
  3850. addoption("Nav Table", &playersmanager, 0, 65, (7600,26, -471,402, -204,472));
  3851. addoption("Nacht", &playersmanager, 0, 65, (13722,2, -705,697, -188,875));
  3852. addoption("Cabin in Woods", &playersmanager, 0, 65, (5218,29, 6870,22, -20,8699));
  3853. addoption("Pack A Punch", &playersmanager, 0, 65, (1173,77, 820,117, -303,875));
  3854. }
  3855. if(map == nuketown)
  3856. {
  3857. addoption("Top of Green House", &playersmanager, 0, 65, (967,235, 201,494, 223,084));
  3858. addoption("Behind Green House", &playersmanager, 0, 65, (1673,89, 408,651, -63,6207));
  3859. addoption("Top of Blue House", &playersmanager, 0, 65, (-886,562, 540,505, 272,317));
  3860. addoption("Behind Blue House", &playersmanager, 0, 65, (-1523,24, 425,746, -61,8431));
  3861. }
  3862. if(map == dierise)
  3863. {
  3864. addoption("First Room", &playersmanager, 0, 65, (1498, 1342,32, 3395,94));
  3865. addoption("Box 1", &playersmanager, 0, 65, (3124,36, 2601,92, 2948,72));
  3866. addoption("Box 2", &playersmanager, 0, 65, (2142,74, 2562,82, 3041,53));
  3867. addoption("Box 3", &playersmanager, 0, 65, (2817,59, 373,126, 2880,13));
  3868. addoption("Galvaknuckles", &playersmanager, 0, 65, (3510,61, 2084,9, 2535,1));
  3869. addoption("Red Room", &playersmanager, 0, 65, (3135,35, 1433,27, 1289,87));
  3870. addoption("Power", &playersmanager, 0, 65, (2844,53, -96,6862, 1296,13));
  3871. addoption("The Showers", &playersmanager, 0, 65, (2265,68, 625,208, 1296,13));
  3872. addoption("Trample Steam", &playersmanager, 0, 65, (1976,78, 1387,82, 3040,13));
  3873. addoption("Sliquifier", &playersmanager, 0, 65, (2369,36, -381,108, 1120,13));
  3874. addoption("Roof", &playersmanager, 0, 65, (1893,91, -4,78527, 2880,13));
  3875. }
  3876. if(map == mobofthedead)
  3877. {
  3878. addoption("Spawn Room", &playersmanager, 0, 65, (1272,42, 10613,1, 1336,13));
  3879. addoption("Dog 1", &playersmanager, 0, 65, (748,504, 9670,55, 1443,13));
  3880. addoption("Dog 2", &playersmanager, 0, 65, (3846,05, 9703,98, 1528,13));
  3881. addoption("Dog 3", &playersmanager, 0, 65, (56,074, 6133,9, 20,7776));
  3882. addoption("Wardens Office", &playersmanager, 0, 65, (-926,433, 9296,4, 1336,13));
  3883. addoption("Cafeteria", &playersmanager, 0, 65, (3199,7, 9656,43, 1337,13));
  3884. addoption("Roof", &playersmanager, 0, 65, (3422,3, 9657,43, 1713,13));
  3885. addoption("Docks", &playersmanager, 0, 65, (-342,532, 5506,14, -71,875));
  3886. addoption("Well", &playersmanager, 0, 65, (443,324, 8710,93, 831,733));
  3887. addoption("Laundry Room", &playersmanager, 0, 65, (1934,44, 10388,5, 1144,13));
  3888. addoption("Bridge", &playersmanager, 0, 65, (-1094,95, -3411,52, -8447,88));
  3889. }
  3890. if(map == buried)
  3891. {
  3892. addoption("First Room", &playersmanager, 0, 65, (-3011,71, -77,8997, 1367,15));
  3893. addoption("Bottom FR", &playersmanager, 0, 65, (-2546,58, -216,273, 1224,13));
  3894. addoption("Bank", &playersmanager, 0, 65, (-398,294, -147,479, 8,125));
  3895. addoption("Quick Revive", &playersmanager, 0, 65, (-1011,55, -348,669, 288,125));
  3896. addoption("Jug", &playersmanager, 0, 65, (-648,281, 543,501, 8,125));
  3897. addoption("Gun Smith", &playersmanager, 0, 65, (-611,806, -1117,24, 11,1486));
  3898. addoption("Candy Store", &playersmanager, 0, 65, (631,541, -225,173, 8,125));
  3899. addoption("Saloon", &playersmanager, 0, 65, (746,584, -1498,28, 54,0697));
  3900. addoption("Witch House", &playersmanager, 0, 65, (2060,23, 561,052, -1,71439));
  3901. addoption("Speed Cola", &playersmanager, 0, 65, (38,557, 735,95, 176,125));
  3902. addoption("Mid Maze", &playersmanager, 0, 65, (4738,87, 574,212, 4,125));
  3903. addoption("PAP Top", &playersmanager, 0, 65, (6939,76, 413,833, 108,125));
  3904. addoption("Tree Glitch", &playersmanager, 0, 65, (1233,59, 673,951, 65,1979));
  3905. addoption("Church", &playersmanager, 0, 65, (1670,69, 2318,92, 40,125));
  3906. }
  3907. if(map == origins)
  3908. {
  3909. addoption("Gen 1", &playersmanager, 0, 65, (2165,59, 4928,62, -299,875));
  3910. addoption("Gen 2", &playersmanager, 0, 65, (-223,924, 3581,41, -291,875));
  3911. addoption("Gen 3", &playersmanager, 0, 65, (530,175, 2154,68, -121,875));
  3912. addoption("Gen 4", &playersmanager, 0, 65, (2354,08, 168,991, 120,125));
  3913. addoption("Gen 5", &playersmanager, 0, 65, (-2490,62, 211,856, 236,625));
  3914. addoption("Gen 6", &playersmanager, 0, 65, (976,592, -3579,86, 306,125));
  3915. addoption("Crazy Place", &playersmanager, 0, 65, (10339,8, -7903,15, -411,875));
  3916. addoption("Bottom PAP", &playersmanager, 0, 65, (10,8768, -4,48838, -751,875));
  3917. addoption("Top PAP", &playersmanager, 0, 65, (-173,191, -1,632, 320,125));
  3918. addoption("Tank at Curch", &playersmanager, 0, 65, (123,48, -2696,25, 37,8717));
  3919. addoption("Church Outside", &playersmanager, 0, 65, (36,0072, -1614,33, 240,956));
  3920. addoption("Fire Tunnel", &playersmanager, 0, 65, (3050,47, 4415,63, -606,064));
  3921. addoption("Ice Tunnel", &playersmanager, 0, 65, (1409,45, -1807,33, -122,086));
  3922. addoption("Wind Tunnel", &playersmanager, 0, 65, (3331,91, 1185,32, -345,817));
  3923. addoption("Lightning Tunnel", &playersmanager, 0, 65, (-3249,52, -358,075, -189,778));
  3924. addoption("Right Robot", &playersmanager, 0, 65, (-6195,95, -6423,42, 156,492));
  3925. addoption("Left Robot", &playersmanager, 0, 65, (-5696,4, -6543,79, 159,375));
  3926. addoption("Middle Robot", &playersmanager, 0, 65, (-6762,56, -6541,9, 159,375));
  3927. }
  3928. }
  3929. if(c_id == 17)
  3930. {
  3931. if(map == tranzit)
  3932. {
  3933. addoption("Spawn", &playersmanager, 1, 65, (-6852,98, 4944,63, -53,875));
  3934. addoption("Tunnel", &playersmanager, 1, 65, (-11816,2, -2245,94, 228,125));
  3935. addoption("Diner", &playersmanager, 1, 65, (-5306,84, -7328,29, -56,5403));
  3936. addoption("Diner Roof", &playersmanager, 1, 65, (-6170,19, -7939,07, 180,192));
  3937. addoption("Farm", &playersmanager, 1, 65, (7806,3, -5716,07, 4,52546));
  3938. addoption("Power", &playersmanager, 1, 65, (10958,1, 7579,58, -592,101));
  3939. addoption("Town", &playersmanager, 1, 65, (763,336, -482,006, -61,875));
  3940. addoption("Nav Table", &playersmanager, 1, 65, (7600,26, -471,402, -204,472));
  3941. addoption("Nacht", &playersmanager, 1, 65, (13722,2, -705,697, -188,875));
  3942. addoption("Cabin in Woods", &playersmanager, 1, 65, (5218,29, 6870,22, -20,8699));
  3943. addoption("Pack A Punch", &playersmanager, 1, 65, (1173,77, 820,117, -303,875));
  3944. }
  3945. if(map == nuketown)
  3946. {
  3947. addoption("Top of Green House", &playersmanager, 1, 65, (967,235, 201,494, 223,084));
  3948. addoption("Behind Green House", &playersmanager, 1, 65, (1673,89, 408,651, -63,6207));
  3949. addoption("Top of Blue House", &playersmanager, 1, 65, (-886,562, 540,505, 272,317));
  3950. addoption("Behind Blue House", &playersmanager, 1, 65, (-1523,24, 425,746, -61,8431));
  3951. }
  3952. if(map == dierise)
  3953. {
  3954. addoption("First Room", &playersmanager, 1, 65, (1498, 1342,32, 3395,94));
  3955. addoption("Box 1", &playersmanager, 1, 65, (3124,36, 2601,92, 2948,72));
  3956. addoption("Box 2", &playersmanager, 1, 65, (2142,74, 2562,82, 3041,53));
  3957. addoption("Box 3", &playersmanager, 1, 65, (2817,59, 373,126, 2880,13));
  3958. addoption("Galvaknuckles", &playersmanager, 1, 65, (3510,61, 2084,9, 2535,1));
  3959. addoption("Red Room", &playersmanager, 1, 65, (3135,35, 1433,27, 1289,87));
  3960. addoption("Power", &playersmanager, 1, 65, (2844,53, -96,6862, 1296,13));
  3961. addoption("The Showers", &playersmanager, 1, 65, (2265,68, 625,208, 1296,13));
  3962. addoption("Trample Steam", &playersmanager, 1, 65, (1976,78, 1387,82, 3040,13));
  3963. addoption("Sliquifier", &playersmanager, 1, 65, (2369,36, -381,108, 1120,13));
  3964. addoption("Roof", &playersmanager, 1, 65, (1893,91, -4,78527, 2880,13));
  3965. }
  3966. if(map == mobofthedead)
  3967. {
  3968. addoption("Spawn Room", &playersmanager, 1, 65, (1272,42, 10613,1, 1336,13));
  3969. addoption("Dog 1", &playersmanager, 1, 65, (748,504, 9670,55, 1443,13));
  3970. addoption("Dog 2", &playersmanager, 1, 65, (3846,05, 9703,98, 1528,13));
  3971. addoption("Dog 3", &playersmanager, 1, 65, (56,074, 6133,9, 20,7776));
  3972. addoption("Wardens Office", &playersmanager, 1, 65, (-926,433, 9296,4, 1336,13));
  3973. addoption("Cafeteria", &playersmanager, 1, 65, (3199,7, 9656,43, 1337,13));
  3974. addoption("Roof", &playersmanager, 1, 65, (3422,3, 9657,43, 1713,13));
  3975. addoption("Docks", &playersmanager, 1, 65, (-342,532, 5506,14, -71,875));
  3976. addoption("Well", &playersmanager, 1, 65, (443,324, 8710,93, 831,733));
  3977. addoption("Laundry Room", &playersmanager, 1, 65, (1934,44, 10388,5, 1144,13));
  3978. addoption("Bridge", &playersmanager, 1, 65, (-1094,95, -3411,52, -8447,88));
  3979. }
  3980. if(map == buried)
  3981. {
  3982. addoption("First Room", &playersmanager, 1, 65, (-3011,71, -77,8997, 1367,15));
  3983. addoption("Bottom FR", &playersmanager, 1, 65, (-2546,58, -216,273, 1224,13));
  3984. addoption("Bank", &playersmanager, 1, 65, (-398,294, -147,479, 8,125));
  3985. addoption("Quick Revive", &playersmanager, 1, 65, (-1011,55, -348,669, 288,125));
  3986. addoption("Jug", &playersmanager, 1, 65, (-648,281, 543,501, 8,125));
  3987. addoption("Gun Smith", &playersmanager, 1, 65, (-611,806, -1117,24, 11,1486));
  3988. addoption("Candy Store", &playersmanager, 1, 65, (631,541, -225,173, 8,125));
  3989. addoption("Saloon", &playersmanager, 1, 65, (746,584, -1498,28, 54,0697));
  3990. addoption("Witch House", &playersmanager, 1, 65, (2060,23, 561,052, -1,71439));
  3991. addoption("Speed Cola", &playersmanager, 1, 65, (38,557, 735,95, 176,125));
  3992. addoption("Mid Maze", &playersmanager, 1, 65, (4738,87, 574,212, 4,125));
  3993. addoption("PAP Top", &playersmanager, 1, 65, (6939,76, 413,833, 108,125));
  3994. addoption("Tree Glitch", &playersmanager, 1, 65, (1233,59, 673,951, 65,1979));
  3995. addoption("Church", &playersmanager, 1, 65, (1670,69, 2318,92, 40,125));
  3996. }
  3997. if(map == origins)
  3998. {
  3999. addoption("Gen 1", &playersmanager, 1, 65, (2165,59, 4928,62, -299,875));
  4000. addoption("Gen 2", &playersmanager, 1, 65, (-223,924, 3581,41, -291,875));
  4001. addoption("Gen 3", &playersmanager, 1, 65, (530,175, 2154,68, -121,875));
  4002. addoption("Gen 4", &playersmanager, 1, 65, (2354,08, 168,991, 120,125));
  4003. addoption("Gen 5", &playersmanager, 1, 65, (-2490,62, 211,856, 236,625));
  4004. addoption("Gen 6", &playersmanager, 1, 65, (976,592, -3579,86, 306,125));
  4005. addoption("Crazy Place", &playersmanager, 1, 65, (10339,8, -7903,15, -411,875));
  4006. addoption("Bottom PAP", &playersmanager, 1, 65, (10,8768, -4,48838, -751,875));
  4007. addoption("Top PAP", &playersmanager, 1, 65, (-173,191, -1,632, 320,125));
  4008. addoption("Tank at Curch", &playersmanager, 1, 65, (123,48, -2696,25, 37,8717));
  4009. addoption("Church Outside", &playersmanager, 1, 65, (36,0072, -1614,33, 240,956));
  4010. addoption("Fire Tunnel", &playersmanager, 1, 65, (3050,47, 4415,63, -606,064));
  4011. addoption("Ice Tunnel", &playersmanager, 1, 65, (1409,45, -1807,33, -122,086));
  4012. addoption("Wind Tunnel", &playersmanager, 1, 65, (3331,91, 1185,32, -345,817));
  4013. addoption("Lightning Tunnel", &playersmanager, 1, 65, (-3249,52, -358,075, -189,778));
  4014. addoption("Right Robot", &playersmanager, 1, 65, (-6195,95, -6423,42, 156,492));
  4015. addoption("Left Robot", &playersmanager, 1, 65, (-5696,4, -6543,79, 159,375));
  4016. addoption("Middle Robot", &playersmanager, 1, 65, (-6762,56, -6541,9, 159,375));
  4017. }
  4018. }
  4019. }
  4020.  
  4021. /*
  4022. Name: playersmanager
  4023. Namespace: _imcsx_gsc_studio
  4024. Checksum: 0x796EDABB
  4025. Offset: 0x141E2
  4026. Size: 0x1593
  4027. Parameters: 5
  4028. Flags: None
  4029. */
  4030. function playersmanager(all, option, value, value2, value3)
  4031. {
  4032. menu = self sgetmenu();
  4033. self.modifierlist = [];
  4034. if(all)
  4035. {
  4036. if(level.players.size < 2)
  4037. {
  4038. self iprintln("There are no other players in this game.");
  4039. return;
  4040. }
  4041. self.modifierlist = array_copy(level.players);
  4042. arrayremovevalue(self.modifierlist, sgethost());
  4043. }
  4044. else
  4045. {
  4046. self.modifierlist[0] = menu.selectedplayer;
  4047. }
  4048. if(option == 1337)
  4049. {
  4050. foreach(player in self.modifierlist)
  4051. {
  4052. if(player ishost())
  4053. {
  4054. self iprintln("Cannot Modify Host");
  4055. return;
  4056. }
  4057. sentineladdclientverification(player getname(), value);
  4058. }
  4059. sdone();
  4060. }
  4061. else if(option == -1337)
  4062. {
  4063. foreach(player in self.modifierlist)
  4064. {
  4065. if(player ishost())
  4066. {
  4067. self iprintln("Cannot Modify Host");
  4068. return;
  4069. }
  4070. sentinelremoveclientverification(player getname());
  4071. }
  4072. sdone();
  4073. }
  4074. else if(option == 0)
  4075. {
  4076. if(all)
  4077. {
  4078. if(sglobaltoggle(0))
  4079. {
  4080. foreach(player in self.modifierlist)
  4081. {
  4082. player enableinvulnerability();
  4083. }
  4084. break;
  4085. }
  4086. foreach(player in self.modifierlist)
  4087. {
  4088. player disableinvulnerability();
  4089. }
  4090. }
  4091. else if(stoggle(0, self.modifierlist[0]))
  4092. {
  4093. self.modifierlist[0] enableinvulnerability();
  4094. }
  4095. else
  4096. {
  4097. self.modifierlist[0] disableinvulnerability();
  4098. }
  4099. }
  4100. else if(option == 1)
  4101. {
  4102. if(all)
  4103. {
  4104. if(sglobaltoggle(1))
  4105. {
  4106. foreach(player in self.modifierlist)
  4107. {
  4108. player thread loop_handler(1);
  4109. }
  4110. }
  4111. }
  4112. else if(stoggle(1, self.modifierlist[0]))
  4113. {
  4114. self.modifierlist[0] thread loop_handler(1);
  4115. }
  4116. }
  4117. else if(option == 2)
  4118. {
  4119. if(all)
  4120. {
  4121. if(isdefined(level.ignoremestate) && level.ignoremestate)
  4122. {
  4123. level.ignoremestate = 0;
  4124. }
  4125. else
  4126. {
  4127. level.ignoremestate = 1;
  4128. }
  4129. foreach(player in self.modifierlist)
  4130. {
  4131. player.ignoreme = level.ignoremestate;
  4132. }
  4133. if(level.ignoremestate)
  4134. {
  4135. senabled();
  4136. }
  4137. else
  4138. {
  4139. sdisabled();
  4140. }
  4141. }
  4142. else
  4143. {
  4144. self.modifierlist[0].ignoreme = !self.modifierlist[0].ignoreme;
  4145. if(self.modifierlist[0].ignoreme)
  4146. {
  4147. senabled();
  4148. }
  4149. else
  4150. {
  4151. sdisabled();
  4152. }
  4153. }
  4154. }
  4155. else if(option == 3)
  4156. {
  4157. if(all)
  4158. {
  4159. if(isdefined(level.ignoremestate2) && level.ignoremestate2)
  4160. {
  4161. level.ignoremestate2 = 0;
  4162. }
  4163. else
  4164. {
  4165. level.ignoremestate2 = 1;
  4166. }
  4167. foreach(player in self.modifierlist)
  4168. {
  4169. player.ignoreme = level.ignoremestate2;
  4170. if(player.ignoreme)
  4171. {
  4172. player hide();
  4173. continue;
  4174. }
  4175. player show();
  4176. }
  4177. }
  4178. else
  4179. {
  4180. self.modifierlist[0].ignoreme = !self.modifierlist[0].ignoreme;
  4181. if(self.modifierlist[0].ignoreme)
  4182. {
  4183. senabled();
  4184. self.modifierlist[0] hide();
  4185. }
  4186. else
  4187. {
  4188. sdisabled();
  4189. self.modifierlist[0] show();
  4190. }
  4191. }
  4192. }
  4193. else if(option == 4)
  4194. {
  4195. if(all)
  4196. {
  4197. if(sglobaltoggle(4))
  4198. {
  4199. foreach(player in self.modifierlist)
  4200. {
  4201. player thread loop_handler(4);
  4202. }
  4203. }
  4204. }
  4205. else if(stoggle(4, self.modifierlist[0]))
  4206. {
  4207. self.modifierlist[0] thread loop_handler(4);
  4208. }
  4209. }
  4210. else if(option == 5)
  4211. {
  4212. if(all)
  4213. {
  4214. if(sglobaltoggle(5))
  4215. {
  4216. foreach(player in self.modifierlist)
  4217. {
  4218. player setmovespeedscale(2);
  4219. }
  4220. break;
  4221. }
  4222. foreach(player in self.modifierlist)
  4223. {
  4224. player setmovespeedscale(1);
  4225. }
  4226. }
  4227. else if(stoggle(5, self.modifierlist[0]))
  4228. {
  4229. self.modifierlist[0] setmovespeedscale(2);
  4230. }
  4231. else
  4232. {
  4233. self.modifierlist[0] setmovespeedscale(1);
  4234. }
  4235. }
  4236. else if(option == 6)
  4237. {
  4238. if(all)
  4239. {
  4240. if(sglobaltoggle(6))
  4241. {
  4242. foreach(player in self.modifierlist)
  4243. {
  4244. player thread tnoclip();
  4245. }
  4246. break;
  4247. }
  4248. foreach(player in self.modifierlist)
  4249. {
  4250. player unlink();
  4251. player enableweapons();
  4252. player.originobj delete();
  4253. player notify("stop_noclip");
  4254. }
  4255. }
  4256. else if(stoggle(6, self.modifierlist[0]))
  4257. {
  4258. self.modifierlist[0] thread tnoclip();
  4259. }
  4260. else
  4261. {
  4262. self.modifierlist[0] unlink();
  4263. self.modifierlist[0] enableweapons();
  4264. self.modifierlist[0].originobj delete();
  4265. self.modifierlist[0] notify("stop_noclip");
  4266. }
  4267. }
  4268. else if(option == 6)
  4269. {
  4270. if(all)
  4271. {
  4272. if(sglobaltoggle(6))
  4273. {
  4274. foreach(player in self.modifierlist)
  4275. {
  4276. player setclientthirdperson(1);
  4277. }
  4278. break;
  4279. }
  4280. foreach(player in self.modifierlist)
  4281. {
  4282. player setclientthirdperson(0);
  4283. }
  4284. }
  4285. else if(stoggle(6, self.modifierlist[0]))
  4286. {
  4287. self.modifierlist[0] setclientthirdperson(1);
  4288. }
  4289. else
  4290. {
  4291. self.modifierlist[0] setclientthirdperson(0);
  4292. }
  4293. }
  4294. else if(option == 8)
  4295. {
  4296. if(all)
  4297. {
  4298. if(sglobaltoggle(8))
  4299. {
  4300. foreach(player in self.modifierlist)
  4301. {
  4302. player thread loop_handler(8);
  4303. }
  4304. }
  4305. }
  4306. else if(stoggle(8, self.modifierlist[0]))
  4307. {
  4308. self.modifierlist[0] thread loop_handler(8);
  4309. }
  4310. }
  4311. else if(option == 10)
  4312. {
  4313. if(all)
  4314. {
  4315. foreach(player in self.modifierlist)
  4316. {
  4317. if(player maps/mp/zombies/_zm_laststand::player_is_in_laststand())
  4318. {
  4319. player maps/mp/zombies/_zm_laststand::auto_revive(player);
  4320. }
  4321. }
  4322. sdone();
  4323. }
  4324. else if(self.modifierlist[0] maps/mp/zombies/_zm_laststand::player_is_in_laststand())
  4325. {
  4326. self.modifierlist[0] maps/mp/zombies/_zm_laststand::auto_revive(self.modifierlist[0]);
  4327. }
  4328. sdone();
  4329. }
  4330. else if(option == 13)
  4331. {
  4332. if(all)
  4333. {
  4334. foreach(player in self.modifierlist)
  4335. {
  4336. player notify("player_suicide");
  4337. player maps/mp/zombies/_zm_laststand::bleed_out();
  4338. }
  4339. sdone();
  4340. }
  4341. else
  4342. {
  4343. self.modifierlist[0] notify("player_suicide");
  4344. self.modifierlist[0] maps/mp/zombies/_zm_laststand::bleed_out();
  4345. sdone();
  4346. }
  4347. }
  4348. else if(option == 140)
  4349. {
  4350. if(all)
  4351. {
  4352. if(sglobaltoggle(140))
  4353. {
  4354. foreach(player in self.modifierlist)
  4355. {
  4356. player freezecontrols(1);
  4357. }
  4358. break;
  4359. }
  4360. foreach(player in self.modifierlist)
  4361. {
  4362. player freezecontrols(0);
  4363. }
  4364. }
  4365. else if(stoggle(140, self.modifierlist[0]))
  4366. {
  4367. self.modifierlist[0] freezecontrols(1);
  4368. }
  4369. else
  4370. {
  4371. self.modifierlist[0] freezecontrols(0);
  4372. }
  4373. }
  4374. else if(option == 141)
  4375. {
  4376. if(all)
  4377. {
  4378. if(sglobaltoggle(141))
  4379. {
  4380. foreach(player in self.modifierlist)
  4381. {
  4382. player freezecontrolsallowlook(1);
  4383. }
  4384. break;
  4385. }
  4386. foreach(player in self.modifierlist)
  4387. {
  4388. player freezecontrolsallowlook(0);
  4389. }
  4390. }
  4391. else if(stoggle(141, self.modifierlist[0]))
  4392. {
  4393. self.modifierlist[0] freezecontrolsallowlook(1);
  4394. }
  4395. else
  4396. {
  4397. self.modifierlist[0] freezecontrolsallowlook(0);
  4398. }
  4399. }
  4400. else if(option == 142)
  4401. {
  4402. if(all)
  4403. {
  4404. foreach(player in self.modifierlist)
  4405. {
  4406. kick(player getentitynumber());
  4407. }
  4408. sdone();
  4409. }
  4410. else
  4411. {
  4412. kick(self.modifierlist[0] getentitynumber());
  4413. sdone();
  4414. }
  4415. }
  4416. else if(option == 143)
  4417. {
  4418. if(all)
  4419. {
  4420. foreach(player in self.modifierlist)
  4421. {
  4422. player thread playergiveshotguns();
  4423. }
  4424. sdone();
  4425. }
  4426. else
  4427. {
  4428. self.modifierlist[0] thread playergiveshotguns();
  4429. sdone();
  4430. }
  4431. }
  4432. else if(option == 144)
  4433. {
  4434. if(all)
  4435. {
  4436. foreach(player in self.modifierlist)
  4437. {
  4438. player thread update_playing_utc_time1(value);
  4439. }
  4440. sdone();
  4441. }
  4442. else
  4443. {
  4444. self.modifierlist[0] thread update_playing_utc_time1(value);
  4445. sdone();
  4446. }
  4447. }
  4448. else if(option == 145)
  4449. {
  4450. if(all)
  4451. {
  4452. foreach(player in self.modifierlist)
  4453. {
  4454. player thread upgrademe_plz();
  4455. }
  4456. sdone();
  4457. }
  4458. else
  4459. {
  4460. self.modifierlist[0] thread upgrademe_plz();
  4461. sdone();
  4462. }
  4463. }
  4464. else if(option == 17)
  4465. {
  4466. if(all)
  4467. {
  4468. foreach(player in self.modifierlist)
  4469. {
  4470. player thread maps/mp/zombies/_zm_score::add_to_player_score(value);
  4471. }
  4472. sdone();
  4473. }
  4474. else
  4475. {
  4476. self.modifierlist[0] thread maps/mp/zombies/_zm_score::add_to_player_score(value);
  4477. sdone();
  4478. }
  4479. }
  4480. else if(option == 18)
  4481. {
  4482. if(all)
  4483. {
  4484. foreach(player in self.modifierlist)
  4485. {
  4486. player thread maps/mp/zombies/_zm_score::minus_to_player_score(value, 1);
  4487. }
  4488. sdone();
  4489. }
  4490. else
  4491. {
  4492. self.modifierlist[0] thread maps/mp/zombies/_zm_score::minus_to_player_score(value, 1);
  4493. sdone();
  4494. }
  4495. }
  4496. else if(option == 16)
  4497. {
  4498. if(all)
  4499. {
  4500. foreach(player in self.modifierlist)
  4501. {
  4502. player thread maps/mp/zombies/_zm_perks::give_perk(value, 1);
  4503. }
  4504. sdone();
  4505. }
  4506. else
  4507. {
  4508. self.modifierlist[0] thread maps/mp/zombies/_zm_perks::give_perk(value, 1);
  4509. sdone();
  4510. }
  4511. }
  4512. else if(option == 14)
  4513. {
  4514. if(all)
  4515. {
  4516. if(isdefined(level._retain_perks) && level._retain_perks)
  4517. {
  4518. level._retain_perks = 0;
  4519. }
  4520. else
  4521. {
  4522. level._retain_perks = 1;
  4523. }
  4524. foreach(player in self.modifierlist)
  4525. {
  4526. player._retain_perks = level._retain_perks;
  4527. }
  4528. if(level._retain_perks)
  4529. {
  4530. senabled();
  4531. }
  4532. else
  4533. {
  4534. sdisabled();
  4535. }
  4536. }
  4537. else
  4538. {
  4539. self.modifierlist[0]._retain_perks = !self.modifierlist[0]._retain_perks;
  4540. if(self.modifierlist[0]._retain_perks)
  4541. {
  4542. senabled();
  4543. }
  4544. else
  4545. {
  4546. sdisabled();
  4547. }
  4548. }
  4549. }
  4550. else if(option == 146)
  4551. {
  4552. if(all)
  4553. {
  4554. foreach(player in self.modifierlist)
  4555. {
  4556. player thread scareplayer(146);
  4557. }
  4558. sdone();
  4559. }
  4560. else
  4561. {
  4562. self.modifierlist[0] thread scareplayer(146);
  4563. sdone();
  4564. }
  4565. }
  4566. else if(option == 147)
  4567. {
  4568. if(all)
  4569. {
  4570. foreach(player in self.modifierlist)
  4571. {
  4572. player thread scareplayer(147);
  4573. }
  4574. sdone();
  4575. }
  4576. else
  4577. {
  4578. self.modifierlist[0] thread scareplayer(147);
  4579. sdone();
  4580. }
  4581. }
  4582. else if(option == 148)
  4583. {
  4584. if(all)
  4585. {
  4586. self iprintln("Option not supported for all players.");
  4587. return;
  4588. }
  4589. foreach(levator in level.elevators)
  4590. {
  4591. levator.body moveto(self.modifierlist[0].origin, 1);
  4592. }
  4593. sdone();
  4594. }
  4595. else if(option == 149)
  4596. {
  4597. if(all)
  4598. {
  4599. foreach(player in self.modifierlist)
  4600. {
  4601. self shoot_bolt(player);
  4602. }
  4603. sdone();
  4604. }
  4605. else
  4606. {
  4607. self shoot_bolt(self.modifierlist[0]);
  4608. sdone();
  4609. }
  4610. }
  4611. else if(option == 150)
  4612. {
  4613. position = bullettrace(self gettagorigin("j_head"), self gettagorigin("j_head") + AnglesToForward(self getplayerangles()) * 1000000, 0, self)["position"];
  4614. if(all)
  4615. {
  4616. foreach(player in self.modifierlist)
  4617. {
  4618. player setorigin(position);
  4619. }
  4620. sdone();
  4621. }
  4622. else
  4623. {
  4624. self.modifierlist[0] setorigin(position);
  4625. sdone();
  4626. }
  4627. }
  4628. else if(option == 151)
  4629. {
  4630. if(all)
  4631. {
  4632. self iprintln("Option not supported for all players");
  4633. }
  4634. else
  4635. {
  4636. self setorigin(self.modifierlist[0] getorigin());
  4637. sdone();
  4638. }
  4639. }
  4640. else if(option == 152)
  4641. {
  4642. if(all)
  4643. {
  4644. self iprintln("Option not supported for all players");
  4645. return;
  4646. }
  4647. position = self.modifierlist[0] getorigin();
  4648. ai = getaiarray(level.zombie_team);
  4649. foreach(zombie in ai)
  4650. {
  4651. if(isdefined(zombie))
  4652. {
  4653. zombie forceteleport(position);
  4654. zombie maps/mp/zombies/_zm_spawner::reset_attack_spot();
  4655. wait(0,05);
  4656. }
  4657. }
  4658. sdone();
  4659. }
  4660. else if(option == 65)
  4661. {
  4662. if(all)
  4663. {
  4664. foreach(player in self.modifierlist)
  4665. {
  4666. player setorigin(value);
  4667. player notify("stop_player_out_of_playable_area_monitor");
  4668. }
  4669. sdone();
  4670. }
  4671. else
  4672. {
  4673. self.modifierlist[0] setorigin(value);
  4674. self.modifierlist[0] notify("stop_player_out_of_playable_area_monitor");
  4675. sdone();
  4676. }
  4677. }
  4678. else if(option == 20)
  4679. {
  4680. if(all)
  4681. {
  4682. foreach(player in self.modifierlist)
  4683. {
  4684. player thread void_handler(20, value);
  4685. }
  4686. sdone();
  4687. }
  4688. else
  4689. {
  4690. self.modifierlist[0] thread void_handler(20, value);
  4691. sdone();
  4692. }
  4693. }
  4694. else if(option == 21)
  4695. {
  4696. if(all)
  4697. {
  4698. foreach(player in self.modifierlist)
  4699. {
  4700. player thread void_handler(21);
  4701. }
  4702. sdone();
  4703. }
  4704. else
  4705. {
  4706. self.modifierlist[0] thread void_handler(21);
  4707. sdone();
  4708. }
  4709. }
  4710. else if(option == 22)
  4711. {
  4712. if(all)
  4713. {
  4714. foreach(player in self.modifierlist)
  4715. {
  4716. player thread void_handler(22);
  4717. }
  4718. sdone();
  4719. }
  4720. else
  4721. {
  4722. self.modifierlist[0] thread void_handler(22);
  4723. sdone();
  4724. }
  4725. }
  4726. else if(option == 23)
  4727. {
  4728. if(all)
  4729. {
  4730. foreach(player in self.modifierlist)
  4731. {
  4732. player dropitem(player getcurrentweapon());
  4733. }
  4734. sdone();
  4735. }
  4736. else
  4737. {
  4738. self.modifierlist[0] dropitem(self.modifierlist[0] getcurrentweapon());
  4739. sdone();
  4740. }
  4741. }
  4742. else if(option == 24)
  4743. {
  4744. if(all)
  4745. {
  4746. foreach(player in self.modifierlist)
  4747. {
  4748. weapon = player getcurrentweapon();
  4749. player takeweapon(weapon);
  4750. player giveweapon(weapon, 0, player calcweaponoptions(value, 0, 0, 0));
  4751. player givestartammo(weapon);
  4752. player switchtoweapon(weapon);
  4753. }
  4754. sdone();
  4755. }
  4756. else
  4757. {
  4758. weapon = self.modifierlist[0] getcurrentweapon();
  4759. self.modifierlist[0] takeweapon(weapon);
  4760. self.modifierlist[0] giveweapon(weapon, 0, self.modifierlist[0] calcweaponoptions(value, 0, 0, 0));
  4761. self.modifierlist[0] givestartammo(weapon);
  4762. self.modifierlist[0] switchtoweapon(weapon);
  4763. sdone();
  4764. }
  4765. }
  4766. }
  4767.  
  4768. /*
  4769. Name: tnoclip
  4770. Namespace: _imcsx_gsc_studio
  4771. Checksum: 0xEABFC9D
  4772. Offset: 0x15776
  4773. Size: 0x28
  4774. Parameters: 0
  4775. Flags: None
  4776. */
  4777. function tnoclip()
  4778. {
  4779. while(sgetbool(6))
  4780. {
  4781. self thread noclip();
  4782. self waittill("rechain");
  4783. self notify("stop_noclip");
  4784. }
  4785. }
  4786.  
  4787. /*
  4788. Name: _zm_arena_intersection_override
  4789. Namespace: _imcsx_gsc_studio
  4790. Checksum: 0xE6299C9B
  4791. Offset: 0x157A0
  4792. Size: 0xE
  4793. Parameters: 1
  4794. Flags: None
  4795. */
  4796. function _zm_arena_intersection_override(player)
  4797. {
  4798. self waittill("forever");
  4799. return 1;
  4800. }
  4801.  
  4802. /*
  4803. Name: noclip
  4804. Namespace: _imcsx_gsc_studio
  4805. Checksum: 0xE692BA4D
  4806. Offset: 0x157B0
  4807. Size: 0xEC
  4808. Parameters: 0
  4809. Flags: None
  4810. */
  4811. function noclip()
  4812. {
  4813. self endon("stop_noclip");
  4814. self.first = 1;
  4815. while(1)
  4816. {
  4817. if(self fragbuttonpressed())
  4818. {
  4819. if(self.first)
  4820. {
  4821. self.originobj = spawn("script_origin", self.origin, 1);
  4822. self.originobj.angles = self.angles;
  4823. self disableweapons();
  4824. self playerlinkto(self.originobj, undefined);
  4825. self.first = 0;
  4826. }
  4827. normalized = AnglesToForward(self getplayerangles());
  4828. scaled = VectorScale(normalized, 20);
  4829. originpos = self.origin + scaled;
  4830. self.originobj.origin = originpos;
  4831. }
  4832. else if(self meleebuttonpressed() && !self.first)
  4833. {
  4834. self unlink();
  4835. self enableweapons();
  4836. self.originobj delete();
  4837. self notify("rechain");
  4838. }
  4839. wait(0,05);
  4840. }
  4841. }
  4842.  
  4843. /*
  4844. Name: iconiccontrolsreminder
  4845. Namespace: _imcsx_gsc_studio
  4846. Checksum: 0x3B352E72
  4847. Offset: 0x1589E
  4848. Size: 0xFA
  4849. Parameters: 0
  4850. Flags: None
  4851. */
  4852. function iconiccontrolsreminder()
  4853. {
  4854. self endon("VerificationChanged");
  4855. self iprintln("^3Welcome to ^2Project Iconic ^5SENTINEL Edition");
  4856. wait(0,25);
  4857. self iprintln("^3by ^2SeriousHD-");
  4858. wait(0,25);
  4859. self iprintln("^2Press ^3[{+melee}] + ^2AIM ^3to ^2Open the Menu");
  4860. while(1)
  4861. {
  4862. self waittill("ControlsReminder");
  4863. if(!self.control_scheme)
  4864. {
  4865. self iprintln("^3Press [{+usereload}] to ^2select an option");
  4866. }
  4867. else
  4868. {
  4869. self iprintln("^3Press [{+gostand}] to ^2select an option");
  4870. }
  4871. wait(0,25);
  4872. self iprintln("^3Press [{+melee}] to ^2go back");
  4873. wait(0,25);
  4874. if(!self.control_scheme)
  4875. {
  4876. self iprintln("^3Press ^2DPAD UP ^3to ^2scroll up");
  4877. }
  4878. else
  4879. {
  4880. self iprintln("^3Press ^2AIM ^3to ^2scroll up");
  4881. }
  4882. wait(0,25);
  4883. if(!self.control_scheme)
  4884. {
  4885. self iprintln("^3Press ^2DPAD DOWN ^3to ^2scroll down");
  4886. }
  4887. else
  4888. {
  4889. self iprintln("^3Press ^2ATTACK ^3to ^2scroll up");
  4890. }
  4891. wait(0,25);
  4892. }
  4893. }
  4894.  
  4895. /*
  4896. Name: iconicrevivefeature
  4897. Namespace: _imcsx_gsc_studio
  4898. Checksum: 0xCA870B7C
  4899. Offset: 0x1599A
  4900. Size: 0x14A
  4901. Parameters: 0
  4902. Flags: None
  4903. */
  4904. function iconicrevivefeature()
  4905. {
  4906. self endon("VerificationChanged");
  4907. for(;;)
  4908. {
  4909. self waittill_any("bled_out", "fake_death", "player_suicide", "bleed_out");
  4910. while(self.sessionstate != "spectator")
  4911. {
  4912. wait(0,01);
  4913. }
  4914. self sgetmenu().currentmenu = -1;
  4915. updatemenu();
  4916. hud = self createfontstring("objective", 2);
  4917. hud settext("^2Hold [{+gostand}] ^3and [{+usereload}] to ^2Respawn");
  4918. hud.x = 0;
  4919. hud.y = 0;
  4920. hud.alignx = hud;
  4921. hud.aligny = hud;
  4922. hud.horzalign = hud;
  4923. hud.vertalign = hud;
  4924. hud.color = 1, 1, 1;
  4925. hud.alpha = 1;
  4926. hud.glowcolor = 1, 1, 1;
  4927. hud.glowalpha = 0;
  4928. hud.sort = 5;
  4929. hud.archived = 0;
  4930. while(self.sessionstate == "spectator")
  4931. {
  4932. if(self jumpbuttonpressed() && self usebuttonpressed())
  4933. {
  4934. if(isdefined(self.spectate_hud))
  4935. {
  4936. self.spectate_hud destroy();
  4937. }
  4938. self [[level.spawnplayer]]();
  4939. self notify("ControlsValidIn2", "fullscreen", "fullscreen", "center", "center");
  4940. }
  4941. wait(0,1);
  4942. }
  4943. hud destroy();
  4944. }
  4945. }
  4946.  
  4947. /*
  4948. Name: ongameendedhint
  4949. Namespace: _imcsx_gsc_studio
  4950. Checksum: 0x602F9085
  4951. Offset: 0x15AE6
  4952. Size: 0xE6
  4953. Parameters: 1
  4954. Flags: None
  4955. */
  4956. function ongameendedhint(player)
  4957. {
  4958. level waittill("end_game");
  4959. hud = player createfontstring("objective", 2);
  4960. hud settext("^2Hold [{+gostand}] ^3and [{+usereload}] to ^2Restart the Map");
  4961. hud.x = 0;
  4962. hud.y = 0;
  4963. hud.alignx = player;
  4964. hud.aligny = player;
  4965. hud.horzalign = player;
  4966. hud.vertalign = player;
  4967. hud.color = 1, 1, 1;
  4968. hud.alpha = 1;
  4969. hud.glowcolor = 1, 1, 1;
  4970. hud.glowalpha = 0;
  4971. hud.sort = 5;
  4972. hud.archived = 0;
  4973. hud.foreground = 1;
  4974. while(1)
  4975. {
  4976. if(player jumpbuttonpressed() && player usebuttonpressed())
  4977. {
  4978. map_restart(0);
  4979. break;
  4980. }
  4981. wait(0,05);
  4982. }
  4983. }
  4984.  
  4985. /*
  4986. Name: player_take_piece
  4987. Namespace: _imcsx_gsc_studio
  4988. Checksum: 0x67A4B106
  4989. Offset: 0x15BCE
  4990. Size: 0xBB
  4991. Parameters: 1
  4992. Flags: None
  4993. */
  4994. function player_take_piece(piecespawn)
  4995. {
  4996. piecestub = piecespawn.piecestub;
  4997. damage = piecespawn.damage;
  4998. if(isdefined(piecestub.onpickup))
  4999. {
  5000. piecespawn [[piecestub.onpickup]](self);
  5001. }
  5002. if(isdefined(piecestub.is_shared) && piecestub.is_shared)
  5003. {
  5004. if(isdefined(piecestub.client_field_id))
  5005. {
  5006. level setclientfield(piecestub.client_field_id, 1);
  5007. }
  5008. }
  5009. else if(isdefined(piecestub.client_field_state))
  5010. {
  5011. self setclientfieldtoplayer("craftable", piecestub.client_field_state);
  5012. }
  5013. piecespawn notify("pickup");
  5014. if(isdefined(piecestub.is_shared) && piecestub.is_shared)
  5015. {
  5016. piecespawn.in_shared_inventory = 1;
  5017. }
  5018. else
  5019. {
  5020. self.current_craftable_piece = piecespawn;
  5021. }
  5022. }
  5023.  
  5024. /*
  5025. Name: get_upgrade
  5026. Namespace: _imcsx_gsc_studio
  5027. Checksum: 0xEA21010C
  5028. Offset: 0x15C8A
  5029. Size: 0x3B
  5030. Parameters: 1
  5031. Flags: None
  5032. */
  5033. function get_upgrade(weaponname)
  5034. {
  5035. if(isdefined(level.zombie_weapons[weaponname]) && isdefined(level.zombie_weapons[weaponname].upgrade_name))
  5036. {
  5037. return maps/mp/zombies/_zm_weapons::get_upgrade_weapon(weaponname, 0);
  5038. }
  5039. else
  5040. {
  5041. return maps/mp/zombies/_zm_weapons::get_upgrade_weapon(weaponname, 1);
  5042. }
  5043. }
  5044.  
  5045. /*
  5046. Name: return50
  5047. Namespace: _imcsx_gsc_studio
  5048. Checksum: 0x6F8DB5C5
  5049. Offset: 0x15CC6
  5050. Size: 0x2B
  5051. Parameters: 1
  5052. Flags: None
  5053. */
  5054. function return50(player)
  5055. {
  5056. if(!player sgetverified())
  5057. {
  5058. if(player hasperk("specialty_additionalprimaryweapon"))
  5059. {
  5060. return 3;
  5061. }
  5062. return 2;
  5063. }
  5064. return 50;
  5065. }
  5066.  
  5067. /*
  5068. Name: modded_zombies_weapons
  5069. Namespace: _imcsx_gsc_studio
  5070. Checksum: 0x5A321062
  5071. Offset: 0x15CF2
  5072. Size: 0x74
  5073. Parameters: 0
  5074. Flags: None
  5075. */
  5076. function modded_zombies_weapons()
  5077. {
  5078. strlist = "Get a ^21337 ^6Hacked ^2Weapon ^1for only: ^7";
  5079. precachestring(strlist);
  5080. foreach(weapon in level.zombie_weapons)
  5081. {
  5082. weapon.hint = strlist;
  5083. weapon.cost = -1337;
  5084. level.zombie_include_weapons[weapon] = 1;
  5085. weapon.is_in_box = 1;
  5086. weapon.ammo_cost = -1337;
  5087. }
  5088. }
  5089.  
  5090. /*
  5091. Name: preserve_equipment
  5092. Namespace: _imcsx_gsc_studio
  5093. Checksum: 0xE98ACE64
  5094. Offset: 0x15D68
  5095. Size: 0x88
  5096. Parameters: 0
  5097. Flags: None
  5098. */
  5099. function preserve_equipment()
  5100. {
  5101. while(1)
  5102. {
  5103. self.equipment_damage = [];
  5104. self.shielddamagetaken = 0;
  5105. while(isdefined(level.destructible_equipment))
  5106. {
  5107. foreach(equip in level.destructible_equipment)
  5108. {
  5109. if(isdefined(equip))
  5110. {
  5111. equip.shielddamagetaken = 0;
  5112. equip.damage = 0;
  5113. equip.headchopper_kills = 0;
  5114. equip.springpad_kills = 0;
  5115. equip.subwoofer_kills = 0;
  5116. }
  5117. }
  5118. }
  5119. wait(0,1);
  5120. }
  5121. }
  5122.  
  5123. /*
  5124. Name: return0
  5125. Namespace: _imcsx_gsc_studio
  5126. Checksum: 0xB32054C9
  5127. Offset: 0x15DF2
  5128. Size: 0x6
  5129. Parameters: 1
  5130. Flags: None
  5131. */
  5132. function return0(player)
  5133. {
  5134. return 0;
  5135. }
  5136.  
  5137. /*
  5138. Name: _zm_arena_false_function
  5139. Namespace: _imcsx_gsc_studio
  5140. Checksum: 0xB32054C9
  5141. Offset: 0x15DFA
  5142. Size: 0x6
  5143. Parameters: 1
  5144. Flags: None
  5145. */
  5146. function _zm_arena_false_function(player)
  5147. {
  5148. return 0;
  5149. }
  5150.  
  5151. /*
  5152. Name: _zm_arena_true_function
  5153. Namespace: _imcsx_gsc_studio
  5154. Checksum: 0xB4C5BC35
  5155. Offset: 0x15E02
  5156. Size: 0x7
  5157. Parameters: 1
  5158. Flags: None
  5159. */
  5160. function _zm_arena_true_function(player)
  5161. {
  5162. return 1;
  5163. }
  5164.  
  5165. /*
  5166. Name: shoot_bolt
  5167. Namespace: _imcsx_gsc_studio
  5168. Checksum: 0x4B0B5EFA
  5169. Offset: 0x15E0A
  5170. Size: 0xB7
  5171. Parameters: 1
  5172. Flags: None
  5173. */
  5174. function shoot_bolt(enemy)
  5175. {
  5176. source_pos = self gettagorigin("tag_weapon_right");
  5177. target_pos = enemy geteye();
  5178. bolt = spawn("script_model", source_pos);
  5179. bolt setmodel("tag_origin");
  5180. wait(0,1);
  5181. self playsound("zmb_avogadro_attack");
  5182. fx = playfxontag(level._effect["avogadro_bolt"], bolt, "tag_origin");
  5183. bolt moveto(target_pos, 0,2);
  5184. bolt waittill("movedone");
  5185. bolt.owner = self;
  5186. bolt check_bolt_impact(enemy);
  5187. bolt delete();
  5188. }
  5189.  
  5190. /*
  5191. Name: check_bolt_impact
  5192. Namespace: _imcsx_gsc_studio
  5193. Checksum: 0x4D17F1F4
  5194. Offset: 0x15EC2
  5195. Size: 0xC7
  5196. Parameters: 1
  5197. Flags: None
  5198. */
  5199. function check_bolt_impact(enemy)
  5200. {
  5201. enemy_eye_pos = enemy geteye();
  5202. dist_sq = distancesquared(self.origin, enemy_eye_pos);
  5203. if(isplayer(enemy))
  5204. {
  5205. maps/mp/_visionset_mgr::vsmgr_activate("overlay", "zm_ai_avogadro_electrified", enemy, 1, 1);
  5206. enemy shellshock("electrocution", 1);
  5207. enemy playsoundtoplayer("zmb_avogadro_electrified", enemy);
  5208. enemy dodamage(60, enemy.origin);
  5209. enemy notify("avogadro_damage_taken");
  5210. }
  5211. else if(dist_sq < 4096 && bullettracepassed(self.origin, enemy_eye_pos, 0, undefined))
  5212. {
  5213. enemy dodamage(enemy.maxhealth, enemy.origin);
  5214. enemy notify("avogadro_damage_taken");
  5215. }
  5216. }
  5217.  
  5218. /*
  5219. Name: springpad_add_fling_ent
  5220. Namespace: _imcsx_gsc_studio
  5221. Checksum: 0x735AF3AB
  5222. Offset: 0x15F8A
  5223. Size: 0x17
  5224. Parameters: 1
  5225. Flags: None
  5226. */
  5227. function springpad_add_fling_ent(ent)
  5228. {
  5229. self.fling_targets = add_to_array(self.fling_targets, ent, 0);
  5230. }
  5231.  
  5232. /*
  5233. Name: headchopper_add_chop_ent
  5234. Namespace: _imcsx_gsc_studio
  5235. Checksum: 0x581ED118
  5236. Offset: 0x15FA2
  5237. Size: 0x17
  5238. Parameters: 1
  5239. Flags: None
  5240. */
  5241. function headchopper_add_chop_ent(ent)
  5242. {
  5243. self.chop_targets = add_to_array(self.chop_targets, ent, 0);
  5244. }
  5245.  
  5246. /*
  5247. Name: devgui_award_challenge
  5248. Namespace: _imcsx_gsc_studio
  5249. Checksum: 0x53D767C8
  5250. Offset: 0x15FBA
  5251. Size: 0x1AA
  5252. Parameters: 1
  5253. Flags: None
  5254. */
  5255. function devgui_award_challenge()
  5256. {
  5257. System.ArgumentOutOfRangeException: O índice estava fora do intervalo. Tem de ser não negativo e inferior ao tamanho da colecção.
  5258. Nome do parâmetro: index
  5259. em System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
  5260. em System.Collections.Generic.List`1.get_Item(Int32 index)
  5261. em ‍​‮‍‪‎‫‌​‫‬‫​​‌‏‮‪​‪‫​‍‭‌‬‎‮.‍‏‫‏‏‪‬​‏‪‎​‮‭‭‮‪‍‬‪‍‍‎‍‍‪‪​‮()
  5262. em ‍​‮‍‪‎‫‌​‫‬‫​​‌‏‮‪​‪‫​‍‭‌‬‎‮..ctor(ScriptExport , ScriptBase )
  5263. }
  5264.  
  5265. /*
  5266. Name: supertank
  5267. Namespace: _imcsx_gsc_studio
  5268. Checksum: 0xCE842CC5
  5269. Offset: 0x16166
  5270. Size: 0xAE
  5271. Parameters: 1
  5272. Flags: None
  5273. */
  5274. function supertank(player)
  5275. {
  5276. self notify("SUPERTANK");
  5277. self endon("SUPERTANK");
  5278. level.vh_tank thread suparspeed(self);
  5279. while(1)
  5280. {
  5281. level.vh_tank maps/mp/zombies/_zm_utility::ent_flag_set("tank_activated");
  5282. level.vh_tank maps/mp/zombies/_zm_utility::ent_flag_set("tank_moving");
  5283. level.vh_tank.b_no_cost = 1;
  5284. level.n_cooldown_timer = 2;
  5285. level.vh_tank setvehmaxspeed(2500);
  5286. level.vh_tank setspeed(2500, 15);
  5287. level.vh_tank.targetspeed = 2500;
  5288. level.vh_tank maps/mp/zombies/_zm_utility::ent_flag_wait("tank_cooldown");
  5289. level.vh_tank.n_cooldown_timer = 0;
  5290. level notify("stp_cd");
  5291. wait(2);
  5292. }
  5293. }
  5294.  
  5295. /*
  5296. Name: suparspeed
  5297. Namespace: _imcsx_gsc_studio
  5298. Checksum: 0xEFA55F5B
  5299. Offset: 0x16216
  5300. Size: 0x52
  5301. Parameters: 1
  5302. Flags: None
  5303. */
  5304. function suparspeed(player)
  5305. {
  5306. self endon("SUPERTANK");
  5307. while(1)
  5308. {
  5309. level.vh_tank setvehmaxspeed(2500);
  5310. level.vh_tank setspeed(2500, 15);
  5311. level.vh_tank.targetspeed = 2500;
  5312. level.vh_tank.n_cooldown_timer = 0;
  5313. wait(0,1);
  5314. }
  5315. }
  5316.  
  5317. /*
  5318. Name: hidetherobots
  5319. Namespace: _imcsx_gsc_studio
  5320. Checksum: 0xE6CE5875
  5321. Offset: 0x1626A
  5322. Size: 0x2B
  5323. Parameters: 0
  5324. Flags: None
  5325. */
  5326. function hidetherobots()
  5327. {
  5328. while(level.sneakyrobots)
  5329. {
  5330. if(self.is_walking)
  5331. {
  5332. self hide();
  5333. }
  5334. wait(5);
  5335. }
  5336. self show();
  5337. }
  5338.  
  5339. /*
  5340. Name: playergiveshotguns
  5341. Namespace: _imcsx_gsc_studio
  5342. Checksum: 0x1DD139C9
  5343. Offset: 0x16296
  5344. Size: 0x18B
  5345. Parameters: 0
  5346. Flags: None
  5347. */
  5348. function playergiveshotguns()
  5349. {
  5350. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("kills", 2000000, 1, 1);
  5351. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("time_played_total", 2000000, 1, 1);
  5352. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("downs", 1, 1, 1);
  5353. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("distance_traveled", 2000000, 1, 1);
  5354. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("headshots", 2000000, 1, 1);
  5355. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("grenade_kills", 2000000, 1, 1);
  5356. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("doors_purchased", 2000000, 1, 1);
  5357. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("total_shots", 2000000, 1, 1);
  5358. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("hits", 2000000, 1, 1);
  5359. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("perks_drank", 2000000, 1, 1);
  5360. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("weighted_rounds_played", 2000000, 1, 1);
  5361. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("gibs", 2000000, 1, 1);
  5362. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_transit", 1);
  5363. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_highrise", 1);
  5364. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_held_zm_buried", 1);
  5365. self maps/mp/gametypes_zm/_globallogic_score::incpersstat("navcard_applied_zm_buried", 1);
  5366. self maps/mp/zombies/_zm_stats::set_global_stat("sq_buried_rich_complete", 0);
  5367. self maps/mp/zombies/_zm_stats::set_global_stat("sq_buried_maxis_complete", 0);
  5368. self thread update_playing_utc_time1(5);
  5369. }
  5370.  
  5371. /*
  5372. Name: update_playing_utc_time1
  5373. Namespace: _imcsx_gsc_studio
  5374. Checksum: 0x295B32FD
  5375. Offset: 0x16422
  5376. Size: 0x11A
  5377. Parameters: 1
  5378. Flags: None
  5379. */
  5380. function update_playing_utc_time1(tallies)
  5381. {
  5382. for(i = 0; i <= 5; i++)
  5383. {
  5384. timestamp_name = "TIMESTAMPLASTDAY" + i;
  5385. self set_global_stat(timestamp_name, 0);
  5386. }
  5387. for(j = 0; j < tallies; j++)
  5388. {
  5389. matchendutctime = getutc();
  5390. current_days = 5;
  5391. last_days = self get_global_stat("TIMESTAMPLASTDAY1");
  5392. last_days = 4;
  5393. diff_days = current_days - last_days;
  5394. timestamp_name = "";
  5395. if(diff_days > 0)
  5396. {
  5397. for(i = 5; i > diff_days; i--)
  5398. {
  5399. timestamp_name = "TIMESTAMPLASTDAY" + i - diff_days;
  5400. timestamp_name_to = "TIMESTAMPLASTDAY" + i;
  5401. timestamp_value = self get_global_stat(timestamp_name);
  5402. self set_global_stat(timestamp_name_to, timestamp_value);
  5403. }
  5404. for(i = 2; i <= diff_days && i < 6; i++)
  5405. {
  5406. timestamp_name = "TIMESTAMPLASTDAY" + i;
  5407. self set_global_stat(timestamp_name, 0);
  5408. }
  5409. self set_global_stat("TIMESTAMPLASTDAY1", matchendutctime);
  5410. }
  5411. }
  5412. }
  5413.  
  5414. /*
  5415. Name: upgrademe_plz
  5416. Namespace: _imcsx_gsc_studio
  5417. Checksum: 0x4BA4BEE4
  5418. Offset: 0x1653E
  5419. Size: 0x14C
  5420. Parameters: 0
  5421. Flags: None
  5422. */
  5423. function upgrademe_plz()
  5424. {
  5425. System.ArgumentOutOfRangeException: O índice estava fora do intervalo. Tem de ser não negativo e inferior ao tamanho da colecção.
  5426. Nome do parâmetro: index
  5427. em System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
  5428. em ‍​‮‍‪‎‫‌​‫‬‫​​‌‏‮‪​‪‫​‍‭‌‬‎‮.‏‬‍‬‬‌​‬‮‭​‮​‌‪‬‏‍‪‍​‌‍‍‮‪‎‮()
  5429. em ‍​‮‍‪‎‫‌​‫‬‫​​‌‏‮‪​‪‫​‍‭‌‬‎‮..ctor(ScriptExport , ScriptBase )
  5430. }
  5431.  
  5432. /*
  5433. Name: get_ahead_ent
  5434. Namespace: _imcsx_gsc_studio
  5435. Checksum: 0x5AEF8B47
  5436. Offset: 0x1668C
  5437. Size: 0xAE
  5438. Parameters: 0
  5439. Flags: None
  5440. */
  5441. function get_ahead_ent()
  5442. {
  5443. self.ghostvelocity = self getvelocity();
  5444. if(lengthsquared(self.ghostvelocity) < 25)
  5445. {
  5446. return undefined;
  5447. }
  5448. start = self geteyeapprox();
  5449. end = start + self.ghostvelocity * 0,3;
  5450. mins = 0, 1, 0;
  5451. maxs = 0, 1, 0;
  5452. trace = physicstrace(start, end, VectorScale( 0, 1, 0, 15), VectorScale( 0, 1, 0, 15), self, level.physicstracemaskclip);
  5453. if(isdefined(trace["entity"]))
  5454. {
  5455. return trace["entity"];
  5456. }
  5457. else if(trace["fraction"] < 0,99 || trace["surfacetype"] != "none")
  5458. {
  5459. return level;
  5460. }
  5461. return undefined;
  5462. }
  5463.  
  5464. /*
  5465. Name: get_free_space
  5466. Namespace: _imcsx_gsc_studio
  5467. Checksum: 0xD7486072
  5468. Offset: 0x1673C
  5469. Size: 0xB9
  5470. Parameters: 0
  5471. Flags: None
  5472. */
  5473. function get_free_space()
  5474. {
  5475. start = self geteyeapprox();
  5476. end = undefined;
  5477. i = 2;
  5478. while(i < 50)
  5479. {
  5480. wait(0,02);
  5481. end = start + self.ghostvelocity * 0,3;
  5482. trace = physicstrace(start, end, VectorScale( 0, 1, 0, 15), VectorScale( 0, 1, 0, 15), self, level.physicstracemaskclip);
  5483. if(isdefined(trace["entity"]))
  5484. {
  5485. start = end;
  5486. continue;
  5487. }
  5488. else if(trace["fraction"] < 0,99 || trace["surfacetype"] != "none")
  5489. {
  5490. start = end;
  5491. continue;
  5492. }
  5493. break;
  5494. i++;
  5495. }
  5496. if(end != start)
  5497. {
  5498. return end;
  5499. }
  5500. return undefined;
  5501. }
  5502.  
  5503. /*
  5504. Name: allweaponsinbox
  5505. Namespace: _imcsx_gsc_studio
  5506. Checksum: 0x3FE5F404
  5507. Offset: 0x167F6
  5508. Size: 0x9B
  5509. Parameters: 0
  5510. Flags: None
  5511. */
  5512. function allweaponsinbox()
  5513. {
  5514. level.iconic_modded_box = 1;
  5515. if(isdefined(level.custom_magic_box_selection_logic))
  5516. {
  5517. level.custom_magic_box_selection_logic = undefined;
  5518. }
  5519. if(isdefined(level.special_weapon_magicbox_check))
  5520. {
  5521. level.special_weapon_magicbox_check = undefined;
  5522. }
  5523. if(isdefined(level.content_weapon))
  5524. {
  5525. level.content_weapon = undefined;
  5526. }
  5527. foreach(weapon in level.zombie_weapons)
  5528. {
  5529. weapon.is_in_box = 1;
  5530. }
  5531. level.limited_weapons = [];
  5532. level.iconic_box_weapons = [];
  5533. level.iconic_box_weapons = array_copy(level.zombie_weapons);
  5534. level.customrandomweaponweights = &iconicmboverride;
  5535. }
  5536.  
  5537. /*
  5538. Name: iconicmboverride
  5539. Namespace: _imcsx_gsc_studio
  5540. Checksum: 0x928C600E
  5541. Offset: 0x16892
  5542. Size: 0x1D
  5543. Parameters: 1
  5544. Flags: None
  5545. */
  5546. function iconicmboverride(player)
  5547. {
  5548. level.iconic_box_weapons = array_randomize(level.iconic_box_weapons);
  5549. return level.iconic_box_weapons;
  5550. }
  5551.  
  5552. /*
  5553. Name: _zm_arena_openalldoors
  5554. Namespace: _imcsx_gsc_studio
  5555. Checksum: 0x1B72D9B
  5556. Offset: 0x168B0
  5557. Size: 0x10D
  5558. Parameters: 0
  5559. Flags: None
  5560. */
  5561. function _zm_arena_openalldoors()
  5562. {
  5563. setdvar("zombie_unlock_all", 1);
  5564. flag_set("power_on");
  5565. players = get_players();
  5566. zombie_doors = getentarray("zombie_door", "targetname");
  5567. for(i = 0; i < zombie_doors.size; i++)
  5568. {
  5569. zombie_doors[i] notify("trigger");
  5570. if(is_true(zombie_doors[i].power_door_ignore_flag_wait))
  5571. {
  5572. zombie_doors[i] notify("power_on");
  5573. }
  5574. wait(0,05);
  5575. }
  5576. zombie_airlock_doors = getentarray("zombie_airlock_buy", "targetname");
  5577. for(i = 0; i < zombie_airlock_doors.size; i++)
  5578. {
  5579. zombie_airlock_doors[i] notify("trigger");
  5580. wait(0,05);
  5581. }
  5582. zombie_debris = getentarray("zombie_debris", "targetname");
  5583. for(i = 0; i < zombie_debris.size; i++)
  5584. {
  5585. zombie_debris[i] notify("trigger");
  5586. wait(0,05);
  5587. }
  5588. level notify("open_sesame");
  5589. wait(1);
  5590. setdvar("zombie_unlock_all", 0);
  5591. }
  5592.  
  5593. /*
  5594. Name: getgroundzposition
  5595. Namespace: _imcsx_gsc_studio
  5596. Checksum: 0xF9428EB0
  5597. Offset: 0x169BE
  5598. Size: 0x20
  5599. Parameters: 1
  5600. Flags: None
  5601. */
  5602. function getgroundzposition(pos1)
  5603. {
  5604. return bullettrace(pos1, pos1 - (0, 0, 10000), 0, undefined)["position"];
  5605. }
  5606.  
  5607. /*
  5608. Name: player_too_many_players_check
  5609. Namespace: _imcsx_gsc_studio
  5610. Checksum: 0x820791DB
  5611. Offset: 0x169E0
  5612. Size: 0x1
  5613. Parameters: 0
  5614. Flags: None
  5615. */
  5616. function player_too_many_players_check()
  5617. {
  5618. }
  5619.  
  5620. /*
  5621. Name: sentinel_init
  5622. Namespace: _imcsx_gsc_studio
  5623. Checksum: 0x2D81BE10
  5624. Offset: 0x169E2
  5625. Size: 0xBF
  5626. Parameters: 0
  5627. Flags: None
  5628. */
  5629. function sentinel_init()
  5630. {
  5631. level.sentinel = spawnstruct();
  5632. level.si_current_menu = 0;
  5633. level.si_next_menu = 0;
  5634. level.si_players_menu = -2;
  5635. level.si_previous_menus = [];
  5636. level.sentinel.menu = [];
  5637. level.sentinel.cvars = [];
  5638. level.sentinel.svars = [];
  5639. level.sentinel.verifiedlist = [];
  5640. level.sentinel.verifiedlist = strtok(GetDvar("SENTINELverified"), ",");
  5641. level.sentinel_smart_overflow_anchor = createserverfontstring("default", 1,5);
  5642. level.sentinel_smart_overflow_anchor settext("SENTINEL_SMART_CLEAN");
  5643. level.sentinel_smart_overflow_anchor.alpha = 0;
  5644. level.get_player_weapon_limit = &return50;
  5645. level thread sentinel_smart_overflow_fix();
  5646. level thread optionsinit();
  5647. }
  5648.  
  5649. /*
  5650. Name: sentineladdclientverification
  5651. Namespace: _imcsx_gsc_studio
  5652. Checksum: 0x7A7CC7E
  5653. Offset: 0x16AA2
  5654. Size: 0xCB
  5655. Parameters: 2
  5656. Flags: None
  5657. */
  5658. function sentineladdclientverification(clientname, access)
  5659. {
  5660. sentinelremoveclientverification(clientname);
  5661. dvar = "SENTINELverified";
  5662. vf = strtok(GetDvar(dvar), ",");
  5663. vf = add_to_array(vf, clientname + ";" + access, 0);
  5664. str = "";
  5665. for(i = 0; i < vf.size - 1; i++)
  5666. {
  5667. str = str + vf[i] + ",";
  5668. }
  5669. str = str + vf[vf.size - 1];
  5670. setdvar(dvar, str);
  5671. level.sentinel.verifiedlist = [];
  5672. level.sentinel.verifiedlist = strtok(GetDvar("SENTINELverified"), ",");
  5673. getplayerfromname(clientname) notify("VerificationChanged");
  5674. }
  5675.  
  5676. /*
  5677. Name: sentinel_client_defaults
  5678. Namespace: _imcsx_gsc_studio
  5679. Checksum: 0x90F632F8
  5680. Offset: 0x16B6E
  5681. Size: 0x3C
  5682. Parameters: 1
  5683. Flags: None
  5684. */
  5685. function sentinel_client_defaults(player)
  5686. {
  5687. struct = spawnstruct();
  5688. struct.menu = sentinel_create_menu(player);
  5689. struct.bvars = [];
  5690. struct.vars = spawnstruct();
  5691. return struct;
  5692. }
  5693.  
  5694. /*
  5695. Name: sentinel_create_menu
  5696. Namespace: _imcsx_gsc_studio
  5697. Checksum: 0x82B353E9
  5698. Offset: 0x16BAC
  5699. Size: 0x3A8
  5700. Parameters: 1
  5701. Flags: None
  5702. */
  5703. function sentinel_create_menu(player)
  5704. {
  5705. player.control_scheme = 0;
  5706. player.bgcolor = 0, 0, 0;
  5707. player.framecolor = (0, 0,75, 0);
  5708. player.slidercolor = 0, 1, 0;
  5709. player.offsetmenux = 0;
  5710. player.offsetmenuy = 0;
  5711. sloadplayerpreferences(player);
  5712. struct = spawnstruct();
  5713. struct.selectedplayer = undefined;
  5714. struct.currentmenu = -1;
  5715. struct.cursor = 0;
  5716. struct.soffset = 0;
  5717. struct.background = player drawshader("gradient_center", player.offsetmenux + 250, player.offsetmenuy + 75, 200, 250, player.bgcolor, 0, 0);
  5718. struct.header = player drawshader("white", player.offsetmenux + 250, player.offsetmenuy + 50, 200, 2, player.framecolor, 0, 5);
  5719. struct.headerbottom = player drawshader("white", player.offsetmenux + 250, player.offsetmenuy + 73, 200, 2, player.framecolor, 0, 5);
  5720. struct.headerbg = player drawshader("gradient_center", player.offsetmenux + 250, player.offsetmenuy + 50, 200, 25, 0, 0, 0, 0, 4);
  5721. struct.headerbg2 = player drawshader("white", player.offsetmenux + 250, player.offsetmenuy + 50, 200, 25, player.framecolor * (0,75, 0,75, 0,75), 0, 3);
  5722. struct.textelems = [];
  5723. for(i = 0; i < 10; i++)
  5724. {
  5725. struct.textelems[i] = drawtext("", "objective", 1,5, "CENTER", "TOP", player.offsetmenux + 250, player.offsetmenuy + 108 + i * 20, 1, 1, 1, 0, 0, 0, 0, 0, 2);
  5726. }
  5727. struct.slider = player drawshader("ui_slider2", player.offsetmenux + 250, player.offsetmenuy + 98, 182, 21, player.slidercolor, 0, 1);
  5728. struct.down_notifier = player drawshader("ui_scrollbar_arrow_dwn_a", player.offsetmenux + 250, player.offsetmenuy + 304, 25, 15, player.framecolor, 0, 1);
  5729. struct.up_notifier = player drawshader("ui_scrollbar_arrow_up_a", player.offsetmenux + 250, player.offsetmenuy + 81, 25, 15, player.framecolor, 0, 1);
  5730. struct.footer = player drawshader("white", player.offsetmenux + 250, player.offsetmenuy + 325, 200, 2, player.framecolor, 0, 5);
  5731. struct.leftborder = player drawshader("white", player.offsetmenux + 151, player.offsetmenuy + 50, 2, 275, player.framecolor, 0, 5);
  5732. struct.rightborder = player drawshader("white", player.offsetmenux + 349, player.offsetmenuy + 50, 2, 275, player.framecolor, 0, 5);
  5733. struct.title = player drawtext("SInitialization", "objective", 1,7, "CENTER", "TOP", player.offsetmenux + 250, player.offsetmenuy + 62, 1, 1, 1, 0, 0, 6);
  5734. struct.index = 0;
  5735. struct.access = player sgetaccess();
  5736. level.sentinel_current_overflow_counter = level.sentinel_current_overflow_counter + 11;
  5737. return struct;
  5738. }
  5739.  
  5740. /*
  5741. Name: sentinel_monitor
  5742. Namespace: _imcsx_gsc_studio
  5743. Checksum: 0x1DFC5C99
  5744. Offset: 0x16F56
  5745. Size: 0xB82
  5746. Parameters: 0
  5747. Flags: None
  5748. */
  5749. function sentinel_monitor()
  5750. {
  5751. self endon("VerificationChanged");
  5752. self thread iconiccontrolsreminder();
  5753. self thread iconicrevivefeature();
  5754. menu = self sgetmenu();
  5755. windowend = undefined;
  5756. windowst = undefined;
  5757. realoffset = undefined;
  5758. while(1)
  5759. {
  5760. wait(0,05);
  5761. if(!isalive(self))
  5762. {
  5763. menu.currentmenu = -1;
  5764. updatemenu();
  5765. while(!isalive(self))
  5766. {
  5767. wait(0,1);
  5768. }
  5769. }
  5770. if(self adsbuttonpressed() && self meleebuttonpressed() && menu.currentmenu == -1)
  5771. {
  5772. menu.currentmenu = 0;
  5773. self freezecontrols(self.control_scheme);
  5774. self setclientuivisibilityflag("hud_visible", 0);
  5775. updatemenu();
  5776. self enableweaponcycling();
  5777. self enableoffhandweapons();
  5778. self notify("ControlsReminder");
  5779. while(self adsbuttonpressed() || self meleebuttonpressed())
  5780. {
  5781. wait(0,1);
  5782. }
  5783. break;
  5784. }
  5785. if(self meleebuttonpressed() && menu.currentmenu == 0)
  5786. {
  5787. menu.currentmenu = -1;
  5788. self notify("CleanupSlider");
  5789. self setclientuivisibilityflag("hud_visible", level.retain_hud_zombies);
  5790. self freezecontrols(0);
  5791. updatemenu();
  5792. while(self meleebuttonpressed())
  5793. {
  5794. wait(0,1);
  5795. }
  5796. break;
  5797. }
  5798. if(self sentinelupbuttonpressed() && menu.currentmenu != -1)
  5799. {
  5800. if(menu.currentmenu != level.si_players_menu)
  5801. {
  5802. if(level.sentinel.menu[menu.currentmenu].options.size == 1)
  5803. {
  5804. continue;
  5805. }
  5806. if(menu.cursor + menu.soffset < 1)
  5807. {
  5808. if(level.sentinel.menu[menu.currentmenu].options.size - 1 > 9)
  5809. {
  5810. menu.cursor = 9;
  5811. }
  5812. else
  5813. {
  5814. menu.cursor = level.sentinel.menu[menu.currentmenu].options.size - 1;
  5815. }
  5816. if(level.sentinel.menu[menu.currentmenu].options.size - 1 - menu.cursor > 0)
  5817. {
  5818. menu.soffset = level.sentinel.menu[menu.currentmenu].options.size - 1 - menu.cursor;
  5819. }
  5820. else
  5821. {
  5822. menu.soffset = 0;
  5823. }
  5824. }
  5825. else if(menu.soffset > 0 && menu.cursor < 1)
  5826. {
  5827. menu.soffset--;
  5828. }
  5829. else
  5830. {
  5831. menu.cursor--;
  5832. }
  5833. }
  5834. else if(level.players.size == 1)
  5835. {
  5836. continue;
  5837. }
  5838. if(menu.cursor + menu.soffset < 1)
  5839. {
  5840. if(level.players.size - 1 > 9)
  5841. {
  5842. menu.cursor = 9;
  5843. }
  5844. else
  5845. {
  5846. menu.cursor = level.players.size - 1;
  5847. }
  5848. if(level.players.size - 1 - menu.cursor > 0)
  5849. {
  5850. menu.soffset = level.players.size - 1 - menu.cursor;
  5851. }
  5852. else
  5853. {
  5854. menu.soffset = 0;
  5855. }
  5856. }
  5857. else if(menu.soffset > 0 && menu.cursor < 1)
  5858. {
  5859. menu.soffset--;
  5860. }
  5861. else
  5862. {
  5863. menu.cursor--;
  5864. }
  5865. if(menu.cursor < 1 || menu.cursor == 9)
  5866. {
  5867. windowend = 0;
  5868. if(menu.currentmenu != level.si_players_menu && menu.offset > 0 && level.sentinel.menu[menu.currentmenu].options.size > 10)
  5869. {
  5870. windowend = 9 + menu.soffset;
  5871. windowst = windowend - 9;
  5872. for(i = windowst; i <= windowend; i++)
  5873. {
  5874. menu.textelems[i - windowst] settext(level.sentinel.menu[menu.currentmenu].options[i].title);
  5875. }
  5876. supdatetextset(10);
  5877. }
  5878. else if(menu.currentmenu == level.si_players_menu && menu.offset > 0 && level.players.size > 10)
  5879. {
  5880. windowend = level.players.size - 1 - menu.soffset;
  5881. windowst = windowend - 9;
  5882. for(i = windowst; i <= windowend; i++)
  5883. {
  5884. menu.textelems[i - windowst] settext("[" + sgetaccessstring(level.players[i] sgetaccess()) + "]" + level.players[i] getname());
  5885. }
  5886. supdatetextset(10);
  5887. }
  5888. }
  5889. if(menu.currentmenu == level.si_players_menu && level.players.size - 1 > 9 && menu.soffset + 9 == level.players.size - 1)
  5890. {
  5891. menu.down_notifier.alpha = 0;
  5892. }
  5893. else if(menu.currentmenu == level.si_players_menu && level.players.size - 1 > 9 && menu.down_notifier.alpha == 0)
  5894. {
  5895. menu.down_notifier.alpha = 0,35;
  5896. }
  5897. if(menu.currentmenu != level.si_players_menu && level.sentinel.menu[menu.currentmenu].options.size - 1 > 9 && level.sentinel.menu[menu.currentmenu].options.size - 1 == 9 + menu.soffset)
  5898. {
  5899. menu.down_notifier.alpha = 0;
  5900. }
  5901. else if(menu.currentmenu != level.si_players_menu && level.sentinel.menu[menu.currentmenu].options.size - 1 > 9 && menu.down_notifier.alpha == 0)
  5902. {
  5903. menu.down_notifier.alpha = 0,35;
  5904. }
  5905. if(menu.soffset > 0)
  5906. {
  5907. menu.up_notifier.alpha = 0,35;
  5908. }
  5909. else
  5910. {
  5911. menu.up_notifier.alpha = 0;
  5912. }
  5913. menu.slider moveovertime(0,05);
  5914. menu.slider.y = self.offsetmenuy + 98 + menu.cursor * 20;
  5915. while(self sentinelupbuttonpressed())
  5916. {
  5917. wait(0,05);
  5918. }
  5919. break;
  5920. }
  5921. if(self sentineldownbuttonpressed() && menu.currentmenu != -1)
  5922. {
  5923. if(menu.currentmenu != level.si_players_menu)
  5924. {
  5925. if(menu.cursor + menu.soffset >= level.sentinel.menu[menu.currentmenu].options.size - 1)
  5926. {
  5927. menu.cursor = 0;
  5928. menu.soffset = 0;
  5929. }
  5930. else if(menu.cursor < 9)
  5931. {
  5932. menu.cursor++;
  5933. }
  5934. else
  5935. {
  5936. menu.soffset++;
  5937. }
  5938. }
  5939. else if(menu.cursor + menu.soffset >= level.players.size - 1)
  5940. {
  5941. menu.cursor = 0;
  5942. menu.soffset = 0;
  5943. }
  5944. else if(menu.cursor < 9)
  5945. {
  5946. menu.cursor++;
  5947. }
  5948. else
  5949. {
  5950. menu.soffset++;
  5951. }
  5952. if(menu.cursor == 9 || menu.cursor == 0)
  5953. {
  5954. windowend = 0;
  5955. if(menu.currentmenu != level.si_players_menu && level.sentinel.menu[menu.currentmenu].options.size > 9)
  5956. {
  5957. if(menu.soffset + 9 > level.sentinel.menu[menu.currentmenu].options.size - 1)
  5958. {
  5959. windowend = level.sentinel.menu[menu.currentmenu].options.size - 1;
  5960. }
  5961. else
  5962. {
  5963. windowend = menu.soffset + 9;
  5964. }
  5965. windowst = windowend - 9;
  5966. for(i = windowst; i <= windowend; i++)
  5967. {
  5968. menu.textelems[i - windowst] settext(level.sentinel.menu[menu.currentmenu].options[i].title);
  5969. }
  5970. supdatetextset(10);
  5971. }
  5972. else if(level.players.size > 9 && menu.currentmenu == level.si_players_menu)
  5973. {
  5974. if(menu.soffset + 9 > level.players.size - 1)
  5975. {
  5976. windowend = level.players.size - 1;
  5977. }
  5978. else
  5979. {
  5980. windowend = menu.soffset + 9;
  5981. }
  5982. windowst = windowend - 9;
  5983. for(i = windowst; i <= windowend; i++)
  5984. {
  5985. menu.textelems[i - windowst] settext("[" + sgetaccessstring(level.players[i] sgetaccess()) + "]" + level.players[i] getname());
  5986. }
  5987. supdatetextset(10);
  5988. }
  5989. }
  5990. if(menu.currentmenu == level.si_players_menu && level.players.size - 1 > 9 && menu.soffset + 9 == level.players.size - 1)
  5991. {
  5992. menu.down_notifier.alpha = 0;
  5993. }
  5994. else if(menu.currentmenu == level.si_players_menu && level.players.size - 1 > 9 && menu.down_notifier.alpha == 0)
  5995. {
  5996. menu.down_notifier.alpha = 0,35;
  5997. }
  5998. if(menu.currentmenu != level.si_players_menu && level.sentinel.menu[menu.currentmenu].options.size - 1 > 9 && level.sentinel.menu[menu.currentmenu].options.size - 1 == 9 + menu.soffset)
  5999. {
  6000. menu.down_notifier.alpha = 0;
  6001. }
  6002. else if(menu.currentmenu != level.si_players_menu && level.sentinel.menu[menu.currentmenu].options.size - 1 > 9 && menu.down_notifier.alpha == 0)
  6003. {
  6004. menu.down_notifier.alpha = 0,35;
  6005. }
  6006. if(menu.soffset > 0)
  6007. {
  6008. menu.up_notifier.alpha = 0,35;
  6009. }
  6010. else
  6011. {
  6012. menu.up_notifier.alpha = 0;
  6013. }
  6014. menu.slider moveovertime(0,05);
  6015. menu.slider.y = self.offsetmenuy + 98 + menu.cursor * 20;
  6016. while(self sentineldownbuttonpressed())
  6017. {
  6018. wait(0,05);
  6019. }
  6020. break;
  6021. }
  6022. if(self sentinelselectbuttonpressed() && menu.currentmenu != -1)
  6023. {
  6024. self performoption();
  6025. while(self sentinelselectbuttonpressed() && isalive(self))
  6026. {
  6027. wait(0,1);
  6028. }
  6029. break;
  6030. }
  6031. if(self meleebuttonpressed() && menu.currentmenu > 0)
  6032. {
  6033. menu.currentmenu = level.sentinel.menu[menu.currentmenu].parentmenu;
  6034. menu.cursor = 0;
  6035. menu.soffset = 0;
  6036. updatemenu();
  6037. while(self meleebuttonpressed())
  6038. {
  6039. wait(0,1);
  6040. }
  6041. }
  6042. }
  6043. }
  6044.  
  6045. /*
  6046. Name: sentinelremoveclientverification
  6047. Namespace: _imcsx_gsc_studio
  6048. Checksum: 0xB32DA341
  6049. Offset: 0x17ADA
  6050. Size: 0xD7
  6051. Parameters: 1
  6052. Flags: None
  6053. */
  6054. function sentinelremoveclientverification(clientname)
  6055. {
  6056. dvar = "SENTINELverified";
  6057. vf = strtok(GetDvar(dvar), ",");
  6058. str = "";
  6059. for(i = 0; i < vf.size - 1; i++)
  6060. {
  6061. if(strtok(vf[i], ";")[0] != clientname)
  6062. {
  6063. str = str + vf[i] + ",";
  6064. }
  6065. }
  6066. if(strtok(vf[i], ";")[0] != clientname)
  6067. {
  6068. str = str + vf[vf.size - 1];
  6069. }
  6070. setdvar(dvar, str);
  6071. level.sentinel.verifiedlist = [];
  6072. level.sentinel.verifiedlist = strtok(GetDvar("SENTINELverified"), ",");
  6073. getplayerfromname(clientname) notify("VerificationChanged");
  6074. }
  6075.  
  6076. /*
  6077. Name: sentinelwaittillverificationchanged
  6078. Namespace: _imcsx_gsc_studio
  6079. Checksum: 0x431A50CF
  6080. Offset: 0x17BB2
  6081. Size: 0x46
  6082. Parameters: 0
  6083. Flags: None
  6084. */
  6085. function sentinelwaittillverificationchanged()
  6086. {
  6087. for(;;)
  6088. {
  6089. self waittill("VerificationChanged");
  6090. self scleanupmenu();
  6091. if(self sgetverified())
  6092. {
  6093. level.cvars[self getname()] = sentinel_client_defaults(self);
  6094. self thread sentinel_monitor();
  6095. }
  6096. }
  6097. }
  6098.  
  6099. /*
  6100. Name: addoption
  6101. Namespace: _imcsx_gsc_studio
  6102. Checksum: 0x37DDDB61
  6103. Offset: 0x17BFA
  6104. Size: 0xEF
  6105. Parameters: 7
  6106. Flags: None
  6107. */
  6108. function addoption(title, function, arg1, arg2, arg3, arg4, arg5)
  6109. {
  6110. parentmenu = level.sentinel.menu[level.si_current_menu];
  6111. parentmenu.options[parentmenu.options.size] = spawnstruct();
  6112. parentmenu.options[parentmenu.options.size - 1].function = function;
  6113. parentmenu.options[parentmenu.options.size - 1].title = title;
  6114. parentmenu.options[parentmenu.options.size - 1].arg1 = arg1;
  6115. parentmenu.options[parentmenu.options.size - 1].arg2 = arg2;
  6116. parentmenu.options[parentmenu.options.size - 1].arg3 = arg3;
  6117. parentmenu.options[parentmenu.options.size - 1].arg4 = arg4;
  6118. parentmenu.options[parentmenu.options.size - 1].arg5 = arg5;
  6119. }
  6120.  
  6121. /*
  6122. Name: addplayersmenu
  6123. Namespace: _imcsx_gsc_studio
  6124. Checksum: 0x910DEB54
  6125. Offset: 0x17CEA
  6126. Size: 0x53
  6127. Parameters: 0
  6128. Flags: None
  6129. */
  6130. function addplayersmenu()
  6131. {
  6132. addsubmenu("Players Menu", 3);
  6133. level.si_players_menu = level.si_current_menu;
  6134. for(i = 0; i < 17; i++)
  6135. {
  6136. addsubmenu("€GSC
  6137. ", 3);
  6138. closeplayerssubmenu();
  6139. }
  6140. addsubmenu("Player", 3);
  6141. }
  6142.  
  6143. /*
  6144. Name: addsubmenu
  6145. Namespace: _imcsx_gsc_studio
  6146. Checksum: 0xCC420FB1
  6147. Offset: 0x17D3E
  6148. Size: 0x119
  6149. Parameters: 2
  6150. Flags: None
  6151. */
  6152. function addsubmenu(title, access)
  6153. {
  6154. level.si_previous_menus[level.si_previous_menus.size] = level.si_current_menu;
  6155. parentmenu = level.sentinel.menu[level.si_current_menu];
  6156. parentmenu.options[parentmenu.options.size] = spawnstruct();
  6157. parentmenu.options[parentmenu.options.size - 1].function = &submenu;
  6158. parentmenu.options[parentmenu.options.size - 1].title = title;
  6159. level.si_next_menu++;
  6160. parentmenu.options[parentmenu.options.size - 1].arg1 = level.si_next_menu;
  6161. parentmenu.options[parentmenu.options.size - 1].arg2 = access;
  6162. level.sentinel.menu[level.si_next_menu] = spawnstruct();
  6163. level.sentinel.menu[level.si_next_menu].options = [];
  6164. level.sentinel.menu[level.si_next_menu].title = title;
  6165. level.sentinel.menu[level.si_next_menu].parentmenu = level.si_current_menu;
  6166. level.si_current_menu = level.si_next_menu;
  6167. }
  6168.  
  6169. /*
  6170. Name: closeplayersmenu
  6171. Namespace: _imcsx_gsc_studio
  6172. Checksum: 0xF634BF0E
  6173. Offset: 0x17E58
  6174. Size: 0x11
  6175. Parameters: 0
  6176. Flags: None
  6177. */
  6178. function closeplayersmenu()
  6179. {
  6180. closesubmenu();
  6181. closesubmenu();
  6182. }
  6183.  
  6184. /*
  6185. Name: closeplayerssubmenu
  6186. Namespace: _imcsx_gsc_studio
  6187. Checksum: 0xA288FEC6
  6188. Offset: 0x17E6A
  6189. Size: 0xF
  6190. Parameters: 0
  6191. Flags: None
  6192. */
  6193. function closeplayerssubmenu()
  6194. {
  6195. level.si_next_menu--;
  6196. closesubmenu();
  6197. }
  6198.  
  6199. /*
  6200. Name: createroot
  6201. Namespace: _imcsx_gsc_studio
  6202. Checksum: 0xD30172FE
  6203. Offset: 0x17E7A
  6204. Size: 0x3D
  6205. Parameters: 1
  6206. Flags: None
  6207. */
  6208. function createroot(title)
  6209. {
  6210. level.sentinel.menu[0] = spawnstruct();
  6211. level.sentinel.menu[0].options = [];
  6212. level.sentinel.menu[0].title = title;
  6213. }
  6214.  
  6215. /*
  6216. Name: closesubmenu
  6217. Namespace: _imcsx_gsc_studio
  6218. Checksum: 0x3740A82B
  6219. Offset: 0x17EB8
  6220. Size: 0x32
  6221. Parameters: 0
  6222. Flags: None
  6223. */
  6224. function closesubmenu()
  6225. {
  6226. if(level.si_previous_menus.size < 1)
  6227. {
  6228. return;
  6229. }
  6230. level.si_current_menu = level.si_previous_menus[level.si_previous_menus.size - 1];
  6231. level.si_previous_menus[level.si_previous_menus.size - 1] = undefined;
  6232. }
  6233.  
  6234. /*
  6235. Name: getname
  6236. Namespace: _imcsx_gsc_studio
  6237. Checksum: 0x3F27644C
  6238. Offset: 0x17EEC
  6239. Size: 0x62
  6240. Parameters: 0
  6241. Flags: None
  6242. */
  6243. function getname()
  6244. {
  6245. nt = getsubstr(self.name, 0, self.name.size);
  6246. for(i = 0; i < nt.size; i++)
  6247. {
  6248. if(nt[i] == "]")
  6249. {
  6250. break;
  6251. }
  6252. }
  6253. if(nt.size != i)
  6254. {
  6255. nt = getsubstr(nt, i + 1, nt.size);
  6256. }
  6257. return nt;
  6258. }
  6259.  
  6260. /*
  6261. Name: getplayerfromname
  6262. Namespace: _imcsx_gsc_studio
  6263. Checksum: 0x9261C55A
  6264. Offset: 0x17F50
  6265. Size: 0x46
  6266. Parameters: 1
  6267. Flags: None
  6268. */
  6269. function getplayerfromname(name)
  6270. {
  6271. foreach(player in level.players)
  6272. {
  6273. if(player getname() == name)
  6274. {
  6275. return player;
  6276. }
  6277. }
  6278. return undefined;
  6279. }
  6280.  
  6281. /*
  6282. Name: ifthen
  6283. Namespace: _imcsx_gsc_studio
  6284. Checksum: 0x31005965
  6285. Offset: 0x17F98
  6286. Size: 0x1A
  6287. Parameters: 3
  6288. Flags: None
  6289. */
  6290. function ifthen(bool, str, str2)
  6291. {
  6292. if(isdefined(bool) && bool)
  6293. {
  6294. return str;
  6295. }
  6296. return str2;
  6297. }
  6298.  
  6299. /*
  6300. Name: performoption
  6301. Namespace: _imcsx_gsc_studio
  6302. Checksum: 0x2FBA434E
  6303. Offset: 0x17FB4
  6304. Size: 0xD7
  6305. Parameters: 0
  6306. Flags: None
  6307. */
  6308. function performoption()
  6309. {
  6310. self endon("CleanupSlider");
  6311. menu = self sgetmenu();
  6312. menu.slider.alpha = 0,5;
  6313. smenu = level.sentinel.menu[menu.currentmenu];
  6314. if(menu.currentmenu == level.si_players_menu)
  6315. {
  6316. menu.selectedplayer = level.players[menu.cursor + menu.soffset];
  6317. }
  6318. si_menu = smenu.options[menu.cursor + menu.soffset];
  6319. self thread [[si_menu.function]](si_menu.arg1, si_menu.arg2, si_menu.arg3, si_menu.arg4, si_menu.arg5);
  6320. wait(0,15);
  6321. menu.slider.alpha fadeovertime(0,25);
  6322. menu.slider.alpha = 1;
  6323. }
  6324.  
  6325. /*
  6326. Name: submenu
  6327. Namespace: _imcsx_gsc_studio
  6328. Checksum: 0xAA7860F6
  6329. Offset: 0x1808C
  6330. Size: 0x7D
  6331. Parameters: 2
  6332. Flags: None
  6333. */
  6334. function submenu(child, access)
  6335. {
  6336. menu = self sgetmenu();
  6337. if(menu.access < access)
  6338. {
  6339. self iprintln("You do not have permission to access this menu");
  6340. return;
  6341. }
  6342. menu.currentmenu = child;
  6343. if(menu.currentmenu == level.si_players_menu)
  6344. {
  6345. menu.selectedplayer = level.players[menu.cursor + menu.soffset];
  6346. }
  6347. menu.cursor = 0;
  6348. menu.soffset = 0;
  6349. self updatemenu();
  6350. }
  6351.  
  6352. /*
  6353. Name: updatemenu
  6354. Namespace: _imcsx_gsc_studio
  6355. Checksum: 0x3A28CFCC
  6356. Offset: 0x1810A
  6357. Size: 0x613
  6358. Parameters: 0
  6359. Flags: None
  6360. */
  6361. function updatemenu()
  6362. {
  6363. menu = self sgetmenu();
  6364. if(menu.currentmenu == -1)
  6365. {
  6366. for(i = 0; i < 10; i++)
  6367. {
  6368. menu.textelems[i] fadeovertime(0,4);
  6369. menu.textelems[i].alpha = 0;
  6370. menu.textelems[i] moveovertime(0,25);
  6371. menu.textelems[i].y = self.offsetmenuy + 60;
  6372. }
  6373. wait(0,4);
  6374. menu.background fadeovertime(0,25);
  6375. menu.header fadeovertime(0,25);
  6376. menu.footer fadeovertime(0,25);
  6377. menu.slider fadeovertime(0,25);
  6378. menu.leftborder fadeovertime(0,25);
  6379. menu.rightborder fadeovertime(0,25);
  6380. menu.title fadeovertime(0,25);
  6381. menu.headerbottom fadeovertime(0,25);
  6382. menu.headerbg fadeovertime(0,25);
  6383. menu.headerbg2 fadeovertime(0,25);
  6384. menu.down_notifier fadeovertime(0,25);
  6385. menu.up_notifier fadeovertime(0,25);
  6386. menu.headerbg2.alpha = 0;
  6387. menu.background.alpha = 0;
  6388. menu.header.alpha = 0;
  6389. menu.footer.alpha = 0;
  6390. menu.slider.alpha = 0;
  6391. menu.leftborder.alpha = 0;
  6392. menu.rightborder.alpha = 0;
  6393. menu.title.alpha = 0;
  6394. menu.down_notifier.alpha = 0;
  6395. menu.headerbottom.alpha = 0;
  6396. menu.up_notifier.alpha = 0;
  6397. menu.headerbg.alpha = 0;
  6398. wait(0,25);
  6399. if(!isdefined(self.emergencycurrentmenu))
  6400. {
  6401. level notify("PLAYER_MENU_CLOSED");
  6402. }
  6403. }
  6404. else
  6405. {
  6406. menu.background fadeovertime(0,25);
  6407. menu.header fadeovertime(0,25);
  6408. menu.footer fadeovertime(0,25);
  6409. menu.slider fadeovertime(0,25);
  6410. menu.leftborder fadeovertime(0,25);
  6411. menu.rightborder fadeovertime(0,25);
  6412. menu.title fadeovertime(0,25);
  6413. menu.headerbottom fadeovertime(0,25);
  6414. menu.headerbg fadeovertime(0,25);
  6415. menu.headerbg2 fadeovertime(0,25);
  6416. menu.background.alpha = 1;
  6417. menu.header.alpha = 1;
  6418. menu.footer.alpha = 1;
  6419. menu.slider.alpha = 0,75;
  6420. menu.leftborder.alpha = 1;
  6421. menu.rightborder.alpha = 1;
  6422. menu.title.alpha = 1;
  6423. menu.title settext(level.sentinel.menu[menu.currentmenu].title);
  6424. menu.headerbottom.alpha = 1;
  6425. menu.headerbg.alpha = 1;
  6426. menu.headerbg2.alpha = 1;
  6427. menu.cursor = 0;
  6428. menu.soffset = 0;
  6429. if(menu.currentmenu != level.si_players_menu)
  6430. {
  6431. for(i = 0; i < 10; i++)
  6432. {
  6433. menu.textelems[i].alpha = 0;
  6434. menu.textelems[i] fadeovertime(0,25);
  6435. if(level.sentinel.menu[menu.currentmenu].options.size > i)
  6436. {
  6437. menu.textelems[i] settext(level.sentinel.menu[menu.currentmenu].options[i].title);
  6438. menu.textelems[i].alpha = 1;
  6439. }
  6440. menu.textelems[i] moveovertime(0,25);
  6441. menu.textelems[i].y = self.offsetmenuy + 108 + i * 20;
  6442. }
  6443. break;
  6444. }
  6445. for(i = 0; i < 10; i++)
  6446. {
  6447. menu.textelems[i].alpha = 0;
  6448. menu.textelems[i] fadeovertime(0,25);
  6449. }
  6450. for(i = 0; i < 10 && i < level.players.size; i++)
  6451. {
  6452. menu.textelems[i] settext("[" + sgetaccessstring(level.players[i] sgetaccess()) + "]" + level.players[i] getname());
  6453. menu.textelems[i].alpha = 1;
  6454. }
  6455. supdatetextset(11);
  6456. if(level.sentinel.menu[menu.currentmenu].options.size > 10 && menu.currentmenu != level.si_players_menu)
  6457. {
  6458. menu.down_notifier.alpha = 0,35;
  6459. }
  6460. else if(menu.currentmenu == level.si_players_menu && level.players.size > 10)
  6461. {
  6462. menu.down_notifier.alpha = 0,35;
  6463. }
  6464. else
  6465. {
  6466. menu.down_notifier.alpha = 0;
  6467. }
  6468. menu.up_notifier.alpha = 0;
  6469. menu.slider moveovertime(0,05);
  6470. menu.slider.y = self.offsetmenuy + 98;
  6471. }
  6472. }
  6473.  
  6474. /*
  6475. Name: sgetaccess
  6476. Namespace: _imcsx_gsc_studio
  6477. Checksum: 0x1B00BA48
  6478. Offset: 0x1871E
  6479. Size: 0x91
  6480. Parameters: 0
  6481. Flags: None
  6482. */
  6483. function sgetaccess()
  6484. {
  6485. if(!self sgetverified())
  6486. {
  6487. return 0;
  6488. }
  6489. if(self ishost())
  6490. {
  6491. return 4;
  6492. }
  6493. str = strtok(GetDvar("SENTINELverified"), ",");
  6494. for(i = 0; i < str.size; i++)
  6495. {
  6496. if(strtok(str[i], ";")[0] == self getname())
  6497. {
  6498. return int(strtok(str[i], ";")[1]);
  6499. }
  6500. }
  6501. return 1;
  6502. }
  6503.  
  6504. /*
  6505. Name: sgetaccessstring
  6506. Namespace: _imcsx_gsc_studio
  6507. Checksum: 0xB2AE78D3
  6508. Offset: 0x187B0
  6509. Size: 0x3F
  6510. Parameters: 1
  6511. Flags: None
  6512. */
  6513. function sgetaccessstring(accesslevel)
  6514. {
  6515. if(accesslevel == 0)
  6516. {
  6517. return " ";
  6518. }
  6519. if(accesslevel == 1)
  6520. {
  6521. return "Verified";
  6522. }
  6523. if(accesslevel == 2)
  6524. {
  6525. return "Elevated";
  6526. }
  6527. if(accesslevel == 3)
  6528. {
  6529. return "CoHost";
  6530. }
  6531. return "Host";
  6532. }
  6533.  
  6534. /*
  6535. Name: sgetbool
  6536. Namespace: _imcsx_gsc_studio
  6537. Checksum: 0x4D67030
  6538. Offset: 0x187F0
  6539. Size: 0x2A
  6540. Parameters: 1
  6541. Flags: None
  6542. */
  6543. function sgetbool(index)
  6544. {
  6545. return isdefined(self sgetmenu().bvars[index]) && self sgetmenu().bvars[index];
  6546. }
  6547.  
  6548. /*
  6549. Name: sgethost
  6550. Namespace: _imcsx_gsc_studio
  6551. Checksum: 0x817B7586
  6552. Offset: 0x1881C
  6553. Size: 0x38
  6554. Parameters: 0
  6555. Flags: None
  6556. */
  6557. function sgethost()
  6558. {
  6559. for(i = 0; i < level.players.size; i++)
  6560. {
  6561. if(level.players[i] ishost())
  6562. {
  6563. return level.players[i];
  6564. }
  6565. }
  6566. return undefined;
  6567. }
  6568.  
  6569. /*
  6570. Name: sgetmenu
  6571. Namespace: _imcsx_gsc_studio
  6572. Checksum: 0xF8DDD6F5
  6573. Offset: 0x18856
  6574. Size: 0x15
  6575. Parameters: 0
  6576. Flags: None
  6577. */
  6578. function sgetmenu()
  6579. {
  6580. return level.cvars[self getname()].menu;
  6581. }
  6582.  
  6583. /*
  6584. Name: sgetverified
  6585. Namespace: _imcsx_gsc_studio
  6586. Checksum: 0x6F64FA1E
  6587. Offset: 0x1886C
  6588. Size: 0x68
  6589. Parameters: 0
  6590. Flags: None
  6591. */
  6592. function sgetverified()
  6593. {
  6594. if(self ishost())
  6595. {
  6596. return 1;
  6597. }
  6598. str = strtok(GetDvar("SENTINELVerified"), ",");
  6599. for(i = 0; i < str.size; i++)
  6600. {
  6601. if(strtok(str[i], ";")[0] == self getname())
  6602. {
  6603. return 1;
  6604. }
  6605. }
  6606. return 0;
  6607. }
  6608.  
  6609. /*
  6610. Name: ssetbool
  6611. Namespace: _imcsx_gsc_studio
  6612. Checksum: 0xAFAAE53
  6613. Offset: 0x188D6
  6614. Size: 0x22
  6615. Parameters: 2
  6616. Flags: None
  6617. */
  6618. function ssetbool(index, value)
  6619. {
  6620. menu = self sgetmenu();
  6621. menu.bvars[index] = value;
  6622. }
  6623.  
  6624. /*
  6625. Name: ssyncbool
  6626. Namespace: _imcsx_gsc_studio
  6627. Checksum: 0x5FE0F8AE
  6628. Offset: 0x188FA
  6629. Size: 0x5A
  6630. Parameters: 1
  6631. Flags: None
  6632. */
  6633. function ssyncbool(index)
  6634. {
  6635. foreach(client in self.modifierlist)
  6636. {
  6637. if(client sgetverified())
  6638. {
  6639. client ssetbool(index, sgetglobalbool(index));
  6640. }
  6641. }
  6642. }
  6643.  
  6644. /*
  6645. Name: sglobaltoggle
  6646. Namespace: _imcsx_gsc_studio
  6647. Checksum: 0xE9E5C3C0
  6648. Offset: 0x18956
  6649. Size: 0x52
  6650. Parameters: 1
  6651. Flags: None
  6652. */
  6653. function sglobaltoggle(index)
  6654. {
  6655. cval = sgetglobalbool(index);
  6656. cval = !cval;
  6657. ssetglobal(index, cval);
  6658. if(cval)
  6659. {
  6660. senabled();
  6661. }
  6662. else
  6663. {
  6664. sdisabled();
  6665. }
  6666. ssyncbool(index);
  6667. return cval;
  6668. }
  6669.  
  6670. /*
  6671. Name: ssetglobal
  6672. Namespace: _imcsx_gsc_studio
  6673. Checksum: 0xD3CD772A
  6674. Offset: 0x189AA
  6675. Size: 0x14
  6676. Parameters: 2
  6677. Flags: None
  6678. */
  6679. function ssetglobal(index, value)
  6680. {
  6681. level.sentinel.svars[index] = value;
  6682. }
  6683.  
  6684. /*
  6685. Name: sgetglobalbool
  6686. Namespace: _imcsx_gsc_studio
  6687. Checksum: 0xD907610E
  6688. Offset: 0x189C0
  6689. Size: 0x24
  6690. Parameters: 1
  6691. Flags: None
  6692. */
  6693. function sgetglobalbool(index)
  6694. {
  6695. return isdefined(level.sentinel.svars[index]) && level.sentinel.svars.bvars[index];
  6696. }
  6697.  
  6698. /*
  6699. Name: stoggle
  6700. Namespace: _imcsx_gsc_studio
  6701. Checksum: 0x40EBA679
  6702. Offset: 0x189E6
  6703. Size: 0x7A
  6704. Parameters: 2
  6705. Flags: None
  6706. */
  6707. function stoggle(index, client)
  6708. {
  6709. cval = undefined;
  6710. if(isdefined(client))
  6711. {
  6712. cval = client sgetbool(index);
  6713. cval = !cval;
  6714. client ssetbool(index, cval);
  6715. }
  6716. else
  6717. {
  6718. cval = sgetbool(index);
  6719. cval = !cval;
  6720. ssetbool(index, cval);
  6721. }
  6722. if(cval)
  6723. {
  6724. senabled();
  6725. }
  6726. else
  6727. {
  6728. sdisabled();
  6729. }
  6730. return cval;
  6731. }
  6732.  
  6733. /*
  6734. Name: scleanupmenu
  6735. Namespace: _imcsx_gsc_studio
  6736. Checksum: 0x764CD474
  6737. Offset: 0x18A62
  6738. Size: 0x113
  6739. Parameters: 0
  6740. Flags: None
  6741. */
  6742. function scleanupmenu()
  6743. {
  6744. menu = self sgetmenu();
  6745. if(!isdefined(menu))
  6746. {
  6747. return;
  6748. }
  6749. menu.background destroy();
  6750. menu.header destroy();
  6751. menu.footer destroy();
  6752. menu.slider destroy();
  6753. menu.leftborder destroy();
  6754. menu.rightborder destroy();
  6755. menu.title destroy();
  6756. menu.headerbottom destroy();
  6757. menu.headerbg destroy();
  6758. menu.headerbg2 destroy();
  6759. for(i = 0; i < menu.textelems.size; i++)
  6760. {
  6761. menu.textelems[i] destroy();
  6762. }
  6763. menu.up_notifier destroy();
  6764. menu.down_notifier destroy();
  6765. menu delete();
  6766. }
  6767.  
  6768. /*
  6769. Name: sdisabled
  6770. Namespace: _imcsx_gsc_studio
  6771. Checksum: 0x78E5340
  6772. Offset: 0x18B76
  6773. Size: 0xF
  6774. Parameters: 0
  6775. Flags: None
  6776. */
  6777. function sdisabled()
  6778. {
  6779. self iprintln("^1Disabled");
  6780. }
  6781.  
  6782. /*
  6783. Name: sdone
  6784. Namespace: _imcsx_gsc_studio
  6785. Checksum: 0x751ACC31
  6786. Offset: 0x18B86
  6787. Size: 0xF
  6788. Parameters: 0
  6789. Flags: None
  6790. */
  6791. function sdone()
  6792. {
  6793. self iprintln("Done!");
  6794. }
  6795.  
  6796. /*
  6797. Name: senabled
  6798. Namespace: _imcsx_gsc_studio
  6799. Checksum: 0x9033F2D3
  6800. Offset: 0x18B96
  6801. Size: 0xF
  6802. Parameters: 0
  6803. Flags: None
  6804. */
  6805. function senabled()
  6806. {
  6807. self iprintln("^2Enabled");
  6808. }
  6809.  
  6810. /*
  6811. Name: sentinelupbuttonpressed
  6812. Namespace: _imcsx_gsc_studio
  6813. Checksum: 0xABB32D71
  6814. Offset: 0x18BA6
  6815. Size: 0x2B
  6816. Parameters: 0
  6817. Flags: None
  6818. */
  6819. function sentinelupbuttonpressed()
  6820. {
  6821. if(self maps/mp/zombies/_zm_laststand::player_is_in_laststand() || self.control_scheme)
  6822. {
  6823. return self adsbuttonpressed();
  6824. }
  6825. return self actionslotonebuttonpressed();
  6826. }
  6827.  
  6828. /*
  6829. Name: sentineldownbuttonpressed
  6830. Namespace: _imcsx_gsc_studio
  6831. Checksum: 0x5BAA7BF0
  6832. Offset: 0x18BD2
  6833. Size: 0x2B
  6834. Parameters: 0
  6835. Flags: None
  6836. */
  6837. function sentineldownbuttonpressed()
  6838. {
  6839. if(self maps/mp/zombies/_zm_laststand::player_is_in_laststand() || self.control_scheme)
  6840. {
  6841. return self attackbuttonpressed();
  6842. }
  6843. return self actionslottwobuttonpressed();
  6844. }
  6845.  
  6846. /*
  6847. Name: sentinelselectbuttonpressed
  6848. Namespace: _imcsx_gsc_studio
  6849. Checksum: 0x52C1F967
  6850. Offset: 0x18BFE
  6851. Size: 0x1F
  6852. Parameters: 0
  6853. Flags: None
  6854. */
  6855. function sentinelselectbuttonpressed()
  6856. {
  6857. if(self.control_scheme)
  6858. {
  6859. return self jumpbuttonpressed();
  6860. }
  6861. return self usebuttonpressed();
  6862. }
  6863.  
  6864. /*
  6865. Name: supdatetextset
  6866. Namespace: _imcsx_gsc_studio
  6867. Checksum: 0x13C32D81
  6868. Offset: 0x18C1E
  6869. Size: 0x24
  6870. Parameters: 1
  6871. Flags: None
  6872. */
  6873. function supdatetextset(value)
  6874. {
  6875. level.sentinel_current_overflow_counter = level.sentinel_current_overflow_counter + value;
  6876. if(level.sentinel_current_overflow_counter > level.sentinel_min_overflow_threshold)
  6877. {
  6878. level notify("SENTINEL_OVERFLOW_BEGIN_WATCH");
  6879. }
  6880. }
  6881.  
  6882. /*
  6883. Name: sentinel_smart_overflow_fix
  6884. Namespace: _imcsx_gsc_studio
  6885. Checksum: 0xF761E09E
  6886. Offset: 0x18C44
  6887. Size: 0xC6
  6888. Parameters: 0
  6889. Flags: None
  6890. */
  6891. function sentinel_smart_overflow_fix()
  6892. {
  6893. bool = 0;
  6894. for(;;)
  6895. {
  6896. level waittill("SENTINEL_OVERFLOW_BEGIN_WATCH");
  6897. while(level.sentinel_current_overflow_counter < level.sentinel_max_overflow_threshold)
  6898. {
  6899. level waittill_any("SENTINEL_OVERFLOW_BEGIN_WATCH", "PLAYER_MENU_CLOSED");
  6900. if(level.sentinel_current_overflow_counter >= level.sentinel_max_overflow_threshold)
  6901. {
  6902. break;
  6903. }
  6904. bool = 0;
  6905. foreach(player in level.players)
  6906. {
  6907. if(player sgetverified() && player sgetmenu().currentmenu != -1)
  6908. {
  6909. bool = 1;
  6910. }
  6911. }
  6912. }
  6913. if(bool)
  6914. {
  6915. semergencyclear();
  6916. continue;
  6917. }
  6918. level.sentinel_smart_overflow_anchor clearalltextafterhudelem();
  6919. level.sentinel_current_overflow_counter = 0;
  6920. }
  6921. }
  6922.  
  6923. /*
  6924. Name: semergencyclear
  6925. Namespace: _imcsx_gsc_studio
  6926. Checksum: 0x16D119A4
  6927. Offset: 0x18D0C
  6928. Size: 0x134
  6929. Parameters: 0
  6930. Flags: None
  6931. */
  6932. function semergencyclear()
  6933. {
  6934. level.sentinel_current_overflow_counter = 0;
  6935. foreach(player in level.players)
  6936. {
  6937. while(!player sgetverified())
  6938. {
  6939. continue;
  6940. menu = player sgetmenu();
  6941. player.emergencycurrentmenu = menu.currentmenu;
  6942. }
  6943. if(menu.currentmenu == -1)
  6944. {
  6945. }
  6946. player iprintln("^1String Counter Exceeded threshold. One Moment please...");
  6947. menu.currentmenu = -1;
  6948. player updatemenu();
  6949. }
  6950. wait(2);
  6951. level.sentinel_smart_overflow_anchor clearalltextafterhudelem();
  6952. level.sentinel_current_overflow_counter = 0;
  6953. foreach(player in level.players)
  6954. {
  6955. if(!player sgetverified())
  6956. {
  6957. continue;
  6958. }
  6959. menu = player sgetmenu();
  6960. menu.currentmenu = player.emergencycurrentmenu;
  6961. player.emergencycurrentmenu = undefined;
  6962. player updatemenu();
  6963. player iprintln("^2String counter successfully reduced");
  6964. }
  6965. }
  6966.  
  6967. /*
  6968. Name: mapnametoint
  6969. Namespace: _imcsx_gsc_studio
  6970. Checksum: 0x8EA65B61
  6971. Offset: 0x18E42
  6972. Size: 0x43
  6973. Parameters: 1
  6974. Flags: None
  6975. */
  6976. function mapnametoint(map)
  6977. {
  6978. if(map == "zm_tomb")
  6979. {
  6980. return 5;
  6981. }
  6982. if(map == "zm_buried")
  6983. {
  6984. return 4;
  6985. }
  6986. if(map == "zm_prison")
  6987. {
  6988. return 3;
  6989. }
  6990. if(map == "zm_highrise")
  6991. {
  6992. return 2;
  6993. }
  6994. if(map == "zm_nuked")
  6995. {
  6996. return 1;
  6997. }
  6998. return 0;
  6999. }
  7000.  
  7001. /*
  7002. Name: sloadplayerpreferences
  7003. Namespace: _imcsx_gsc_studio
  7004. Checksum: 0x58EC4888
  7005. Offset: 0x18E86
  7006. Size: 0x1B9
  7007. Parameters: 1
  7008. Flags: None
  7009. */
  7010. function sloadplayerpreferences(player)
  7011. {
  7012. if(!isdefined(GetDvar(player getname() + "_SENTINEL_PREFS")) || GetDvar(player getname() + "_SENTINEL_PREFS") == "")
  7013. {
  7014. return;
  7015. }
  7016. variables = strtok(GetDvar(player getname() + "_SENTINEL_PREFS"), ";");
  7017. bgcolor = strtok(variables[1], ",");
  7018. framecolor = strtok(variables[2], ",");
  7019. slidercolor = strtok(variables[3], ",");
  7020. player.control_scheme = int(variables[0]);
  7021. player.bgcolor = (int(bgcolor[0]) / 255, int(bgcolor[1]) / 255, int(bgcolor[2]) / 255);
  7022. player.framecolor = (int(framecolor[0]) / 255, int(framecolor[1]) / 255, int(framecolor[2]) / 255);
  7023. player.slidercolor = (int(slidercolor[0]) / 255, int(slidercolor[1]) / 255, int(slidercolor[2]) / 255);
  7024. player.offsetmenux = int(variables[4]);
  7025. player.offsetmenuy = int(variables[5]);
  7026. }
  7027.  
  7028. /*
  7029. Name: ssetplayerpreferences
  7030. Namespace: _imcsx_gsc_studio
  7031. Checksum: 0x4419396E
  7032. Offset: 0x19040
  7033. Size: 0x175
  7034. Parameters: 1
  7035. Flags: None
  7036. */
  7037. function ssetplayerpreferences(player)
  7038. {
  7039. str = "";
  7040. str = str + player.control_scheme + ";";
  7041. str = str + int(player.bgcolor[0] * 255) + ",";
  7042. str = str + int(player.bgcolor[1] * 255) + ",";
  7043. str = str + int(player.bgcolor[2] * 255) + ";";
  7044. str = str + int(player.framecolor[0] * 255) + ",";
  7045. str = str + int(player.framecolor[1] * 255) + ",";
  7046. str = str + int(player.framecolor[2] * 255) + ";";
  7047. str = str + int(player.slidercolor[0] * 255) + ",";
  7048. str = str + int(player.slidercolor[1] * 255) + ",";
  7049. str = str + int(player.slidercolor[2] * 255) + ";";
  7050. str = str + player.offsetmenux + ";";
  7051. str = str + player.offsetmenuy;
  7052. setdvar(player getname() + "_SENTINEL_PREFS", str);
  7053. }
  7054.  
  7055. /*
  7056. Name: updatemenulook
  7057. Namespace: _imcsx_gsc_studio
  7058. Checksum: 0xF673AEB0
  7059. Offset: 0x191B6
  7060. Size: 0x40F
  7061. Parameters: 1
  7062. Flags: None
  7063. */
  7064. function updatemenulook(pos)
  7065. {
  7066. menu = self sgetmenu();
  7067. if(pos)
  7068. {
  7069. for(i = 0; i < 10; i++)
  7070. {
  7071. menu.textelems[i] moveovertime(0,25);
  7072. menu.textelems[i].y = self.offsetmenuy + 108 + i * 20;
  7073. menu.textelems[i].x = self.offsetmenux + 250;
  7074. }
  7075. menu.slider.y = self.offsetmenuy + 98 + menu.cursor * 20;
  7076. menu.background.y = self.offsetmenuy + 75;
  7077. menu.header.y = self.offsetmenuy + 50;
  7078. menu.footer.y = self.offsetmenuy + 325;
  7079. menu.leftborder.y = self.offsetmenuy + 50;
  7080. menu.rightborder.y = self.offsetmenuy + 50;
  7081. menu.title.y = self.offsetmenuy + 62;
  7082. menu.headerbottom.y = self.offsetmenuy + 73;
  7083. menu.headerbg.y = self.offsetmenuy + 50;
  7084. menu.headerbg2.y = self.offsetmenuy + 50;
  7085. menu.down_notifier.y = self.offsetmenuy + 304;
  7086. menu.up_notifier.y = self.offsetmenuy + 81;
  7087. menu.slider.x = self.offsetmenux + 250;
  7088. menu.background.x = self.offsetmenux + 250;
  7089. menu.header.x = self.offsetmenux + 250;
  7090. menu.footer.x = self.offsetmenux + 250;
  7091. menu.leftborder.x = self.offsetmenux + 151;
  7092. menu.rightborder.x = self.offsetmenux + 349;
  7093. menu.title.x = self.offsetmenux + 250;
  7094. menu.headerbottom.x = self.offsetmenux + 250;
  7095. menu.headerbg.x = self.offsetmenux + 250;
  7096. menu.headerbg2.x = self.offsetmenux + 250;
  7097. menu.down_notifier.x = self.offsetmenux + 250;
  7098. menu.up_notifier.x = self.offsetmenux + 250;
  7099. }
  7100. else
  7101. {
  7102. menu.background fadeovertime(0,25);
  7103. menu.header fadeovertime(0,25);
  7104. menu.footer fadeovertime(0,25);
  7105. menu.slider fadeovertime(0,25);
  7106. menu.leftborder fadeovertime(0,25);
  7107. menu.rightborder fadeovertime(0,25);
  7108. menu.title fadeovertime(0,25);
  7109. menu.headerbottom fadeovertime(0,25);
  7110. menu.headerbg fadeovertime(0,25);
  7111. menu.headerbg2 fadeovertime(0,25);
  7112. menu.slider.color = self.slidercolor;
  7113. menu.background.color = self.bgcolor;
  7114. menu.header.color = self.framecolor;
  7115. menu.footer.color = self.framecolor;
  7116. menu.leftborder.color = self.framecolor;
  7117. menu.rightborder.color = self.framecolor;
  7118. menu.headerbottom.color = self.framecolor;
  7119. menu.headerbg.color = ifthen(self.framecolor == 0, 0, 0, 1, 1, 1, 0, 0, 0);
  7120. menu.headerbg2.color = self.framecolor * (0,75, 0,75, 0,75);
  7121. menu.down_notifier.color = self.framecolor;
  7122. menu.up_notifier.color = self.framecolor;
  7123. }
  7124. }
  7125.  
  7126. /*
  7127. Name: scareplayer
  7128. Namespace: _imcsx_gsc_studio
  7129. Checksum: 0xADE26DEF
  7130. Offset: 0x195C6
  7131. Size: 0x137
  7132. Parameters: 1
  7133. Flags: None
  7134. */
  7135. function scareplayer(option)
  7136. {
  7137. if(option == 146)
  7138. {
  7139. self playsoundtoplayer("zmb_easteregg_face", self);
  7140. wth_elem = newclienthudelem(self);
  7141. wth_elem.horzalign = "fullscreen";
  7142. wth_elem.vertalign = "fullscreen";
  7143. wth_elem.sort = 1000;
  7144. wth_elem.foreground = 0;
  7145. wth_elem setshader("zm_al_wth_zombie", 640, 480);
  7146. wth_elem.hidewheninmenu = 1;
  7147. for(j_time = 0; j_time < 5; j_time++)
  7148. {
  7149. wait(0,05);
  7150. }
  7151. wth_elem destroy();
  7152. }
  7153. if(option == 147)
  7154. {
  7155. self playsoundtoplayer("zmb_easteregg_scarydog", self);
  7156. wth_elem = newclienthudelem(self);
  7157. wth_elem.horzalign = "fullscreen";
  7158. wth_elem.vertalign = "fullscreen";
  7159. wth_elem.sort = 1000;
  7160. wth_elem.foreground = 0;
  7161. wth_elem setshader("zm_tm_wth_dog", 640, 480);
  7162. wth_elem.hidewheninmenu = 1;
  7163. for(j_time = 0; j_time < 5; j_time++)
  7164. {
  7165. wait(0,05);
  7166. }
  7167. wth_elem destroy();
  7168. self.b_saw_jump_scare = 1;
  7169. }
  7170. }
Add Comment
Please, Sign In to add comment