JARDASS

Untitled

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