JARDASS

Untitled

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