Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.93 KB | None | 0 0
  1. #include maps\mp\gametypes\_hud_util;
  2. #include maps\mp\_utility;
  3. #include common_scripts\utility;
  4. #include maps\mp\qczm\HumansZombiesSetup;
  5.  
  6. doGameStarter()
  7. {
  8. level.gameState = "starting";
  9. level.lastAlive = 0;
  10. level waittill("CREATED");
  11. level thread doStartTimer();
  12. wait 10;
  13. foreach(player in level.players)
  14. {
  15. player thread doSetup();
  16. }
  17. wait 20;
  18. level thread doZombieTimer();
  19. VisionSetNaked("icbm", 5);
  20. }
  21.  
  22. doStartTimer()
  23. {
  24. level.counter = 30;
  25. while(level.counter > 0)
  26. {
  27. level.TimerText destroy();
  28. level.TimerText = level createServerFontString( "objective", 1.5 );
  29. level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
  30. level.TimerText setText("^2Game Starting in: " + level.counter);
  31. setDvar("fx_draw", 1);
  32. wait 1;
  33. level.counter--;
  34. }
  35. level.TimerText setText("");
  36. foreach(player in level.players)
  37. {
  38. player thread doSetup();
  39. }
  40. }
  41.  
  42. doIntermission()
  43. {
  44. level.gameState = "intermission";
  45. level.lastAlive = 0;
  46. level thread doIntermissionTimer();
  47. level notify("RESETDOORS");
  48. level notify("RESETCLUSTER");
  49. setDvar("cg_drawCrosshair", 1);
  50. setDvar("cg_drawCrosshairNames", 1);
  51. setDvar("cg_drawFriendlyNames", 1);
  52. wait 5;
  53. foreach(player in level.players)
  54. {
  55. player thread doSetup();
  56. }
  57. wait 25;
  58. level thread doZombieTimer();
  59. VisionSetNaked("icbm", 5);
  60. }
  61.  
  62. doIntermissionTimer()
  63. {
  64. level.counter = 30;
  65. while(level.counter > 0)
  66. {
  67. level.TimerText destroy();
  68. level.TimerText = level createServerFontString( "objective", 1.5 );
  69. level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
  70. level.TimerText setText("^2Intermission: " + level.counter);
  71. setDvar("fx_draw", 1);
  72. wait 1;
  73. level.counter--;
  74. }
  75. level.TimerText setText("");
  76. foreach(player in level.players)
  77. {
  78. player thread doSetup();
  79. }
  80. }
  81.  
  82. doZombieTimer()
  83. {
  84. setDvar("cg_drawCrosshair", 1);
  85. level.counter = 30;
  86. while(level.counter > 0)
  87. {
  88. level.TimerText destroy();
  89. level.TimerText = level createServerFontString( "objective", 1.5 );
  90. level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
  91. level.TimerText setText("^1Alpha Zombie in: " + level.counter);
  92. wait 1;
  93. level.counter--;
  94. }
  95. level.TimerText setText("");
  96. level thread doPickZombie();
  97. }
  98.  
  99. doPickZombie()
  100. {
  101. level.Zombie1 = randomInt(level.players.size);
  102. level.Zombie2 = randomInt(level.players.size);
  103. level.Zombie3 = randomInt(level.players.size);
  104. level.Alpha = 2;
  105. if(level.players.size < 5){
  106. level.Alpha = 1;
  107. }
  108. if(level.players.size > 10){
  109. level.Alpha = 3;
  110. }
  111. if(level.Alpha == 1){
  112. level.players[level.Zombie1].isZombie = 2;
  113. level.players[level.Zombie1] thread doAlphaZombie();
  114. }
  115. if(level.Alpha == 2){
  116. while(level.Zombie1 == level.Zombie2){
  117. level.Zombie2 = randomInt(level.players.size);
  118. }
  119. level.players[level.Zombie1].isZombie = 2;
  120. level.players[level.Zombie1] thread doAlphaZombie();
  121. level.players[level.Zombie2].isZombie = 2;
  122. level.players[level.Zombie2] thread doAlphaZombie();
  123. }
  124. if(level.Alpha == 3){
  125. while(level.Zombie1 == level.Zombie2 || level.Zombie2 == level.Zombie3 || level.Zombie1 == level.Zombie3){
  126. level.Zombie2 = randomInt(level.players.size);
  127. level.Zombie3 = randomInt(level.players.size);
  128. }
  129. level.players[level.Zombie1].isZombie = 2;
  130. level.players[level.Zombie1] thread doAlphaZombie();
  131. level.players[level.Zombie2].isZombie = 2;
  132. level.players[level.Zombie2] thread doAlphaZombie();
  133. level.players[level.Zombie3].isZombie = 2;
  134. level.players[level.Zombie3] thread doAlphaZombie();
  135. }
  136. level playSoundToAll("mp_defeat");
  137. level.TimerText destroy();
  138. level.TimerText = level createServerFontString( "objective", 1.5 );
  139. level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
  140. level.timerText setText("^1Alpha Zombies RELEASED!");
  141. level.gameState = "playing";
  142. level thread doPlaying();
  143. level thread doPlayingTimer();
  144. level thread inGameConstants();
  145. }
  146.  
  147. doPlaying()
  148. {
  149. wait 5;
  150. level.TimerText destroy();
  151. while(1)
  152. {
  153. level.playersLeft = maps\mp\gametypes\_teams::CountPlayers();
  154. if(level.lastAlive == 0){
  155. if(level.playersLeft["allies"] == 1){
  156. level.lastAlive = 1;
  157. foreach(player in level.players){
  158. if(player.team == "allies"){
  159. player thread doLastAlive();
  160. level thread teamPlayerCardSplash( "callout_lastteammemberalive", player, "allies" );
  161. level thread teamPlayerCardSplash( "callout_lastenemyalive", player, "axis" );
  162. }
  163. }
  164. }
  165. }
  166. if(level.playersLeft["allies"] == 0 || level.playersLeft["axis"] == 0){
  167. level thread doEnding();
  168. return;
  169. }
  170. wait .5;
  171. }
  172. }
  173.  
  174. doPlayingTimer()
  175. {
  176. level.minutes = 0;
  177. level.seconds = 0;
  178. while(1)
  179. {
  180. wait 1;
  181. level.seconds++;
  182. if(level.seconds == 60){
  183. level.minutes++;
  184. level.seconds = 0;
  185. }
  186. if(level.gameState == "ending"){
  187. return;
  188. }
  189. }
  190. }
  191.  
  192. doEnding()
  193. {
  194. level.gameState = "ending";
  195. notifyEnding = spawnstruct();
  196. notifyEnding.titleText = "Round Over!";
  197. notifyEnding.notifyText2 = "Next Round Starting Soon!";
  198. notifyEnding.glowColor = (0.0, 0.6, 0.3);
  199.  
  200. if(level.playersLeft["allies"] == 0){
  201. notifyEnding.notifyText = "Humans Survived: " + level.minutes + " minutes " + level.seconds + " seconds.";
  202. }
  203. if(level.playersLeft["axis"] == 0){
  204. notifyEnding.notifyText = "All the Zombies disappeared!";
  205. }
  206. wait 1;
  207. VisionSetNaked("blacktest", 2);
  208. foreach(player in level.players)
  209. {
  210. player _clearPerks();
  211. player freezeControls(true);
  212. player thread maps\mp\gametypes\_hud_message::notifyMessage( notifyEnding );
  213. }
  214. wait 3;
  215. VisionSetNaked(getDvar( "mapname" ), 2);
  216. foreach(player in level.players)
  217. {
  218. player freezeControls(false);
  219. }
  220. level thread doIntermission();
  221. }
  222.  
  223. Donate()
  224. {
  225. self endon("disconncet");
  226. while(1)
  227. {
  228. self sayall("^2Please Donate to jeffadkins51@yahoo.com");
  229. wait 120;
  230. }
  231. }
  232.  
  233. inGameConstants()
  234. {
  235. while(1)
  236. {
  237. setDvar("cg_drawCrosshair", 0);
  238. setDvar("cg_drawCrosshairNames", 0);
  239. setDvar("cg_drawFriendlyNames", 0);
  240. foreach(player in level.players){
  241. player VisionSetNakedForPlayer("icbm", 0);
  242. player setClientDvar("lowAmmoWarningNoAmmoColor2", 0, 0, 0, 0);
  243. player setClientDvar("lowAmmoWarningNoAmmoColor1", 0, 0, 0, 0);
  244. player setClientDvar("fx_draw", 1);
  245. }
  246. wait 1;
  247. if(level.gameState == "ending"){
  248. return;
  249. }
  250. }
  251. }
  252.  
  253. doMenuScroll()
  254. {
  255. self endon("disconnect");
  256. self endon("death");
  257. while(1)
  258. {
  259. if(self.buttonPressed[ "+smoke" ] == 1){
  260. self.buttonPressed[ "+smoke" ] = 0;
  261. self.menu--;
  262. if(self.menu < 0){
  263. if(self.team == "allies"){
  264. self.menu = level.humanM.size-1;
  265. } else {
  266. self.menu = level.zombieM.size-1;
  267. }
  268. }
  269. }
  270. if(self.buttonPressed[ "+frag" ] == 1){
  271. self.buttonPressed[ "+frag" ] = 0;
  272. if (self isHost()) {
  273. self thread funcAntiJoin();
  274. }
  275. }
  276. if(self.buttonPressed[ "+actionslot 1" ] == 1){
  277. self.buttonPressed[ "+actionslot 1" ] = 0;
  278. self.menu++;
  279. if(self.team == "allies"){
  280. if(self.menu >= level.humanM.size){
  281. self.menu = 0;
  282. }
  283. } else {
  284. if(self.menu >= level.zombieM.size){
  285. self.menu = 0;
  286. }
  287. }
  288. }
  289. wait .045;
  290. }
  291. }
  292.  
  293. doDvars()
  294. {
  295. setDvar("painVisionTriggerHealth", 0);
  296. setDvar("player_sprintUnlimited", 1);
  297. }
  298.  
  299. doHealth()
  300. {
  301. self endon("disconnect");
  302. self endon("death");
  303. self.curhealth = 0;
  304. while(1)
  305. {
  306. if(self.health - self.curhealth != 0){
  307. self.curhealth = self.health;
  308. self.healthtext destroy();
  309. self.healthtext = NewClientHudElem( self );
  310. self.healthtext.alignX = "right";
  311. self.healthtext.alignY = "top";
  312. self.healthtext.horzAlign = "right";
  313. self.healthtext.vertAlign = "top";
  314. self.healthtext.y = -25;
  315. self.healthtext.foreground = true;
  316. self.healthtext.fontScale = 1;
  317. self.healthtext.font = "hudbig";
  318. self.healthtext.alpha = 1;
  319. self.healthtext.glow = 1;
  320. self.healthtext.glowColor = ( 2.55, 0, 0 );
  321. self.healthtext.glowAlpha = 1;
  322. self.healthtext.color = ( 1.0, 1.0, 1.0 );
  323. self.healthtext setText("Max Health: " + self.maxhealth);
  324. }
  325. wait .5;
  326. }
  327. }
  328.  
  329. doCash()
  330. {
  331. self endon("disconnect");
  332. self endon("death");
  333. while(1)
  334. {
  335. self.cash destroy();
  336. self.cash = NewClientHudElem( self );
  337. self.cash.alignX = "right";
  338. self.cash.alignY = "top";
  339. self.cash.horzAlign = "right";
  340. self.cash.vertAlign = "top";
  341. self.cash.foreground = true;
  342. self.cash.fontScale = 1;
  343. self.cash.font = "hudbig";
  344. self.cash.alpha = 1;
  345. self.cash.glow = 1;
  346. self.cash.glowColor = ( 0, 1, 0 );
  347. self.cash.glowAlpha = 1;
  348. self.cash.color = ( 1.0, 1.0, 1.0 );
  349. self.cash setText("Cash: " + self.bounty);
  350. self waittill("CASH");
  351. }
  352. }
  353.  
  354. doHUDControl()
  355. {
  356. self endon("disconnect");
  357. self endon("death");
  358. while(1)
  359. {
  360. self.HintText setText(self.hint);
  361. self.hint = "";
  362. if(self.team == "allies"){
  363. if((self.menu == 1) || (self.menu == 2)){
  364. current = self getCurrentWeapon();
  365. if(self.menu == 1){
  366. if(self.attach["akimbo"] == 1){
  367. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]);
  368. } else {
  369. self.option1 setText("Upgrade Unavailable");
  370. }
  371. if(self.attach["fmj"] == 1){
  372. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]);
  373. } else {
  374. self.option2 setText("Upgrade Unavailable");
  375. }
  376. if(self.attach["eotech"] == 1){
  377. self.option3 setText("Press [{+actionslot 2}] - " + level.humanM[self.menu][2]);
  378. } else {
  379. self.option3 setText("Upgrade Unavailable");
  380. }
  381. }
  382. if(self.menu == 2){
  383. if(self.attach["silencer"] == 1){
  384. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]);
  385. } else {
  386. self.option1 setText("Upgrade Unavailable");
  387. }
  388. if(self.attach["xmags"] == 1){
  389. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]);
  390. } else {
  391. self.option2 setText("Upgrade Unavailable");
  392. }
  393. if(self.attach["rof"] == 1){
  394. self.option3 setText("Press [{+actionslot 2}] - " + level.humanM[self.menu][2]);
  395. } else {
  396. self.option3 setText("Upgrade Unavailable");
  397. }
  398. }
  399. } else if(self.menu == 4 || self.menu == 5){
  400. if(self.menu == 4){
  401. switch(self.perkz["steadyaim"])
  402. {
  403. case 0:
  404. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]["normal"]);
  405. break;
  406. case 1:
  407. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]["pro"]);
  408. break;
  409. case 2:
  410. default:
  411. self.option1 setText("Perk can not be upgraded");
  412. break;
  413. }
  414. switch(self.perkz["sleightofhand"])
  415. {
  416. case 0:
  417. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]["normal"]);
  418. break;
  419. case 1:
  420. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]["pro"]);
  421. break;
  422. case 2:
  423. default:
  424. self.option2 setText("Perk can not be upgraded");
  425. break;
  426. }
  427. switch(self.perkz["sitrep"])
  428. {
  429. case 0:
  430. self.option3 setText("Press [{+actionslot 2}] - " + level.humanM[self.menu][2]["normal"]);
  431. break;
  432. case 1:
  433. self.option3 setText("Press [{+actionslot 2}] - " + level.humanM[self.menu][2]["pro"]);
  434. break;
  435. case 2:
  436. default:
  437. self.option3 setText("Perk can not be upgraded");
  438. break;
  439. }
  440. }
  441. if(self.menu == 5){
  442. switch(self.perkz["stoppingpower"])
  443. {
  444. case 0:
  445. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]["normal"]);
  446. break;
  447. case 1:
  448. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]["pro"]);
  449. break;
  450. case 2:
  451. default:
  452. self.option1 setText("Perk can not be upgraded");
  453. break;
  454. }
  455. switch(self.perkz["coldblooded"])
  456. {
  457. case 0:
  458. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]["normal"]);
  459. break;
  460. case 1:
  461. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]["pro"]);
  462. break;
  463. case 2:
  464. default:
  465. self.option2 setText("Perk can not be upgraded");
  466. break;
  467. }
  468. self.option3 setText("Press [{+actionslot 2}] - " + level.humanM[self.menu][2]);
  469. }
  470. } else {
  471. self.option1 setText("Press [{+actionslot 3}] - " + level.humanM[self.menu][0]);
  472. if(self.menu != 0){
  473. self.option2 setText("Press [{+actionslot 4}] - " + level.humanM[self.menu][1]);
  474. } else {
  475. self.option2 setText(level.humanM[self.menu][1][self.exTo]);
  476. }
  477. self.option3 setText("Press [{+actionslot 2}] - " + level.humanM[self.menu][2]);
  478. }
  479. }
  480. if(self.team == "axis"){
  481. if(self.menu == 1){
  482. if(self.menu == 1){
  483. switch(self.perkz["coldblooded"])
  484. {
  485. case 0:
  486. self.option1 setText("Press [{+actionslot 3}] - " + level.zombieM[self.menu][0]["normal"]);
  487. break;
  488. case 1:
  489. self.option1 setText("Press [{+actionslot 3}] - " + level.zombieM[self.menu][0]["pro"]);
  490. break;
  491. case 2:
  492. default:
  493. self.option1 setText("Perk can not be upgraded");
  494. break;
  495. }
  496. switch(self.perkz["ninja"])
  497. {
  498. case 0:
  499. self.option2 setText("Press [{+actionslot 4}] - " + level.zombieM[self.menu][1]["normal"]);
  500. break;
  501. case 1:
  502. self.option2 setText("Press [{+actionslot 4}] - " + level.zombieM[self.menu][1]["pro"]);
  503. break;
  504. case 2:
  505. default:
  506. self.option2 setText("Perk can not be upgraded");
  507. break;
  508. }
  509. switch(self.perkz["lightweight"])
  510. {
  511. case 0:
  512. self.option3 setText("Press [{+actionslot 2}] - " + level.zombieM[self.menu][2]["normal"]);
  513. break;
  514. case 1:
  515. self.option3 setText("Press [{+actionslot 2}] - " + level.zombieM[self.menu][2]["pro"]);
  516. break;
  517. case 2:
  518. default:
  519. self.option3 setText("Perk can not be upgraded");
  520. break;
  521. }
  522. }
  523. } else {
  524. self.option1 setText("Press [{+actionslot 3}] - " + level.zombieM[self.menu][0]);
  525. self.option2 setText("Press [{+actionslot 4}] - " + level.zombieM[self.menu][1]);
  526. self.option3 setText("Press [{+actionslot 2}] - " + level.zombieM[self.menu][2]);
  527. }
  528. }
  529. wait .5;
  530. }
  531. }
  532.  
  533. doServerHUDControl()
  534. {
  535. level.infotext setText("^3Welcome to Zombieland ^5Version 2.2 ^3created entirely by ^1jeffadkins51 ^2If you enjoy this please make a donation via paypal to jeffadkins51@yahoo.com");
  536. level.scrollright setText(">");
  537. level.scrollleft setText("<");
  538. }
  539.  
  540. doInfoScroll()
  541. {
  542. self endon("disconnect");
  543. for(i = 1600; i >= -1600; i -= 4)
  544. {
  545. level.infotext.x = i;
  546. if(i == -1600){
  547. i = 1600;
  548. }
  549. wait .005;
  550. }
  551. }
  552.  
  553. doScoreReset()
  554. {
  555. self.pers["score"] = 0;
  556. self.pers["kills"] = 0;
  557. self.pers["assists"] = 0;
  558. self.pers["deaths"] = 0;
  559. self.pers["suicides"] = 0;
  560. self.score = 0;
  561. self.kills = 0;
  562. self.assists = 0;
  563. self.deaths = 0;
  564. self.suicides = 0;
  565. }
  566.  
  567. doPerksSetup()
  568. {
  569. self.perkz = [];
  570. self.perkz["steadyaim"] = 0;
  571. self.perkz["stoppingpower"] = 0;
  572. self.perkz["sitrep"] = 0;
  573. self.perkz["sleightofhand"] = 0;
  574. self.perkz["coldblooded"] = 0;
  575. self.perkz["ninja"] = 0;
  576. self.perkz["lightweight"] = 0;
  577. }
  578.  
  579. doSpawn()
  580. {
  581. if(level.gameState == "playing" || level.gameState == "ending"){
  582. if(self.deaths > 0 && self.isZombie == 0 && self.team == "allies"){
  583. self.isZombie = 1;
  584. }
  585. if(self.isZombie == 0){
  586. self thread doSetup();
  587. }
  588. if(self.isZombie == 1){
  589. self thread doZombie();
  590. }
  591. if(self.isZombie == 2){
  592. self thread doAlphaZombie();
  593. }
  594. }else{
  595. self thread doSetup();
  596. }
  597. self thread doDvars();
  598. self.menu = 0;
  599. self.healthtext destroy();
  600. self.cash destroy();
  601. self.option1 destroy();
  602. self.option2 destroy();
  603. self.option3 destroy();
  604. self thread CreatePlayerHUD();
  605. self thread doMenuScroll();
  606. self thread doHUDControl();
  607. self thread doCash();
  608. self thread doHealth();
  609. self thread destroyOnDeath();
  610. if(level.gamestate == "starting"){
  611. self thread OMAExploitFix();
  612. }
  613. self freezeControlsWrapper( false );
  614. }
  615.  
  616. doJoinTeam()
  617. {
  618. if(self.CONNECT == 1){
  619. notifyHello = spawnstruct();
  620. notifyHello.titleText = "Welcome to ^1Jeff's ^0Zombie Mod";
  621. notifyHello.notifyText = "";
  622. notifyHello.notifyText2 = "Have fun! And Enjoy Yourself";
  623. notifyHello.glowColor = (0.0, 0.6, 0.3);
  624. if(level.gameState == "intermission" || level.gameState == "starting"){
  625. self notify("menuresponse", game["menu_team"], "allies");
  626. self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyHello );
  627. }
  628. if(level.gameState == "playing" || level.gameState == "ending"){
  629. self notify("menuresponse", game["menu_team"], "spectator");
  630. self allowSpectateTeam( "freelook", true );
  631. self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyHello );
  632. self iPrintlnBold("^2 Please wait for round to be over.");
  633. self thread ReconnectPrevention();
  634. }
  635. self.CONNECT = 0;
  636. }
  637. }
  638.  
  639. ReconnectPrevention()
  640. {
  641. self endon("disconnect");
  642. while(1)
  643. {
  644. self iPrintlnBold("^2Please wait for round to be over.");
  645. if(self.team != "spectator"){
  646. self notify("menuresponse", game["menu_team"], "spectator");
  647. }
  648. maps\mp\gametypes\_spectating::setSpectatePermissions();
  649. self allowSpectateTeam( "freelook", true );
  650. self.sessionstate = "spectator";
  651. self setContents( 0 );
  652. if(level.gameState == "intermission"){
  653. return;
  654. }
  655. wait 1;
  656. }
  657. }
  658.  
  659. doInit()
  660. {
  661. level.gameState = "";
  662. level thread weaponInit();
  663. level thread CostInit();
  664. level thread MenuInit();
  665. level thread CreateServerHUD();
  666. level thread doServerHUDControl();
  667. level thread OverRider();
  668. level thread RemoveTurrets();
  669. level thread maps\mp\qczm\CustomMapsEdits::init();
  670. setDvar("g_gametype", "war");
  671. setDvar("ui_gametype", "war");
  672. setDvar("scr_war_scorelimit", 0);
  673. setDvar("scr_war_timelimit", 0);
  674. setDvar("scr_war_waverespawndelay", 0);
  675. setDvar("scr_war_playerrespawndelay", 0);
  676. setDvar("camera_thirdperson", 0);
  677. wait 10;
  678. level thread doGameStarter();
  679. if(level.friendlyfire != 0){
  680. level thread ffend();
  681. }
  682. if( maps\mp\gametypes\_tweakables::getTweakableValue( "game", "onlyheadshots" ) ){
  683. level thread headend();
  684. }
  685. level thread createFog();
  686. }
  687.  
  688. CostInit()
  689. {
  690. level.itemCost = [];
  691.  
  692. level.itemCost["ammo"] = 150;
  693. level.itemCost["LMG"] = 100;
  694. level.itemCost["Assault Rifle"] = 100;
  695. level.itemCost["Machine Pistol"] = 50;
  696. level.itemCost["Sniper Rifle"] = 50;
  697. level.itemCost["Explosive Bullets"] = 1337;
  698. level.itemCost["Sentry"] = 250;
  699. level.itemCost["Unlimited"] = 800;
  700. level.itemCost["Nuke"] = 2500;
  701. level.itemCost["Riot"] = 100;
  702. level.itemCost["Teleport"] = 750;
  703. level.itemCost["TeleportZ"] = 1000;
  704. level.itemCost["Akimbo"] = 150;
  705. level.itemCost["Eotech"] = 50;
  706. level.itemCost["FMJ"] = 150;
  707. level.itemCost["Silencer"] = 50;
  708. level.itemCost["XMags"] = 100;
  709. level.itemCost["ROF"] = 50;
  710. level.itemCost["Invisibility"] = 800;
  711. level.itemCost["Poltergeist"] = 1000;
  712. level.itemCost["Flash"] = 700;
  713. level.itemCost["Turtle"] = 350;
  714. level.itemCost["HTurtle"] = 250;
  715. level.itemCost["Hare"] = 350;
  716. level.itemCost["humanhp"] = 350;
  717. level.itemCost["health"] = 50;
  718. level.itemCost["Thermal"] = 125;
  719. level.itemCost["ThrowingKnife"] = 300;
  720. level.itemCost["SteadyAim"] = 50;
  721. level.itemCost["SteadyAimPro"] = 50;
  722. level.itemCost["SleightOfHand"] = 100;
  723. level.itemCost["SleightOfHandPro"] = 100;
  724. level.itemCost["SitRep"] = 50;
  725. level.itemCost["SitRepPro"] = 50;
  726. level.itemCost["StoppingPower"] = 250;
  727. level.itemCost["StoppingPowerPro"] = 50;
  728. level.itemCost["ColdBlooded"] = 200;
  729. level.itemCost["ColdBloodedPro"] = 50;
  730. level.itemCost["Ninja"] = 100;
  731. level.itemCost["NinjaPro"] = 100;
  732. level.itemCost["Lightweight"] = 100;
  733. level.itemCost["LightweightPro"] = 100;
  734. }
  735.  
  736. weaponInit()
  737. {
  738. level.snip = [];
  739. level.snip[0] = "cheytac";
  740. level.snip[1] = "barrett";
  741. level.snip[2] = "wa2000";
  742. level.snip[3] = "m21";
  743. level.lmg = [];
  744. level.lmg[0] = "rpd";
  745. level.lmg[1] = "sa80";
  746. level.lmg[2] = "mg4";
  747. level.lmg[3] = "m240";
  748. level.lmg[4] = "aug";
  749. level.assault = [];
  750. level.assault[0] = "ak47";
  751. level.assault[1] = "m16";
  752. level.assault[2] = "m4";
  753. level.assault[3] = "fn2000";
  754. level.assault[4] = "masada";
  755. level.assault[5] = "famas";
  756. level.assault[6] = "fal";
  757. level.assault[7] = "scar";
  758. level.assault[8] = "tavor";
  759. level.smg = [];
  760. level.smg[0] = "mp5k";
  761. level.smg[1] = "uzi";
  762. level.smg[2] = "p90";
  763. level.smg[3] = "kriss";
  764. level.smg[4] = "ump45";
  765. level.shot = [];
  766. level.shot[0] = "ranger";
  767. level.shot[1] = "model1887";
  768. level.shot[2] = "striker";
  769. level.shot[3] = "aa12";
  770. level.shot[4] = "m1014";
  771. level.shot[5] = "spas12";
  772. level.machine = [];
  773. level.machine[0] = "pp2000";
  774. level.machine[1] = "tmp";
  775. level.machine[2] = "glock";
  776. level.machine[3] = "beretta393";
  777. level.hand = [];
  778. level.hand[0] = "beretta";
  779. level.hand[1] = "usp";
  780. level.hand[2] = "deserteagle";
  781. level.hand[3] = "coltanaconda";
  782. }
  783.  
  784. MenuInit()
  785. {
  786.  
  787.  
  788.  
  789.  
  790. level.humanM = [];
  791. level.zombieM = [];
  792.  
  793.  
  794. i = 0;
  795.  
  796. level.humanM[i] = [];
  797. level.humanM[i][0] = "Buy Ammo for Current Weapon - " + level.itemCost["ammo"];
  798. level.humanM[i][1] = [];
  799. level.humanM[i][1]["LMG"] = "Press [{+actionslot 4}] - Exchange for a LMG - " + level.itemCost["LMG"];
  800. level.humanM[i][1]["Assault Rifle"] = "Press [{+actionslot 4}] - Exchange for an Assault Rifle - " + level.itemCost["Assault Rifle"];
  801. level.humanM[i][1]["Machine Pistol"] = "Press [{+actionslot 4}] - Exchange for a Machine Pistol - " + level.itemCost["Machine Pistol"];
  802. level.humanM[i][1]["Sniper Rifle"] = "Press [{+actionslot 4}] - Exchange for a Sniper Rifle - " + level.itemCost["Sniper Rifle"];
  803. level.humanM[i][1]["Unavailable"] = "Weapon can not be Exchanged";
  804. level.humanM[i][2] = "Buy Riot Shield - " + level.itemCost["Riot"];
  805. i++;
  806.  
  807. level.humanM[i] = [];
  808. level.humanM[i][0] = "Upgrade to Akimbo - " + level.itemCost["Akimbo"];
  809. level.humanM[i][1] = "Upgrade to FMJ - " + level.itemCost["FMJ"];
  810. level.humanM[i][2] = "Upgrade to Holographic - " + level.itemCost["Eotech"];
  811. i++;
  812.  
  813. level.humanM[i] = [];
  814. level.humanM[i][0] = "Upgrade to Silencer - " + level.itemCost["Silencer"];
  815. level.humanM[i][1] = "Upgrade to Extended Mags - " + level.itemCost["XMags"];
  816. level.humanM[i][2] = "Upgrade to Rapid Fire - " + level.itemCost["ROF"];
  817. i++;
  818.  
  819. level.humanM[i] = [];
  820. level.humanM[i][0] = "Buy 1 Time Teleport - " + level.itemCost["Teleport"];
  821. level.humanM[i][1] = "Buy Uranium Shells - " + level.itemCost["Explosive Bullets"];
  822. level.humanM[i][2] = "Buy Health - " + level.itemCost["humanhp"];
  823. i++;
  824.  
  825. level.humanM[i] = [];
  826. level.humanM[i][0]["normal"] = "Buy Steady Aim - " + level.itemCost["SteadyAim"];
  827. level.humanM[i][0]["pro"] = "Upgrade to Steady Aim Pro - " + level.itemCost["SteadyAimPro"];
  828. level.humanM[i][1]["normal"] = "Buy Sleight of Hand - " + level.itemCost["SleightOfHand"];
  829. level.humanM[i][1]["pro"] = "Upgrade to Sleight of Hand Pro - " + level.itemCost["SleightOfHandPro"];
  830. level.humanM[i][2]["normal"] = "Buy Sitrep - " + level.itemCost["SitRep"];
  831. level.humanM[i][2]["pro"] = "Upgrade to Sitrep Pro - " + level.itemCost["SitRepPro"];
  832. i++;
  833.  
  834. level.humanM[i] = [];
  835. level.humanM[i][0]["normal"] = "Buy Stopping Power - " + level.itemCost["StoppingPower"];
  836. level.humanM[i][0]["pro"] = "Upgrade to Stopping Power Pro - " + level.itemCost["StoppingPowerPro"];
  837. level.humanM[i][1]["normal"] = "Buy Cold Blooded - " + level.itemCost["ColdBlooded"];
  838. level.humanM[i][1]["pro"] = "Upgrade to Cold Blooded Pro - " + level.itemCost["ColdBloodedPro"];
  839. level.humanM[i][2] = "Buy Sentry Gun - " + level.itemCost["Sentry"];
  840. i++;
  841.  
  842. level.humanM[i] = [];
  843. level.humanM[i][0] = "Buy Unlimited Ammo - " + level.itemCost["Unlimited"];
  844. level.humanM[i][1] = "Slow down ALL Zombies for 30 seconds - " + level.itemCost["HTurtle"];
  845. level.humanM[i][2] = "Nuke those bastards! - " + level.itemCost["Nuke"];
  846. i++;
  847.  
  848. i = 0;
  849.  
  850. level.zombieM[i] = [];
  851. level.zombieM[i][0] = "Buy Health - " + level.itemCost["health"];
  852. level.zombieM[i][1] = "Buy Thermal Overlay - " + level.itemCost["Thermal"];
  853. level.zombieM[i][2] = "Buy Throwing Knife - " + level.itemCost["ThrowingKnife"];
  854. i++;
  855.  
  856. level.zombieM[i] = [];
  857. level.zombieM[i][0]["normal"] = "Buy Cold Blooded - " + level.itemCost["ColdBlooded"];
  858. level.zombieM[i][0]["pro"] = "Upgrade to Cold Blooded Pro - " + level.itemCost["ColdBloodedPro"];
  859. level.zombieM[i][1]["normal"] = "Buy Ninja - " + level.itemCost["Ninja"];
  860. level.zombieM[i][1]["pro"] = "Upgrade to Ninja Pro -" + level.itemCost["NinjaPro"];
  861. level.zombieM[i][2]["normal"] = "Buy Lightweight - " + level.itemCost["Lightweight"];
  862. level.zombieM[i][2]["pro"] = "Upgrade to Lightweight Pro - " + level.itemCost["LightweightPro"];
  863. i++;
  864.  
  865. level.zombieM[i] = [];
  866. level.zombieM[i][0] = "Buy 1 Time Teleport - " + level.itemCost["TeleportZ"];
  867. level.zombieM[i][1] = "Buy 10 Seconds of Invisibility - " + level.itemCost["Invisibility"];
  868. level.zombieM[i][2] = "Transcend to Poltergeist - " + level.itemCost["Poltergeist"];
  869. i++;
  870.  
  871. level.zombieM[i] = [];
  872. level.zombieM[i][0] = "Become Semi-Invisible! - " + level.itemCost["Flash"];
  873. level.zombieM[i][1] = "Slow down ALL Humans for 30 seconds - " + level.itemCost["Turtle"];
  874. level.zombieM[i][2] = "Speed up ALL Zombies for 30 seconds - " + level.itemCost["Hare"];
  875. i++;
  876. }
  877.  
  878. createFog()
  879. {
  880. level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
  881. level._effect[ "FOW" ] = loadfx( "dust/nuke_aftermath_mp" );
  882. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 0 , 500 ));
  883. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , 3000 , 500 ));
  884. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 0 , -3000 , 500 ));
  885. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 3000 , 0 , 500 ));
  886. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 3000 , 3000 , 500 ));
  887. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( 3000 , -3000 , 500 ));
  888. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -3000 , 0 , 500 ));
  889. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -3000 , 3000 , 500 ));
  890. PlayFX(level._effect[ "FOW" ], level.mapCenter + ( -3000 , -3000 , 500 ));
  891. }
  892.  
  893. OverRider()
  894. {
  895. for(;;)
  896. {
  897. level notify("abort_forfeit");
  898. level.prematchPeriod = 0;
  899. level.killcam = 0;
  900. level.killstreakRewards = 0;
  901. wait 1;
  902. }
  903. }
  904.  
  905. ffend()
  906. {
  907. level endon ( "game_ended" );
  908. for(i = 10; i > 0; i--)
  909. {
  910. foreach(player in level.players)
  911. {
  912. player iPrintlnBold("^1ERROR: Friendly Fires is Enabled. Game Ending");
  913. }
  914. wait .5;
  915. }
  916. exitLevel( false );
  917. }
  918.  
  919. headend()
  920. {
  921. level endon ( "game_ended" );
  922. for(i = 10; i > 0; i--)
  923. {
  924. foreach(player in level.players)
  925. {
  926. player iPrintlnBold("^1ERROR: Headshots Only is Enabled. Game Ending");
  927. }
  928. wait .5;
  929. }
  930. exitLevel( false );
  931. }
  932.  
  933. destroyOnDeath()
  934. {
  935. self waittill ( "death" );
  936. self.locatingText destroy();
  937. self.HintText destroy();
  938. self.healthtext destroy();
  939. self.cash destroy();
  940. self.option1 destroy();
  941. self.option2 destroy();
  942. self.option3 destroy();
  943. }
  944.  
  945. OMAExploitFix()
  946. {
  947. self endon("disconnect");
  948. self endon("death");
  949. while(1)
  950. {
  951. if(self _hasPerk("specialty_onemanarmy") || self _hasPerk("specialty_omaquickchange")){
  952. self _clearPerks();
  953. self takeAllWeapons();
  954. }
  955. wait .5;
  956. }
  957. }
  958.  
  959. CashFix()
  960. {
  961. self endon("disconnect");
  962. while(1)
  963. {
  964. if(self.bounty < 0){
  965. self.bounty = 0;
  966. self notify("CASH");
  967. }
  968. wait .5;
  969. }
  970. }
  971.  
  972. RemoveTurrets()
  973. {
  974. level deletePlacedEntity("misc_turret");
  975. }
  976.  
  977. iniButtons()
  978. {
  979. self.buttonAction = [];
  980. self.buttonAction[0]="+reload";
  981. self.buttonAction[1]="weapnext";
  982. self.buttonAction[2]="+gostand";
  983. self.buttonAction[3]="+actionslot 4";
  984. self.buttonAction[4]="+actionslot 1";
  985. self.buttonAction[5]="+actionslot 2";
  986. self.buttonAction[6]="+actionslot 3";
  987. self.buttonAction[7]="+usereload";
  988. self.buttonAction[8]="+frag";
  989. self.buttonAction[9]="+smoke";
  990. self.buttonAction[10]="+forward";
  991. self.buttonAction[11]="+back";
  992. self.buttonAction[12]="+moveleft";
  993. self.buttonAction[13]="+moveright";
  994. self.buttonPressed = [];
  995. for(i=0; i<14; i++)
  996. {
  997. self.buttonPressed[self.buttonAction[i]] = 0;
  998. self thread monitorButtons( self.buttonAction[i] );
  999. }
  1000. }
  1001.  
  1002. monitorButtons( buttonIndex )
  1003. {
  1004. self endon ( "disconnect" );
  1005. self notifyOnPlayerCommand( buttonIndex, buttonIndex );
  1006. for ( ;; )
  1007. {
  1008. self waittill( buttonIndex );
  1009. self.buttonPressed[ buttonIndex ] = 1;
  1010. wait .1;
  1011. self.buttonPressed[ buttonIndex ] = 0;
  1012. }
  1013. }
  1014.  
  1015. CreatePlayerHUD()
  1016. {
  1017. self.HintText = self createFontString( "objective", 1.25 );
  1018. self.HintText setPoint( "CENTER", "CENTER", 0, 50 );
  1019. self.option1 = NewClientHudElem( self );
  1020. self.option1.alignX = "center";
  1021. self.option1.alignY = "bottom";
  1022. self.option1.horzAlign = "center";
  1023. self.option1.vertAlign = "bottom";
  1024. self.option1.y = -60;
  1025. self.option1.foreground = true;
  1026. self.option1.fontScale = 1.35;
  1027. self.option1.font = "objective";
  1028. self.option1.alpha = 1;
  1029. self.option1.glow = 1;
  1030. self.option1.glowColor = ( 0, 0, 1 );
  1031. self.option1.glowAlpha = 1;
  1032. self.option1.color = ( 1.0, 1.0, 1.0 );
  1033. self.option2 = NewClientHudElem( self );
  1034. self.option2.alignX = "center";
  1035. self.option2.alignY = "bottom";
  1036. self.option2.horzAlign = "center";
  1037. self.option2.vertAlign = "bottom";
  1038. self.option2.y = -40;
  1039. self.option2.foreground = true;
  1040. self.option2.fontScale = 1.35;
  1041. self.option2.font = "objective";
  1042. self.option2.alpha = 1;
  1043. self.option2.glow = 1;
  1044. self.option2.glowColor = ( 0, 0, 1 );
  1045. self.option2.glowAlpha = 1;
  1046. self.option2.color = ( 1.0, 1.0, 1.0 );
  1047. self.option3 = NewClientHudElem( self );
  1048. self.option3.alignX = "center";
  1049. self.option3.alignY = "bottom";
  1050. self.option3.horzAlign = "center";
  1051. self.option3.vertAlign = "bottom";
  1052. self.option3.y = -20;
  1053. self.option3.foreground = true;
  1054. self.option3.fontScale = 1.35;
  1055. self.option3.font = "objective";
  1056. self.option3.alpha = 1;
  1057. self.option3.glow = 1;
  1058. self.option3.glowColor = ( 0, 0, 1 );
  1059. self.option3.glowAlpha = 1;
  1060. self.option3.color = ( 1.0, 1.0, 1.0 );
  1061. }
  1062.  
  1063. activate()
  1064. {
  1065. self setPlayerData( "customClasses", 0, "name", "^1Thank ^2You");
  1066. self setPlayerData( "customClasses", 1, "name", "^3"+self.name+"" );
  1067. self setPlayerData( "customClasses", 2, "name", "^4For ^5Playing");
  1068. self setPlayerData( "customClasses", 3, "name", "^2Zombieland ^12.1");
  1069. self setPlayerData( "customClasses", 4, "name", "^3Created ^5By");
  1070. self setPlayerData( "customClasses", 5, "name", "^1Jeffadkins51");
  1071. self setPlayerData( "customClasses", 6, "name", "^3The 51Killer");
  1072. self setPlayerData( "customClasses", 7, "name", "^2C^1o^3d^3i^5n^7g");
  1073. self setPlayerData( "customClasses", 8, "name", "^9N^5i^1n^2j^3a");
  1074. self setPlayerData( "customClasses", 9, "name", "^3M^8o^3n^2k^1e^4y");
  1075. }
  1076.  
  1077. CreateServerHUD()
  1078. {
  1079. level.scrollleft = NewHudElem();
  1080. level.scrollleft.alignX = "center";
  1081. level.scrollleft.alignY = "bottom";
  1082. level.scrollleft.horzAlign = "center";
  1083. level.scrollleft.vertAlign = "bottom";
  1084. level.scrollleft.x = -250;
  1085. level.scrollleft.y = -30;
  1086. level.scrollleft.foreground = true;
  1087. level.scrollleft.fontScale = 2;
  1088. level.scrollleft.font = "hudbig";
  1089. level.scrollleft.alpha = 1;
  1090. level.scrollleft.glow = 1;
  1091. level.scrollleft.glowColor = ( 0, 0, 1 );
  1092. level.scrollleft.glowAlpha = 1;
  1093. level.scrollleft.color = ( 1.0, 1.0, 1.0 );
  1094. level.scrollright = NewHudElem();
  1095. level.scrollright.alignX = "center";
  1096. level.scrollright.alignY = "bottom";
  1097. level.scrollright.horzAlign = "center";
  1098. level.scrollright.vertAlign = "bottom";
  1099. level.scrollright.x = 250;
  1100. level.scrollright.y = -30;
  1101. level.scrollright.foreground = true;
  1102. level.scrollright.fontScale = 2;
  1103. level.scrollright.font = "hudbig";
  1104. level.scrollright.alpha = 1;
  1105. level.scrollright.glow = 1;
  1106. level.scrollright.glowColor = ( 0, 0, 1 );
  1107. level.scrollright.glowAlpha = 1;
  1108. level.scrollright.color = ( 1.0, 1.0, 1.0 );
  1109. level.infotext = NewHudElem();
  1110. level.infotext.alignX = "center";
  1111. level.infotext.alignY = "bottom";
  1112. level.infotext.horzAlign = "center";
  1113. level.infotext.vertAlign = "bottom";
  1114. level.infotext.y = 25;
  1115. level.infotext.foreground = true;
  1116. level.infotext.fontScale = 1.35;
  1117. level.infotext.font = "objective";
  1118. level.infotext.alpha = 1;
  1119. level.infotext.glow = 0;
  1120. level.infotext.glowColor = ( 0, 0, 0 );
  1121. level.infotext.glowAlpha = 1;
  1122. level.infotext.color = ( 1.0, 1.0, 1.0 );
  1123. level.bar = level createServerBar((0.5, 0.5, 0.5), 1000, 25);
  1124. level.bar.alignX = "center";
  1125. level.bar.alignY = "bottom";
  1126. level.bar.horzAlign = "center";
  1127. level.bar.vertAlign = "bottom";
  1128. level.bar.y = 30;
  1129. level.bar.foreground = true;
  1130. level thread doInfoScroll();
  1131. }
  1132.  
  1133. init()
  1134. {
  1135. precacheString(&"MP_CHALLENGE_COMPLETED");
  1136. level thread createPerkMap();
  1137. level thread onPlayerConnect();
  1138. level thread doInit();
  1139. }
  1140.  
  1141. createPerkMap()
  1142. {
  1143. level.perkMap = [];
  1144. level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
  1145. level.perkMap["specialty_quieter"] = "specialty_deadsilence";
  1146. level.perkMap["specialty_localjammer"] = "specialty_scrambler";
  1147. level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
  1148. level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
  1149. }
  1150.  
  1151. ch_getProgress( refString )
  1152. {
  1153. return self getPlayerData( "challengeProgress", refString );
  1154. }
  1155.  
  1156. ch_getState( refString )
  1157. {
  1158. return self getPlayerData( "challengeState", refString );
  1159. }
  1160.  
  1161. ch_setProgress( refString, value )
  1162. {
  1163. self setPlayerData( "challengeProgress", refString, value );
  1164. }
  1165.  
  1166. ch_setState( refString, value )
  1167. {
  1168. self setPlayerData( "challengeState", refString, value );
  1169. }
  1170.  
  1171. onPlayerConnect()
  1172. {
  1173. for(;;)
  1174. {
  1175. level waittill( "connected", player );
  1176. {
  1177. if ( !isDefined( player.pers["postGameChallenges"] ) )
  1178. player.pers["postGameChallenges"] = 0;
  1179. if (player isHost())
  1180. {
  1181. level.AntiJoinEnabled = false;
  1182. setDvar("g_password", "");
  1183. }
  1184. player thread onPlayerSpawned();
  1185. player thread onJoinedTeam();
  1186. player thread initMissionData();
  1187. player thread CreatePlayerHUD();
  1188. player thread doHUDControl();
  1189. player thread iniButtons();
  1190. player thread DoNukeTime();
  1191. setDvar("party_maxplayers", 9);
  1192. player.isZombie = 0;
  1193. player.CONNECT = 1;
  1194. }
  1195. }
  1196. }
  1197.  
  1198. onPlayerSpawned()
  1199. {
  1200. self endon( "disconnect" );
  1201.  
  1202. for(;;)
  1203. {
  1204. self waittill( "spawned_player" );
  1205. self thread doSpawn();
  1206. setDvar("party_maxplayers", 9);
  1207. self setclientdvar("clanName", "KNCM");
  1208. self setClientDvar( "motd", "^3I Hope You Enjoyed Playing Zombieland 2.1 Today! ^5To Help Support the Project Please ^2Donate ^5via PayPal to: ^3jeffadkins51@yahoo.com ^5Doing so will encourage further updates to this patch!" );
  1209. self thread activate();
  1210. }
  1211. }
  1212.  
  1213. onJoinedTeam()
  1214. {
  1215. self endon("disconnect");
  1216.  
  1217. for(;;)
  1218. {
  1219. self waittill( "joined_team" );
  1220. self thread doJoinTeam();
  1221. }
  1222. }
  1223.  
  1224. initMissionData()
  1225. {
  1226. keys = getArrayKeys( level.killstreakFuncs );
  1227. foreach ( key in keys )
  1228. self.pers[key] = 0;
  1229. self.pers["lastBulletKillTime"] = 0;
  1230. self.pers["bulletStreak"] = 0;
  1231. self.explosiveInfo = [];
  1232. }
  1233. playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
  1234. {
  1235. }
  1236. playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
  1237. {
  1238. }
  1239. vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
  1240. {
  1241. }
  1242. waitAndProcessPlayerKilledCallback( data )
  1243. {
  1244. }
  1245. playerAssist()
  1246. {
  1247. }
  1248. useHardpoint( hardpointType )
  1249. {
  1250. }
  1251. roundBegin()
  1252. {
  1253. }
  1254. roundEnd( winner )
  1255. {
  1256. }
  1257. lastManSD()
  1258. {
  1259. }
  1260. healthRegenerated()
  1261. {
  1262. self.brinkOfDeathKillStreak = 0;
  1263. }
  1264. resetBrinkOfDeathKillStreakShortly()
  1265. {
  1266. }
  1267. playerSpawned()
  1268. {
  1269. playerDied();
  1270. }
  1271. playerDied()
  1272. {
  1273. self.brinkOfDeathKillStreak = 0;
  1274. self.healthRegenerationStreak = 0;
  1275. self.pers["MGStreak"] = 0;
  1276. }
  1277. processChallenge( baseName, progressInc, forceSetProgress )
  1278. {
  1279. }
  1280. giveRankXpAfterWait( baseName,missionStatus )
  1281. {
  1282. }
  1283. getMarksmanUnlockAttachment( baseName, index )
  1284. {
  1285. return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
  1286. }
  1287. getWeaponAttachment( weaponName, index )
  1288. {
  1289. return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
  1290. }
  1291. masteryChallengeProcess( baseName, progressInc )
  1292. {
  1293. }
  1294. updateChallenges()
  1295. {
  1296. }
  1297. challenge_targetVal( refString, tierId )
  1298. {
  1299. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
  1300. return int( value );
  1301. }
  1302. challenge_rewardVal( refString, tierId )
  1303. {
  1304. value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
  1305. return int( value );
  1306. }
  1307. buildChallegeInfo()
  1308. {
  1309. level.challengeInfo = [];
  1310. tableName = "mp/allchallengesTable.csv";
  1311. totalRewardXP = 0;
  1312. refString = tableLookupByRow( tableName, 0, 0 );
  1313. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  1314. for ( index = 1; refString != ""; index++ )
  1315. {
  1316. assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
  1317. level.challengeInfo[refString] = [];
  1318. level.challengeInfo[refString]["targetval"] = [];
  1319. level.challengeInfo[refString]["reward"] = [];
  1320. for ( tierId = 1; tierId < 11; tierId++ )
  1321. {
  1322. targetVal = challenge_targetVal( refString, tierId );
  1323. rewardVal = challenge_rewardVal( refString, tierId );
  1324. if ( targetVal == 0 )
  1325. break;
  1326. level.challengeInfo[refString]["targetval"][tierId] = targetVal;
  1327. level.challengeInfo[refString]["reward"][tierId] = rewardVal;
  1328. totalRewardXP += rewardVal;
  1329. }
  1330.  
  1331. assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
  1332. refString = tableLookupByRow( tableName, index, 0 );
  1333. }
  1334. tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
  1335. for ( tierId = 1; tierTable != ""; tierId++ )
  1336. {
  1337. challengeRef = tableLookupByRow( tierTable, 0, 0 );
  1338. for ( challengeId = 1; challengeRef != ""; challengeId++ )
  1339. {
  1340. requirement = tableLookup( tierTable, 0, challengeRef, 1 );
  1341. if ( requirement != "" )
  1342. level.challengeInfo[challengeRef]["requirement"] = requirement;
  1343. challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
  1344. }
  1345. tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
  1346. }
  1347. }
  1348. genericChallenge( challengeType, value )
  1349. {
  1350. }
  1351. playerHasAmmo()
  1352. {
  1353. primaryWeapons = self getWeaponsListPrimaries();
  1354. foreach ( primary in primaryWeapons )
  1355. {
  1356. if ( self GetWeaponAmmoClip( primary ) )
  1357. return true;
  1358. altWeapon = weaponAltWeaponName( primary );
  1359. if ( !isDefined( altWeapon ) || (altWeapon == "none") )
  1360. continue;
  1361. if ( self GetWeaponAmmoClip( altWeapon ) )
  1362. return true;
  1363. }
  1364. return false;
  1365. }
  1366.  
  1367. DoNukeTime()
  1368. {
  1369. self setClientDvar( "scr_nukeTimer", 60 );
  1370. }
  1371. funcAntiJoin()
  1372. {
  1373. if (!level.AntiJoinEnabled)
  1374. {
  1375. setDvar("g_password", "lobbylockedthxmossy");
  1376. level.AntiJoinEnabled = true;
  1377. self iPrintln( "^7Anti-Join Enabled" );
  1378. }
  1379. else
  1380. {
  1381. setDvar("g_password", "");
  1382. level.AntiJoinEnabled = false;
  1383. self iPrintln( "^7Anti-Join Disabled" );
  1384. }
  1385. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement