Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 315.16 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <hamsandwich>
  4. #include <fakemeta>
  5. #include <fun>
  6. #include <cstrike>
  7. #include <engine>
  8. #include <nvault>
  9. #include <fvault>
  10. #include <xs>
  11. #include <colorchat>
  12. #include <screenfade_util>
  13. #include <fakemeta_util>
  14. #include <dhudmessage>
  15.  
  16. native cod_broj_munja( id );
  17.  
  18. #include <codmw>
  19.  
  20. #define FALL_VELOCITY 350.0
  21.  
  22. #define STANDARDNA_BRZINA 320.0
  23.  
  24. #define ZADATAK_PROVERA 704
  25. #define ZADATAK_POSTAVI_BRZINU 832
  26.  
  27. #define MAX_HP 2500.0
  28.  
  29. #define DMG_BULLET (1<<1)
  30.  
  31. #define TEAM_SELECT_VGUI_MENU_ID 2
  32.  
  33. #define IsEntityPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
  34. #define IsKilledTeamMate(%1,%2) ( get_user_team( %1 ) == get_user_team( %2 ) )
  35. #define IsSuicide(%1,%2) ( %1 == %2 )
  36. #define IsClientPresent(%1) ( is_user_alive( %1 ) && is_user_connected( %1 ) )
  37.  
  38. #define SetBitNum(%1,%2) %1 |= 1<<(%2 & 31)
  39. #define DelBitNum(%1,%2) %1 &= ~( 1<<(%2 & 31) )
  40. #define GetBitNum(%1,%2) ( %1 & 1<<(%2 & 31) )
  41.  
  42.  
  43. new const g_szFile[] = "addons/amxmodx/configs/CODMW/classes.ini";
  44. new Trie: tCharacters, Trie: tPassword;
  45. new points_igraca[33];
  46. new g_vault;
  47.  
  48. const g_iBadWeapons = ((1 << 2) | (1 << CSW_HEGRENADE) | (1 << CSW_SMOKEGRENADE) | (1 << CSW_FLASHBANG) | (1 << CSW_KNIFE) | (1 << CSW_C4));
  49.  
  50. const m_iTeam = 114;
  51. const m_pPlayer = 41;
  52. const m_fInReload = 54;
  53. const m_flNextAttack = 83;
  54.  
  55. const PDATA_SAFE = 2;
  56. const OFFSET_LINUX = 5;
  57. const OFFSET_LINUX_WEAPONS = 4;
  58. const OFFSET_WEAPONOWNER = 41;
  59.  
  60. // Player Informations
  61.  
  62. enum _:PlayerData {
  63. g_szSteamID[32],
  64. g_szName[32],
  65. g_szIP[21],
  66. g_szUserPrivilegies[64],
  67.  
  68. g_iClass,
  69. g_iLevel,
  70. g_iXP,
  71. g_iNewClass,
  72. g_iFraction,
  73. g_iGold,
  74. g_iPoints,
  75. g_iSP,
  76.  
  77. g_iIntelligence,
  78. g_iEnergy,
  79. g_iTrim,
  80. g_iStamina,
  81. g_iDamage,
  82.  
  83. g_iMedKit,
  84. g_iPoisonKit,
  85. g_iBomb,
  86. g_iRocket,
  87. g_iMine,
  88. g_iDynamite,
  89.  
  90. g_iMaxEnergy,
  91. g_iClassData,
  92. g_iJumps,
  93. g_iPlayer,
  94. g_iChoosen,
  95. g_iAddNumber,
  96. g_IsFriend
  97. };
  98.  
  99. new g_PlayerInfo[33][PlayerData], c[33] = 0;
  100.  
  101. new Float: g_fLessDamage[33], Float: g_fLastUsed[33], Float: g_fSpeed[33];
  102. // Hud Data
  103.  
  104. enum HudData {
  105. HudData_LevelUP,
  106. HudData_Info,
  107. HudData_Item,
  108. HudData_BonusBox,
  109. HudData_ItemInfo,
  110. HudData_Damage,
  111. HudData_XP
  112. };
  113.  
  114. new g_HudInfo[HudData];
  115.  
  116. // Vault Data
  117.  
  118. new gVault;
  119.  
  120. // Cvar Data
  121.  
  122. enum CvarData {
  123. CvarData_DayXP,
  124. CvarData_NightXP,
  125. CvarData_HeadShotXP,
  126. CvarData_KillGold,
  127. CvarData_KillGoldHs,
  128. CvarData_KillSp,
  129. CvarData_KillSpHs,
  130. CvarData_MaksimalnaInte,
  131. CvarData_MaksimalnaEnergija,
  132. CvarData_MaksimalnaSnaga,
  133. CvarData_MaksimalnaKondicija,
  134. CvarData_MaksimalnoOstecenje
  135. };
  136.  
  137. new const g_szCvarsData[CvarData][][] = {
  138. // Cvar Name Value
  139. { "cod_dayxp", "70" },
  140. { "cod_nightxp", "140" },
  141. { "cod_hsxp", "25" },
  142. { "cod_killgold", "1" },
  143. { "cod_killgold_hs", "1" },
  144. { "cod_killsp", "1" },
  145. { "cod_killsp_hs", "1" },
  146. { "cod_max_inteligencija", "1000" },
  147. { "cod_max_energija", "1200" },
  148. { "cod_max_snaga", "600" },
  149. { "cod_max_kondicija", "600" },
  150. { "cod_max_ostecenje", "600" }
  151. };
  152.  
  153. new g_CvarInfo[CvarData];
  154.  
  155. new Float: g_fWallOrigin[33][3];
  156.  
  157. new const g_iAddPointsNumber[] = { 1, 2, 5, 10, 25, 50 };
  158.  
  159. // Default Player Models
  160.  
  161. new ModelsCT[ 4 ][ ] = { "sas","gsg9","urban","gign" },
  162. ModelsTT[ 4 ][ ] = { "arctic","leet","guerilla","terror" };
  163.  
  164. // Perks Data
  165.  
  166. new const g_szPerksData[][][] = {
  167. // Perk Name Description
  168. { "ML_NEMA", "ML_NEMAS_PREDMET" }, // 0
  169. { "PERK_NECUJNE_CIZME", "PERKO_NECUJNE_CIZME" }, // 1
  170. { "PERK_DUPLI_PANCIR", "PERKO_DUPLI_PANCIR" }, // 2
  171. { "PERK_OJACANI_PANCIR", "PERKO_OJACANI_PANCIR" }, // 3
  172. { "PERK_VETERAN_ZA_NOZEM", "PERKO_VETERAN_ZA_NOZEM" }, // 4
  173. { "PERK_IZNENADI_NEPRIJATELJE", "PERKO_IZNENADI_NEPRIJATELJE" }, // 5
  174. { "PERK_NEVIDLJIVOST", "PERKO_NEVIDLJIVOST" }, // 6
  175. { "PERK_RESPAWN", "PERKO_RESPAWN" }, // 7
  176. { "PERK_NOZ_MARINCA", "PERKO_NOZ_MARINCA" }, // 8
  177. { "PERK_TROSKOK", "PERKO_TROSKOK" }, // 9
  178. { "PERK_HE_EXPERT", "PERKO_HE_EXPERT" }, // 10
  179. { "PERK_DUPLI_SKOK", "PERKO_DUPLI_SKOK" }, // 11
  180. { "PERK_VOJNA_TAJNA", "PERKO_VOJNA_TAJNA" }, // 12
  181. { "PERK_AWP_MASTER", "PERKO_AWP_MASTER" }, // 13
  182. { "PERK_ADRENALIN", "PERKO_ADRENALIN" }, // 14
  183. { "PERK_RAMBOVA_TAJNA", "PERKO_RAMBOVA_TAJNA" }, // 15
  184. { "PERK_DEAGLE_MANIJAK", "PERKO_DEAGLE_MANIJAK" }, // 16
  185. { "PERK_SUPER_PANCIR", "PERKO_SUPER_PANCIR" }, // 17
  186. { "PERK_EXTRA_HP", "PERKO_EXTRA_HP" }, // 18
  187. { "PERK_KOMPLET_ZA_PRVU_POMOC", "PERKO_KOMPLET_ZA_PRVU_POMOC" }, // 19
  188. { "PERK_NO_RECOIL", "PERKO_NO_RECOIL" }, // 20
  189. { "PERK_TITANIJUMSKI_METCI", "PERKO_TITANIJUMSKI_METCI" }, // 21
  190. { "PERK_PUKOVNIKOVI_METCI", "PERKO_PUKOVNIKOVI_METCI" }, // 22
  191. { "PERK_OGRANICEN_NO_RECOIL", "PERKO_OGRANICEN_NO_RECOIL" }, // 23
  192. { "PERK_SWAT_STIT", "PERKO_SWAT_STIT" }, // 24
  193. { "PERK_50HP", "PERKO_50HP" }, // 25
  194. { "PERK_NANO_OKLOP", "PERKO_NANO_OKLOP" }, // 26
  195. { "PERK_BULLETPROOF", "PERKO_BULLETPROOF" }, // 27
  196. { "PERK_JETPACK", "PERKO_JETPACK" }, // 28
  197. { "PERK_GRAVITY", "PERKO_GRAVITY" }, // 29
  198. { "PERK_SPEED", "PERKO_SPEED" }, // 30
  199. { "PERK_RANAC_LOPOVA", "PERKO_RANAC_LOPOVA" }, // 31
  200. { "PERK_NO_RELOAD", "PERKO_NO_RELOAD" }, // 32
  201. { "PERK_SUPER_SPEED", "PERKO_SUPER_SPEED" }, // 33
  202. { "PERK_LOPOV", "PERKO_LOPOV" }, // 34
  203. { "PERK_SET_MAJORA", "PERKO_SET_MAJORA" }, // 35
  204. { "PERK_SET_BOMBI", "PERKO_SET_BOMBI" }, // 36
  205. { "PERK_RENDGEN", "PERKO_RENDGEN" }, // 37
  206. { "PERK_ASSASSINOV_PLAST", "PERKO_ASSASSINOV_PLAST" }, // 38
  207. { "PERK_ULTRA_STIT", "PERKO_ULTRA_STIT" }, // 39
  208. { "PERK_KNIFE_STIT", "PERKO_KNIFE_STIT" }, // 40
  209. { "PERK_SUPERJETPACK", "PERKO_SUPERJETPACK" }, // 41
  210. { "PERK_SHOWHP", "PERKO_SHOWHP" }, // 42
  211. { "PERK_HE_STIT", "PERKO_HE_STIT" }, // 43
  212. { "PERK_NECUJNE_CIZME", "PERKO_NECUJNE_CIZME" }, // 44
  213. { "PERK_KAMUFLAZA", "PERKO_KAMUFLAZA" }, // 45
  214. { "PERK_RUDNIK_ZLATA", "PERKO_RUDNIK_ZLATA" }, // 46
  215. { "PERK_HSIMMUNITY", "PERKO_HSIMMUNITY" }, // 47
  216. { "PERK_FASTXP", "PERKO_FASTXP" }, // 48
  217. { "PERK_200HP", "PERKO_200HP" }, // 49
  218. { "PERK_KILL_AWARD", "PERKO_KILL_AWARD" }, // 50
  219. { "PERK_RADAR", "PERKO_RADAR" }, // 51
  220. { "PERK_TELEPORT", "PERKO_TELEPORT" }, // 52
  221. { "PERK_FAST_RELOAD", "PREKO_FAST_RELOAD" }, // 53
  222. { "PERK_SPIDERMAN_MREZA", "PERKO_SPIDERMAN_MREZA" }, // 54
  223. { "PERK_SCOUT_EXPERT", "PERKO_SCOUT_EXPERT" }, // 55
  224. { "PERK_M4_SWAT", "PERKO_M4_SWAT" }, // 56
  225. { "PERK_DEAGLE_MASTER", "PERKO_DEAGLE_MASTER" }, // 57
  226. { "PERK_MADJIONICAR", "PERKO_MADJIONICAR" }, // 58
  227. { "PERK_AIM_STUNTERA", "PERKO_AIM_STUNTERA" }, // 59
  228. { "PERK_HE_VESTINA", "PERKO_HE_VESTINA" }, // 60
  229. { "PERK_GALIL_TERORIZMA", "PERKO_GALIL_TERORIZMA" }, // 61
  230. { "PERK_SET_STUNTERA", "PERKO_SET_STUNTERA" }, // 62
  231. { "PERK_M3_EXPERT", "PERKO_M3_EXPERT" }, // 63
  232. { "PERK_TAJNA_RAZARACA", "PERKO_TAJNA_RAZARACA" }, // 64
  233. { "PERK_USP_AIM", "PERKO_USP_AIM" }, // 65
  234. { "PERK_M4A1_AIM", "PERKO_M4A1_AIM" }, // 66
  235. { "PERK_AK47_AIM", "PERKO_AK47_AIM" }, // 67
  236. { "PERK_BULLET_IMMUNITY", "PERKO_BULLET_IMMUNITY" }, // 68
  237. { "PERK_DUBOKO_GRLO", "PERKO_DUBOKO_GRLO" }, // 69
  238. { "PERK_GOLDSTARS", "PERKO_GOLDSTARS" }, // 70
  239. { "PERK_TELO_DUHA", "PERKO_TELO_DUHA" } // 71
  240. };
  241.  
  242. new predmet_igraca[33][2];
  243.  
  244. // Level XP Number
  245.  
  246. new const g_iLevelXP[] = {
  247. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  248. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  249. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  250. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  251. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  252. 7, 21, 53, 98, 147, 199, 267, 339, 418, 504,
  253. 602, 715, 862, 1011, 1176, 1363, 1559, 1759, 1964, 2201,
  254. 2447, 2710, 2973, 3246, 3532, 3828, 4130, 4449, 4786, 5142,
  255. 5512, 5883, 6268, 6672, 7089, 7515, 7957, 8411, 8874, 9342,
  256. 9834, 10332, 10843, 11365, 11889, 12433, 12996, 13559, 14129, 14699,
  257. 15269, 15869, 16474, 17081, 17705, 18358, 19019, 19713, 20412, 21124,
  258. 21836, 22564, 23293, 24030, 24792, 25559, 26363, 27167, 27975, 28789,
  259. 29633, 30492, 31354, 32228, 33114, 34011, 34914, 35826, 36752, 37688,
  260. 38647, 39630, 40622, 41621, 42629, 43644, 44685, 45738, 46804, 47877,
  261. 48951, 50032, 51145, 52267, 53406, 54550, 55714, 56880, 58066, 59257,
  262. 60449, 61654, 62868, 64091, 65317, 66567, 67838, 69122, 70428, 71734,
  263. 73043, 74352, 75666, 77012, 78374, 79741, 81118, 82513, 83924, 85346,
  264. 86771, 88211, 89654, 91118, 92605, 94114, 95638, 97169, 98709, 100261,
  265. 101832, 103414, 104999, 106599, 108201, 109831, 111471, 113127, 114784, 116444,
  266. 118134, 119836, 121546, 123272, 125006, 126743, 128492, 130254, 132028, 133810,
  267. 135615, 137420, 139253, 141095, 142953, 144812, 146683, 148556, 150454, 152358,
  268. 154285, 156217, 158154, 160120, 162100, 164089, 166087, 168087, 170113, 172144,
  269. 174190, 176245, 178305, 180378, 182454, 184549, 186658, 188770, 190882, 193029,
  270. 195185, 197344, 199513, 201710, 203923, 206143, 208380, 210633, 212901, 215171,
  271. 217454, 219751, 222049, 224354, 226664, 229004, 231349, 233711, 236097, 238483,
  272. 240876, 243293, 245723, 248154, 250607, 253061, 255524, 258001, 260502, 263007,
  273. 265516, 268052, 270593, 273150, 275715, 278293, 280889, 283495, 286106, 288731,
  274. 291374, 294029, 296692, 299379, 302079, 304784, 307502, 310222, 312965, 315712,
  275. 318464, 321248, 324040, 326839, 329659, 332481, 335306, 338154, 341007, 343867,
  276. 346738, 349640, 352553, 355473, 358398, 361339, 364281, 367250, 370238, 373235,
  277. 376241, 379252, 382270, 385288, 388319, 391381, 394460, 397551, 400646, 403761,
  278. 406892, 410035, 413179, 416334, 419512, 422691, 425889, 429098, 432310, 435526,
  279. 438743, 441967, 445209, 448467, 451741, 455030, 458353, 461680, 465018, 468359,
  280. 471719, 475083, 478453, 481836, 485236, 488661, 492086, 495529, 498988, 502462,
  281. 505951, 509441, 512955, 516478, 520017, 523556, 527106, 530666, 534247, 537835,
  282. 541438, 545051, 548669, 552312, 555961, 559613, 563265, 566938, 570644, 574362,
  283. 578087, 581831, 585575, 589330, 593088, 596879, 600670, 604485, 608307, 612130,
  284. 615981, 619842, 623709, 627586, 631470, 635375, 639280, 643212, 647153, 651105,
  285. 655062, 659019, 663004, 667012, 671030, 675053, 679082, 683136, 687203, 691280,
  286. 695370, 699471, 703580, 707703, 711826, 715974, 720132, 724292, 728479, 732668,
  287. 736866, 741089, 745314, 749562, 753813, 758065, 762319, 766604, 770904, 775208,
  288. 779533, 783875, 788219, 792579, 796946, 801322, 805721, 810123, 814541, 818965,
  289. 823414, 827876, 832340, 836813, 841295, 845800, 850310, 854842, 859374, 863926,
  290. 868483, 873057, 877639, 882237, 886838, 891440, 896069, 900720, 905385, 910063,
  291. 914749, 919438, 924148, 928860, 933598, 938336, 943076, 947839, 952625, 957422,
  292. 962220, 967038, 971863, 976702, 981544, 986386, 991246, 996133, 1001034, 1005948,
  293. 1010873, 1015815, 1020765, 1025715, 1030685, 1035657, 1040644, 1045656, 1050676, 1055702,
  294. 1060738, 1065780, 1070835, 1075905, 1081003, 1086106, 1091213, 1096341, 1101482, 1106629,
  295. 1111778, 1116935, 1122117, 1127323, 1132543, 1137774, 1143018, 1148274, 1153535, 1158796,
  296. 1164079, 1169362, 1174658, 1179974, 1185314, 1190664, 1196026, 1201388, 1206753, 1212123,
  297. 1217498, 1222891, 1228308, 1233750, 1239196, 1244649, 1250120, 1255602, 1261101, 1266607,
  298. 1272131, 1277656, 1283183, 1288719, 1294275, 1299835, 1305399, 1311013, 1316634, 1322264,
  299. 1327907, 1333565, 1339231, 1344908, 1350585, 1356276, 1361995, 1367721, 1373461, 1379211,
  300. 1384979, 1390750, 1396530, 1402323, 1408132, 1413947, 1419769, 1425594, 1431453, 1437327,
  301. 1443206, 1449091, 1454988, 1460892, 1466822, 1472753, 1478693, 1484640, 1490611, 1496596,
  302. 1502596, 1508601, 1514633, 1520666, 1526716, 1532766, 1538848, 1544940, 1551045, 1557156,
  303. 1563281, 1569408, 1575540, 1581702, 1587867, 1594032, 1600204, 1606395, 1612612, 1618831,
  304. 1625080, 1631341, 1637608, 1643884, 1650160, 1656465, 1662782, 1669117, 1675458, 1681800,
  305. 1688156, 1694520, 1700910, 1707307, 1713707, 1720109, 1726525, 1732967, 1739431, 1745906,
  306. 1752392, 1758879, 1765390, 1771910, 1778450, 1785000, 1791553, 1798111, 1804671, 1811249,
  307. 1817836, 1824459, 1831095, 1837737, 1844396, 1851067, 1857748, 1864443, 1871143, 1877845,
  308. 1884575, 1891305, 1898048, 1904793, 1911546, 1918305, 1925088, 1931883, 1938688, 1945503,
  309. 1952338, 1959202, 1966070, 1972942, 1979839, 1986737, 1993647, 2000563, 2007490, 2014438,
  310. 2021389, 2028342, 2035319, 2042315, 2049335, 2056356, 2063387, 2070428, 2077476, 2084526,
  311. 2091587, 2098682, 2105790, 2112908, 2120029, 2127156, 2134311, 2141469, 2148653, 2155852,
  312. 2163054, 2170256, 2177470, 2184684, 2191917, 2199170, 2206439, 2213708, 2220978, 2228290,
  313. 2235615, 2242946, 2250290, 2257658, 2265026, 2272411, 2279810, 2287213, 2294621, 2302037,
  314. 2309484, 2316936, 2324402, 2331868, 2339367, 2346876, 2354392, 2361909, 2369436, 2376982,
  315. 2384537, 2392094, 2399660, 2407246, 2414836, 2422457, 2430084, 2437734, 2445394, 2453060,
  316. 2460750, 2468453, 2476163, 2483881, 2491604, 2499348, 2507098, 2514873, 2522654, 2530446,
  317. 2538256, 2546066, 2553881, 2561696, 2569515, 2577357, 2585216, 2593089, 2600976, 2608876,
  318. 2616801, 2624745, 2632691, 2640643, 2648597, 2656579, 2664565, 2672566, 2680592, 2688629,
  319. 2696670, 2704711, 2712770, 2720842, 2728924, 2737023, 2745142, 2753263, 2761404, 2769557,
  320. 2777728, 2785911, 2794107, 2802305, 2810503, 2818714, 2826953, 2835196, 2843450, 2851728,
  321. 2860013, 2868306, 2876617, 2884932, 2893249, 2901589, 2909952, 2918321, 2926692, 2935083,
  322. 2943489, 2951895, 2960318, 2968755, 2977196, 2985638, 2994102, 3002587, 3011090, 3019606,
  323. 3028137, 3036673, 3045217, 3053761, 3062308, 3070870, 3079472, 3088080, 3096697, 3105330,
  324. 3113979, 3122637, 3131312, 3139991, 3148687, 3157395, 3166104, 3174836, 3183578, 3192334,
  325. 3201101, 3209881, 3218675, 3227478, 3236295, 3245116, 3253959, 3262814, 3271675, 3280544,
  326. 3289420, 3298324, 3307239, 3316156, 3325077, 3334022, 3342974, 3351945, 3360927, 3369915,
  327. 3378915, 3387938, 3396972, 3406014, 3415073, 3424136, 3433199, 3442279, 3451359, 3460456,
  328. 3469553, 3478654, 3487782, 3496928, 3506074, 3515252, 3524433, 3533620, 3542828, 3552036,
  329. 3561263, 3570493, 3579726, 3588977, 3598258, 3607547, 3616851, 3626170, 3635509, 3644860,
  330. 3654221, 3663605, 3672994, 3682384, 3691788, 3701203, 3710632, 3720087, 3729552, 3739027,
  331. 3748517, 3758017, 3767531, 3777056, 3786595, 3796140, 3805696, 3815267, 3824850, 3834447,
  332. 3844052, 3853658, 3863277, 3872907, 3882561, 3892219, 3901901, 3911594, 3921302, 3931012,
  333. 3940742, 3950483, 3960230, 3969997, 3979768, 3989554, 3999342, 4009142, 4018945, 4028768,
  334. 4038605, 4048448, 4058302, 4068180, 4078077, 4087986, 4097895, 4107827, 4117760, 4127717,
  335. 4137688, 4147664, 4157656, 4167650, 4177645, 4187643, 4197665, 4207689, 4217734, 4227795,
  336. 4237874, 4247977, 4258091, 4268210, 4278337, 4288478, 4298641, 4308811, 4318995, 4329184,
  337. 4339390, 4349608, 4359842, 4370089, 4380337, 4390588, 4400839, 4411107, 4421397, 4431693,
  338. 4442017, 4452346, 4462675, 4473019, 4483388, 4493771, 4504163, 4514569, 4524996, 4535427,
  339. 4545858, 4556308, 4566772, 4577242, 4587738, 4598242, 4608750, 4619266, 4629813, 4640369,
  340. 4650930, 4661491, 4672068, 4682667, 4693280, 4703894, 4714518, 4725163, 4735828, 4746499,
  341. 4757174, 4767866, 4778558, 4789274, 4800000, 4810740, 4821491, 4832242, 4843002, 4853771,
  342. 4864573, 4875380, 4886196, 4897026, 4907875, 4918740, 4929613, 4940490, 4951387, 4962297,
  343. 4973207, 4984140, 4995090, 5006048, 5017021, 5027994, 5038994, 5050008, 5061034, 5072067,
  344. 5083105, 5094153, 5105205, 5116273, 5127358, 5138455, 5149554, 5160671, 5171815, 5182959,
  345. 5194116, 5205293, 5216473, 5227671, 5238885, 5250116, 5261357, 5272606, 5283864, 5295141,
  346. 5306431, 5317732, 5329044, 5340359, 5351694, 5363031, 5374384, 5385749, 5397115, 5408507,
  347. 5419909, 5431316, 5442728, 5454142, 5465557, 5477023, 5488494, 5499966, 5511455, 5522947,
  348. 5534443, 5545969, 5557522, 5569075, 5580648, 5592237, 5603836, 5615443, 5627069, 5638703,
  349. 5650344, 5661985, 5673628, 5685289, 5696954, 5708661, 5720375, 5732101, 5743829, 5755558,
  350. 5767305, 5779062, 5790822, 5802612, 5814402, 5826232, 5838073, 5849926, 5861792, 5873672,
  351. 5885561, 5897463, 5909374, 5921297, 5933221, 5945167, 5957114, 5969067, 5981024, 5993014,
  352. 6005023, 6017034, 6029046, 6041064, 6053093, 6065133, 6077192, 6089268, 6101372, 6113492,
  353. 6125617, 6137748, 6149894, 6162045, 6174206, 6186380, 6198574, 6210784, 6223008, 6235237,
  354. 6247488, 6259749, 6272013, 6284285, 6296564, 6308846, 6321140, 6333448, 6345782, 6358119,
  355. 6370465, 6382819, 6395209, 6407599, 6420010, 6432428, 6444853, 6457292, 6469747, 6482217,
  356. 6494701, 6507191, 6519700, 6532222, 6544748, 6557295, 6569856, 6582429, 6595002, 6607598,
  357. 6620196, 6632813, 6645433, 6658062, 6670708, 6683356, 6696018, 6708686, 6721387, 6734094,
  358. 6746811, 6759530, 6772270, 6785018, 6797784, 6810558, 6823355, 6836156, 6848976, 6861810,
  359. 6874645, 6887481, 6900342, 6913218, 6926107, 6939013, 6951933, 6964860, 6977804, 6990752,
  360. 7003717, 7016691, 7029672, 7042659, 7055668, 7068680, 7081695, 7094747, 7107813, 7120879,
  361. 7133969, 7147065, 7160172, 7173296, 7186431, 7199582, 7212740, 7225915, 7239098, 7252287,
  362. 7265493, 7278704, 7291920, 7305147, 7318388, 7331659, 7344935, 7358217, 7371506, 7384806,
  363. 7398133, 7411470, 7424826, 7438183, 7451540, 7464928, 7478321, 7491736, 7505163, 7518601,
  364. 7532049, 7545503, 7558967, 7572432, 7585907, 7599416, 7612935, 7626468, 7640011, 7653563,
  365. 7667116, 7680697, 7694288, 7707889, 7721490, 7735120, 7748754, 7762397, 7776047, 7789717,
  366. 7803390, 7817089, 7830804, 7844524, 7858256, 7872003, 7885756, 7899531, 7913312, 7927107,
  367. 7940914, 7954735, 7968564, 7982404, 7996250, 8010109, 8023992, 8037881, 8051773, 8065666,
  368. 8079578, 8093505, 8107459, 8121424, 8135398, 8149375, 8163365, 8177371, 8191398, 8205427,
  369. 8219475, 8233531, 8247603, 8261684, 8275773, 8289879, 8303994, 8318110, 8332256, 8346414,
  370. 8360581, 8374748, 8388925, 8403127, 8417341, 8431562, 8445796, 8460038, 8474301, 8488570,
  371. 8502862, 8517154, 8531456, 8545784, 8560120, 8574463, 8588825, 8603188, 8617552, 8631943,
  372. 8646351, 8660763, 8675188, 8689617, 8704068, 8718527, 8732994, 8747464, 8761960, 8776470,
  373. 8790983, 8805509, 8820051, 8834601, 8849168, 8863740, 8878324, 8892912, 8907524, 8922149,
  374. 8936778, 8951417, 8966090, 8980768, 8995452, 9010161, 9024876, 9039604, 9054332, 9069070,
  375. 9083817, 9098600, 9113388, 9128186, 9143005, 9157832, 9172663, 9187515, 9202374, 9217250,
  376. 9232127, 9247021, 9261933, 9276858, 9291784, 9306719, 9321666, 9336641, 9351628, 9366619,
  377. 9381625, 9396633, 9411661, 9426703, 9441751, 9456799, 9471850, 9486904, 9501971, 9517054,
  378. 9532138, 9547225, 9562337, 9577483, 9592649, 9607821, 9623017, 9638221, 9653425, 9668636,
  379. 9683884, 9699143, 9714405, 9729679, 9744954, 9760249, 9775560, 9790888, 9806226, 9821568,
  380. 9836925, 9852293, 9867665, 9883057, 9898470, 9913898, 9929339, 9944786, 9960250, 9975714,
  381. 9991191, 10006690, 10022198, 10037714, 10053247, 10068795, 10084354, 10099917, 10115504, 10131091,
  382. 10146703, 10162322, 10177943, 10193588, 10209248, 10224913, 10240589, 10256271, 10271969, 10287681,
  383. 10303403, 10319143, 10334891, 10350656, 10366429, 10382218, 10398021, 10413832, 10429651, 10445475,
  384. 10461322, 10477180, 10493050, 10508931, 10524827, 10540728, 10556649, 10572573, 10588502, 10604458,
  385. 10620429, 10636403, 10652389, 10668392, 10684409, 10700429, 10716450, 10732497, 10748546, 10764619,
  386. 10780699, 10796783, 10812894, 10829006, 10845140, 10861280, 10877424, 10893575, 10909747, 10925931,
  387. 10942137, 10958354, 10974572, 10990807, 11007051, 11023304, 11039574, 11055850, 11072130, 11088432,
  388. 11104759, 11121097, 11137438, 11153800, 11170177, 11186556, 11202949, 11219344, 11235769, 11252199,
  389. 11268635, 11285096, 11301564, 11318047, 11334531, 11351026, 11367543, 11384070, 11400606, 11417145,
  390. 11433707, 11450278, 11466859, 11483462, 11500078, 11516697, 11533317, 11549950, 11566591, 11583267,
  391. 11599958, 11616650, 11633355, 11650065, 11666804, 11683544, 11700284, 11717058, 11733844, 11750637,
  392. 11767442, 11784251, 11801084, 11817931, 11834786, 11851651, 11868530, 11885422, 11902317, 11919227,
  393. 11936145, 11953065, 11969995, 11986945, 12003905, 12020884, 12037885, 12054891, 12071904, 12088927,
  394. 12105957, 12123020, 12140083, 12157168, 12174268, 12191374, 12208494, 12225620, 12242764, 12259917,
  395. 12277072, 12294237, 12311425, 12328618, 12345827, 12363046, 12380265, 12397485, 12414712, 12431989,
  396. 12449277, 12466570, 12483879, 12501199, 12518529, 12535860, 12553216, 12570575, 12587959, 12605355,
  397. 12622754, 12640157, 12657583, 12675012, 12692444, 12709890, 12727343, 12744837, 12762340, 12779848,
  398. 12797378, 12814914, 12832467, 12850025, 12867584, 12885163, 12902746, 12920362, 12937986, 12955610,
  399. 12973241, 12990886, 13008542, 13026229, 13043921, 13061625, 13079343, 13097069, 13114809, 13132560,
  400. 13150315, 13168086, 13185865, 13203663, 13221465, 13239278, 13257104, 13274933, 13292767, 13310624,
  401. 13328515, 13346411, 13364312, 13382226, 13400159, 13418093, 13436032, 13453993, 13471980, 13489978,
  402. 13507986, 13526000, 13544035, 13562082, 13580130, 13598186, 13616263, 13634357, 13652464, 13670578,
  403. 13688698, 13706838, 13724982, 13743135, 13761298, 13779475, 13797664, 13815877, 13834093, 13852313,
  404. 13870557, 13888819, 13907085, 13925372, 13943668, 13961968, 13980289, 13998624, 14016967, 14035322,
  405. 14053688, 14072065, 14090442, 14108849, 14127261, 14145681, 14164119, 14182563, 14201018, 14219478,
  406. 14237945, 14256449, 14274958, 14293486, 14312018, 14330569, 14349120, 14367687, 14386275, 14404872,
  407. 14423478, 14442091, 14460725, 14479364, 14498011, 14516671, 14535346, 14554033, 14572723, 14591441,
  408. 14610169, 14628900, 14647647, 14666412, 14685185, 14703972, 14722771, 14741582, 14760397, 14779219,
  409. 14798056, 14816894, 14835758, 14854625, 14873498, 14892377, 14911261, 14930165, 14949091, 14968038,
  410. 14987010, 15005991, 15024985, 15043991, 15063006, 15082030, 15101068, 15120108, 15139166, 15158226,
  411. 15177316, 15196420, 15215536, 15234659, 15253782, 15272907, 15292065, 15311231, 15330406, 15349585,
  412. 15368796, 15388013, 15407238, 15426474, 15445716, 15464960, 15484225, 15503505, 15522787, 15542084,
  413. 15561410, 15580747, 15600101, 15619461, 15638840, 15658219, 15677615, 15697027, 15716448, 15735876,
  414. 15755322, 15774774, 15794237, 15813710, 15833192, 15852680, 15872174, 15891692, 15911212, 15930771,
  415. 15950339, 15969920, 15989507, 16009110, 16028724, 16048344, 16067971, 16087614, 16107275, 16126946,
  416. 16146632, 16166327, 16186025, 16205730, 16225438, 16245152, 16264871, 16284624, 16304402, 16324196,
  417. 16344006, 16363817, 16383638, 16403463, 16423312, 16443169, 16463049, 16482935, 16502832, 16522737,
  418. 16542646, 16562564, 16582515, 16602471, 16622437, 16642413, 16662400, 16682390, 16702414, 16722451,
  419. 16742490, 16762550, 16782618, 16802700, 16822794, 16842893, 16862996, 16883125, 16903268, 16923419,
  420. 16943576, 16963743, 16983939, 17004143, 17024348, 17044578, 17064815, 17085053, 17105320, 17125597,
  421. 17145882, 17166177, 17186476, 17206779, 17227112, 17247450, 17267814, 17288179, 17308545, 17328932,
  422. 17349338, 17369744, 17390160, 17410592, 17431051, 17451515, 17471987, 17492461, 17512942, 17533460,
  423. 17553991, 17574522, 17595074, 17615626, 17636188, 17656769, 17677367, 17697973, 17718585, 17739211,
  424. 17759849, 17780492, 17801165, 17821839, 17842519, 17863213, 17883927, 17904663, 17925407, 17946163,
  425. 17966929, 17987702, 18008497, 18029304, 18050122, 18070950, 18091787, 18112629, 18133483, 18154347,
  426. 18175228, 18196110, 18217002, 18237929, 18258862, 18279801, 18300763, 18321737, 18342716, 18363709,
  427. 18384705, 18405716, 18426736, 18447779, 18468834, 18489897, 18510969, 18532058, 18553157, 18574272,
  428. 18595389, 18616521, 18637654, 18658799, 18679957, 18701138, 18722321, 18743511, 18764725, 18785939,
  429. 18807172, 18828420, 18849677, 18870953, 18892248, 18913544, 18934848, 18956163, 18977488, 18998847,
  430. 19020217, 19041598, 19062988, 19084393, 19105798, 19127211, 19148629, 19170081, 19191538, 19213003,
  431. 19234472, 19255966, 19277465, 19298989, 19320516, 19342066, 19363627, 19385199, 19406771, 19428353,
  432. 19449938, 19471529, 19493158, 19514802, 19536448, 19558110, 19579773, 19601467, 19623173, 19644881,
  433. 19666590, 19688301, 19710042, 19731789, 19753549, 19775335, 19797133, 19818938, 19840747, 19862574,
  434. 19884411, 19906266, 19928140, 19950020, 19971905, 19993795, 20015686, 20037615, 20059559, 20081512,
  435. 20103484, 20125456, 20147430, 20169438, 20191452, 20213468, 20235497, 20257531, 20279567, 20301644,
  436. 20323731, 20345818, 20367918, 20390021, 20412150, 20434285, 20456448, 20478614, 20500796, 20522986,
  437. 20545197, 20567413, 20589642, 20611880, 20634127, 20656375, 20678657, 20700939, 20723225, 20745545,
  438. 20767868, 20790209, 20812559, 20834910, 20857279, 20879659, 20902049, 20924448, 20946869, 20969296,
  439. 20991726, 21014163, 21036621, 21059081, 21081579, 21104082, 21126597, 21149121, 21171662, 21194205,
  440. 21216775, 21239357, 21261940, 21284539, 21307138, 21329765, 21352393, 21375022, 21397666, 21420324,
  441. 21442987, 21465659, 21488358, 21511082, 21533811, 21556556, 21579313, 21602078, 21624851, 21647635,
  442. 21670420, 21693233, 21716056, 21738904, 21761763, 21784623, 21807500, 21830390, 21853287, 21876184,
  443. 21899098, 21922037, 21944976, 21967934, 21990913, 22013902, 22036901, 22059900, 22082912, 22105945,
  444. 22128978, 22152012, 22175051, 22198090, 22221182, 22244274, 22267394, 22290519, 22313646, 22336796,
  445. 22359948, 22383102, 22406258, 22429466, 22452684, 22475912, 22499140, 22522395, 22545655, 22568920,
  446. 22592185, 22615478, 22638794, 22662120, 22685446, 22708778, 22732118, 22755460, 22778812, 22802176,
  447. 22825569, 22848984, 22872417, 22895855, 22919315, 22942775, 22966242, 22989723, 23013209, 23036695,
  448. 23060200, 23083736, 23107282, 23130846, 23154424, 23178012, 23201611, 23225220, 23248838, 23272464,
  449. 23296107, 23319757, 23343431, 23367106, 23390786, 23414493, 23438200, 23461917, 23485650, 23509393,
  450. 23533151, 23556912, 23580699, 23604486, 23628277, 23652072, 23675899, 23699747, 23723614, 23747488,
  451. 23771378, 23795278, 23819182, 23843098, 23867022, 23890952, 23914900, 23938866, 23962850, 23986846,
  452. 24010857, 59999999
  453. };
  454.  
  455. // Classes Data
  456.  
  457. enum _:InfoKlasa {
  458. None = 0,
  459.  
  460. //Obicne
  461. Swat,
  462. MisterijaKisobrana,
  463. ProMarine,
  464. Phantom,
  465. ProSapper,
  466. Solider,
  467. Crysis,
  468. Price,
  469. ProShooter,
  470. Robot,
  471. VampirToza,
  472. Blade,
  473. BryanMils,
  474. Kamikaza,
  475. Crank,
  476. Heavy,
  477. Gangster,
  478. Otrov,
  479. Mornar,
  480. ProfesionalniVojnik,
  481. JSO,
  482. Ops,
  483. Snajperista,
  484.  
  485. //Premium
  486. GSMaster,
  487. DrugTito,
  488. Admiral,
  489. Stalker,
  490. Assassin,
  491. Commando,
  492. ProSwat,
  493. Ghost,
  494. VanHelsing,
  495. Stalin,
  496. VasiljiZaljcev,
  497. Kadet,
  498. Officir,
  499. BacacPlamena,
  500.  
  501. //Golds Stars
  502. Jack,
  503. JohnWayane,
  504. Wolverine,
  505. RokerSMoravu,
  506. Bjegunac,
  507. FuriosEMan,
  508. ProBombarder,
  509.  
  510. //Special
  511. CicaDraza,
  512. Lovac,
  513. Lopov,
  514. Ninja,
  515. Svestenik,
  516. Predator,
  517. Razarac,
  518. Batman,
  519. Boxer,
  520. Spiderman,
  521. Teleporter,
  522. Indian,
  523. Shredder,
  524.  
  525. //Steam only
  526. AngryMax,
  527. Exit,
  528. Ranger,
  529. CrazyShooter,
  530.  
  531. //Super Premium
  532. Glacier,
  533. Hitman,
  534. ProAssassin,
  535. Dante,
  536. Bazukas,
  537. RobinHud,
  538. GoldMaster,
  539. Inzinjer,
  540. Madjionicar,
  541.  
  542. //Vip
  543. Skakac,
  544. Samuraj,
  545. AssassinCopy,
  546. IronMan,
  547. Rusher,
  548. Pikacu
  549.  
  550. };
  551.  
  552. new Statistika[ InfoKlasa ];
  553.  
  554. new const Klase[ InfoKlasa ][][] = {
  555. // Ime Opis Energija Stit Brzina Frkacija Flag
  556.  
  557. //Obicne
  558. { "ML_NEMA", "ML_NEMA", "0", "0", "0.0", "Classic", "" },
  559. { "ML_SWAT", "ML_O_SWAT", "100", "110", "2.56", "Classic", "" },
  560. { "ML_MISTERIJA_KISOBRANA", "ML_O_MISTERIJA_KISOBRANA", "110", "0", "1.1", "Classic", "" },
  561. { "ML_PRO_MARINE", "ML_O_PRO_MARINE", "140", "100", "4.32", "Classic", "" },
  562. { "ML_PHANTOM", "ML_O_PHANTOM", "110", "0", "1.4", "Classic", "" },
  563. { "ML_PRO_SAPPER", "ML_O_PRO_SAPPER", "100", "100", "3.2", "Classic", "" },
  564. { "ML_SOLIDER", "ML_O_SOLIDER", "110", "100", "4.16", "Classic", "" },
  565. { "ML_CRYSIS", "ML_O_CRYSIS", "100", "100", "5.12", "Classic", "" },
  566. { "ML_PRICE", "ML_O_PRICE", "105", "100", "5.12", "Classic", "" },
  567. { "ML_PRO_SHOOTER", "ML_O_PRO_SHOOTER", "120", "100", "3.52", "Classic", "" },
  568. { "ML_ROBOT", "ML_O_ROBOT", "150", "100", "3.20", "Classic", "" },
  569. { "ML_VAMPIR_TOZA", "ML_O_VAMPIR_TOZA", "80", "100", "4.0", "Classic", "" },
  570. { "ML_BLADE", "ML_O_BLADE", "200", "100", "3.20", "Classic", "" },
  571. { "ML_BRYIAN_MILS", "ML_O_BRYIAN_MILS", "300", "100", "4.2", "Classic", "" },
  572. { "ML_KAMIKAZA", "ML_O_KAMIKAZA", "100", "20", "2.2", "Classic", "" },
  573. { "ML_CRANK", "ML_O_CRANK", "125", "115", "1.3", "Classic", "" },
  574. { "ML_HEAVY", "ML_O_HEAVY", "450", "115", "1.3", "Classic", "" },
  575. { "ML_GANGSTER", "ML_O_GANGSTER", "120", "100", "1.2", "Classic", "" },
  576. { "ML_OTROV", "ML_O_OTROV", "130", "100", "1.2", "Classic", "" },
  577. { "ML_MORNAR", "ML_O_MORNAR", "120", "100", "1.3", "Classic", "" },
  578. { "ML_PROFESIONALNI_VOJNIK", "ML_O_PROFESIONALNI_VOJNIK", "120", "80", "1.5", "Classic", "" },
  579. { "ML_JSO", "ML_O_JSO", "120", "150", "1.7", "Classic", "" },
  580. { "ML_OPS", "ML_O_OPS", "100", "100", "1.7", "Classic", "" },
  581. { "ML_SNAJPERISTA", "ML_O_SNAJPERISTA", "100", "100", "1.1", "Classic", "" },
  582. //Premium
  583. { "ML_GOLD_MASTER", "ML_O_GOLD_MASTER", "140", "100", "1.4", "Premium", "%" },
  584. { "ML_DRUG_TITO", "ML_O_DRUG_TITO", "110", "0", "1.9", "Premium", "v" },
  585. { "ML_ADMIRAL", "ML_O_ADMIRAL", "120", "0", "1.2", "Premium", "c" },
  586. { "ML_STALKER", "ML_O_STALKER", "120", "100", "3.84", "Premium", "a" },
  587. { "ML_ASSASSIN", "ML_O_ASSASSIN", "200", "100", "4.8", "Premium", "b" },
  588. { "ML_COMMANDO", "ML_O_COMMANDO", "200", "100", "3.52", "Premium", "d" },
  589. { "ML_PRO_SWAT", "ML_O_PRO_SWAT", "200", "100", "3.84", "Premium", "e" },
  590. { "ML_GHOST", "ML_O_GHOST", "50", "100", "1.5", "Premium", "f" },
  591. { "ML_VAN_HELSING", "ML_O_VAN_HELSING", "100", "100", "3.2", "Premium", "h" },
  592. { "ML_STALIN", "ML_O_STALIN", "100", "100", "2.0", "Premium", "i" },
  593. { "ML_VASILJIZALJCEV", "ML_O_VASILJIZALJCEV", "200", "100", "1.5", "Premium", "j" },
  594. { "ML_KADET", "ML_O_KADET", "130", "120", "1.25", "Premium", "k" },
  595. { "ML_OFICIR", "ML_O_OFICIR", "125", "120", "1.2", "Premium", "5" },
  596. { "ML_BACACPLAMENA", "ML_O_BACACPLAMENA", "125", "120", "1.2", "Premium", "#" },
  597. //Golds Stars
  598. { "ML_JACK", "ML_O_JACK", "200", "260", "2.1", "GoldsStars", "n" },
  599. { "ML_JOHN_WAYANE", "ML_O_JOHN_WAYANE", "130", "110", "1.4", "GoldsStars", "o" },
  600. { "ML_WOLWERINE", "ML_O_WOLWERINE", "130", "110", "1.4", "GoldsStars", "p" },
  601. { "ML_ROKERSMORAVU", "ML_O_ROKERSMORAVU", "130", "50", "1.1", "GoldsStars", "6" },
  602. { "ML_BJEGUNAC", "ML_O_BJEGUNAC", "200", "115", "3.2", "GoldsStars", "4" },
  603. { "ML_FURIOSEMAN", "ML_O_FURIOSEMAN", "200", "120", "2.0", "GoldsStars", "1" },
  604. { "ML_PROBOMBARDER", "ML_O_PROBOMBARDER", "120", "110", "1.2", "GoldsStars", "2" },
  605. //Special
  606. { "ML_CICA_DRAZA", "ML_O_CICA_DAZA", "150", "100", "2.5", "Special", "-" },
  607. { "ML_LOVAC", "ML_O_LOVAC", "130", "50", "1.1", "Special", "m" },
  608. { "ML_LOPOV", "ML_O_LOPOV", "120", "125", "1.2", "Special", "_" },
  609. { "ML_NINJA", "ML_O_NINJA", "150", "0", "1.5", "Special", "r" },
  610. { "ML_SVESTENIK", "ML_O_SVESTENIK", "100", "0", "1.5", "Special", "s" },
  611. { "ML_PREDATOR", "ML_O_PREDATOR", "250", "0", "1.5", "Special", "l" },
  612. { "ML_RAZARAC", "ML_O_RAZARAC", "120", "100", "1.4", "Special", "u" },
  613. { "ML_BATMAN", "ML_O_BATMAN", "300", "60", "1.4", "Special", "q" },
  614. { "ML_BOXER", "ML_O_BOXER", "150", "150", "1.5", "Special", "t" },
  615. { "ML_SPIDERMAN", "ML_O_SPIDERMAN", "125", "100", "1.1", "Special", "3" },
  616. { "ML_TELEPORTER", "ML_O_TELEPORTER", "130", "130", "1.1", "Special", "8" },
  617. { "ML_INDIAN", "ML_O_INDIAN", "100", "0", "1.0", "Special", "?" },
  618. { "ML_SHREDDER", "ML_O_SHREDDER", "350", "110", "1.5", "Special", "$" },
  619. //Steam Only
  620. { "ML_ANGRY_MAX", "ML_O_ANGRY_MAX", "200", "100", "2.0", "Steam Only", "" },
  621. { "ML_EXIT", "ML_O_EXIT", "200", "100", "2.0", "Steam Only", "" },
  622. { "ML_RANGER", "ML_O_RANGER", "200", "100", "2.0", "Steam Only", "" },
  623. { "ML_CRAZY_SHOOTER", "ML_O_CRAZY_SHOOTER", "120", "0", "1.2", "Steam Only", "" },
  624. //Super Premium
  625. { "ML_GLACIER", "ML_O_GLACIER", "200", "100", "1.6", "Super Premium","+" },
  626. { "ML_HITMAN", "ML_O_HITMAN", "115", "130", "1.2", "Super Premium","*" },
  627. { "ML_PRO_ASSASSIN", "ML_O_PRO_ASSASSIN", "50", "100", "4.8", "Super Premium","g" },
  628. { "ML_DANTE", "ML_O_DANTE", "100", "0", "4.0", "Super Premium","w" },
  629. { "ML_BAZUKAS", "ML_O_BUZAKAS", "100", "0", "3.49", "Super Premium","x" },
  630. { "ML_ROBIN_HUD", "ML_O_ROBIN_HUD", "150", "0", "1.5", "Super Premium","y" },
  631. { "ML_GOLDSTARS", "ML_O_GOLDSTARS", "100", "0", "3.2", "Super Premium","z" },
  632. { "ML_INZINJER", "ML_O_INZINJER", "130", "20", "1.6", "Super Premium","7" },
  633. { "ML_MADJIONICAR", "ML_O_MADJIONICAR", "120", "120", "1.2", "Super Premium","9" },
  634. //Vip
  635. { "ML_SKAKAC", "ML_O_SKAKAC", "200", "100", "4.15", "VipKlase", "" },
  636. { "ML_SAMAURAJ", "ML_O_SAMURAJ", "120", "50", "1.5", "VipKlase", "" },
  637. { "ML_ASSASSINCOPY", "ML_O_ASSASSINCOPY", "100", "30", "1.0", "VipKlase", "" },
  638. { "ML_IRONMAN", "ML_O_IRONMAN", "200", "20", "1.0", "VipKlase", "" },
  639. { "ML_RUSHER", "ML_O_RUSHER", "125", "125", "1.5", "VipKlase", "" },
  640. { "ML_PIKACU", "ML_O_PIKACU", "120", "130", "1.2", "VipKlase", "" }
  641.  
  642. };
  643.  
  644. // Num of Perks which Blocked on Classes
  645.  
  646. new const g_iBlockedPerks[][18] = {
  647. 0, // Nema
  648. { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Swat
  649. { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // MisterijaKisobrana
  650. { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProMarine
  651. { 24, 32, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Phantom
  652. { 8, 24, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProSapper
  653. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Solider
  654. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Crysis
  655. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Price
  656. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProShooter
  657. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Robot
  658. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // VampirToza
  659. { 15, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Blade
  660. { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // BryanMils
  661. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Kamikaza
  662. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Crank
  663. { 6, 8, 13, 24, 38, 41, 55, 56, 58, 59, 61, 62, 66, 67, 0, 0, 0, 0 }, // Heavy
  664. { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Gangster
  665. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Otrov
  666. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Mornar
  667. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProfesionalniVojnik
  668. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // JSO
  669. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Ops
  670. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Snajperista
  671. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // SB Master
  672. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Drug Tito
  673. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Admiral
  674. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Stalker
  675. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Assassin
  676. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Commando
  677. { 24, 38, 55, 56, 58, 59, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProSwat
  678. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Ghost
  679. { 24, 38, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // VanHelsing
  680. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Stalin
  681. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // VasiljiZaljcev
  682. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Kadet
  683. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Officir
  684. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Bacac Plamena
  685. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Jack
  686. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // JohnWayane
  687. { 24, 32, 41, 56, 57, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Wolverine
  688. { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // RokerSMoravu
  689. { 13, 24, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Bjegunac
  690. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // FuriosEMan
  691. { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProBombarder
  692. { 13, 53, 56, 57, 61, 62, 64, 65, 66, 67, 0, 0, 0, 0, 0, 0, 0, 0 }, // Lovac
  693. { 13, 53, 56, 57, 61, 62, 64, 65, 66, 67, 0, 0, 0, 0, 0, 0, 0, 0 }, // Lopov
  694. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Ninja
  695. { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Svestenik
  696. { 24, 38, 55, 56, 58, 59, 62, 63, 64, 66, 67, 0, 0, 0, 0, 0, 0, 0 }, // Predator
  697. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Razarac
  698. { 55, 56, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Batman
  699. { 48, 59, 62, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Boxer
  700. { 54, 63, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Spiderman
  701. { 38, 41, 55, 56, 58, 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, 0, 0 }, // Teleporter
  702. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Indian
  703. { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Shredder
  704. { 24, 55, 56, 58, 61, 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, 0, 0 }, // AngryMax
  705. { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Exit
  706. { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Ranger
  707. { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // CrazyShooter
  708. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Glacier
  709. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Hitman
  710. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // ProAssassin
  711. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Dante
  712. { 24, 32, 34, 38, 41, 54, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68 }, // Bazukas
  713. { 24, 28, 32, 38, 41, 53, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68 }, // RobinHud
  714. { 24, 27, 28, 32, 41, 55, 57, 58, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0 }, // GoldMaster
  715. { 24, 52, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Inzinjer
  716. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Madjionicar
  717. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Skakac
  718. { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Samuraj
  719. { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // AssassinCopy
  720. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // IronMan
  721. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Rusher
  722. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } // Pikacu
  723.  
  724. };
  725.  
  726.  
  727. //Frkacije
  728.  
  729. enum {
  730. Nema = 0,
  731. Obicna,
  732. Premium,
  733. GoldsStars,
  734. Special,
  735. SteamOnly,
  736. SuperPremium,
  737. VipKlase
  738. };
  739.  
  740. new const g_szFractions[][] = {
  741. "ML_NEMA",
  742. "ML_OBICNE",
  743. "ML_PREMIUM",
  744. "ML_GOLDS_STARS",
  745. "ML_SPECIAL",
  746. "ML_STEAM_ONLY",
  747. "ML_SUPER_PREMIUM",
  748. "ML_VIP_KLASE"
  749. };
  750.  
  751. new const g_iClassesFraction[ InfoKlasa ] = {
  752. Nema,
  753.  
  754. //Obicne
  755. Obicna, //Swat
  756. Obicna, //MisterijaKisobrana
  757. Obicna, //ProMarine
  758. Obicna, //Phantom
  759. Obicna, //ProSapper
  760. Obicna, //Solider
  761. Obicna, //Crysis
  762. Obicna, //Price
  763. Obicna, //ProShooter
  764. Obicna, //Robot
  765. Obicna, //VampirToza
  766. Obicna, //Blade
  767. Obicna, //BryanMils
  768. Obicna, //Kamikaza
  769. Obicna, //Crank
  770. Obicna, //Heavy
  771. Obicna, //Gangster
  772. Obicna, //Otrov
  773. Obicna, //Mornar
  774. Obicna, //ProfesionalniVojnik
  775. Obicna, //JSO
  776. Obicna, //OPS
  777. Obicna, //Snajperista
  778.  
  779.  
  780. //Premium
  781. Premium, //GS Master
  782. Premium, //DrugTito
  783. Premium, //Admiral
  784. Premium, //Stalker
  785. Premium, //Assassin
  786. Premium, //Commando
  787. Premium, //ProSwat
  788. Premium, //Ghost
  789. Premium, //Van Helsing
  790. Premium, //Stalin
  791. Premium, //VasiljiZaljcev
  792. Premium, //Kadet
  793. Premium, //Officir
  794. Premium, //Bacac Plamena
  795.  
  796. //Golds Stars
  797. GoldsStars, //Jack
  798. GoldsStars, //JohnWayane
  799. GoldsStars, //Wolverin
  800. GoldsStars, //RokerSMoravu
  801. GoldsStars, //Bjegunac
  802. GoldsStars, //FuriosEMan
  803. GoldsStars, //ProBomader
  804.  
  805.  
  806. //Special
  807. Special, //Cica Draza
  808. Special, //Lovac
  809. Special, //Lopov
  810. Special, //Ninja
  811. Special, //Svestenik
  812. Special, //Predator
  813. Special, //Razarac
  814. Special, //Batman
  815. Special, //Boxer
  816. Special, //Spiderman
  817. Special, //Teleporter
  818. Special, //Indian
  819. Special, //Shredder
  820.  
  821. //Steam Only
  822. SteamOnly, //Angry Max
  823. SteamOnly, //Exit
  824. SteamOnly, //Ranger
  825. SteamOnly, //Crazy Shootre
  826.  
  827. //Super Preimum
  828. SuperPremium, //Glacier
  829. SuperPremium, //Hitman
  830. SuperPremium, //Pro Assassin
  831. SuperPremium, //Dante
  832. SuperPremium, //Bazukas
  833. SuperPremium, //Robin Hud
  834. SuperPremium, //GoldMaster
  835. SuperPremium, //Inzinjer
  836. SuperPremium, //Madjionicar
  837.  
  838. //Vip
  839. VipKlase, //Skakac
  840. VipKlase, //Samuraj
  841. VipKlase, //Assassin Copy
  842. VipKlase, //Iron Man
  843. VipKlase, //Rusher
  844. VipKlase //Pikacu
  845. };
  846.  
  847. // Classes Weapons
  848.  
  849. new const g_iClassesWeapon[ InfoKlasa ][7] = {
  850. { CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Nema
  851.  
  852. //Obicne
  853. { CSW_M4A1, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Swat
  854. { CSW_M3, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //MisterijaKisobrana
  855. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //ProMarine
  856. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Fantom
  857. { CSW_P90, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //ProSapper
  858. { CSW_FAMAS, CSW_P228, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Solider
  859. { CSW_M4A1, CSW_SG552, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Crysis
  860. { CSW_G3SG1, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Price
  861. { CSW_AWP, CSW_M4A1, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //ProShooter
  862. { CSW_M3, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Robot
  863. { CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //VampirToza
  864. { CSW_ELITE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Blade
  865. { CSW_FIVESEVEN, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //BryanMils
  866. { CSW_FIVESEVEN, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Kamikaza
  867. { CSW_AUG, CSW_GLOCK18, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Crank
  868. { CSW_M249, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Heavy
  869. { CSW_ELITE, CSW_DEAGLE, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Gangster
  870. { CSW_GALIL, CSW_MP5NAVY, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Otrov
  871. { CSW_MAC10, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Mornar
  872. { CSW_AK47, CSW_M4A1, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Profestionalni Vojnik
  873. { CSW_MP5NAVY, CSW_DEAGLE, CSW_HEGRENADE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //JSO
  874. { CSW_KNIFE, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //OPS
  875. { CSW_AWP, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Snajperista
  876. //Premium
  877. { CSW_M4A1, CSW_ELITE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //SB Master
  878. { CSW_M4A1, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Drug Tito
  879. { CSW_M4A1, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Admiral
  880. { CSW_AWP, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Stalker
  881. { CSW_KNIFE, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Assassin
  882. { CSW_MP5NAVY, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Commando
  883. { CSW_M4A1, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //ProSwat
  884. { CSW_AWP, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Ghost
  885. { CSW_SCOUT, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Van Helsing
  886. { CSW_AK47, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Stalin
  887. { CSW_AWP, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //VasiljiZaljcev
  888. { CSW_SCOUT, CSW_GALIL, CSW_FLASHBANG, CSW_SMOKEGRENADE,CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Kadet
  889. { CSW_TMP, CSW_FAMAS, CSW_FIVESEVEN, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Oficir
  890. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Bacac Plamena
  891. //Golds Stars
  892. { CSW_GLOCK18, CSW_DEAGLE, CSW_MP5NAVY, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Jack
  893. { CSW_ELITE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Joh Wayane
  894. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Wolverine
  895. { CSW_SCOUT, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //RokerSMoravu
  896. { CSW_M4A1, CSW_HEGRENADE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Bjegunac
  897. { CSW_ELITE, CSW_DEAGLE, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // FuriosEMan
  898. { CSW_AK47, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // ProBombarder
  899. //Special
  900. { CSW_AK47, CSW_USP, CSW_ELITE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Cica Draza
  901. { CSW_M4A1, CSW_SCOUT, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Lovac
  902. { CSW_M4A1, CSW_TMP, CSW_P228, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Lopov
  903. { CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Ninja
  904. { CSW_MP5NAVY, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Svestenik
  905. { CSW_SCOUT, CSW_XM1014, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Predator
  906. { CSW_AK47, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Razarac
  907. { CSW_M4A1, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Batman
  908. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Boxer
  909. { CSW_XM1014, CSW_M3, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // SpiderMan
  910. { CSW_M4A1, CSW_DEAGLE, CSW_ELITE, CSW_HEGRENADE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Teleporter
  911. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Indian
  912. { CSW_AK47, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, // Shredder
  913. //Steam Only
  914. { CSW_AWP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Angry Max
  915. { CSW_M4A1, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Exit
  916. { CSW_M4A1, CSW_AK47, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Ranger
  917. { CSW_M4A1, CSW_AWP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Crazy Shooter
  918. //Super Premium
  919. { CSW_M4A1, CSW_AK47, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Glacier
  920. { CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Hitman
  921. { CSW_P228, CSW_M249, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //ProAssassin
  922. { CSW_MP5NAVY, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Dante
  923. { CSW_P90, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Bazukas
  924. { CSW_SCOUT, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Robin Hud
  925. { CSW_P90, CSW_UMP45, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //GoldMaster
  926. { CSW_AK47, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Inzinjer
  927. { CSW_M4A1, CSW_AK47, CSW_G3SG1, CSW_FAMAS, CSW_ELITE, CSW_HEGRENADE, CSW_KNIFE}, // Madjionicar
  928. //Vip
  929. { CSW_MP5NAVY, CSW_ELITE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Skakac
  930. { CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Samuraj
  931. { CSW_AK47, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Assassin Copy
  932. { CSW_SG552, CSW_MP5NAVY, CSW_USP, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Rusher
  933. { CSW_M3, CSW_FIVESEVEN, CSW_GLOCK18, CSW_HEGRENADE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE }, //Iron Man
  934. { CSW_AK47, CSW_DEAGLE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE, CSW_KNIFE } // Pikacu
  935. };
  936.  
  937. new bool:g_bFreezeTime = true, bool: g_bRadar[2], g_iMaxPlayers;
  938.  
  939. // Lang Data
  940.  
  941. new const g_szLangData[][][] = {
  942. // Lang Name Tag
  943. { "English", "en" },
  944. { "Srpski", "sr" }
  945. };
  946.  
  947. // Shop Data
  948.  
  949. new const g_szShopData[][] = {
  950. "ML_OBICAN_SHOPS",
  951. "ML_GOLD_SHOPS",
  952. "ML_POWER_SHOPS"
  953. };
  954.  
  955. // Classic Shop Data
  956.  
  957. new const g_ClassicShopData[][][] = {
  958. // Item Name Descripiton Price
  959. { "ML_ASPIRIN", "ML_ASPIRIN_DESC", "3000" },
  960. { "ML_MORFIJUM", "ML_MORFIJUM_DESC", "5000" },
  961. { "ML_REDBULL", "ML_REDBULL_DESC", "7500" },
  962. { "ML_LOTTO", "ML_LOTTO_DESC", "3000" },
  963. { "ML_ISKUSTVO", "ML_ISKUSTVO_DESC", "5000" },
  964. { "ML_SUPER_ISKUSTVO", "ML_SUPER_ISKUSTVO_DESC", "10000" },
  965. { "ML_SLUCAJNI_IZBOR", "ML_SLUCAJNI_IZBOR_DESC", "4000" }
  966. };
  967.  
  968. // Gold Shop Data
  969.  
  970. new const g_iGoldShopData[][] = {
  971. // Item Num Price
  972. { 8, 400 },
  973. { 10, 500 },
  974. { 13, 500 },
  975. { 20, 450 },
  976. { 32, 450 },
  977. { 37, 600 },
  978. { 38, 550 },
  979. { 41, 450 },
  980. { 43, 450 },
  981. { 45, 500 },
  982. { 70, 450 },
  983. { 52, 550 },
  984. { 53, 550 },
  985. { 54, 500 },
  986. { 55, 600 },
  987. { 56, 700 },
  988. { 57, 550 },
  989. { 58, 600 },
  990. { 59, 650 },
  991. { 62, 700 },
  992. { 64, 650 }
  993. };
  994.  
  995. // Power Shop Data
  996.  
  997. new const g_PowerShopData[][][] = {
  998. { "ML_PSHOP_DESET_DAMAGE", "100" },
  999. { "ML_PSHOP_DVADESET_DAMAGE", "200" },
  1000. { "ML_PSHOP_DOUBLE", "100" },
  1001. { "ML_PSHOP_TRIPLE", "200" },
  1002. { "ML_PSHOP_SPEED", "200" },
  1003. { "ML_PSHOP_AMMO", "300" },
  1004. { "ML_PSHOP_RECOIL", "300" }
  1005. };
  1006.  
  1007. enum PowerShopData {
  1008. bool: PowerShopData_10DMG,
  1009. bool: PowerShopData_20DMG,
  1010. bool: PowerShopData_Double,
  1011. bool: PowerShopData_Triple,
  1012. bool: PowerShopData_Speed,
  1013. bool: PowerShopData_Ammo,
  1014. bool: PowerShopData_Recoil
  1015. };
  1016.  
  1017. new g_PowerShopInfo[33][PowerShopData];
  1018.  
  1019. // Num of Perks which have HE Grenade. This Perks Will be Blocked when is Small Map
  1020.  
  1021. new const g_iPerksWithHe[] = { 10, 45, 60 };
  1022.  
  1023. // Small Maps
  1024.  
  1025. new const g_szMapsWithBlockedHe[][] = { "de_dust2_2x2", "de_dust2_3x3", "de_aztec_mini", "de_rats", "de_eldorado", "de_dust2_2x2_snow", "de_alexandra" };
  1026.  
  1027. // Entiites
  1028.  
  1029. new const g_szEntsNames[8][] = {
  1030. "Mine",
  1031. "Rocket",
  1032. "MedKit",
  1033. "PoisonKit",
  1034. "Bomb",
  1035. "Lighting",
  1036. "BonusBox",
  1037. "Hud Info"
  1038. };
  1039.  
  1040. enum {
  1041. ENT_Mine = 0,
  1042. ENT_Rocket,
  1043. ENT_MedKit,
  1044. ENT_PoisonKit,
  1045. ENT_Bomb,
  1046. ENT_Lighting,
  1047. ENT_BonusBox,
  1048. ENT_HudData
  1049. };
  1050.  
  1051. // Sounds
  1052.  
  1053. new const g_szSounds[11][] = {
  1054. "weapons/hit1_wolverine.wav",
  1055. "weapons/hit2_wolverine.wav",
  1056. "weapons/hit3_wolverine.wav",
  1057. "weapons/hit4_wolverine.wav",
  1058. "weapons/wall1_wolverine.wav",
  1059. "weapons/wall2_wolverine.wav",
  1060. "weapons/claws_off_wolverine.wav",
  1061. "ExitCOD/touched.wav",
  1062. "ExitCOD/select.wav",
  1063. "ExitCOD/levelup.wav",
  1064. "ambience/thunder_clap.wav"
  1065. };
  1066.  
  1067. new const g_szStartSounds[][] = {
  1068. "sound/ExitCOD/match_start02.mp3",
  1069. "sound/ExitCOD/match_start03.mp3",
  1070. "sound/ExitCOD/match_start04.mp3",
  1071. "sound/ExitCOD/match_start05.mp3",
  1072. "sound/ExitCOD/match_start06.mp3",
  1073. "sound/ExitCOD/match_start07.mp3",
  1074. "sound/ExitCOD/match_start08.mp3",
  1075. "sound/ExitCOD/match_start09.mp3"
  1076. };
  1077.  
  1078. // Models
  1079.  
  1080. new const g_szModels[][] = {
  1081. "models/ExitCOD/mine.mdl",
  1082. "models/ExitCOD/rpgrocket.mdl",
  1083. "models/ExitCOD/w_medkit.mdl",
  1084. "models/ExitCOD/w_medkitT.mdl",
  1085. "models/ExitCOD/w_trutko.mdl",
  1086. "models/ExitCOD/w_trutkot.mdl",
  1087. "models/ExitCOD/v_crossbow.mdl",
  1088. "models/ExitCOD/p_crossbow.mdl",
  1089. "models/ExitCOD/v_katana.mdl",
  1090. "models/ExitCOD/p_katana.mdl",
  1091. "models/ExitCOD/v_maceta.mdl",
  1092. "models/ExitCOD/v_wolverine.mdl",
  1093. "models/ExitCOD/p_wolverine.mdl",
  1094. "models/ExitCOD/v_wolverine_claws.mdl",
  1095. "models/ExitCOD/p_wolverine_claws.mdl",
  1096. "models/ExitCOD/v_predators.mdl",
  1097. "models/player/predator_class/predator_class.mdl",
  1098. "models/ExitCOD/v_batman.mdl",
  1099. "models/ExitCOD/v_hitman_usp.mdl",
  1100. "models/player/hitman_class/hitman_class.mdl",
  1101. "models/ExitCOD/v_phantom_knife.mdl",
  1102. "models/ExitCOD/v_gitara.mdl",
  1103. "models/ExitCOD/p_kisobran.mdl",
  1104. "models/ExitCOD/v_kisobran.mdl"
  1105. };
  1106.  
  1107. enum {
  1108. MDL_MINE = 0,
  1109. MDL_ROCKET,
  1110. MDL_MEDKIT,
  1111. MDL_T_MEDKIT,
  1112. MDL_POISONKIT,
  1113. MDL_T_POISONKIT,
  1114. MDL_V_CROSSBOW,
  1115. MDL_P_CROSSBOW,
  1116. MDL_V_KATANA,
  1117. MDL_P_KATANA,
  1118. MDL_V_MACETA,
  1119. MDL_V_WOLVERINE,
  1120. MDL_P_WOLVERINE,
  1121. MDL_V_WOLVERINE_CLAWS,
  1122. MDL_P_WOLVERINE_CLAWS,
  1123. MDL_V_PREDATORS,
  1124. MDL_V_PREDATORCLASS,
  1125. MDL_V_BATMAN,
  1126. MDL_V_HITMAN_USP,
  1127. MDL_P_HITMANCLASS,
  1128. MDL_V_PHANTOMKNIFE,
  1129. MDL_V_GITARA,
  1130. MDL_P_KISOBRAN,
  1131. MDL_V_KISOBRAN
  1132. };
  1133.  
  1134. // Sprites
  1135.  
  1136. enum SPRITES_IDS {
  1137. SPR_Light,
  1138. SPR_White,
  1139. SPR_Blast
  1140. };
  1141.  
  1142. new const g_szSprites[SPRITES_IDS][] = {
  1143. "sprites/lgtning.spr",
  1144. "sprites/white.spr",
  1145. "sprites/dexplo.spr"
  1146. };
  1147.  
  1148. new g_iSpriteID[SPRITES_IDS];
  1149.  
  1150. // Resources
  1151.  
  1152. new const g_szResources[2][] = {
  1153. "sprites/ExitCOD/weapon_claws.txt",
  1154. "sprites/ExitCOD/640hud21.spr"
  1155. };
  1156.  
  1157. // Messages
  1158.  
  1159. enum MESSAGES_IDS {
  1160. MSGID_ScreenFade,
  1161. MSGID_WeaponList,
  1162. MSGID_BarTime2,
  1163. MSGID_ScreenShake
  1164. };
  1165.  
  1166. new const g_szMessages[MESSAGES_IDS][] = {
  1167. "ScreenFade",
  1168. "WeaponList",
  1169. "BarTime2",
  1170. "ScreenShake"
  1171. };
  1172.  
  1173. new g_iMessageID[MESSAGES_IDS];
  1174.  
  1175. // Weapon Data
  1176.  
  1177. new const g_szWeaponsData[][][] = {
  1178. // Name Weapon Name
  1179. { "", "" },
  1180. { "P228", "weapon_p228" },
  1181. { "Shield", "" },
  1182. { "Scout", "weapon_scout" },
  1183. { "He Grenade", "weapon_hegrenade" },
  1184. { "XM1014", "weapon_xm1014" },
  1185. { "C4", "weapon_c4" },
  1186. { "MAC-10", "weapon_mac10" },
  1187. { "AUG", "weapon_aug" },
  1188. { "Smoke Grenade", "weapon_smokegrenade" },
  1189. { "Dual-Elites", "weapon_elite" },
  1190. { "FiveSeven", "weapon_fiveseven" },
  1191. { "UMP45", "weapon_ump45" },
  1192. { "SG550", "weapon_sg550" },
  1193. { "Galil", "weapon_galil" },
  1194. { "Famas", "weapon_famas" },
  1195. { "USP", "weapon_usp" },
  1196. { "Glock", "weapon_glock18" },
  1197. { "AWP", "weapon_awp" },
  1198. { "MP5", "weapon_mp5navy" },
  1199. { "M249", "weapon_m249" },
  1200. { "M3", "weapon_m3" },
  1201. { "M4A1", "weapon_m4a1" },
  1202. { "TMP", "weapon_tmp" },
  1203. { "G3SG1", "weapon_g3sg1" },
  1204. { "Flash Bang", "weapon_flashbang" },
  1205. { "Deagle", "weapon_deagle" },
  1206. { "SG552", "weapon_sg552" },
  1207. { "AK47", "weapon_ak47" },
  1208. { "Knife", "weapon_knife" },
  1209. { "P90", "weapon_p90" }
  1210. };
  1211.  
  1212. new const g_iWeaponsData[][] = {
  1213. // Max Ammo Clip
  1214. { 0, -1 },
  1215. { 52, 13 },
  1216. { 0, -1 },
  1217. { 90, 10 },
  1218. { 1, 1 },
  1219. { 32, 7 },
  1220. { 1, 1 },
  1221. { 100, 30 },
  1222. { 90, 30 },
  1223. { 1, 1 },
  1224. { 120, 30 },
  1225. { 100, 20 },
  1226. { 100, 25 },
  1227. { 90, 30 },
  1228. { 90, 35 },
  1229. { 90, 25 },
  1230. { 100, 12 },
  1231. { 120, 20 },
  1232. { 30, 10 },
  1233. { 120, 30 },
  1234. { 200, 100 },
  1235. { 32, 8 },
  1236. { 90, 30 },
  1237. { 120, 30 },
  1238. { 90, 20 },
  1239. { 2, 2 },
  1240. { 35, 7 },
  1241. { 90, 30 },
  1242. { 90, 30 },
  1243. { 0, -1 },
  1244. { 100, 50 }
  1245. };
  1246.  
  1247. // Commands Data
  1248.  
  1249. new const g_szSayCommandsData[][][] = {
  1250. // Say Command Forward
  1251. { "/klasa", "IzaberiKlasu" },
  1252. { "/class", "IzaberiKlasu" },
  1253. { "/opis", "OpisKlase" },
  1254. { "/desc", "OpisKlase" },
  1255. { "/predmet", "OpisPredmetaIgraca" },
  1256. { "/perk", "OpisPredmetaIgraca" },
  1257. { "/item", "OpisPredmetaIgraca" },
  1258. { "/predmeti", "OpisSvihPredmeta" },
  1259. { "/perks", "OpisSvihPredmeta" },
  1260. { "/items", "OpisSvihPredmeta" },
  1261. { "/prodaj", "ProdajPredmet" },
  1262. { "/sell", "ProdajPredmet" },
  1263. { "/izbaci", "IzbaciPredmet" },
  1264. { "/drop", "IzbaciPredmet" },
  1265. { "/baci", "IzbaciPredmet" },
  1266. { "/reset", "KomandaResetujPoene" },
  1267. { "/jezik", "ChooseLang" },
  1268. { "/lang", "ChooseLang" },
  1269. { "/language", "ChooseLang" },
  1270. { "/shop", "Shop" },
  1271. { "/shops", "Shop" },
  1272. { "/sklep", "Shop" },
  1273. { "/menu", "Menu" },
  1274. { "/codmenu", "Menu" },
  1275. { "/komande", "Commands" },
  1276. { "/commands", "Commands" },
  1277. { "/cene", "Prices" },
  1278. { "/admin", "Prices" },
  1279. { "/price", "Prices" },
  1280. { "/prices", "Prices" },
  1281. { "/boost", "Boost" },
  1282. { "/bost", "Boost" },
  1283. { "/howtoboost", "Boost" },
  1284. { "/howboost", "Boost" },
  1285. { "/nagrade", "Awards" },
  1286. { "/nagrada", "Awards" },
  1287. { "/awards", "Awards" },
  1288. { "/award", "Awards" },
  1289. { "/daj", "DajNekomPredmet" },
  1290. { "/give", "DajNekomPredmet" },
  1291. { "/zameni", "ZameniPredmet" },
  1292. { "/get", "getLevel" },
  1293. { "/uzmi", "getLevel" },
  1294. { "/ranklvl", "SayRank" },
  1295. { "/lvlrank", "SayRank" },
  1296. { "/lvltop", "SayTop15" },
  1297. { "/toplvl", "SayTop15" },
  1298. { "/vips", "ProveriChat" },
  1299. { "/vipovi", "ProveriChat" },
  1300. { "/vipinfo", "VipsInfo" },
  1301. { "/infovip", "VipsInfo" }
  1302.  
  1303. };
  1304.  
  1305. new const g_szMenuItems[][] = {
  1306. "ML_KLASA",
  1307. "ML_PREDMET",
  1308. "ML_TIM",
  1309. "ML_SHOP",
  1310. "ML_CENE",
  1311. "ML_BOOST",
  1312. "ML_NAGRADE",
  1313. "ML_VIP_INFO",
  1314. "ML_KOMANDE",
  1315. "ML_RANK",
  1316. "ML_RESETUJ_POENE",
  1317. "ML_ADMIN_MENU"
  1318. };
  1319.  
  1320. new const g_szClassMenuData[][][] = {
  1321. { "ML_IZABERI_KLASU", "say /class" },
  1322. { "ML_OPIS_KLASE", "say /desc" }
  1323. };
  1324.  
  1325. new const g_szPerkMenuData[][][] = {
  1326. { "ML_OPIS_PREDMETA", "say /perk" },
  1327. { "ML_OPIS_SVIH_PREDMETA", "say /perks" },
  1328. { "ML_PRODAJ_PREDMET", "say /sell" },
  1329. { "ML_IZBACI_PREDMET", "say /drop" }
  1330. };
  1331.  
  1332. new const g_szTeamMenuData[][] = {
  1333. "\yTerrorist \w[\rT\w]",
  1334. "\yCounter-Terrorist \w[\rCT\w]^n",
  1335. "\wSpectacing \w[\dSPEC\w]"
  1336. };
  1337.  
  1338. new const zemlje[][] =
  1339. {
  1340. "\ySrbija", "\yHrvatska", "\yBosna i Hercegovina", "\yCrna Gora", "\yMakedonija", "\yBulgaria",
  1341. "\yRomania", "\yPokrajina", "\yAlbania", "\yAustria", "\yGermany", "\yRussia", "\ySlovenia", "\yItaly"
  1342. };
  1343.  
  1344. new const g_szCommandsItems[][][] = {
  1345. { "CMD_KLASA", "ML_IZABERI_KLASU" },
  1346. { "CMD_OPIS", "ML_COD_KLASE_OPIS" },
  1347. { "CMD_PREDMET", "ML_COD_PREDMET" },
  1348. { "CMD_PRODAJ", "ML_PRODAJ_PREDMET" },
  1349. { "CMD_IZBACI", "ML_IZBACI_PREDMET" },
  1350. { "CMD_PREDMETI", "ML_COD_OPIS_PREDMETA" },
  1351. { "CMD_RESET", "ML_COD_RESET" },
  1352. { "CMD_SHOP", "ML_COD_SHOPS" },
  1353. { "CMD_MENU", "ML_COD_MENI" },
  1354. { "CMD_CENE", "ML_CENE_SERVERA" },
  1355. { "CMD_BANKA", "ML_BANKA" },
  1356. { "CMD_KOMANDE", "ML_KOMANDE_SERVERA" },
  1357. { "CMD_BOOST", "ML_BOOST_INFO" },
  1358. { "CMD_NAGRADE", "ML_NAGRADE_SERVERA" },
  1359. { "CMD_LVLRANK", "ML_LEVEL_RANK_PRIKAZ" },
  1360. { "CMD_LVLTOP", "ML_LEVEL_TOP_PRIKAZ" }
  1361. };
  1362.  
  1363. new const g_szRankMenuData[][][] = {
  1364. { "\ySkill Rank", "say /rank" },
  1365. { "\ySkill TOP 15", "say /top15" },
  1366. { "\yLevel Rank", "say /lvlrank" },
  1367. { "\yLevel TOP 15", "say /toplvl" }
  1368. };
  1369.  
  1370. new const g_szAwardsMenuData[][] = {
  1371. "\yPrvih 5 Na TopTime Klasa",
  1372. "\yPrvih 3 Na Ranku Klasa",
  1373. "\yTop Boster Servera Klasa",
  1374. "\yTop Lvl Prvi = 350 Lvl-a",
  1375. "\yTop Lvl Drugi = 250 Lvl-a",
  1376. "\yTop Lvl Treci = 150 Lvl-a"
  1377. };
  1378.  
  1379. new const g_szPricesMenuData[][] = {
  1380. "\yCene Admina",
  1381. "\yCene VIP-a",
  1382. "\yCene Klasa",
  1383. "\yCene Ostalog"
  1384. };
  1385.  
  1386. new const g_szCeneAdminaMenuData[][] = {
  1387. "\yAdmin \r2 Boost",
  1388. "\yZamenik Heada \r5e Uplatnica",
  1389. "\yHead \r10e Uplatnica"
  1390. };
  1391.  
  1392. new const g_szCeneVipaMenuData[][] = {
  1393. "\yVIP \r3 Boost"
  1394. };
  1395.  
  1396. new const g_szCeneKlasaMenuData[][] = {
  1397. "\y[\rPremium\y]\w Klase",
  1398. "\y[\rGolds Stars\y]\w Klase",
  1399. "\y[\rSpecial\y]\w Klase",
  1400. "\y[\rSuper Premium\y]\w Klase"
  1401. };
  1402.  
  1403. new const g_szCenePremiumKlasaMenuData[][] = {
  1404. "\y[\rGS Master\y]\w (2 Boost)",
  1405. "\y[\rCompanion Tito\y]\w (2 Boost)",
  1406. "\y[\rAdmiral\y]\w (2 Boost)",
  1407. "\y[\rStalker\y]\w (2 Boost)",
  1408. "\y[\rAssassin\y]\w (1 Boost)",
  1409. "\y[\rCommando\y]\w (1 Boost)",
  1410. "\y[\rPro Swat\y]\w (2 Boost)",
  1411. "\y[\rGhost\y]\w (2 Boost)",
  1412. "\y[\rVan Helsing\y]\w (2 Boost)",
  1413. "\y[\rStalin\y]\w (2 Boost)",
  1414. "\y[\rVasilji Zaljcev\y]\w (2 Boost)",
  1415. "\y[\rKadet\y]\w (2 Boost)",
  1416. "\y[\rOfficir\y]\w (1 Boost)",
  1417. "\y[\rDrop Fire\y]\w (2 Boost)"
  1418. };
  1419.  
  1420. new const g_szCeneGoldsStarsKlasaMenuData[][] = {
  1421. "\y[\rJack\y]\w (3 Boost)",
  1422. "\y[\rDzon Vajen\y]\w (3 Boost)",
  1423. "\y[\rWolverin\y]\w (3 Boost)",
  1424. "\y[\rRoker S Moravu\y]\w (2 Boost)",
  1425. "\y[\rBjegunac\y]\w (3 Boost)",
  1426. "\y[\rFurios-E-Man\y]\w (2 Boost)",
  1427. "\y[\rProBomader\y]\w (2 Boost)"
  1428. };
  1429.  
  1430. new const g_szCeneSpecialKlasaMenuData[][] = {
  1431. "\y[\rCica Draza\y]\w (2 Boost)",
  1432. "\y[\rHunter\y]\w (2 Boost)",
  1433. "\y[\rLopov\y]\w (3 Boost)",
  1434. "\y[\rNinja\y]\w (5 Boost)",
  1435. "\y[\rSvestenik\y]\w (3 Boost)",
  1436. "\y[\rPredator\y]\w (3 Boost)",
  1437. "\y[\rRazarac\y]\w (3 Boost)",
  1438. "\y[\rBatman\y]\w (1 Boost)",
  1439. "\y[\rBoxer\y]\w (2 Boost)",
  1440. "\y[\rSpiderMan\y]\w (2 Boost)",
  1441. "\y[\rTeleporter\y]\w (2 Boost)",
  1442. "\y[\rIndian\y]\w (3 Boost)",
  1443. "\y[\rShredder\y]\w (2 Boost)"
  1444. };
  1445.  
  1446. new const g_szCeneSupePremKlasaMenuData[][] = {
  1447. "\y[\rGlacier\y]\w (3 Boost)",
  1448. "\y[\rHitman\y]\w (3 Boost)",
  1449. "\y[\rPro Assassin\y]\w (3 Boost)",
  1450. "\y[\rDante\y]\w (4 Boost)",
  1451. "\y[\rBazukas\y]\w (3 Boost)",
  1452. "\y[\rRobin Hud\y]\w (2 Boost)",
  1453. "\y[\Gold Master\y]\w (1 Boost)",
  1454. "\y[\rInzinjer\y]\w (4 Boost)",
  1455. "\y[\rMadjionicar\y]\w (3 Boost)"
  1456. };
  1457.  
  1458. new const g_szCeneOstaloMenuData[][] = {
  1459. "\y250 lvl \r1 Boost",
  1460. "\y5000 Gold \r1 Boost",
  1461. "\y5000 SP \r1 Boost"
  1462. };
  1463.  
  1464. #define MAX_PLAYERS 32
  1465.  
  1466. #define TASKID_REVIVE 1337
  1467. #define TASKID_RESPAWN 1338
  1468. #define TASKID_CHECKRE 1339
  1469. #define TASKID_CHECKST 13310
  1470. #define TASKID_ORIGIN 13311
  1471. #define TASKID_SETUSER 13312
  1472.  
  1473. #define pev_zorigin pev_fuser4
  1474. #define seconds(%1) ((1<<12) * (%1))
  1475.  
  1476. new SOUND_START[] = "items/medshot4.wav";
  1477. new SOUND_FINISHED[] = "items/smallmedkit2.wav";
  1478. new SOUND_FAILED[] = "items/medshotno1.wav";
  1479. new SOUND_EQUIP[] = "items/ammopickup2.wav";
  1480.  
  1481. enum
  1482. {
  1483. ICON_HIDE = 0,
  1484. ICON_SHOW,
  1485. ICON_FLASH
  1486. };
  1487.  
  1488. new bool:g_haskit[MAX_PLAYERS+1];
  1489. new Float:g_revive_delay[MAX_PLAYERS+1];
  1490. new Float:g_body_origin[MAX_PLAYERS+1][3];
  1491. new bool:g_wasducking[MAX_PLAYERS+1];
  1492.  
  1493. new g_msg_bartime;
  1494. new g_msg_statusicon;
  1495. new g_msg_clcorpse;
  1496. new Talas;
  1497. new bool: Zamrznut[ 33 ] = false;
  1498. new daj_igracu[33]
  1499. new bool:dobio_predmet[33]
  1500. new zamena_id[33];
  1501.  
  1502. #define Model "models/ExitCOD/v_foot.mdl"
  1503.  
  1504. new const Zvukovi[ ][ ] = {
  1505. "foot_slash.wav",
  1506. "foot_kick.wav"
  1507. };
  1508.  
  1509. new bool: Sut[33];
  1510.  
  1511. new const DatotekaSaCvarovima[ ] = "addons/amxmodx/configs/CODMW/Podesavanja.cfg";
  1512.  
  1513. #define NV_NAME "getLevel15"
  1514.  
  1515. enum player_struct {
  1516. mtime,bool:ftime,key[64]
  1517. }
  1518. new g_player[ 33 ][ player_struct ];
  1519.  
  1520. enum RankData { Data_SteamID[32], Data_Name[32], Data_Level };
  1521. new g_RankFile[64],Array:g_SteamID,Trie:g_Name,Trie:g_PlayerLevel,g_Top15[2048],g_Data[33][RankData],Steam_ID[33][35];
  1522.  
  1523. new goldVIP[ 33 ];
  1524.  
  1525. enum {
  1526. SCOREATTRIB_ARG_PLAYERID = 1,
  1527. SCOREATTRIB_ARG_FLAGS
  1528. };
  1529.  
  1530. enum ( <<= 1 ) {
  1531. SCOREATTRIB_FLAG_NONE = 0,
  1532. SCOREATTRIB_FLAG_DEAD = 1,
  1533. SCOREATTRIB_FLAG_BOMB,
  1534. SCOREATTRIB_FLAG_VIP
  1535. };
  1536.  
  1537. const WEAPONS_BITSUM = ( 1<<CSW_KNIFE | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4 )
  1538. new Float:cl_pushangle[ 33 ][ 3 ]
  1539.  
  1540. public plugin_init() {
  1541. register_plugin("COD:MW4", "1.0", "QTM_Peyote & N3u[T]r4L & Milutinke");
  1542.  
  1543. register_clcmd( "say", "ChatPrefiks" )
  1544. register_clcmd("say /shoplvl", "cmdShop", 0);
  1545. register_clcmd("say /banka", "Banka");
  1546. register_clcmd("say /bank", "Banka");
  1547.  
  1548. gVault = nvault_open("CodMod");
  1549. //Banka = nvault_open( "BankaGold" );
  1550.  
  1551. g_SteamID = ArrayCreate( 32, 1 );
  1552. g_Name = TrieCreate( );
  1553. g_PlayerLevel = TrieCreate( );
  1554.  
  1555. get_datadir( g_RankFile, charsmax( g_RankFile ) );
  1556. add( g_RankFile, charsmax( g_RankFile ), "/toplvl.ini" );
  1557.  
  1558. if( !dir_exists( "addons/amxmodx/configs/CODMW/" ) ) mkdir( "addons/amxmodx/configs/CODMW/" );
  1559.  
  1560. register_dictionary("exit_cod_mw4.txt");
  1561. register_dictionary("ostalo.txt");
  1562. register_dictionary("bank.txt");
  1563. register_dictionary("codmenu.txt");
  1564.  
  1565. register_think(g_szEntsNames[ENT_MedKit], "fw_Think_MedKit");
  1566. register_think(g_szEntsNames[ENT_PoisonKit], "fw_Think_PoisonKit");
  1567. register_think(g_szEntsNames[ENT_HudData], "fw_Think_HudInfo");
  1568.  
  1569. RegisterHam(Ham_TakeDamage, "player", "fw_Ham_TakeDamage");
  1570. RegisterHam(Ham_Spawn, "player", "fw_Ham_Spawn_Post", 1);
  1571. RegisterHam(Ham_Touch, "armoury_entity", "fw_Ham_Touch");
  1572. RegisterHam(Ham_Touch, "weaponbox", "fw_Ham_Touch");
  1573. RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_Item_AddToPlayer", true);
  1574. RegisterHam( Ham_Player_PreThink, "player", "PlayerPreThink" );
  1575.  
  1576. new szWeapon[17];
  1577. for(new i=1; i<=CSW_P90; i++) {
  1578. if(!(g_iBadWeapons & (1<<i)) && get_weaponname(i, szWeapon, charsmax(szWeapon))) {
  1579. RegisterHam(Ham_Weapon_Reload, szWeapon, "fw_Ham_Weapon_Reload_Post", 1);
  1580. RegisterHam(Ham_Item_Holster, szWeapon, "fw_Ham_Item_Holster");
  1581. }
  1582. }
  1583.  
  1584. for(new i=1; i<sizeof(g_szWeaponsData); i++) if(g_szWeaponsData[i][1][0]) RegisterHam(Ham_Item_Deploy, g_szWeaponsData[i][1], "fw_Ham_Item_Deploy_Post", 1);
  1585.  
  1586. register_forward(FM_Touch, "fw_Touch");
  1587. register_forward(FM_AddToFullPack, "fw_AddToFullPack", 1);
  1588. register_forward(FM_TraceLine, "fw_TraceLine");
  1589. register_forward(FM_CmdStart, "fw_CmdStart");
  1590. register_forward(FM_TraceLine, "fw_TraceLine");
  1591. register_forward(FM_EmitSound, "fw_EmitSound");
  1592.  
  1593. register_event("StatusValue", "fw_Event_StatusValueTeam", "be", "1=1");
  1594. register_event("StatusValue", "fw_Event_StatusValue", "be", "1=2", "2!0");
  1595. register_event("StatusValue", "fw_Event_StatusValueHide", "be", "1=1", "2=0");
  1596.  
  1597. register_logevent("fw_LogEvent_RoundStart", 2, "1=Round_Start");
  1598.  
  1599. register_message(get_user_msgid("Health"), "fw_Msg_Health");
  1600. register_message(get_user_msgid("ShowMenu"), "fw_Msg_ShowMenu");
  1601. register_message(get_user_msgid("VGUIMenu"), "fw_Msg_VGUIMenu");
  1602.  
  1603. register_event("DeathMsg", "fw_Event_DeathMsg", "ade");
  1604. register_event("DeathMsg", "event_death", "a")
  1605. register_event("Damage", "fw_Event_Damage", "b", "2!=0");
  1606. register_event("CurWeapon","fw_Event_CurWeapon","be", "1=1");
  1607. register_event("HLTV", "fw_Event_HLTV", "a", "1=0", "2=0");
  1608.  
  1609. register_touch(g_szEntsNames[ENT_Rocket], "*" , "fw_TouchRocket");
  1610. register_touch(g_szEntsNames[ENT_Mine], "player", "fw_TouchMine");
  1611.  
  1612. for(new CvarData:i=CvarData_DayXP; i<CvarData; i++) g_CvarInfo[i] = register_cvar(g_szCvarsData[i][0], g_szCvarsData[i][1]);
  1613.  
  1614. for(new HudData:i=HudData_LevelUP; i<HudData; i++) g_HudInfo[i] = CreateHudSyncObj();
  1615.  
  1616. for(new i; i<sizeof(g_szSayCommandsData); i++) register_client_command(g_szSayCommandsData[i][0], g_szSayCommandsData[i][1]);
  1617.  
  1618. for(new MESSAGES_IDS:i=MSGID_ScreenFade; i<MESSAGES_IDS; i++) g_iMessageID[i] = get_user_msgid(g_szMessages[i]);
  1619. g_msg_clcorpse = get_user_msgid("ClCorpse")
  1620. g_msg_statusicon= get_user_msgid("StatusIcon")
  1621. register_event("HLTV", "event_hltv", "a", "1=0", "2=0")
  1622.  
  1623. register_forward(FM_PlayerPostThink, "fwd_playerpostthink")
  1624. register_forward(FM_EmitSound, "fwd_emitsound")
  1625. register_message(g_msg_clcorpse, "message_clcorpse")
  1626.  
  1627. g_iMaxPlayers = get_maxplayers();
  1628.  
  1629. register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
  1630.  
  1631. register_clcmd("ExitCOD/weapon_claws", "HookWeapon");
  1632.  
  1633. set_task(2.0, "ScanRadar", _, _, _, "b");
  1634. ShowInfo();
  1635.  
  1636. register_concmd("cod_classes", "CmdClassesList", ADMIN_KICK, " - Show Players Classes");
  1637. register_concmd("cod_reload_classes", "CmdReloadClasses", ADMIN_KICK, " - Reload Classes");
  1638.  
  1639. register_clcmd("nightvision", "Menu");
  1640.  
  1641. g_msg_bartime = get_user_msgid("BarTime")
  1642. g_msg_clcorpse = get_user_msgid("ClCorpse")
  1643. g_msg_statusicon= get_user_msgid("StatusIcon")
  1644.  
  1645.  
  1646. if( !file_exists( DatotekaSaCvarovima ) ) {
  1647. new Linija[ 256 ];
  1648. for(new CvarData:i=CvarData_DayXP; i<CvarData; i++) {
  1649. formatex( Linija, charsmax( Linija ), "^"%s^" ^"%s^" ", g_szCvarsData[ i ][ 0 ], g_szCvarsData[ i ][ 1 ] );
  1650. write_file( DatotekaSaCvarovima, Linija );
  1651. }
  1652. }
  1653.  
  1654. server_cmd( "exec %s", DatotekaSaCvarovima );
  1655. server_exec( );
  1656.  
  1657. LoadRanks( );
  1658. ArraySort( g_SteamID, "SortRanks" );
  1659. WriteTop15( );
  1660.  
  1661. new weapon_name[ 24 ]
  1662. for ( new i = 1; i <= 30; i++ ) {
  1663.  
  1664. if ( !( WEAPONS_BITSUM & 1 << i ) && get_weaponname( i, weapon_name, 23 ) ) {
  1665.  
  1666. RegisterHam( Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Pre" );
  1667. RegisterHam( Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Post", 1 );
  1668. }
  1669. }
  1670. }
  1671.  
  1672. public message_clcorpse()
  1673. return PLUGIN_HANDLED
  1674. // Natives
  1675.  
  1676. public plugin_natives() {
  1677. register_native("cod_set_user_level", "fw_Native_SetLevel", 1);
  1678. register_native("cod_get_user_level", "fw_Native_GetLevel", 1);
  1679.  
  1680. register_native("cod_set_user_xp", "fw_Native_SetXP", 1);
  1681. register_native("cod_get_user_xp", "fw_Native_GetXP", 1);
  1682.  
  1683. register_native("cod_get_level_xp", "fw_Native_GetLevelXP", 1);
  1684.  
  1685. register_native("cod_set_user_gold", "fw_Native_SetGold", 1);
  1686. register_native("cod_get_user_gold", "fw_Native_GetGold", 1);
  1687. register_native("cod_podesi_sp", "fw_Native_SetSP", 1);
  1688. register_native("cod_sp_igraca", "fw_Native_GetSP", 1);
  1689.  
  1690. register_native("cod_set_user_intelligence", "fw_Native_SetIntelligence", 1);
  1691. register_native("cod_set_user_energy", "fw_Native_SetEnergy", 1);
  1692. register_native("cod_set_user_trim", "fw_Native_SetTrim", 1);
  1693. register_native("cod_set_user_stamina", "fw_Native_SetStamina", 1);
  1694. register_native("cod_set_user_damage", "fw_Native_SetDamage", 1);
  1695.  
  1696. register_native("cod_get_user_class_name", "fw_Native_GetUserClassName", 1);
  1697. register_native("cod_get_user_class_id", "fw_Native_GetUserClass", 1);
  1698. register_native("cod_get_user_class_desc", "fw_Native_GetUserClassDesc", 1);
  1699.  
  1700. register_native("cod_get_class_name", "fw_Native_GetClassName", 1);
  1701. register_native("cod_get_class_id", "fw_Native_GetClass", 1);
  1702. register_native("cod_get_class_desc", "fw_Native_GetClassDesc", 1);
  1703. register_native("cod_get_class_num", "fw_Native_GetClassNum", 1);
  1704.  
  1705. register_native("cod_get_user_perk_name", "fw_Native_GetUserPerkName", 1);
  1706. register_native("cod_get_user_perk_id", "fw_Native_GetUserPerk", 1);
  1707. register_native("cod_get_user_perk_desc", "fw_Native_GetUserPerkDesc", 1);
  1708.  
  1709. register_native("cod_get_perk_name", "fw_Native_GetPerkName", 1);
  1710. register_native("cod_get_perk_id", "fw_Native_GetPerk", 1);
  1711. register_native("cod_get_perk_desc", "fw_Native_GetPerkDesc", 1);
  1712. register_native("cod_get_perk_num", "fw_Native_GetPerkNum", 1);
  1713.  
  1714. register_native("cod_remove_vault", "fw_Native_RemoveVault", 1);
  1715.  
  1716. register_native("cod_has_user_characters", "HasUserCharacters", 1);
  1717. register_native("cod_get_user_characters", "GetCharacters", 1);
  1718.  
  1719. register_native( "cod_iskustvo_igraca", "NativeIskustvoIgraca", 1 );
  1720. register_native( "cod_podesi_iskustvo_igraca", "NativePodesiIskustvoIgraca", 1 );
  1721.  
  1722. register_native( "cod_set_user_perk", "fw_Native_SetUserPerk", 1 );
  1723. }
  1724. public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
  1725.  
  1726. new flager = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
  1727.  
  1728. if( goldVIP[ flager ] )
  1729. set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
  1730. }
  1731.  
  1732. public fw_Native_SetUserPerk( id, Broj ) {
  1733. Obrisipredmet( id );
  1734. GivePerk( id, Broj );
  1735. }
  1736. public NativeIskustvoIgraca( id )
  1737. return g_PlayerInfo[id][g_iXP];
  1738.  
  1739. public NativePodesiIskustvoIgraca( id, Broj )
  1740. return g_PlayerInfo[id][g_iXP] = Broj;
  1741.  
  1742. public fw_Native_SetLevel(Index, iValue) g_PlayerInfo[Index][g_iLevel] = iValue;
  1743.  
  1744. public fw_Native_GetLevel(Index) return g_PlayerInfo[Index][g_iLevel];
  1745.  
  1746. public fw_Native_SetXP(Index, iValue) {
  1747. g_PlayerInfo[Index][g_iXP] = iValue;
  1748. ProveriNivo(Index);
  1749. }
  1750.  
  1751. public fw_Native_GetXP(id) return g_PlayerInfo[id][g_iXP];
  1752.  
  1753. public fw_Native_GetLevelXP(iValue) return g_iLevelXP[iValue];
  1754.  
  1755. public fw_Native_SetGold(Index, iValue) g_PlayerInfo[Index][g_iGold] = iValue;
  1756.  
  1757. public fw_Native_GetGold(Index) return g_PlayerInfo[Index][g_iGold];
  1758.  
  1759. public fw_Native_SetSP(Index, iValue) g_PlayerInfo[Index][g_iSP] = iValue;
  1760.  
  1761. public fw_Native_GetSP(Index) return g_PlayerInfo[Index][g_iSP];
  1762.  
  1763. public fw_Native_SetIntelligence(Index, iValue) g_PlayerInfo[Index][g_iIntelligence] = iValue;
  1764.  
  1765. public fw_Native_SetEnergy(Index, iValue) g_PlayerInfo[Index][g_iEnergy] = iValue;
  1766.  
  1767. public fw_Native_SetTrim(Index, iValue) g_PlayerInfo[Index][g_iTrim] = iValue;
  1768.  
  1769. public fw_Native_SetStamina(Index, iValue) g_PlayerInfo[Index][g_iStamina] = iValue;
  1770.  
  1771. public fw_Native_SetDamage(Index, iValue) g_PlayerInfo[Index][g_iDamage] = iValue;
  1772.  
  1773. public fw_Native_GetUserClassName(Index, szOutPut[], iLen) {
  1774. param_convert(2);
  1775. copy(szOutPut, iLen, Klase[g_PlayerInfo[Index][g_iClass]][0]);
  1776. }
  1777.  
  1778. public fw_Native_GetUserClass(Index) return g_PlayerInfo[Index][g_iClass];
  1779.  
  1780. public fw_Native_GetUserClassDesc(Index, szOutPut[], iLen) {
  1781. param_convert(2);
  1782. copy(szOutPut, iLen, Klase[g_PlayerInfo[Index][g_iClass]][1]);
  1783. }
  1784.  
  1785. public fw_Native_GetClassName(iClass, szOutPut[], iLen) {
  1786. param_convert(2);
  1787. copy(szOutPut, iLen, Klase[iClass][0]);
  1788. }
  1789.  
  1790. public fw_Native_GetClass(const szClassName[]) {
  1791. param_convert(1);
  1792. for(new i=0; i<sizeof(Klase); i++) if(equal(szClassName, Klase[i][0])) return i;
  1793. return 0;
  1794. }
  1795.  
  1796. public fw_Native_GetClassDesc(iClass, szOutPut[], iLen) {
  1797. param_convert(2);
  1798. copy(szOutPut, iLen, Klase[iClass][1]);
  1799. }
  1800.  
  1801. public fw_Native_GetClassNum() return sizeof(Klase);
  1802.  
  1803. public fw_Native_GetUserPerkName(Index, szOutPut[], iLen) {
  1804. param_convert(2);
  1805. copy(szOutPut, iLen, g_szPerksData[predmet_igraca[Index][0]][0]);
  1806. }
  1807.  
  1808. public fw_Native_GetUserPerk(Index) return predmet_igraca[Index][0];
  1809.  
  1810. public fw_Native_GetUserPerkDesc(Index, szOutPut[], iLen) {
  1811. param_convert(2);
  1812. copy(szOutPut, iLen, g_szPerksData[predmet_igraca[Index][0]][1]);
  1813. }
  1814.  
  1815. public fw_Native_GetPerkName(iPerk, szOutPut[], iLen) {
  1816. param_convert(2);
  1817. copy(szOutPut, iLen, g_szPerksData[iPerk][0]);
  1818. }
  1819.  
  1820. public fw_Native_GetPerk(const szPerkName[]) {
  1821. param_convert(1);
  1822. for(new i=0; i<sizeof(g_szPerksData); i++) if(equal(szPerkName, g_szPerksData[i][0])) return i;
  1823. return 0;
  1824. }
  1825.  
  1826. public fw_Native_GetPerkDesc(iPerk, szOutPut[], iLen) {
  1827. param_convert(2);
  1828. copy(szOutPut, iLen, g_szPerksData[iPerk][1]);
  1829. }
  1830.  
  1831. public fw_Native_GetPerkNum() return sizeof(g_szPerksData);
  1832.  
  1833. public fw_Native_RemoveVault() {
  1834. nvault_prune(gVault, 0, get_systime());
  1835. //nvault_prune(Banka, 0, get_systime());
  1836.  
  1837. for( new i = 1; i <= get_maxplayers( ); i++ ) {
  1838. if( is_user_alive( i ) ) user_silentkill( i );
  1839.  
  1840. g_haskit[i] = false;
  1841. static ent;
  1842. while((ent = fm_find_ent_by_owner(ent, "fake_corpse", i)) != 0) fm_remove_entity(ent);
  1843. g_PlayerInfo[i][g_szUserPrivilegies][0] = '^0';
  1844. Zamrznut[ i ] = false;
  1845.  
  1846. DeleteSkills(i);
  1847. ObrisiZadatke(i);
  1848. Obrisipredmet(i);
  1849. ObrisiIteme(i);
  1850. ObrisiEntitie(i);
  1851. client_cmd( i, "say /rs" );
  1852. }
  1853.  
  1854. unlink( "addons/amxmodx/data/file_vault/Banka.txt" );
  1855. nvault_close( gVault );
  1856. server_cmd( "changelevel de_dust2" );
  1857. }
  1858.  
  1859. public HasUserCharacters(Index) {
  1860. if(g_PlayerInfo[Index][g_szUserPrivilegies][0]) return true;
  1861. return false;
  1862. }
  1863.  
  1864. public GetCharacters(Index, szOutPut[], iLen) {
  1865. param_convert(2);
  1866. copy(szOutPut, iLen, g_PlayerInfo[Index][g_szUserPrivilegies][0]);
  1867. }
  1868.  
  1869. LoadRanks( ) {
  1870.  
  1871. new f = fopen( g_RankFile, "r" );
  1872.  
  1873. if ( !f )
  1874. return;
  1875.  
  1876. new Data[ 96 ], SteamID[ 32 ], Name[ 32 ], iLevel[ 16 ];
  1877.  
  1878. while( !feof( f ) )
  1879. {
  1880. fgets( f, Data, 96 );
  1881.  
  1882. if ( !strlen( Data ) )
  1883. continue;
  1884.  
  1885. parse( Data, SteamID, charsmax( SteamID ), Name, charsmax( Name ), iLevel, charsmax( iLevel ) );
  1886. ArrayPushString( g_SteamID, SteamID );
  1887. TrieSetString( g_Name, SteamID, Name );
  1888. TrieSetCell( g_PlayerLevel, SteamID, str_to_num( iLevel ) );
  1889. }
  1890. fclose( f );
  1891. }
  1892. SaveRanks( ) {
  1893.  
  1894. new f = fopen( g_RankFile, "w+" );
  1895.  
  1896. if( !f )
  1897. return;
  1898.  
  1899. for (new Position, Size = ArraySize( g_SteamID ), SteamID[ 32 ], Name[ 32 ], iLevel; Position < Size; Position++ ) {
  1900.  
  1901. ArrayGetString( g_SteamID, Position, SteamID, charsmax( SteamID ) );
  1902. TrieGetString( g_Name, SteamID, Name, charsmax( Name ) );
  1903. TrieGetCell( g_PlayerLevel, SteamID, iLevel );
  1904.  
  1905. fprintf( f, "%s ^"%s^" %d^n", SteamID, Name, iLevel );
  1906. }
  1907. fclose( f );
  1908. }
  1909. public plugin_cfg() server_cmd("amx_cvar sv_maxspeed 320");
  1910.  
  1911. public plugin_precache() {
  1912. new iEnt = create_entity("info_map_parameters");
  1913.  
  1914. DispatchKeyValue(iEnt, "buying", "3");
  1915. DispatchSpawn(iEnt);
  1916.  
  1917. for(new SPRITES_IDS:i=SPR_Light; i<SPRITES_IDS; i++) g_iSpriteID[i] = engfunc(EngFunc_PrecacheModel, g_szSprites[i]);
  1918.  
  1919. for(new i=0; i<sizeof(g_szSounds); i++) engfunc(EngFunc_PrecacheSound, g_szSounds[i]);
  1920. for(new i=0; i<sizeof(g_szModels); i++) engfunc(EngFunc_PrecacheModel, g_szModels[i]);
  1921. for(new i=0; i<sizeof(g_szResources); i++) engfunc(EngFunc_PrecacheGeneric, g_szResources[i]);
  1922. for(new i=0; i<sizeof(g_szStartSounds); i++) engfunc(EngFunc_PrecacheGeneric, g_szStartSounds[i]);
  1923.  
  1924. precache_model("models/player/arctic/arctic.mdl")
  1925. precache_model("models/player/terror/terror.mdl")
  1926. precache_model("models/player/leet/leet.mdl")
  1927. precache_model("models/player/guerilla/guerilla.mdl")
  1928. precache_model("models/player/gign/gign.mdl")
  1929. precache_model("models/player/sas/sas.mdl")
  1930. precache_model("models/player/gsg9/gsg9.mdl")
  1931. precache_model("models/player/urban/urban.mdl")
  1932. precache_model("models/player/vip/vip.mdl")
  1933.  
  1934. precache_sound(SOUND_START)
  1935. precache_sound(SOUND_FINISHED)
  1936. precache_sound(SOUND_FAILED)
  1937. precache_sound(SOUND_EQUIP)
  1938.  
  1939. CreateClassesFile();
  1940.  
  1941. Talas = precache_model("sprites/shockwave.spr");
  1942. precache_model( Model );
  1943. precache_sound( Zvukovi[ 0 ] );
  1944. precache_sound( Zvukovi[ 1 ] );
  1945.  
  1946. if( !dir_exists( "addons/amxmodx/configs/CODMW/VIP" ) ) { mkdir( "addons/amxmodx/configs/CODMW/VIP/" ); }
  1947.  
  1948. if( !file_exists( "addons/amxmodx/configs/CODMW/VIP/Vipovi.ini" ) )
  1949. {
  1950. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "************************************************")
  1951. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "; Ovde se dodaju vipovi")
  1952. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "; Format Dodavanja:")
  1953. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "; <Steam> <Nick>")
  1954. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "")
  1955. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "; Primeri dodatih vipova:")
  1956. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "; STEAM_0:0:93453258 Nick")
  1957. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini","************************************************")
  1958. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "")
  1959. write_file("addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", "")
  1960. }
  1961. if( !file_exists( "addons/amxmodx/configs/CODMW/VIP/VipInfo.txt" ) )
  1962. {
  1963. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<html>")
  1964. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<head>")
  1965. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<style type=^"text/css^">")
  1966. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "body {")
  1967. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "background-color: #000000;")
  1968. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "font-family:Verdana,Tahoma;")
  1969. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", " }")
  1970. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "</style>")
  1971. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", " <meta http-equiv=^"Content-Type^" content=^"text/html; charset=windows-1257^">")
  1972. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "</head>")
  1973. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<font size=^"2^" color=^"#e0a518^"><center>VipInfo:</center></font><br />")
  1974. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<font size=^"1^" color=^"#c0c0ff^">")
  1975. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<UL>")
  1976. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatna energija koju vip dobija kada se spawnuje = 50</LI><br>")
  1977. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatne pare koje vip dobija kada se spawnuje = 3000</LI><br>")
  1978. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatni stit koji vip dobije kada se spawnuje = 100</LI><br>")
  1979. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatna energija koju vip dobije kada ubije nekog = 15</LI><br>")
  1980. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatna energija koju vip dobije kada upuca nekog u glavu = 20</LI><br>")
  1981. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatni stit koji vip dobija kada ubije nekog = 10</LI><br>")
  1982. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatni stit koji vip dobija kada upuca nekog u glavu = 15</LI><br>")
  1983. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Vip ima Bunny Hop</UL><br>")
  1984. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Bombe koje vip dobija na pocetku = gdzf</UL><br>")
  1985. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Dodatno ostecenje koje vip nanosi protivniku = 10</UL><br>")
  1986. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Koliko puta vip moze da skoci 3</UL><br>")
  1987. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>VIP ima sve klase</UL><br>")
  1988. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Kada VIP padne, neskida mu se Energija</UL><br>")
  1989. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Gravitacija koju vip ima [0.85]</UL><br>")
  1990. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Vip ima neograniceno municije + ne trza puska kada puca</UL><br>")
  1991. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<LI TYPE=square>Vip je otporan na Head Shoot</UL><br>")
  1992. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "<font size=^"1^" color=^"#00c000^"><b><strong>Cena VIP-a je 3 Boost-a</strong></b></font><br />")
  1993. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "</body>")
  1994. write_file("addons/amxmodx/configs/CODMW/VIP/VipInfo.txt", "</html>")
  1995. }
  1996.  
  1997. }
  1998. CreateClassesFile() {
  1999. tCharacters = TrieCreate();
  2000. tPassword = TrieCreate();
  2001.  
  2002. if(!file_exists(g_szFile))
  2003. write_file(g_szFile, "" );
  2004.  
  2005. new iFile = fopen(g_szFile, "rt");
  2006.  
  2007. while(iFile && !feof(iFile)) {
  2008. static szData[512], szDataItems[3][64];
  2009.  
  2010. fgets(iFile, szData, charsmax(szData));
  2011.  
  2012. if(!szData[0] || szData[0] == ';' || szData[0] == '/' && szData[1] == '/') continue;
  2013.  
  2014. if(parse(szData, szDataItems[0], 63, szDataItems[1], 63, szDataItems[2], 63) < 3) continue;
  2015.  
  2016. TrieSetString(tCharacters, szDataItems[0], szDataItems[2]);
  2017. TrieSetString(tPassword, szDataItems[0], szDataItems[1]);
  2018. }
  2019.  
  2020. fclose(iFile);
  2021.  
  2022. return 0;
  2023. }
  2024.  
  2025. public CmdClassesList(id, iLevel, iCid) {
  2026. if(!cmd_access(id, iLevel, iCid, 1)) return 1;
  2027.  
  2028. static iPlayers[32], iPlayersNum;
  2029. get_players(iPlayers, iPlayersNum);
  2030.  
  2031. console_print(id, "^n*** --== Lista Igracevih Klasa ==-- ***^n ");
  2032. console_print(id, "User ID - Name - SteamID - Flagovi Klasa^n ");
  2033.  
  2034. for(new i=0; i<iPlayersNum; i++) {
  2035. new iPlayer = iPlayers[i];
  2036.  
  2037. if(is_user_bot(iPlayer) || is_user_hltv(iPlayer)) continue;
  2038.  
  2039. console_print(id, "#%d | Nick: %s | SteamID: %s | Flagovi: %s", get_user_userid(iPlayer), g_PlayerInfo[iPlayer][g_szName], g_PlayerInfo[iPlayer][g_szSteamID], g_PlayerInfo[iPlayer][g_szUserPrivilegies]);
  2040. }
  2041.  
  2042. console_print(id, "^n*** --== Lista Igracevih Klasa ==-- ***^n ");
  2043.  
  2044. return 1;
  2045. }
  2046.  
  2047. public CmdReloadClasses(id, iLevel, iCid) {
  2048. if(!cmd_access(id, iLevel, iCid, 1)) return 1;
  2049.  
  2050. TrieDestroy(tCharacters);
  2051. TrieDestroy(tPassword);
  2052.  
  2053. CreateClassesFile();
  2054. for(new i=1; i<=g_iMaxPlayers; i++) set_flags(i);
  2055.  
  2056. console_print(id, "Classes Reloaded");
  2057.  
  2058. return 1;
  2059. }
  2060.  
  2061. public HookWeapon(id) {
  2062. engclient_cmd(id, "weapon_knife");
  2063. return PLUGIN_HANDLED;
  2064. }
  2065.  
  2066. public pfn_keyvalue(iEnt) {
  2067. new szClassName[20], szDummy[2];
  2068. copy_keyvalue(szClassName, charsmax(szClassName), szDummy, charsmax(szDummy), szDummy, charsmax(szDummy));
  2069.  
  2070. if(equal(szClassName, "info_map_parameters")) {
  2071. remove_entity(iEnt);
  2072. return 1;
  2073. }
  2074.  
  2075. return 0;
  2076. }
  2077.  
  2078. public fw_Msg_Health(MsgID, MsgDest, iEnt) {
  2079. if(!is_user_alive( iEnt )) return 0;
  2080.  
  2081. static iHP; iHP = get_msg_arg_int(1);
  2082.  
  2083. if(iHP > 255 && (iHP % 256) == 0) set_msg_arg_int(1, ARG_BYTE, ++iHP);
  2084.  
  2085. if(entity_get_float(iEnt, EV_FL_health) > MAX_HP) entity_set_float(iEnt, EV_FL_health, MAX_HP);
  2086.  
  2087. return 0;
  2088. }
  2089.  
  2090. // Auto Join On Connect
  2091.  
  2092. public fw_Msg_ShowMenu(MsgID, MsgDest, iEnt) {
  2093. if(!should_autojoin(iEnt)) return 0;
  2094.  
  2095. static szTeamSelect[] = "#Team_Select";
  2096.  
  2097. static szTeamSelectCode[sizeof(szTeamSelect)];
  2098. get_msg_arg_string(4, szTeamSelectCode, charsmax(szTeamSelectCode));
  2099.  
  2100. if(!equal(szTeamSelectCode, szTeamSelect)) return 0;
  2101.  
  2102. SetForceJoinTeamTask(iEnt, MsgID);
  2103.  
  2104. return 1;
  2105. }
  2106.  
  2107. public fw_Msg_VGUIMenu(MsgID, MsgDest, iEnt) {
  2108. if(get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID || !should_autojoin(iEnt)) return 0;
  2109.  
  2110. SetForceJoinTeamTask(iEnt, MsgID);
  2111.  
  2112. return 1;
  2113. }
  2114.  
  2115. bool: should_autojoin(Index) return (!get_user_team(Index) && !task_exists(Index) && !(get_user_flags(Index) & ADMIN_RESERVATION));
  2116.  
  2117. SetForceJoinTeamTask(Index, iMessageID) {
  2118. static iMsgID[2];
  2119. iMsgID[0] = iMessageID;
  2120.  
  2121. set_task(0.1, "ForceJoinTeamTask", Index, iMsgID, sizeof(iMsgID));
  2122. }
  2123.  
  2124. public ForceJoinTeamTask(iMsgID[], Index) {
  2125. if(get_user_team(Index)) return;
  2126.  
  2127. static szParams[2][2];
  2128. for(new i=0; i<2; i++) formatex(szParams[i], charsmax(szParams[]), "5");
  2129.  
  2130. ForceTeamJoin(Index, iMsgID[0], szParams[0], szParams[1]);
  2131. }
  2132.  
  2133. stock ForceTeamJoin(Index, iMsgID, szTeam[] = "5", szClass[] = "0") {
  2134. static szJoinTeam[] = "jointeam";
  2135.  
  2136. if(szClass[0] == '0') {
  2137. engclient_cmd(Index, szJoinTeam, szTeam);
  2138. return;
  2139. }
  2140.  
  2141. static iMsgBlock, szJoinClass[] = "joinclass";
  2142. iMsgBlock = get_msg_block(iMsgID);
  2143.  
  2144. set_msg_block(iMsgID, BLOCK_SET);
  2145. engclient_cmd(Index, szJoinTeam, szTeam);
  2146. engclient_cmd(Index, szJoinClass, szClass);
  2147. set_msg_block(iMsgID, iMsgBlock);
  2148. }
  2149.  
  2150. new const maxClip[31] = {-1,13,-1,10,1,7,1,30,30,1,30,20,25,30,35,25,12,20,10,30,100,8,30,30,20,1,7,30,30,-1,50}
  2151.  
  2152. public fw_CmdStart(id, iHandleUC) {
  2153. if(!is_user_alive(id)) return FMRES_IGNORED;
  2154.  
  2155. static iButton, iFlags, iOldButtons, iWeaponID;
  2156.  
  2157. iButton = get_uc(iHandleUC, UC_Buttons);
  2158. iFlags = entity_get_int(id, EV_INT_flags);
  2159. iOldButtons = entity_get_int(id, EV_INT_oldbuttons);
  2160. iWeaponID = get_user_weapon(id);
  2161. new clip, ammo, weapon = get_user_weapon(id, clip, ammo);
  2162.  
  2163. if(goldVIP[ id ] || predmet_igraca[id][0] == 11 || predmet_igraca[id][0] == 9 || g_PlayerInfo[id][g_iClass] == Inzinjer || g_PlayerInfo[id][g_iClass] == Crank || g_PlayerInfo[id][g_iClass] == Blade || g_PlayerInfo[id][g_iClass] == Skakac || g_PowerShopInfo[id][PowerShopData_Double] || g_PowerShopInfo[id][PowerShopData_Double]) {
  2164. if((iButton & IN_JUMP) && !(iFlags & FL_ONGROUND) && !(iOldButtons & IN_JUMP) && (g_PlayerInfo[id][g_iJumps] > 0)) {
  2165. g_PlayerInfo[id][g_iJumps] --;
  2166.  
  2167. static Float: fVelocity[3];
  2168. entity_get_vector(id, EV_VEC_velocity, fVelocity);
  2169. fVelocity[2] = random_float(265.0, 285.0);
  2170. entity_set_vector(id, EV_VEC_velocity, fVelocity);
  2171. }
  2172.  
  2173. else if(iFlags & FL_ONGROUND) {
  2174. g_PlayerInfo[id][g_iJumps] = 0;
  2175.  
  2176. switch(g_PlayerInfo[id][g_iClass]) { case Inzinjer, Blade, Crank, Skakac: g_PlayerInfo[id][g_iJumps] ++; }
  2177.  
  2178. switch(predmet_igraca[id][0]) {
  2179. case 9: g_PlayerInfo[id][g_iJumps] += 2;
  2180. case 11: g_PlayerInfo[id][g_iJumps] ++;
  2181. }
  2182. if( goldVIP[ id ] )
  2183. g_PlayerInfo[id][g_iJumps] += 2;
  2184.  
  2185. if(g_PowerShopInfo[id][PowerShopData_Double] || g_PowerShopInfo[id][PowerShopData_Triple]) g_PlayerInfo[id][g_iJumps] += g_PowerShopInfo[id][PowerShopData_Double] ? 1 : 2;
  2186. }
  2187. }
  2188.  
  2189. if(g_PowerShopInfo[id][PowerShopData_Recoil] || g_PlayerInfo[id][g_iClass] == RokerSMoravu || g_PlayerInfo[id][g_iClass] == Glacier) {
  2190. new Float: fPunchAngle[3];
  2191. entity_set_vector(id, EV_VEC_punchangle, fPunchAngle);
  2192. }
  2193.  
  2194. switch(g_PlayerInfo[id][g_iClass]) {
  2195. case Phantom: if( iButton & IN_USE ) WallClimb( id );
  2196. case Stalker, Jack, Razarac: {
  2197. if(iButton & IN_DUCK) set_user_visible(id, 128);
  2198. else set_user_visible(id, 255);
  2199.  
  2200. if( g_PlayerInfo[id][g_iClass] == Phantom) {
  2201. if(iWeaponID == CSW_KNIFE) set_user_visible(id, 1);
  2202. else set_user_visible(id, 255);
  2203. }
  2204. }
  2205.  
  2206. case Assassin, ProAssassin, Boxer, Predator, AssassinCopy, Ghost, Shredder: {
  2207. if(iWeaponID == CSW_KNIFE) set_user_visible(id, 1);
  2208. else set_user_visible(id, 255);
  2209. }
  2210. case Ninja, VampirToza: {
  2211. if(iWeaponID == CSW_KNIFE) set_user_visible(id, 1);
  2212. else set_user_visible(id, 255);
  2213.  
  2214. if( iButton & IN_USE ) WallClimb( id );
  2215. }
  2216. case Samuraj: {
  2217. if((iButton & IN_JUMP) && (iButton & IN_DUCK)) WallClimb(id);
  2218.  
  2219. if((iButton & IN_DUCK) && (iWeaponID == CSW_KNIFE)) set_user_visible(id, 1);
  2220. else set_user_visible(id, 255);
  2221. }
  2222. case Wolverine: {
  2223. if(iWeaponID == CSW_KNIFE) set_user_visible(id, 10);
  2224. else set_user_visible(id, 255);
  2225. }
  2226. case DrugTito: {
  2227. if(iWeaponID == CSW_M4A1) set_user_visible(id, 1);
  2228. else set_user_visible(id, 255);
  2229. }
  2230. case Skakac: {
  2231. if((iButton & IN_USE) && (iOldButtons & IN_JUMP)) {
  2232. new Float: fVelocity[3];
  2233. VelocityByAim(id, 1, fVelocity);
  2234. entity_set_vector(id, EV_VEC_velocity, fVelocity);
  2235. }
  2236. }
  2237. case ProBombarder: if((iButton & IN_ATTACK2) && !(iOldButtons & IN_ATTACK2)) EksplozijaBombe(id);
  2238. case Officir: {
  2239. if((iButton & IN_USE) && !(iOldButtons & IN_USE)) {
  2240. static iTarget, iBody;
  2241. get_user_aiming(id, iTarget, iBody);
  2242.  
  2243. if(!is_user_alive(iTarget)) return FMRES_IGNORED;
  2244.  
  2245. if(!random(3)) UTIL_ScreenFade(iTarget, {255, 155, 50}, 16384.0, 16384.0, 230);
  2246. }
  2247. }
  2248. case Teleporter: {
  2249. if((iButton & IN_USE) && !(iOldButtons & IN_USE)) {
  2250. if(get_gametime() < (g_PlayerInfo[id][g_iClassData] + 5.0)) return 0;
  2251.  
  2252. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  2253. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_TELEPORT_AGAIN");
  2254.  
  2255. Teleport(id);
  2256.  
  2257. g_PlayerInfo[id][g_iClassData] = floatround(get_gametime());
  2258.  
  2259. set_task(5.0, "Info", id);
  2260. }
  2261. }
  2262. case Inzinjer: {
  2263. if( iButton & IN_DUCK ) set_user_visible( id, 1 );
  2264. else set_user_visible( id, 255 );
  2265. }
  2266. case RobinHud: {
  2267.  
  2268. if((iButton & IN_DUCK) && (iWeaponID == CSW_SCOUT)) set_user_visible(id, 40);
  2269. else set_user_visible( id, 255 );
  2270. }
  2271. case MisterijaKisobrana: {
  2272.  
  2273. if((iButton & IN_DUCK) && (iWeaponID == CSW_M3)) set_user_visible(id, 40);
  2274. else set_user_visible( id, 255 );
  2275. }
  2276. }
  2277.  
  2278. switch(predmet_igraca[id][0]) {
  2279. case 19: {
  2280. if((iButton & IN_USE) && !(iOldButtons & IN_USE)) {
  2281. if(predmet_igraca[id][1] > 0) {
  2282. entity_set_float(id, EV_FL_health, float(g_PlayerInfo[id][g_iMaxEnergy]));
  2283. predmet_igraca[id][1] --;
  2284. }
  2285. }
  2286. }
  2287. case 23: {
  2288. new Float: fPunchAngle[3];
  2289.  
  2290. entity_set_vector(id, EV_VEC_punchangle, fPunchAngle);
  2291. for(new i=0; i<3; i++) fPunchAngle[i] *= 0.9;
  2292. entity_set_vector(id, EV_VEC_punchangle, fPunchAngle);
  2293. }
  2294. case 38: {
  2295. if(iWeaponID == CSW_KNIFE) set_user_visible(id, 1);
  2296. else if(iWeaponID != CSW_KNIFE) set_user_visible(id, 255);
  2297. }
  2298. case 52: {
  2299. if((iButton & IN_USE) && !(iOldButtons & IN_USE)) {
  2300. if(get_gametime() < (predmet_igraca[id][1] + 30.0)) return 0;
  2301.  
  2302. Teleport(id);
  2303.  
  2304. predmet_igraca[id][1] = floatround(get_gametime());
  2305.  
  2306. set_task(30.0, "Info", id);
  2307. }
  2308. }
  2309. case 58:{
  2310. if(iButton & IN_DUCK) set_user_visible(id, 1);
  2311. else set_user_visible(id, 255);
  2312. }
  2313. }
  2314.  
  2315. if((iButton & IN_USE) && !(iOldButtons & IN_USE)) {
  2316. if(g_PlayerInfo[id][g_iMedKit] > 0) CreateMedKit(id);
  2317. if(g_PlayerInfo[id][g_iRocket] > 0) CreateRocket(id);
  2318. if(g_PlayerInfo[id][g_iMine] > 0) CreateMine(id);
  2319. if(g_PlayerInfo[id][g_iDynamite] > 0) CreateDynamite(id);
  2320. if(g_PlayerInfo[id][g_iPoisonKit] > 0) CreatePoisonKit(id);
  2321. if(g_PlayerInfo[id][g_iBomb] > 0) CreateBomb(id);
  2322. }
  2323.  
  2324. if( ( g_PlayerInfo[id][g_iClass] == Shredder || g_PlayerInfo[id][g_iClass] == Jack || g_PlayerInfo[id][g_iClass] == Skakac || g_PlayerInfo[id][g_iClass] == Inzinjer || g_PlayerInfo[id][g_iClass] == IronMan || g_PlayerInfo[id][g_iClass] == Ninja || predmet_igraca[id][0] == 28 || predmet_igraca[id][0] == 41) && (iButton & IN_JUMP) && (iButton & IN_DUCK) && (iFlags & FL_ONGROUND) && (get_gametime() > (predmet_igraca[id][1] + 4.0))) {
  2325. predmet_igraca[id][1] = floatround(get_gametime());
  2326.  
  2327. new Float: fVelocity[3];
  2328.  
  2329. VelocityByAim(id, ((predmet_igraca[id][0] == 41 || g_PlayerInfo[id][g_iClass] == ProAssassin || g_PlayerInfo[id][g_iClass] == Shredder || g_PlayerInfo[id][g_iClass] == Jack || g_PlayerInfo[id][g_iClass] == IronMan || g_PlayerInfo[id][g_iClass] == Ninja || g_PlayerInfo[id][g_iClass] == Inzinjer || g_PlayerInfo[id][g_iClass] == Skakac ) ? 1000 : 700), fVelocity);
  2330. fVelocity[2] = ((predmet_igraca[id][0] == 41 || g_PlayerInfo[id][g_iClass] == ProAssassin || g_PlayerInfo[id][g_iClass] == Shredder || g_PlayerInfo[id][g_iClass] == Jack || g_PlayerInfo[id][g_iClass] == IronMan || g_PlayerInfo[id][g_iClass] == Ninja || g_PlayerInfo[id][g_iClass] == Inzinjer || g_PlayerInfo[id][g_iClass] == Skakac ) ? random_float(300.0, 320.0) : random_float(265.0, 285.0));
  2331. entity_set_vector(id, EV_VEC_velocity, fVelocity);
  2332. }
  2333. if( goldVIP[ id ] ) {
  2334.  
  2335. new Float: fPunchAngle[3];
  2336. entity_set_vector(id, EV_VEC_punchangle, fPunchAngle);
  2337. }
  2338. if( goldVIP[ id ] && ((iButton & IN_RELOAD && !(iOldButtons & IN_RELOAD) && !(iButton & IN_ATTACK)) || !clip))
  2339. {
  2340. cs_set_user_bpammo(id, weapon, ammo-(maxClip[weapon]-clip));
  2341. new new_ammo = min(clip+ammo, maxClip[weapon]);
  2342. set_user_clip(id, new_ammo);
  2343. }
  2344. return FMRES_IGNORED;
  2345. }
  2346.  
  2347. public fw_Weapon_PrimaryAttack_Pre( entity ) {
  2348.  
  2349. new id = pev( entity, pev_owner );
  2350.  
  2351. if( goldVIP[ id ] || predmet_igraca[id][0] == 20 ) {
  2352.  
  2353. pev( id, pev_punchangle, cl_pushangle[ id ] );
  2354. return HAM_IGNORED;
  2355. }
  2356. return HAM_IGNORED;
  2357. }
  2358. public fw_Weapon_PrimaryAttack_Post( entity ) {
  2359.  
  2360. new id = pev( entity, pev_owner );
  2361.  
  2362. if( goldVIP[ id ] || predmet_igraca[id][0] == 20 ) {
  2363.  
  2364. new Float: push[ 3 ];
  2365. pev( id, pev_punchangle, push );
  2366. xs_vec_sub( push, cl_pushangle[ id ], push );
  2367. xs_vec_mul_scalar( push, 0.0, push );
  2368. xs_vec_add( push, cl_pushangle[ id ], push );
  2369. set_pev( id, pev_punchangle, push );
  2370. return HAM_IGNORED;
  2371. }
  2372. return HAM_IGNORED;
  2373. }
  2374. public SacuvajBanku( id ) {
  2375. if( is_user_bot( id ) ) return;
  2376.  
  2377. static Sadrzaj[ 32 ];
  2378. formatex( Sadrzaj, charsmax( Sadrzaj ), "%i %i", g_PlayerInfo[ id ][ g_iGold ], g_PlayerInfo[ id ][ g_iSP ] );
  2379. fvault_set_data( "Banka", g_PlayerInfo[ id ][ g_szSteamID ], Sadrzaj );
  2380. }
  2381.  
  2382. public UcitajBanku( id ) {
  2383. if( is_user_bot( id ) ) return;
  2384.  
  2385. static Sadrzaj[ 32 ], Podaci[ 2 ][ 16 ];
  2386. fvault_get_data( "Banka", g_PlayerInfo[ id ][ g_szSteamID ], Sadrzaj, charsmax( Sadrzaj ) );
  2387. parse( Sadrzaj, Podaci[ 0 ], charsmax( Podaci[ ] ), Podaci[ 1 ], charsmax( Podaci[ ] ) );
  2388. g_PlayerInfo[ id ][ g_iGold ] = str_to_num( Podaci[ 0 ] );
  2389. g_PlayerInfo[ id ][ g_iSP ] = str_to_num( Podaci[ 1 ] );
  2390. }
  2391.  
  2392.  
  2393. public ChooseLang(id) {
  2394. new szItem[32], iMenuID;
  2395. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_JEZIK");
  2396.  
  2397. iMenuID = menu_create(szItem, "ChooseLang_Handle");
  2398.  
  2399. for(new i=0; i<sizeof(g_szLangData); i++) {
  2400. formatex(szItem, charsmax(szItem), "\y%s", g_szLangData[i][0]);
  2401. menu_additem(iMenuID, szItem);
  2402. }
  2403.  
  2404. menu_display(id, iMenuID);
  2405.  
  2406. client_cmd(id, "spk ExitCOD/select");
  2407. }
  2408.  
  2409. public ChooseLang_Handle(id, iMenuID, iItem) {
  2410. client_cmd(id, "spk ExitCOD/select");
  2411.  
  2412. if(iItem == MENU_EXIT) {
  2413. menu_destroy(iMenuID);
  2414. return 0;
  2415. }
  2416.  
  2417. set_user_lang(id, g_szLangData[iItem][1]);
  2418.  
  2419. return 0;
  2420. }
  2421.  
  2422. public Shop(id) {
  2423. new szItem[32], iMenuID = menu_create("\rShops \w:", "Shop_Handle");
  2424.  
  2425. for(new i=0; i<sizeof(g_szShopData); i++) {
  2426. formatex(szItem, charsmax(szItem), "\y%L", id, g_szShopData[i]);
  2427. menu_additem(iMenuID, szItem);
  2428. }
  2429.  
  2430. menu_display(id, iMenuID);
  2431.  
  2432. client_cmd(id, "spk ExitCOD/select");
  2433. }
  2434.  
  2435. public Shop_Handle(id, iMenuID, iItem) {
  2436. client_cmd(id, "spk ExitCOD/select");
  2437.  
  2438. switch(iItem) {
  2439. case MENU_EXIT: {
  2440. menu_destroy(iMenuID);
  2441. return 0;
  2442. }
  2443. case 0: ClassicShop(id);
  2444. case 1: GoldShop(id);
  2445. case 2: PowerShop(id);
  2446. }
  2447.  
  2448. return 0;
  2449. }
  2450.  
  2451. public ClassicShop(id) {
  2452. new szItem[86], iMenuID;
  2453. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_OBICAN_SHOP");
  2454.  
  2455. iMenuID = menu_create(szItem, "ClassicShop_Handle");
  2456.  
  2457. for(new i=0; i<sizeof(g_ClassicShopData); i++) {
  2458. formatex(szItem, charsmax(szItem), "\y%L \w[\d%L\w] [\y%L\w: \r%s\y$\w]", id, g_ClassicShopData[i][0], id, g_ClassicShopData[i][1], id, "ML_CENA", g_ClassicShopData[i][2]);
  2459. menu_additem(iMenuID, szItem);
  2460. }
  2461.  
  2462. menu_display(id, iMenuID);
  2463.  
  2464. client_cmd(id, "spk ExitCOD/select");
  2465. }
  2466.  
  2467. public ClassicShop_Handle(id, iMenuID, iItem) {
  2468. client_cmd(id, "spk ExitCOD/select");
  2469.  
  2470. if(iItem == MENU_EXIT) {
  2471. menu_destroy(iMenuID);
  2472. return 0;
  2473. }
  2474.  
  2475. ClassicShop(id);
  2476.  
  2477. if(str_to_num(g_ClassicShopData[iItem][2]) > cs_get_user_money(id)) {
  2478. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L^1, %L ^4%s^3$^1.", id, "ML_NEMATE_NOVCA", id, g_ClassicShopData[iItem][0], id, "ML_TREBA_VAM", g_ClassicShopData[iItem][2]);
  2479. return 1;
  2480. }
  2481.  
  2482. switch(iItem) {
  2483. case 0, 1: {
  2484. if(get_user_health(id) >= g_PlayerInfo[id][g_iMaxEnergy] /*|| g_PlayerInfo[id][g_iClass] == Assassin*/) {
  2485. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_MAX_ENERGIJA");
  2486. return 0;
  2487. }
  2488. else {
  2489. new iNewEnergy = (get_user_health(id) + ((iItem == 0) ? 50 : 100) < g_PlayerInfo[id][g_iMaxEnergy]) ? get_user_health(id) + ((iItem == 0) ? 50 : 100) : g_PlayerInfo[id][g_iMaxEnergy];
  2490. entity_set_float(id, EV_FL_health, float(iNewEnergy));
  2491. }
  2492. }
  2493. case 2: {
  2494. set_user_gravity(id, get_user_gravity(id) - 0.3);
  2495. entity_set_float(id, EV_FL_speed, entity_get_float(id, EV_FL_speed) + 10.0);
  2496. }
  2497. case 3: {
  2498. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L", id, "ML_UCITAVAM");
  2499. switch(random_num(0, 13)) {
  2500. case 0: {
  2501. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 10$!", id, "ML_DOBIO_SI");
  2502. cs_set_user_money(id, cs_get_user_money(id) + 10);
  2503. }
  2504. case 1: {
  2505. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 %L!", id, "ML_DOBIO_SI", id, "ML_REDBULL");
  2506. set_user_gravity(id,get_user_gravity(id) - 0.3);
  2507. }
  2508. case 2, 5, 6, 8, 11: ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L!", id, "ML_NISI_NISTA");
  2509. case 3: {
  2510. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 300$!", id, "ML_DOBIO_SI");
  2511. cs_set_user_money(id, cs_get_user_money(id) + 300);
  2512. }
  2513. case 4: {
  2514. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 10000$!", id, "ML_DOBIO_SI");
  2515. cs_set_user_money(id, cs_get_user_money(id) + 10000);
  2516. }
  2517. case 7: {
  2518. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 16000$!", id, "ML_IZGUBIO_SI");
  2519. cs_set_user_money(id, cs_get_user_money(id) - 16000);
  2520. }
  2521. case 9: {
  2522. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 1000 EXP!", id, "ML_DOBIO_SI");
  2523. g_PlayerInfo[id][g_iXP] += 1000;
  2524. ProveriNivo(id);
  2525. }
  2526. case 10: {
  2527. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 500 EXP!", id, "ML_DOBIO_SI");
  2528. g_PlayerInfo[id][g_iXP] += 500;
  2529. ProveriNivo(id);
  2530. }
  2531. case 12: {
  2532. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L^3 100 EXP!", id, "ML_DOBIO_SI");
  2533. g_PlayerInfo[id][g_iXP] += 100;
  2534. ProveriNivo(id);
  2535. }
  2536. case 13: GivePerk(id, random_num(1, sizeof(g_szPerksData)-1));
  2537. }
  2538. }
  2539. case 4, 5: {
  2540. if( predmet_igraca[ id ][ 0 ] == 31 ) return 0;
  2541. g_PlayerInfo[id][g_iXP] += (iItem == 4) ? 500 : 1000;
  2542. ProveriNivo(id);
  2543. }
  2544. case 6: GivePerk(id, random_num(1, sizeof(g_szPerksData)-1));
  2545. }
  2546.  
  2547. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L^1.", id, "ML_KUPIO_SI", id, g_ClassicShopData[iItem][0]);
  2548. cs_set_user_money(id, cs_get_user_money(id) - str_to_num(g_ClassicShopData[iItem][2]));
  2549.  
  2550. return 0;
  2551. }
  2552.  
  2553. public GoldShop(id) {
  2554. new szItem[64], iMenuID;
  2555. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_GOLD_SHOP");
  2556.  
  2557. iMenuID = menu_create(szItem, "GoldShop_Handle");
  2558.  
  2559. for(new i=0; i<sizeof(g_iGoldShopData); i++) {
  2560. formatex(szItem, charsmax(szItem), "\y%L \w[\d%L\w] [\y%L\w: \r%i\yGOLD\w]", id, g_szPerksData[g_iGoldShopData[i][0]][0], id, "ML_PREDMET", id, "ML_CENA", g_iGoldShopData[i][1]);
  2561. menu_additem(iMenuID, szItem);
  2562. }
  2563.  
  2564. menu_display(id, iMenuID);
  2565.  
  2566. client_cmd(id, "spk ExitCOD/select");
  2567. }
  2568.  
  2569. public GoldShop_Handle(id, iMenuID, iItem) {
  2570. client_cmd(id, "spk COD/select");
  2571.  
  2572. if(iItem == MENU_EXIT) {
  2573. menu_destroy(iMenuID);
  2574. return 0;
  2575. }
  2576.  
  2577. GoldShop(id);
  2578.  
  2579. if(g_iGoldShopData[iItem][1] > g_PlayerInfo[id][g_iGold]) {
  2580. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L^1, %L ^3%i^4GOLD^1.", id, "ML_NEMATE_GOLDA", id, g_szPerksData[g_iGoldShopData[iItem][0]][0], id, "ML_TREBA_VAM", g_iGoldShopData[iItem][1]);
  2581. return 1;
  2582. }
  2583.  
  2584. for(new i; i<7; i++) {
  2585. if(g_iGoldShopData[iItem][0] == g_iBlockedPerks[g_PlayerInfo[id][g_iClass]][i]) {
  2586. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L %L.", id, "ML_VASA_KLASA_NEMOZE_PREDMET", id, g_szPerksData[g_iGoldShopData[iItem][0]][0]);
  2587. return 1;
  2588. }
  2589. }
  2590.  
  2591. for(new i; i<sizeof(g_iPerksWithHe); i++) {
  2592. if(g_iGoldShopData[iItem][0] == g_iPerksWithHe[i]) {
  2593. if(is_blocked_map()) {
  2594. client_print(id, print_center, "HE Grenade is Blocked!");
  2595. engclient_cmd(id, "weapon_knife");
  2596. return 1;
  2597. }
  2598. }
  2599. }
  2600.  
  2601. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L^1.", id, "ML_KUPIO_SI", id, g_szPerksData[g_iGoldShopData[iItem][0]][0]);
  2602. g_PlayerInfo[id][g_iGold] -= g_iGoldShopData[iItem][1];
  2603. GivePerk(id, g_iGoldShopData[iItem][0]);
  2604.  
  2605. return 0;
  2606. }
  2607.  
  2608.  
  2609. public PowerShop(id) {
  2610. new szItem[64], iMenuID;
  2611. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_PSHOP_NAME");
  2612.  
  2613. iMenuID = menu_create(szItem, "PowerShop_Handle");
  2614.  
  2615. for(new i=0; i<sizeof(g_PowerShopData); i++) {
  2616. formatex(szItem, charsmax(szItem), "\y%L \w[\y%L\w: \r%s \ySP\w]", id, g_PowerShopData[i][0], id, "ML_CENA", g_PowerShopData[i][1]);
  2617. menu_additem(iMenuID, szItem);
  2618. }
  2619.  
  2620. menu_display(id, iMenuID);
  2621.  
  2622. client_cmd(id, "spk ExitCOD/select");
  2623. }
  2624.  
  2625. public PowerShop_Handle(id, iMenuID, iItem) {
  2626. if(iItem == MENU_EXIT) {
  2627. menu_destroy(iMenuID);
  2628. return 0;
  2629. }
  2630.  
  2631. if(!is_user_alive( id )) return 1;
  2632.  
  2633. if(g_PlayerInfo[id][g_iSP] < str_to_num(g_PowerShopData[iItem][1])) {
  2634. ColorChat(id, TEAM_COLOR, "^4[COD:MW4 Shop] ^1%L ^3%L^1, %L ^3%s ^4SP.", id, "ML_NEMATE_NOVCA", id, g_PowerShopData[iItem][0], id, "ML_TREBA_VAM", g_PowerShopData[iItem][1]);
  2635. return 1;
  2636. }
  2637.  
  2638. switch(iItem) {
  2639. case 0: g_PowerShopInfo[id][PowerShopData_10DMG] = true, c[id] = 0;
  2640. case 1: g_PowerShopInfo[id][PowerShopData_20DMG] = true, c[id] = 1;
  2641. case 2: g_PowerShopInfo[id][PowerShopData_Double] = true, c[id] = 2;
  2642. case 3: g_PowerShopInfo[id][PowerShopData_Triple] = true, c[id] = 3;
  2643. case 4: {
  2644. g_PowerShopInfo[id][PowerShopData_Speed] = true;
  2645. entity_set_float(id, EV_FL_speed, entity_get_float(id, EV_FL_speed) + 15.0)
  2646. c[id] = 4;
  2647. }
  2648. case 5: g_PowerShopInfo[id][PowerShopData_Ammo] = true, c[id] = 5;
  2649. case 6: g_PowerShopInfo[id][PowerShopData_Recoil] = true, c[id] = 6;
  2650. }
  2651.  
  2652. g_PlayerInfo[id][g_iSP] -= str_to_num(g_PowerShopData[iItem][1]);
  2653. ColorChat(id, TEAM_COLOR, "[COD:MW4 Shop] ^1%L ^3%L.", id, "ML_KUPIO_SI", id, g_PowerShopData[iItem][0]);
  2654.  
  2655. return 0;
  2656. }
  2657. public fw_Ham_Spawn_Post(id) {
  2658. if(!is_user_alive( id ) || !is_user_connected( id )) return 0;
  2659.  
  2660. if(g_PlayerInfo[id][g_iNewClass]) {
  2661. g_PlayerInfo[id][g_iClass] = g_PlayerInfo[id][g_iNewClass];
  2662. g_PlayerInfo[id][g_iNewClass] = 0;
  2663. PromeniModel( id, 1 );
  2664.  
  2665. strip_user_weapons(id);
  2666. give_item(id, "weapon_knife");
  2667.  
  2668. UcitajPodatke(id, g_PlayerInfo[id][g_iClass]);
  2669. }
  2670.  
  2671. for(new i=0; i<18; i++) if(g_iBlockedPerks[g_PlayerInfo[id][g_iClass]][i] != 0) if(predmet_igraca[id][0] == g_iBlockedPerks[g_PlayerInfo[id][g_iClass]][i]) GivePerk(id, random_num(1, sizeof(g_szPerksData)-1));
  2672.  
  2673. set_user_visible(id, 225);
  2674. ObrisiIteme(id);
  2675. PostaviLang(id);
  2676. set_user_footsteps( id, 0 );
  2677. g_haskit[id] = false;
  2678. dobio_predmet[id] = false;
  2679.  
  2680. if(cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id, 1, random(255), random(255), random(255));
  2681.  
  2682. cod_set_user_sentry_guns(id, 0);
  2683. cod_get_flamethrower(id);
  2684. cod_get_bazooka(id);
  2685. cod_get_compound_bow(id)
  2686. PromeniModel( id, 1 );
  2687.  
  2688. if(!g_PlayerInfo[id][g_iClass]) {
  2689. IzaberiKlasu(id);
  2690. return 0;
  2691. }
  2692.  
  2693. for(new i; i<7; i++) give_weapon_id(id, g_iClassesWeapon[g_PlayerInfo[id][g_iClass]][i]);
  2694.  
  2695. switch(g_PlayerInfo[id][g_iClass]) {
  2696. case GoldMaster: g_PlayerInfo[id][g_iDynamite] = 2;
  2697. case ProSapper: g_PlayerInfo[id][g_iMine] = 5;
  2698. case Crysis: set_user_visible( id, 50 ), g_PlayerInfo[id][g_iRocket] = 2;
  2699. case ProShooter: g_PlayerInfo[id][g_iRocket] = 2;
  2700. case ProMarine: {
  2701. set_user_visible( id, 128 );
  2702. set_user_footsteps( id, 1 );
  2703. }
  2704. case Indian: {
  2705.  
  2706. set_user_footsteps( id, 1 );
  2707. }
  2708. case Commando: g_PlayerInfo[id][g_iDynamite] = 5;
  2709. case Admiral: g_PlayerInfo[ id ][ g_iRocket ] = 5,g_PlayerInfo[id][g_iClassData] = 8;
  2710. case Solider: g_PlayerInfo[id][g_iRocket] = 1, g_PlayerInfo[id][g_iClassData] = 3;
  2711. case VasiljiZaljcev: g_PlayerInfo[id][g_iClassData] = 3;
  2712. case Predator: set_user_visible( id, 50 ),set_user_footsteps(id, 1), cs_set_user_model(id, "predator_class"), set_user_info(id, "model", "predator_class");
  2713. case Hitman: set_user_visible(id, 170),set_user_footsteps(id, 1), cs_set_user_model(id, "hitman_class"), set_user_info(id, "model", "hitman_class");
  2714. case Svestenik: g_haskit[ id ] = true;
  2715. case JSO: g_PlayerInfo[ id ][ g_iMine ] = 2;
  2716. case Ops: give_item( id, "weapon_shield" );
  2717. case Bjegunac: g_PlayerInfo[id][g_iClassData] = 6;
  2718. case GSMaster: g_PlayerInfo[id][g_iClassData] = 4;
  2719. case CrazyShooter: g_PlayerInfo[ id ][ g_iRocket ] = 3;
  2720. case Dante: g_PlayerInfo[id][g_iDynamite] = 5;
  2721. case Mornar: g_PlayerInfo[id][g_iDynamite] = 1;
  2722. case Bazukas: cod_give_bazooka(id);
  2723. case Razarac: g_PlayerInfo[id][g_iDynamite] = 10;
  2724. case Heavy: g_PlayerInfo[id][g_iMine] = 1;
  2725. case MisterijaKisobrana: g_PlayerInfo[id][g_iMine] = 2;
  2726. case FuriosEMan: g_PlayerInfo[id][g_iDynamite] = 2,g_PlayerInfo[ id ][ g_iRocket ] = 1;
  2727. case Inzinjer: cod_set_user_sentry_guns(id, 2),g_PlayerInfo[id][g_iMine] = 5;
  2728. case Batman: set_user_visible( id, 50 );
  2729. case Lovac: g_PlayerInfo[id][g_iMine] = 3;
  2730. case ProBombarder: g_PlayerInfo[id][g_iBomb] = 10;
  2731. case Otrov: g_PlayerInfo[id][g_iPoisonKit] = 3;
  2732. case Madjionicar: {
  2733. if(!random(4)) {
  2734. new CsTeams:iTeam = cs_get_user_team(id);
  2735. cs_set_user_team(id, (iTeam == CS_TEAM_CT) ? CS_TEAM_T : CS_TEAM_CT);
  2736. ExecuteHam(Ham_CS_RoundRespawn, id);
  2737. cs_set_user_team(id, iTeam);
  2738. }
  2739. }
  2740. }
  2741.  
  2742. if(g_PlayerInfo[id][g_iPoints] > 0) DodelaPoena(id);
  2743. g_fLessDamage[id] = 0.7 * (1.0 - floatpower(1.1, -0.112311341 * float(g_PlayerInfo[id][g_iTrim])));
  2744. g_PlayerInfo[id][g_iMaxEnergy] = str_to_num(Klase[g_PlayerInfo[id][g_iClass]][2]) + g_PlayerInfo[id][g_iEnergy] * 2;
  2745. g_fSpeed[id] = STANDARDNA_BRZINA * str_to_float(Klase[g_PlayerInfo[id][g_iClass]][4]) + floatround(g_PlayerInfo[id][g_iStamina] * 1.3);
  2746.  
  2747. switch(predmet_igraca[id][0]) {
  2748. case 1, 44, 60: set_user_footsteps(id, 1);
  2749. case 10: give_item(id, "weapon_hegrenade");
  2750. case 13, 59: give_item(id, "weapon_awp");
  2751. case 16, 57: give_item(id, "weapon_deagle");
  2752. case 17: set_user_armor(id, 500);
  2753. case 18: {
  2754. if(g_PlayerInfo[id][g_iClass] != Assassin) {
  2755. g_PlayerInfo[id][g_iMaxEnergy] += 100;
  2756. g_fSpeed[id] -= 0.4;
  2757. }
  2758. }
  2759. case 19: predmet_igraca[id][1] = 1;
  2760. case 25: {
  2761. if(g_PlayerInfo[id][g_iClass] != Assassin) {
  2762. g_PlayerInfo[id][g_iMaxEnergy] += 50;
  2763. g_fSpeed[id] -= 0.3;
  2764. }
  2765. }
  2766. case 27: predmet_igraca[id][1] = 3;
  2767. case 29: set_user_gravity(id, get_user_gravity(id) - 0.4);
  2768. case 30: g_fSpeed[id] += 1.2;
  2769. case 31: cs_set_user_money(id, 16000);
  2770. case 33: g_fSpeed[id] += 4.0;
  2771. case 35: {
  2772. give_item(id, "weapon_usp");
  2773. give_item(id, "weapon_glock18");
  2774. give_item(id, "weapon_p228");
  2775. give_item(id, "weapon_deagle");
  2776. give_item(id, "weapon_elite");
  2777. }
  2778. case 36: {
  2779. give_item(id, "weapon_hegrenade");
  2780. give_item(id, "weapon_smokegrenade");
  2781. give_item(id, "weapon_flashbang");
  2782. give_item(id, "weapon_flashbang");
  2783. }
  2784. case 45: {
  2785. give_item(id, "weapon_hegrenade");
  2786. PromeniModel( id, 0 );
  2787. }
  2788. case 49: {
  2789. g_PlayerInfo[id][g_iMaxEnergy] += 200;
  2790. g_fSpeed[id] -= 0.4;
  2791. }
  2792. case 51: CreateUAV(id);
  2793. case 55: give_item(id, "weapon_scout");
  2794. case 56, 66: give_item(id, "weapon_m4a1");
  2795. case 48: set_user_gravity(id, get_user_gravity(id) - 0.3);
  2796. case 61: give_item(id, "weapon_galil");
  2797. case 62: {
  2798. give_item(id, "weapon_usp");
  2799. give_item(id, "weapon_mp5navy");
  2800. }
  2801. case 63: give_item(id, "weapon_m3");
  2802. case 64: give_item(id, "weapon_sg550");
  2803. case 65: give_item(id, "weapon_usp");
  2804. case 67: give_item(id, "weapon_ak47");
  2805. case 69: predmet_igraca[id][1] = 5;
  2806. case 70: {
  2807. give_item(id, "weapon_hegrenade");
  2808. give_item(id, "weapon_m4a1");
  2809. give_item(id, "weapon_deagle");
  2810. give_item(id, "weapon_deagle");
  2811. set_user_gravity(id, get_user_gravity(id) - 0.3);
  2812. }
  2813. }
  2814. if( goldVIP[ id ] ) {
  2815.  
  2816. give_item(id, "weapon_hegrenade");
  2817. give_item(id, "weapon_smokegrenade");
  2818. give_item(id, "weapon_flashbang");
  2819. give_item(id, "weapon_flashbang");
  2820. }
  2821. update_ammo(id);
  2822.  
  2823. entity_set_float(id, EV_FL_armorvalue, str_to_float(Klase[g_PlayerInfo[id][g_iClass]][3]));
  2824. entity_set_float(id, EV_FL_health, float(g_PlayerInfo[id][g_iMaxEnergy]));
  2825.  
  2826. return 0;
  2827. }
  2828.  
  2829. public CreateUAV(id) {
  2830. g_bRadar[get_user_team(id) == 1 ? 0 : 1] = true;
  2831.  
  2832. ScanRadar();
  2833. }
  2834.  
  2835. public ScanRadar() {
  2836. static iPlayers[32], iPlayersNum;
  2837. get_players(iPlayers, iPlayersNum, "gh");
  2838.  
  2839. for(new i=0; i<iPlayersNum; i++) {
  2840. new id = iPlayers[i];
  2841.  
  2842. if(!is_user_alive( id ) || !g_bRadar[get_user_team(id) == 1 ? 0 : 1]) continue;
  2843.  
  2844. ContinueRadarFunction(id);
  2845. }
  2846. }
  2847.  
  2848. ContinueRadarFunction(id) {
  2849. static iPlayers[32], iPlayersNum, iPlayerOrigin[3];
  2850. get_players(iPlayers, iPlayersNum, "gh");
  2851.  
  2852. for(new a=0; a<iPlayersNum; a++) {
  2853. new i = iPlayers[a];
  2854.  
  2855. if( !is_user_connected( i ) || !is_user_alive( i ) || !is_user_connected( id ) || is_user_bot( id ) || !is_user_alive( i ) || get_user_team(i) == get_user_team(id)) continue;
  2856.  
  2857. get_user_origin(i, iPlayerOrigin);
  2858.  
  2859. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("HostagePos"), {0,0,0}, id);
  2860. write_byte(id);
  2861. write_byte(i);
  2862. write_coord(iPlayerOrigin[0]);
  2863. write_coord(iPlayerOrigin[1]);
  2864. write_coord(iPlayerOrigin[2]);
  2865. message_end();
  2866.  
  2867. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("HostageK"), {0,0,0}, id);
  2868. write_byte(i);
  2869. message_end();
  2870. }
  2871. }
  2872.  
  2873. public fw_LogEvent_RoundStart() {
  2874. g_bFreezeTime = false;
  2875.  
  2876. for(new id=1; id<=g_iMaxPlayers; id++) {
  2877. if(!is_user_alive( id )) continue;
  2878.  
  2879. g_bRadar[0] = g_bRadar[1] = false;
  2880.  
  2881. set_task(0.1, "PostaviBrzinu", id+ZADATAK_POSTAVI_BRZINU);
  2882.  
  2883. if( goldVIP[ id ] ) {
  2884. g_PlayerInfo[id][g_iMaxEnergy] += 50;
  2885. cs_set_user_money(id, cs_get_user_money( id ) + 3000 );
  2886. set_user_armor(id, get_user_armor( id ) + 100 );
  2887.  
  2888. }
  2889. client_cmd(id, "mp3 play %s", g_szStartSounds[random_num(0, sizeof(g_szStartSounds)-1)]);
  2890. }
  2891. }
  2892.  
  2893. public PostaviBrzinu(id) {
  2894. id -= id > 32? ZADATAK_POSTAVI_BRZINU : 0;
  2895.  
  2896. if( Zamrznut[id])
  2897. {
  2898. set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) // stop motion
  2899. set_pev(id, pev_maxspeed, 1.0) // prevent from moving
  2900. return;
  2901. }
  2902.  
  2903. if(g_PlayerInfo[id][g_iClass]) entity_set_float(id, EV_FL_maxspeed, g_fSpeed[id]);
  2904. }
  2905.  
  2906. public fw_Event_HLTV() {
  2907. g_bFreezeTime = true;
  2908.  
  2909. for(new i; i<7; i++) remove_entity_name(g_szEntsNames[i]);
  2910. }
  2911.  
  2912. public fw_Ham_TakeDamage(Victim, Inflictor, Attacker, Float: fDamage, iDamageBits) {
  2913. if(!is_user_alive( Victim ) || !is_user_connected( Attacker ) || IsKilledTeamMate(Attacker, Victim) || IsSuicide(Attacker, Victim) || !g_PlayerInfo[Attacker][g_iClass]) return HAM_IGNORED;
  2914.  
  2915. if( g_PlayerInfo[ Attacker ][ g_iClass ] == RokerSMoravu && ( iDamageBits & DMG_SLASH ) )
  2916. fDamage = entity_get_float( Victim, EV_FL_health );
  2917.  
  2918. if( predmet_igraca[Victim][0] == 24 ) return HAM_IGNORED;
  2919.  
  2920. new iHealth = floatround( entity_get_float( Victim, EV_FL_health ) );
  2921. new iWeaponID = get_user_weapon(Attacker);
  2922. new bool: DesniKlik = get_user_button( Attacker ) & IN_ATTACK2 ? true : false;
  2923.  
  2924. if(iHealth < 2) return HAM_IGNORED;
  2925.  
  2926. if((predmet_igraca[Victim][0] == 27 || predmet_igraca[Victim][0] == 69) && predmet_igraca[Victim][1] > 0) {
  2927. predmet_igraca[Victim][1] --;
  2928. return HAM_SUPERCEDE;
  2929. }
  2930. if( g_PlayerInfo[Victim][g_iClass] == Solider && g_PlayerInfo[Victim][g_iClassData] > 0 ) {
  2931. g_PlayerInfo[Victim][g_iClassData]--;
  2932. return HAM_SUPERCEDE;
  2933. }
  2934.  
  2935. if(g_PlayerInfo[Victim][g_iTrim] > 0) fDamage -= g_fLessDamage[Victim] * fDamage;
  2936.  
  2937. if(g_PowerShopInfo[Attacker][PowerShopData_10DMG] || g_PowerShopInfo[Attacker][PowerShopData_20DMG]) fDamage += float(g_PowerShopInfo[Attacker][PowerShopData_10DMG] ? 10 : 20);
  2938.  
  2939. if(g_PlayerInfo[Attacker][g_iDamage] > 0) fDamage += float(g_PlayerInfo[Attacker][g_iDamage]/4);
  2940.  
  2941. if(g_PlayerInfo[Victim][g_iLevel] > 1000) fDamage += 200.0;
  2942. if(goldVIP[Attacker]) fDamage += 10.0;
  2943.  
  2944. static Float:Pozicija[3]
  2945. pev( Victim, pev_origin, Pozicija)
  2946.  
  2947. switch(predmet_igraca[Victim][0]) {
  2948. case 2, 3: fDamage -= random_float(1.0, 4.0);
  2949. case 4: fDamage = fDamage * 1.4 + g_PlayerInfo[Attacker][g_iIntelligence];
  2950. case 12: fDamage -= (5.0 < fDamage) ? 5.0 : fDamage;
  2951. case 40: if(iWeaponID == CSW_KNIFE) return HAM_SUPERCEDE;
  2952. case 43: if(iWeaponID == CSW_HEGRENADE) return HAM_SUPERCEDE;
  2953. }
  2954. if( goldVIP[Victim] ) if(iWeaponID == CSW_HEGRENADE) return HAM_SUPERCEDE;
  2955.  
  2956. switch(predmet_igraca[Attacker][0]) {
  2957. case 5: if(!UTIL_In_FOV(Victim, Attacker) && UTIL_In_FOV(Attacker, Victim)) fDamage *= 2.0;
  2958. case 8: if(iWeaponID == CSW_KNIFE && !(get_user_button(Attacker) & IN_ATTACK)) fDamage = float(iHealth);
  2959. case 10: if(iWeaponID == CSW_HEGRENADE) fDamage = float(iHealth);
  2960. case 13: if(iWeaponID == CSW_AWP && (iDamageBits & DMG_BULLET)) fDamage = float(iHealth);
  2961. case 21: fDamage += 10.0;
  2962. case 22: fDamage += 20.0;
  2963. case 34: if(!random(3)) entity_set_float(Attacker, EV_FL_health, floatmin(float(g_PlayerInfo[Attacker][g_iMaxEnergy]), entity_get_float(Attacker, EV_FL_health) + fDamage));
  2964. case 42: if(iDamageBits && DMG_BULLET) client_print(Attacker, print_center, "%d", floatround( entity_get_float( Victim, EV_FL_health ) ) );
  2965. case 45: if(random_num(1, predmet_igraca[Attacker][1]) == 1 && iWeaponID == CSW_HEGRENADE) fDamage = float(iHealth);
  2966. case 55: if(iWeaponID == CSW_SCOUT && !random(4)) fDamage = float(iHealth);
  2967. case 56: if(iWeaponID == CSW_M4A1 && !random(9)) fDamage = float(iHealth);
  2968. case 57: if(iWeaponID == CSW_DEAGLE && !random(6)) fDamage = float(iHealth);
  2969. case 59: if(iWeaponID == CSW_AWP && !random(3)) fDamage = float(iHealth);
  2970. case 60: if(iWeaponID == CSW_HEGRENADE && !random(2)) fDamage = float(iHealth);
  2971. case 61: if(iWeaponID == CSW_GALIL && !random(8)) fDamage = float(iHealth);
  2972. case 62: if((iWeaponID == CSW_USP && !random(7)) || (iWeaponID == CSW_MP5NAVY && !random(7))) fDamage = float(iHealth);
  2973. case 63: if(iWeaponID == CSW_M3 && !random(5)) fDamage = float(iHealth);
  2974. case 64: if(iWeaponID == CSW_SG550 && !random(8)) fDamage = float(iHealth);
  2975. }
  2976.  
  2977. switch(g_PlayerInfo[Victim][g_iClass]) { case Officir, Swat, ProSwat, Kadet, VanHelsing, Jack, Dante: if(iWeaponID == CSW_KNIFE) return HAM_SUPERCEDE; }
  2978.  
  2979. switch(g_PlayerInfo[Attacker][g_iClass]) {
  2980. case ProMarine, Blade, Ninja, Boxer: if(iWeaponID == CSW_KNIFE) fDamage = float(iHealth);
  2981. case Kadet: if(iWeaponID == CSW_SCOUT && !random(5)) fDamage = float(iHealth);
  2982. case Glacier: {
  2983. if( iWeaponID == CSW_AK47 && !random( 8 ) ) fDamage = float( iHealth );
  2984. if( iWeaponID == CSW_M4A1 && !random( 8 ) ) fDamage = float( iHealth );
  2985. }
  2986. case Crysis: if(iWeaponID == CSW_SG552 && !random(9)) fDamage = float(iHealth);
  2987. case Officir: if(iWeaponID == CSW_TMP && !random(8)) fDamage = float(iHealth);
  2988. case GSMaster: {
  2989. if( iWeaponID == CSW_M4A1 && !random( 5 ) ) fDamage = float( iHealth );
  2990. if( iWeaponID == CSW_ELITE && !random( 4 ) ) fDamage = float( iHealth );
  2991. }
  2992. case Madjionicar: {
  2993. if(iWeaponID == CSW_M4A1 && !random(8)) fDamage = float(iHealth);
  2994. if(iWeaponID == CSW_AK47 && !random(7)) fDamage = float(iHealth);
  2995. if(iWeaponID == CSW_G3SG1 && !random(8)) fDamage = float(iHealth);
  2996. if(iWeaponID == CSW_FAMAS && !random(8)) fDamage = float(iHealth);
  2997. if(iWeaponID == CSW_ELITE && !random(7)) fDamage = float(iHealth);
  2998. if(iWeaponID == CSW_KNIFE && !random(4)) fDamage = float(iHealth);
  2999. if(iWeaponID == CSW_HEGRENADE) fDamage = float(iHealth);
  3000.  
  3001. }
  3002. case Mornar: if( iWeaponID == CSW_MAC10 && !random( 10 ) ) fDamage = float( iHealth );
  3003. case Snajperista: {
  3004. if( iWeaponID == CSW_AWP && !random( 2 ) ) fDamage = float( iHealth );
  3005. if( iWeaponID == CSW_DEAGLE && !random( 4 ) ) fDamage = float( iHealth );
  3006. }
  3007. case JSO: if( iWeaponID == CSW_HEGRENADE ) fDamage = float( iHealth );
  3008. case CicaDraza: if( iWeaponID == CSW_AK47 && !random( 5 ) ) fDamage = float( iHealth );
  3009. case Ops: if( iWeaponID == CSW_DEAGLE && !random( 5 ) ) fDamage = float( iHealth );
  3010. case Gangster: {
  3011. if( iWeaponID == CSW_DEAGLE && !random( 4 ) ) fDamage = float( iHealth );
  3012. if( iWeaponID == CSW_ELITE && !random( 6 ) ) fDamage = float( iHealth );
  3013. }
  3014. case ProfesionalniVojnik: if( iWeaponID == CSW_AK47 && !random( 10 ) ) fDamage = float( iHealth );
  3015. case Bjegunac: {
  3016. if(iWeaponID == CSW_HEGRENADE) fDamage = float(iHealth);
  3017. if(iWeaponID == CSW_M4A1 && !random(6)) fDamage = float(iHealth);
  3018. }
  3019. case Price: {
  3020. if(iWeaponID == CSW_USP && !random(3)) fDamage = float(iHealth);
  3021. if(iWeaponID == CSW_G3SG1 && !random(5)) fDamage = float(iHealth);
  3022. }
  3023. case ProShooter: {
  3024. if(iWeaponID == CSW_M4A1 && !random(10)) fDamage = float(iHealth);
  3025. if(iWeaponID == CSW_AWP && !random(3)) fDamage = float(iHealth);
  3026. }
  3027. case Robot: if(iWeaponID == CSW_M3 && !random(3)) fDamage = float(iHealth);
  3028. case Svestenik: {
  3029. if(iWeaponID == CSW_MP5NAVY && !random(7)) fDamage = float(iHealth);
  3030. if(iWeaponID == CSW_USP && !random(4)) fDamage = float(iHealth);
  3031. if( !random( 5 ) ) client_cmd( Victim, "drop" );
  3032. }
  3033. case Assassin: if( iWeaponID == CSW_KNIFE && DesniKlik ) fDamage = float( iHealth );
  3034. case Hitman: if(iWeaponID == CSW_KNIFE && !(get_user_button(Attacker) & IN_ATTACK)) fDamage = float(iHealth);
  3035. case BryanMils: if(iWeaponID == CSW_FIVESEVEN) fDamage *= 3.0;
  3036. case Stalker: if(iWeaponID == CSW_AWP) fDamage = float(iHealth);
  3037. case RobinHud: if(iWeaponID == CSW_SCOUT) fDamage = float(iHealth);
  3038. case Skakac: if(iWeaponID == CSW_ELITE && !random(6)) fDamage = float(iHealth);
  3039. case ProSwat, Exit: if(iWeaponID == CSW_M4A1 && !random(5)) fDamage = float(iHealth);
  3040. case Ghost: {
  3041. if(iWeaponID == CSW_AWP) fDamage = float(iHealth);
  3042. if(iWeaponID == CSW_KNIFE) fDamage = float(iHealth);
  3043. }
  3044. case Stalin: if(iWeaponID == CSW_AK47 && !random(4)) fDamage = float(iHealth);
  3045. case GoldMaster: if(iWeaponID == CSW_UMP45 && !random(5)) fDamage = float(iHealth);
  3046. case VasiljiZaljcev: if(iWeaponID == CSW_AWP && !random(1)) fDamage = float(iHealth);
  3047. case Shredder: if(iWeaponID == CSW_AK47 && !random(10)) fDamage = float(iHealth);
  3048. case FuriosEMan: {
  3049. if(iWeaponID == CSW_DEAGLE && !random(6)) fDamage = float(iHealth);
  3050. if(iWeaponID == CSW_USP && !random(4)) fDamage = float(iHealth);
  3051. if(iWeaponID == CSW_ELITE && !random(5)) fDamage = float(iHealth);
  3052. }
  3053. case Spiderman: if((iWeaponID == CSW_XM1014 && !random(4)) || (iWeaponID == CSW_M3 && !random(3))) fDamage = float(iHealth);
  3054. case Heavy: {
  3055. if(iWeaponID == CSW_M249 && !random(9)) fDamage = float(iHealth);
  3056. if(iWeaponID == CSW_USP && !random(8)) fDamage = float(iHealth);
  3057. if( !random( 8 ) ) client_cmd( Victim, "drop" );
  3058. }
  3059. case JohnWayane: if(iWeaponID == CSW_ELITE && !random(6) ) fDamage = float(iHealth);
  3060. case Predator: {
  3061. if(iWeaponID == CSW_SCOUT) fDamage = float(iHealth);
  3062. if(iWeaponID == CSW_XM1014 && !random(10)) fDamage = float(iHealth);
  3063. if( iWeaponID == CSW_DEAGLE ) {
  3064. EfekatZamrzavanja( Victim );
  3065. EfekatZamrzavanjaPrsten( Pozicija );
  3066. }
  3067. }
  3068. case Ranger: {
  3069. if(iWeaponID == CSW_M4A1 && !random(7)) fDamage = float(iHealth);
  3070. if(iWeaponID == CSW_AK47 && !random(7)) fDamage = float(iHealth);
  3071. }
  3072. case AngryMax: if(iWeaponID == CSW_AWP) fDamage = float( iHealth );
  3073. case Dante: if( iWeaponID == CSW_MP5NAVY && !random( 5 ) ) fDamage = float( iHealth );
  3074. case VanHelsing: if( iWeaponID == CSW_SCOUT && !random( 10 )) fDamage = float(iHealth);
  3075. case Rusher: if( iWeaponID == CSW_M3 && !random( 4 )) fDamage = float(iHealth)
  3076. case ProAssassin: {
  3077. if(iWeaponID == CSW_M249 && !random(6)) fDamage = float(iHealth);
  3078. if( iWeaponID == CSW_KNIFE && DesniKlik ) fDamage = float( iHealth );
  3079. }
  3080. case RokerSMoravu: if(iWeaponID == CSW_SCOUT && !random(6)) fDamage = float(iHealth);
  3081. case Lopov: {
  3082. if(!random(4)) entity_set_float(Attacker, EV_FL_health, floatmin(float(g_PlayerInfo[Attacker][g_iMaxEnergy]), entity_get_float(Attacker, EV_FL_health) + fDamage));
  3083. if(iWeaponID == CSW_M4A1 && !random(4)) fDamage = float(iHealth);
  3084. }
  3085. case Lovac: {
  3086. if(iWeaponID == CSW_M4A1 && !random(4)) fDamage = float(iHealth);
  3087. if(iWeaponID == CSW_USP && !random(7)) fDamage = float(iHealth);
  3088. if(iWeaponID == CSW_SCOUT && !random(7)) fDamage = float(iHealth);
  3089. }
  3090. case Batman: {
  3091. if(iWeaponID == CSW_M4A1 && !random(6)) fDamage = float(iHealth);
  3092. if(iWeaponID == CSW_KNIFE && !random(3)) fDamage = float(iHealth);
  3093. }
  3094. case Razarac: {
  3095. if(iWeaponID == CSW_AK47 && !random(10)) fDamage = float(iHealth);
  3096. if(iWeaponID == CSW_DEAGLE && !random(6)) fDamage = float(iHealth);
  3097. }
  3098. case Inzinjer: {
  3099. if(iWeaponID == CSW_AK47 && !random(6)) fDamage = float(iHealth);
  3100. if(iWeaponID == CSW_USP && !random(4)) fDamage = float(iHealth);
  3101. }
  3102. case IronMan: {
  3103. if(iWeaponID == CSW_MP5NAVY && !random(8)) fDamage = float(iHealth);
  3104. if(iWeaponID == CSW_SG552 && !random(8)) fDamage = float(iHealth);
  3105. }
  3106. }
  3107.  
  3108. if( g_PlayerInfo[Attacker][g_iClass] == Blade && iWeaponID == CSW_ELITE && !random(3)) fDamage = float(iHealth);
  3109. if( g_PlayerInfo[Attacker][g_iClass] == Assassin && iWeaponID == CSW_DEAGLE && !random(4) ) fDamage = float( iHealth );
  3110. if( g_PlayerInfo[Attacker][g_iClass] == AssassinCopy && iWeaponID == CSW_DEAGLE && !random(4) ) fDamage = float( iHealth );
  3111.  
  3112. if(predmet_igraca[Victim][0] == 26 && random_num(1, predmet_igraca[Victim][1]) == 1) {
  3113. SetHamParamEntity(3, Victim);
  3114. SetHamParamEntity(1, Attacker);
  3115. }
  3116.  
  3117. if( g_PlayerInfo[Victim][g_iClass] == Stalin && ( fDamage == float( iHealth ) ) )
  3118. return HAM_SUPERCEDE;
  3119.  
  3120. SetHamParamFloat(4, fDamage);
  3121.  
  3122. return HAM_IGNORED;
  3123. }
  3124.  
  3125. public fw_Event_Damage(Victim) {
  3126. new Attacker = get_user_attacker(Victim);
  3127. new iDamage = read_data(2);
  3128.  
  3129. if(!is_user_alive( Attacker ) || IsSuicide(Attacker, Victim) || IsKilledTeamMate(Attacker, Victim) || !g_PlayerInfo[Attacker][g_iClass]) return 1;
  3130.  
  3131. if(predmet_igraca[Attacker][0] == 12 && random_num(1, predmet_igraca[Victim][1]) == 1 && is_user_alive( Victim )) UTIL_ScreenFade(Victim, {255, 155, 50}, 16384.0, 16384.0, 230);
  3132.  
  3133. set_hudmessage(170, 255, 255, -1.0, -1.0, 0, 2.0, 3.0);
  3134. ShowSyncHudMsg(Attacker, g_HudInfo[HudData_Damage], ">X<");
  3135.  
  3136. while(iDamage > 20) {
  3137. iDamage -= 20;
  3138. g_PlayerInfo[Attacker][g_iXP] ++;
  3139. }
  3140.  
  3141. ProveriNivo(Attacker);
  3142.  
  3143. return 0;
  3144. }
  3145.  
  3146. public fw_Event_StatusValueTeam(id) if(!is_user_bot( id ) && is_user_connected( id )) g_PlayerInfo[id][g_IsFriend] = read_data(2);
  3147.  
  3148. public fw_Event_StatusValue(id) if(!is_user_bot( id ) && is_user_connected( id )) CallOfDutyAim(id, ((g_PlayerInfo[id][g_IsFriend] == 1) ? "50 250 50" : "255 0 0"));
  3149.  
  3150. public fw_Event_StatusValueHide(id) if(!is_user_bot( id ) && is_user_connected( id )) CallOfDutyAim(id, "250 250 50");
  3151.  
  3152. public fw_Event_DeathMsg() {
  3153. static Attacker, Victim, HeadShot;
  3154.  
  3155. Attacker = read_data(1);
  3156. Victim = read_data(2);
  3157. HeadShot = read_data(3);
  3158.  
  3159. if(!IsClientPresent(Attacker)) return PLUGIN_CONTINUE;
  3160.  
  3161. new iWeaponID = get_user_weapon(Attacker);
  3162.  
  3163. if(!IsKilledTeamMate(Attacker, Victim) && g_PlayerInfo[Attacker][g_iClass]) {
  3164.  
  3165. new iKillXP = get_pcvar_num(g_CvarInfo[CvarData_DayXP]);
  3166. new iNovoIskustvo = get_pcvar_num(g_CvarInfo[CvarData_DayXP]);
  3167.  
  3168. new iNightXP = get_pcvar_num(g_CvarInfo[CvarData_NightXP]);
  3169. new iHSXP = get_pcvar_num(g_CvarInfo[CvarData_HeadShotXP]);
  3170.  
  3171. if(predmet_igraca[Attacker][0] == 48) iNovoIskustvo += iKillXP*3;
  3172.  
  3173. if(g_PlayerInfo[Attacker][g_iClass] == VasiljiZaljcev || predmet_igraca[Attacker][0] == 15 && g_iWeaponsData[1][iWeaponID] != -1) {
  3174. new iNovaEnergija = (get_user_health(Attacker) + 20 < g_PlayerInfo[Attacker][g_iMaxEnergy]) ? get_user_health(Attacker) + 20 : g_PlayerInfo[Attacker][g_iMaxEnergy];
  3175. set_user_clip(Attacker, g_iWeaponsData[1][iWeaponID]);
  3176. if( g_PlayerInfo[Attacker][g_iClass] != VasiljiZaljcev && predmet_igraca[Attacker][0] == 15 )
  3177. entity_set_float(Attacker, EV_FL_health, float(iNovaEnergija));
  3178. }
  3179.  
  3180. if(predmet_igraca[Attacker][0] == 50) entity_set_float(Attacker, EV_FL_health, entity_get_float(Attacker, EV_FL_health) + 100.0);
  3181.  
  3182. if(g_PlayerInfo[Victim][g_iClass] == Kamikaza) Explode(Victim);
  3183.  
  3184. if(!predmet_igraca[Attacker][0]) GivePerk(Attacker, random_num(1, sizeof g_szPerksData-2));
  3185.  
  3186. if(predmet_igraca[Attacker][0] == 14) {
  3187. new iNovaEnergija = (get_user_health(Attacker) + 50 < g_PlayerInfo[Attacker][g_iMaxEnergy]) ? get_user_health(Attacker) + 50 : g_PlayerInfo[Attacker][g_iMaxEnergy];
  3188. entity_set_float(Attacker, EV_FL_health, float(iNovaEnergija));
  3189. }
  3190. if( goldVIP[ Attacker ] ) {
  3191.  
  3192. new BonusHp, BonusAp, BonusPare, BonusXP;
  3193.  
  3194. if( HeadShot ) BonusHp = 20
  3195. else BonusHp = 15
  3196.  
  3197. if( HeadShot ) BonusAp = 20
  3198. else BonusAp = 15
  3199.  
  3200. if( HeadShot ) BonusPare = 20
  3201. else BonusPare = 15
  3202.  
  3203. if( HeadShot ) BonusXP = 30
  3204. else BonusXP = 40
  3205.  
  3206. set_user_health( Attacker, get_user_health( Attacker ) + BonusHp );
  3207. set_user_armor( Attacker, get_user_armor( Attacker ) + BonusAp );
  3208. cs_set_user_money( Attacker, cs_get_user_money( Attacker ) + BonusPare );
  3209. g_PlayerInfo[Attacker][g_iXP] += BonusXP;
  3210. }
  3211. g_PlayerInfo[Attacker][g_iGold] += HeadShot ? get_pcvar_num(g_CvarInfo[CvarData_KillGoldHs]) : get_pcvar_num(g_CvarInfo[CvarData_KillGold]);
  3212. g_PlayerInfo[ Attacker ][ g_iSP ] += HeadShot ? get_pcvar_num(g_CvarInfo[CvarData_KillSpHs]) : get_pcvar_num(g_CvarInfo[CvarData_KillSp]);
  3213. if(predmet_igraca[Attacker][0] == 46) if(!random(3)) g_PlayerInfo[Attacker][g_iGold] ++;
  3214.  
  3215. if(HeadShot) g_PlayerInfo[Attacker][g_iXP] += iHSXP;
  3216.  
  3217. new Time[10];
  3218. get_time("%H", Time, charsmax(Time));
  3219.  
  3220. new DnevnoVreme = (equal(Time, "9") || equal(Time, "10") || equal(Time, "11") || equal(Time, "12") || equal(Time, "13") || equal(Time, "14") || equal(Time, "15") || equal(Time, "16") || equal(Time, "17") || equal(Time, "18") || equal(Time, "19") || equal(Time, "20") || equal(Time, "21") || equal(Time, "22"));
  3221.  
  3222. if(DnevnoVreme) g_PlayerInfo[Attacker][g_iXP] += iNovoIskustvo;
  3223. else g_PlayerInfo[Attacker][g_iXP] += iNightXP;
  3224.  
  3225. set_hudmessage(255, 212, 0, 0.50, 0.33, 1, 6.0, 4.0);
  3226. ShowSyncHudMsg(Attacker, g_HudInfo[HudData_XP], "+%iXP", iNovoIskustvo);
  3227.  
  3228. g_PlayerInfo[Attacker][g_iXP] += iNovoIskustvo;
  3229.  
  3230. ObrisiEntitie(Victim);
  3231.  
  3232. }
  3233. ProveriNivo(Attacker);
  3234.  
  3235. if(predmet_igraca[Victim][0] == 7 && random_num(1, predmet_igraca[Victim][1]) == 1) set_task(0.1, "Provera", Victim+ZADATAK_PROVERA);
  3236.  
  3237. return PLUGIN_CONTINUE;
  3238. }
  3239.  
  3240. public fw_EmitSound(id, iChannel, const szSample[], Float: fVolume, Float: fAttn, iFlags, iPitch) {
  3241. if(!IsEntityPlayer(id)) return FMRES_IGNORED;
  3242.  
  3243. new iWeaponID = get_user_weapon(id);
  3244.  
  3245. switch(g_PlayerInfo[id][g_iClass]) {
  3246. case Wolverine: {
  3247. if(iWeaponID == CSW_KNIFE) {
  3248. if(equal(szSample, "weapons/knife_hit1.wav")) {
  3249. emit_sound(id, iChannel, "weapons/hit1_wolverine.wav", fVolume, fAttn, iFlags, iPitch);
  3250. return FMRES_SUPERCEDE;
  3251. }
  3252.  
  3253. if(equal(szSample, "weapons/knife_hit2.wav")) {
  3254. emit_sound(id, iChannel, "weapons/hit2_wolverine.wav", fVolume, fAttn, iFlags, iPitch);
  3255. return FMRES_SUPERCEDE;
  3256. }
  3257.  
  3258. if(equal(szSample, "weapons/knife_hit3.wav")) {
  3259. emit_sound(id, iChannel, "weapons/hit3_wolverine.wav", fVolume, fAttn, iFlags, iPitch);
  3260. return FMRES_SUPERCEDE;
  3261. }
  3262.  
  3263. if(equal(szSample, "weapons/knife_hit4.wav")) {
  3264. emit_sound(id, iChannel, "weapons/hit4_wolverine.wav", fVolume, fAttn, iFlags, iPitch);
  3265. return FMRES_SUPERCEDE;
  3266. }
  3267.  
  3268. if(equal(szSample, "weapons/knife_hitwall1.wav")) {
  3269. emit_sound(id, iChannel, "weapons/wall1_wolverine.wav", fVolume, fAttn, iFlags, iPitch);
  3270. return FMRES_SUPERCEDE;
  3271. }
  3272.  
  3273. if(equal(szSample, "weapons/knife_hitwall2.wav")) {
  3274. emit_sound(id, iChannel, "weapons/wall2_wolverine.wav", fVolume, fAttn, iFlags, iPitch);
  3275. return FMRES_SUPERCEDE;
  3276. }
  3277.  
  3278. if(equal(szSample, "weapons/knife_stab.wav") || equal(szSample, "weapons/knife_slash1.wav") || equal(szSample, "weapons/knife_slash1.wav")) return FMRES_SUPERCEDE;
  3279. }
  3280. }
  3281. }
  3282.  
  3283. if( equal( szSample, "common/wpn_denyselect.wav" ) ) {
  3284. KoristiSp( id );
  3285. return FMRES_SUPERCEDE;
  3286. }
  3287.  
  3288. return FMRES_IGNORED;
  3289. }
  3290.  
  3291. public KoristiSp( id ) {
  3292. if(g_PlayerInfo[id][g_iMedKit] > 0) CreateMedKit(id);
  3293. if(g_PlayerInfo[id][g_iRocket] > 0) CreateRocket(id);
  3294. if(g_PlayerInfo[id][g_iMine] > 0) CreateMine(id);
  3295. if(g_PlayerInfo[id][g_iDynamite]> 0) CreateDynamite(id);
  3296. if(g_PlayerInfo[id][g_iPoisonKit]> 0) CreatePoisonKit(id);
  3297. if(g_PlayerInfo[id][g_iBomb] > 0) CreateBomb(id);
  3298.  
  3299. switch( g_PlayerInfo[ id ][ g_iClass ] ) {
  3300. case Wolverine: {
  3301. if(get_user_weapon( id ) != CSW_KNIFE) engclient_cmd(id, "weapon_knife");
  3302.  
  3303. entity_set_string(id, EV_SZ_viewmodel, ((g_PlayerInfo[id][g_iClassData] == 0) ? g_szModels[MDL_V_WOLVERINE_CLAWS] : g_szModels[MDL_V_WOLVERINE]));
  3304. entity_set_string(id, EV_SZ_weaponmodel, ((g_PlayerInfo[id][g_iClassData] == 0) ? g_szModels[MDL_P_WOLVERINE_CLAWS] : g_szModels[MDL_P_WOLVERINE]));
  3305.  
  3306. entity_set_float(id, EV_FL_speed, ((g_PlayerInfo[id][g_iClassData] == 0) ? (entity_get_float(id, EV_FL_speed) + 5.0) : (entity_get_float(id, EV_FL_speed) - 5.0)));
  3307. entity_set_float(id, EV_FL_gravity, ((g_PlayerInfo[id][g_iClassData] == 0) ? 0.5 : 0.8));
  3308.  
  3309. emit_sound(id, CHAN_WEAPON, "ExitCOD/claws_off_wolverine.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
  3310. g_PlayerInfo[id][g_iClassData] = g_PlayerInfo[id][g_iClassData] ? 0 : 1;
  3311. }
  3312. }
  3313.  
  3314. return PLUGIN_CONTINUE;
  3315. }
  3316.  
  3317. public client_infochanged(id) {
  3318. new szName[32];
  3319. get_user_name(id, szName, charsmax(szName));
  3320.  
  3321. if(!equal(g_PlayerInfo[id][g_szName], szName)) copy(g_PlayerInfo[id][g_szName], 31, szName);
  3322. }
  3323.  
  3324. public UcitajVipove( id ) {
  3325.  
  3326. new Steam_ID[ 32 ];
  3327. get_user_authid( id, Steam_ID, 31 );
  3328.  
  3329. new broj_linija = file_size( "addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", 1 );
  3330. new linija[ 100 ], broj;
  3331.  
  3332. for( new i = 0; i < broj_linija; i++ ) {
  3333.  
  3334. read_file( "addons/amxmodx/configs/CODMW/VIP/Vipovi.ini", i, linija, 99, broj )
  3335. if( broj > 0 && containi( linija, Steam_ID ) != -1 )
  3336. goldVIP[ id ] = true;
  3337. }
  3338. return PLUGIN_HANDLED;
  3339. }
  3340. public client_putinserver(id) {
  3341. DeleteSkills(id);
  3342.  
  3343. ObrisiZadatke(id);
  3344. Obrisipredmet(id);
  3345. ObrisiIteme(id);
  3346.  
  3347. PostaviLang(id);
  3348. UcitajBanku( id );
  3349.  
  3350. new iHour;
  3351. time(iHour);
  3352. new bool: bDnevnoVreme = (9 <= iHour <= 23);
  3353.  
  3354. if( bDnevnoVreme )
  3355. set_task( 1.0, "UcitajVipove", id ),
  3356. set_task( 1.0, "UsaoVIP", id );
  3357. else
  3358. goldVIP[ id ] = true;
  3359.  
  3360. get_user_authid(id, Steam_ID[id], 34);
  3361. get_user_authid(id, g_Data[id][Data_SteamID], 31);
  3362.  
  3363. if (!str_to_num(g_Data[id][Data_SteamID][10]))
  3364. return;
  3365.  
  3366. get_user_name(id, g_Data[id][Data_Name], 31);
  3367.  
  3368. if (!TrieKeyExists(g_Name, g_Data[id][Data_SteamID]))
  3369. AddRank(id);
  3370. else
  3371. LoadData(id);
  3372.  
  3373. UpdateRank(id, true);
  3374.  
  3375. new nv,data[32];
  3376. get_auth(id,g_player[id][key],charsmax(g_player[][key]));
  3377. g_player[id][mtime]=get_systime();
  3378. g_player[id][ftime]=false;
  3379. formatex(data,charsmax(data),"%d",g_player[id][mtime]);
  3380.  
  3381. if((nv=nvault_open(NV_NAME))==INVALID_HANDLE)
  3382. return;
  3383.  
  3384. if(!nvault_lookup(nv,g_player[id][key],data,charsmax(data),g_player[id][mtime])) {
  3385. nvault_set(nv,g_player[id][key],data);
  3386. g_player[id][ftime]=true;
  3387. }
  3388. nvault_close(nv);
  3389.  
  3390. }
  3391.  
  3392. public client_authorized(id) {
  3393. if(is_user_bot( id )) return;
  3394.  
  3395. client_cmd(id, "con_color 255+155+50");
  3396.  
  3397. get_user_authid(id, g_PlayerInfo[id][g_szSteamID], 31);
  3398. get_user_name(id, g_PlayerInfo[id][g_szName], 31);
  3399. get_user_ip(id, g_PlayerInfo[id][g_szIP], 20, 1);
  3400.  
  3401. set_task( 10.0, "Rkl", id );
  3402. set_flags(id);
  3403. Zamrznut[ id ] = false
  3404. }
  3405.  
  3406. public client_disconnect(id) {
  3407. SacuvajBanku( id );
  3408. SacuvajPodatke(id);
  3409. DeleteSkills(id);
  3410. ObrisiZadatke(id);
  3411. Obrisipredmet(id);
  3412. ObrisiIteme(id);
  3413. ObrisiEntitie(id);
  3414. g_haskit[id] = false;
  3415. static ent;
  3416. while((ent = fm_find_ent_by_owner(ent, "fake_corpse", id)) != 0) fm_remove_entity(ent)
  3417. g_PlayerInfo[id][g_szUserPrivilegies][0] = '^0';
  3418. Zamrznut[ id ] = false
  3419. goldVIP[ id ] = false;
  3420. UpdateRank( id, true );
  3421. get_user_authid( id, g_Data[ id ][ Data_SteamID ], 31 );
  3422.  
  3423. if( !str_to_num( g_Data[ id ][ Data_SteamID ][ 10 ] ) )
  3424. return;
  3425.  
  3426. get_user_name( id, g_Data[ id ][ Data_Name ], 31 );
  3427.  
  3428. if( !TrieKeyExists( g_Name, g_Data[ id ][ Data_SteamID ] ) ) AddRank( id );
  3429. else LoadData( id );
  3430. }
  3431.  
  3432. public ObrisiIteme(id) {
  3433. g_PlayerInfo[id][g_iRocket] = 0;
  3434. g_PlayerInfo[id][g_iDynamite] = 0;
  3435. g_PlayerInfo[id][g_iMine] = 0;
  3436. g_PlayerInfo[id][g_iMedKit] = 0;
  3437. g_PlayerInfo[id][g_iPoisonKit] = 0;
  3438. g_PlayerInfo[id][g_iBomb] = 0;
  3439. }
  3440.  
  3441. public ObrisiEntitie(id) {
  3442. new iEnt;
  3443.  
  3444. for(new i=0; i<6; i++) {
  3445. iEnt = find_ent_by_class(0, g_szEntsNames[i]);
  3446. while(iEnt > 0) {
  3447. if(entity_get_edict(iEnt, EV_ENT_owner) == id) remove_entity(iEnt);
  3448. iEnt = find_ent_by_class(iEnt, g_szEntsNames[i]);
  3449. }
  3450. }
  3451. }
  3452.  
  3453. public DeleteSkills(id) {
  3454. g_PlayerInfo[id][g_iClass] = 0;
  3455. g_PlayerInfo[id][g_iLevel] = 0;
  3456. g_PlayerInfo[id][g_iXP] = 0;
  3457. g_PlayerInfo[id][g_iPoints] = 0;
  3458. g_PlayerInfo[id][g_iEnergy] = 0;
  3459. g_PlayerInfo[id][g_iIntelligence] = 0;
  3460. g_PlayerInfo[id][g_iTrim] = 0;
  3461. g_PlayerInfo[id][g_iStamina] = 0;
  3462. g_PlayerInfo[id][g_iDamage] = 0;
  3463. g_fSpeed[id] = 0.0;
  3464. g_PlayerInfo[id][g_iMaxEnergy] = 0;
  3465. g_PlayerInfo[id][g_iAddNumber] = 0;
  3466. g_PlayerInfo[ id ][ g_iSP ] = 0;
  3467. g_haskit[id] = false;
  3468. dobio_predmet[id] = false;
  3469.  
  3470. for(new PowerShopData:i=PowerShopData_10DMG; i<PowerShopData; i++) g_PowerShopInfo[id][i] = false;
  3471. }
  3472.  
  3473. public ObrisiZadatke(id) {
  3474. remove_task(id+ZADATAK_POSTAVI_BRZINU);
  3475. remove_task(id+ZADATAK_PROVERA);
  3476. }
  3477.  
  3478. AddRank( id ) {
  3479.  
  3480. g_Data[ id ][ Data_Level ] = 1;
  3481.  
  3482. ArrayPushString( g_SteamID, g_Data[ id ][ Data_SteamID ] );
  3483. TrieSetString( g_Name, g_Data[ id ][ Data_SteamID ], g_Data[ id ][ Data_Name ] );
  3484. }
  3485. LoadData( id )
  3486. TrieGetCell( g_PlayerLevel, g_Data[ id ][ Data_SteamID ], g_Data[ id ][ Data_Level ] );
  3487.  
  3488. UpdateRank( id, bool:Ime ) {
  3489.  
  3490. if( Ime )
  3491. TrieSetString( g_Name, g_Data[ id ][ Data_SteamID ], g_Data[ id ][ Data_Name ] );
  3492.  
  3493. TrieSetCell( g_PlayerLevel, g_Data[ id ][ Data_SteamID ], g_Data[ id ][ Data_Level ] );
  3494. return PLUGIN_CONTINUE;
  3495. }
  3496. public UsaoVIP( id ) {
  3497.  
  3498. if( goldVIP[ id ] ) {
  3499.  
  3500. new name[ 32 ];
  3501. get_user_name( id, name, 31 )
  3502.  
  3503. set_dhudmessage( 0, 255, 255, -1.0, -1.0, 0, 6.0, 6.0 )
  3504. show_dhudmessage( 0, "VIP = %s je usao na server", name );
  3505. }
  3506. }
  3507. public SayRank( id ) {
  3508.  
  3509. new Rank = GetPosition( id );
  3510.  
  3511. ColorChat( id, TEAM_COLOR, "^4[COD:MW]^1 %L^3 %d^1 %L^3 %d^1 %L^3 %d.", id, "lvl_rank", Rank, id, "od", ArraySize( g_SteamID ), id, "sa_najvecim", g_Data[ id ][ Data_Level ] );
  3512.  
  3513. return PLUGIN_HANDLED
  3514. }
  3515. public SayTop15( id ) {
  3516.  
  3517. WriteTop15( );
  3518. set_task( 1.0, "ShowMotd", id )
  3519.  
  3520. return PLUGIN_HANDLED
  3521. }
  3522. public ShowMotd( id )
  3523. show_motd( id, g_Top15, "Level - Top 15" );
  3524.  
  3525. public SortRanks( Array:SteamID, Rank1, Rank2 ) {
  3526.  
  3527. static SteamID1[ 32 ];
  3528. ArrayGetString( SteamID, Rank1, SteamID1, 31 );
  3529.  
  3530. static SteamID2[ 32 ];
  3531. ArrayGetString( SteamID, Rank2, SteamID2, 31 );
  3532.  
  3533. static iLevel1;
  3534. TrieGetCell( g_PlayerLevel, SteamID1, iLevel1 );
  3535.  
  3536. static iLevel2;
  3537. TrieGetCell( g_PlayerLevel, SteamID2, iLevel2 );
  3538.  
  3539. if( iLevel1 < iLevel2 )
  3540. return 1;
  3541. else if( iLevel1 > iLevel2 )
  3542. return -1;
  3543.  
  3544. return 0;
  3545. }
  3546. GetPosition( id ) {
  3547.  
  3548. static Rank, Size, SteamID[32];
  3549.  
  3550. for( Rank = 0, Size = ArraySize( g_SteamID ); Rank < Size; Rank++ ) {
  3551.  
  3552. ArrayGetString( g_SteamID, Rank, SteamID, 31 );
  3553.  
  3554. if( equal( SteamID, g_Data[ id ][ Data_SteamID ] ) )
  3555. return Rank + 1;
  3556. }
  3557. return 0;
  3558. }
  3559. WriteTop15( ) {
  3560.  
  3561. static Length, Rank, Size, SteamID[ 32 ], Ime[ 32 ], iLevel;
  3562.  
  3563. Length = formatex( g_Top15[ Length ], 2047 - Length, "<meta charset=UTF-8><style>body{background:#E6E6E6;font-family:Verdana}th{background:#F5F5F5;color:#A70000;padding:6px;text-align:left}td{padding:2px 6px}table{color:#333;background:#E6E6E6;font-size:10px;font-family:Georgia;border:2px solid #D9D9D9}h2,h3{color:#333;}#c{background:#FFF}img{height:10px;background:#14CC00;margin:0 3px}#r{height:10px;background:#CC8A00}#clr{background:none;color:#A70000;font-size:20px;border:0}</style>" )
  3564. Length += formatex( g_Top15[ Length ], 2047 - Length, "<body><table width=100%% border=0 align=center cellpadding=0 cellspacing=1>" )
  3565. Length += formatex( g_Top15[ Length ], 2047 - Length, "<body><tr><th>#<th>Nick<th>Level</tr>" )
  3566.  
  3567. for( Rank = 0, Size = min( ArraySize( g_SteamID ), 15 ); Rank < Size; Rank++ )
  3568. {
  3569. ArrayGetString( g_SteamID, Rank, SteamID, 31 );
  3570. TrieGetString( g_Name, SteamID, Ime, 31 );
  3571. TrieGetCell( g_PlayerLevel, SteamID, iLevel );
  3572.  
  3573. new szFixedName[ charsmax( Ime ) * 5 + 1 ];
  3574. MakeMOTDSafe( Ime, szFixedName, charsmax( szFixedName ), 32 );
  3575.  
  3576. Length += formatex( g_Top15[ Length ], 2047 - Length, "<tr><td>%d<td>%s<td>%d", Rank + 1, Ime, iLevel )
  3577. }
  3578. }
  3579. MakeMOTDSafe( const szInput[ ], szOutput[ ], const iOutputLen, const iMaxChars = 0 ) {
  3580.  
  3581. new iMax = iOutputLen / 5;
  3582.  
  3583. copy( szOutput, iMax, szInput );
  3584.  
  3585. replace_all( szOutput, iOutputLen, "&", "&amp;" );
  3586. replace_all( szOutput, iOutputLen, "<", "&lt;" );
  3587. replace_all( szOutput, iOutputLen, ">", "&gt;" );
  3588.  
  3589. new iLastIndex, i, cChar;
  3590. while( ( cChar = szOutput[ i ] ) ) {
  3591.  
  3592. if( cChar == '&' ) {
  3593.  
  3594. if( equali( szOutput[ i ], "&lt;", 4 ) || equali( szOutput[ i ], "&gt;", 4 ) )
  3595. i += 3;
  3596. else if( equali( szOutput[ i ], "&amp;", 5 ) )
  3597. i += 4;
  3598. }
  3599. i++;
  3600.  
  3601. if( 0 < iMaxChars < i )
  3602. break;
  3603.  
  3604. iLastIndex = i;
  3605. }
  3606. szOutput[ iLastIndex ] = 0;
  3607. }
  3608. public set_flags(id) {
  3609. g_PlayerInfo[id][g_szUserPrivilegies][0] = '^0';
  3610.  
  3611. if(TrieKeyExists(tCharacters, g_PlayerInfo[id][g_szSteamID])) {
  3612. static szTrieData[2][64], szPassword[32];
  3613.  
  3614. get_user_info(id, "_pw", szPassword, 31);
  3615.  
  3616. TrieGetString(tCharacters, g_PlayerInfo[id][g_szSteamID], szTrieData[0], 63);
  3617. TrieGetString(tPassword, g_PlayerInfo[id][g_szSteamID], szTrieData[1], 63);
  3618.  
  3619. if(!szTrieData[1][0]) copy(g_PlayerInfo[id][g_szUserPrivilegies], 63, szTrieData[0]);
  3620. else if(equal(szPassword, szTrieData[1])) copy(g_PlayerInfo[id][g_szUserPrivilegies], 63, szTrieData[0]);
  3621. else server_cmd("kick #%d ^"Invalid Password^"", get_user_userid(id));
  3622. }
  3623.  
  3624. else if(TrieKeyExists(tCharacters, g_PlayerInfo[id][g_szName])) {
  3625. static szTrieDatas[2][64], szPassword[32];
  3626.  
  3627. get_user_info(id, "_pw", szPassword, 31);
  3628.  
  3629. TrieGetString(tCharacters, g_PlayerInfo[id][g_szName], szTrieDatas[0], 63);
  3630. TrieGetString(tPassword, g_PlayerInfo[id][g_szName], szTrieDatas[1], 63);
  3631.  
  3632. if(!szTrieDatas[1][0]) copy(g_PlayerInfo[id][g_szUserPrivilegies], 63, szTrieDatas[0]);
  3633. else if(equal(szPassword, szTrieDatas[1])) copy(g_PlayerInfo[id][g_szUserPrivilegies], 63, szTrieDatas[0]);
  3634. else server_cmd("kick #%d ^"Invalid Password^"", get_user_userid(id));
  3635. }
  3636.  
  3637. else if(TrieKeyExists(tCharacters, g_PlayerInfo[id][g_szIP])) {
  3638. static szTrieDatass[2][64], szPassword[32];
  3639.  
  3640. get_user_info(id, "_pw", szPassword, 31);
  3641.  
  3642. TrieGetString(tCharacters, g_PlayerInfo[id][g_szIP], szTrieDatass[0], 63);
  3643. TrieGetString(tPassword, g_PlayerInfo[id][g_szIP], szTrieDatass[1], 63);
  3644.  
  3645. if(!szTrieDatass[1][0]) copy(g_PlayerInfo[id][g_szUserPrivilegies], 63, szTrieDatass[0]);
  3646. else if(equal(szPassword, szTrieDatass[1])) copy(g_PlayerInfo[id][g_szUserPrivilegies], 63, szTrieDatass[0]);
  3647. else server_cmd("kick #%d ^"Invalid Password^"", get_user_userid(id));
  3648. }
  3649. }
  3650.  
  3651.  
  3652. public OpisSvihPredmeta(id) {
  3653. static iMenuID, szItem[28];
  3654. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_IZABERI_PREDMET");
  3655.  
  3656. iMenuID = menu_create(szItem, "OpisSvihPredmeta_Handle");
  3657.  
  3658. for(new i=1; i <sizeof(g_szPerksData); i++) {
  3659. formatex(szItem, charsmax(szItem), "\y%L", id, g_szPerksData[i][0]);
  3660. menu_additem(iMenuID, szItem);
  3661. }
  3662.  
  3663. menu_display(id, iMenuID);
  3664.  
  3665. client_cmd(id, "spk ExitCOD/select");
  3666. }
  3667.  
  3668. public OpisSvihPredmeta_Handle(id, iMenuID, iItem) {
  3669. if(iItem++ == MENU_EXIT) {
  3670. menu_destroy(iMenuID);
  3671. return 0;
  3672. }
  3673.  
  3674. ShowPerkDescription(id, iItem, 0);
  3675.  
  3676. return 0;
  3677. }
  3678.  
  3679. public OpisKlase(id) {
  3680. static iMenuID, szItem[28];
  3681. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_IZABERI_KLASE");
  3682.  
  3683. iMenuID = menu_create(szItem, "OpisKlase_Handle");
  3684.  
  3685. for(new i=1; i<sizeof(g_szFractions); i++) {
  3686. formatex(szItem, charsmax(szItem), "%L", id, g_szFractions[i]);
  3687. menu_additem(iMenuID, szItem);
  3688. }
  3689.  
  3690. menu_display(id, iMenuID);
  3691.  
  3692. client_cmd(id, "spk ExitCOD/select");
  3693. }
  3694.  
  3695. public OpisKlase_Handle(id, iMenuID, iItem) {
  3696. client_cmd(id, "spk ExitCOD/select");
  3697.  
  3698. if(iItem == MENU_EXIT) {
  3699. menu_destroy(iMenuID);
  3700. return 0;
  3701. }
  3702.  
  3703. iItem ++;
  3704. g_PlayerInfo[id][g_iFraction] = iItem;
  3705.  
  3706. new iMenuID, szItem[64];
  3707. formatex(szItem, charsmax(szItem), "\r%L \w:", id, "ML_IZABERI_KLASU");
  3708.  
  3709. iMenuID = menu_create(szItem, "OpisKlase_Handlee");
  3710.  
  3711. for(new i=1; i<sizeof(Klase); i++) {
  3712. if(g_iClassesFraction[i] == iItem) {
  3713. formatex(szItem, charsmax(szItem), "\y%L", id, Klase[i][0]);
  3714. menu_additem(iMenuID, szItem);
  3715. }
  3716. }
  3717.  
  3718. menu_display(id, iMenuID);
  3719.  
  3720. return 0;
  3721. }
  3722.  
  3723. public OpisKlase_Handlee(id, iMenuID, iItem) {
  3724. client_cmd(id, "spk ExitCOD/select");
  3725.  
  3726. if(iItem == MENU_EXIT) {
  3727. menu_destroy(iMenuID);
  3728. return 0;
  3729. }
  3730.  
  3731. iItem++;
  3732.  
  3733. new iNum = 0;
  3734. for(new i=1; i<sizeof(Klase); i++) {
  3735. if(g_iClassesFraction[i] == g_PlayerInfo[id][g_iFraction]) iNum ++;
  3736.  
  3737. if(iNum == iItem) {
  3738. iItem = i;
  3739. break;
  3740. }
  3741. }
  3742.  
  3743. new szWeapon[18][12], iCount=0, szWeapons[64], iLen, szDesc[512];
  3744. for(new i=0; i<7; i++) if(g_iClassesWeapon[iItem][i] != CSW_KNIFE) cs_weapon_id_to_name(g_iClassesWeapon[iItem][i], szWeapon[iCount++], charsmax(szWeapon[]));
  3745.  
  3746. if(iCount > 0) for(new k=0; k<iCount; k++) iLen += formatex(szWeapons[iLen], charsmax(szWeapons)-iLen, "%s%s ", szWeapon[k], k<(iCount-1) ? ", " : "");
  3747.  
  3748. iLen = 0;
  3749. iLen = formatex(szDesc, charsmax(szDesc), "\r%L \w: \y%L^n\r%L \w: \y%s^n\r%L \w: \y%s^n", id, "ML_KLASA", id, Klase[iItem][0], id, "ML_FRAKCIJA", Klase[iItem][5], id, "ML_ORUZIJE", szWeapons);
  3750. iLen += formatex(szDesc[iLen], charsmax(szDesc)-iLen, "\r%L \w: \y%s^n\r%L \w: \y%s^n\r%L \w: \y%s^n\r%L \w: \y%L^n\rCOD MOD By: \wEX!T [\rfb.me/counter.exit\w]", id, "ML_ENERGIJA_FRAKCIJA", Klase[iItem][2], id, "ML_STIT_FRAKCIJA", Klase[iItem][3], id, "ML_BRZINA", Klase[iItem][4], id, "ML_SPECIJALNE_MOCI", id, Klase[iItem][1]);
  3751.  
  3752. show_menu(id, 1023, szDesc);
  3753.  
  3754. return 0;
  3755. }
  3756.  
  3757. public IzaberiKlasu(id) {
  3758. static szNaslov[20];
  3759. formatex(szNaslov, charsmax(szNaslov), "\r%L \w:", id, "ML_IZABERI_KLASE");
  3760. new szMenu = menu_create(szNaslov, "IzaberiFrakciju_Handle");
  3761. for(new i=1; i<sizeof g_szFractions; i++) {
  3762. new szItems[32];
  3763. formatex(szItems, charsmax(szItems), "%L", id, g_szFractions[i]);
  3764. menu_additem(szMenu, szItems);
  3765. }
  3766. menu_display(id, szMenu);
  3767. }
  3768.  
  3769. public IzaberiFrakciju_Handle(id, menu, item) {
  3770. if(item == MENU_EXIT) {
  3771. menu_destroy(menu);
  3772. return PLUGIN_CONTINUE;
  3773. }
  3774.  
  3775. item++;
  3776. g_PlayerInfo[id][g_iFraction] = item;
  3777. static szNaslov[20];
  3778. formatex(szNaslov, charsmax(szNaslov), "\r%L \w:", id, "ML_IZABERI_KLASU");
  3779. new szMenu = menu_create(szNaslov, "IzaberiKlasu_Handle");
  3780. static szItems[86];
  3781. for(new i=1; i<sizeof(Klase); i++) {
  3782. if(g_iClassesFraction[i] == item) {
  3783. UcitajPodatke(id, i);
  3784. formatex(szItems, charsmax(szItems), "\y%L \d- \w[\rLevel\y: \r%i\w]", id, Klase[i][0], g_PlayerInfo[id][g_iLevel]);
  3785. menu_additem(szMenu, szItems);
  3786. }
  3787. }
  3788.  
  3789. UcitajPodatke(id, g_PlayerInfo[id][g_iClass]);
  3790.  
  3791. menu_display(id, szMenu);
  3792.  
  3793. client_cmd(id, "spk ExitCOD/select");
  3794.  
  3795. return PLUGIN_CONTINUE;
  3796. }
  3797.  
  3798. public IzaberiKlasu_Handle(id, menu, item) {
  3799. client_cmd(id, "spk ExitCOD/select");
  3800.  
  3801. if(item == MENU_EXIT) {
  3802. menu_destroy(menu);
  3803. return PLUGIN_CONTINUE;
  3804. }
  3805.  
  3806. item++;
  3807.  
  3808. new iBroj = 0;
  3809. for(new i=1; i<sizeof(Klase); i++) {
  3810. if(g_iClassesFraction[i] == g_PlayerInfo[id][g_iFraction]) iBroj++;
  3811. if(iBroj == item) {
  3812. item = i;
  3813. break;
  3814. }
  3815. }
  3816.  
  3817. if(item == g_PlayerInfo[id][g_iClass]) return PLUGIN_CONTINUE;
  3818.  
  3819. static Time[10];
  3820. get_time("%H", Time, charsmax(Time));
  3821.  
  3822. new iDnevnoVreme = (equal(Time, "9") || equal(Time, "10") || equal(Time, "11") || equal(Time, "12") || equal(Time, "13") || equal(Time, "14") || equal(Time, "15") || equal(Time, "16") || equal(Time, "17") || equal(Time, "18") || equal(Time, "19") || equal(Time, "20") || equal(Time, "21") || equal(Time, "22"));
  3823.  
  3824. if(g_iClassesFraction[item] == VipKlase) {
  3825. if(iDnevnoVreme) {
  3826. if(!goldVIP[ id ]) {
  3827. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3828. IzaberiKlasu(id);
  3829. return PLUGIN_HANDLED;
  3830. }
  3831. }
  3832. }
  3833.  
  3834. if(g_iClassesFraction[item] == SteamOnly ) {
  3835. if(!is_user_steam(id)) {
  3836. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3837. IzaberiKlasu(id);
  3838. return PLUGIN_HANDLED;
  3839. }
  3840. }
  3841. if(Klase[item][6][0]) {
  3842.  
  3843. if( g_iClassesFraction[item] == Premium ) {
  3844.  
  3845. if(iDnevnoVreme) {
  3846.  
  3847. if(strlen(g_PlayerInfo[id][g_szUserPrivilegies]) > 0) {
  3848.  
  3849. if(containi(g_PlayerInfo[id][g_szUserPrivilegies], Klase[item][6]) != -1) { }
  3850. else {
  3851. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3852. IzaberiKlasu(id);
  3853. return PLUGIN_HANDLED;
  3854. }
  3855. }
  3856. else {
  3857. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3858. IzaberiKlasu(id);
  3859. return PLUGIN_HANDLED;
  3860. }
  3861. }
  3862.  
  3863. }
  3864. else if( g_iClassesFraction[item] == GoldsStars ) {
  3865.  
  3866. if(strlen(g_PlayerInfo[id][g_szUserPrivilegies]) > 0) {
  3867.  
  3868. if(containi(g_PlayerInfo[id][g_szUserPrivilegies], Klase[item][6]) != -1) { }
  3869. else {
  3870. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3871. IzaberiKlasu(id);
  3872. return PLUGIN_HANDLED;
  3873. }
  3874. }
  3875. else {
  3876. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3877. IzaberiKlasu(id);
  3878. return PLUGIN_HANDLED;
  3879. }
  3880. }
  3881. else if( g_iClassesFraction[item] == SuperPremium ) {
  3882.  
  3883. if(strlen(g_PlayerInfo[id][g_szUserPrivilegies]) > 0) {
  3884.  
  3885. if(containi(g_PlayerInfo[id][g_szUserPrivilegies], Klase[item][6]) != -1) { }
  3886. else {
  3887. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3888. IzaberiKlasu(id);
  3889. return PLUGIN_HANDLED;
  3890. }
  3891. }
  3892. else {
  3893. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3894. IzaberiKlasu(id);
  3895. return PLUGIN_HANDLED;
  3896. }
  3897. }
  3898. else if( g_iClassesFraction[item] == Special ) {
  3899.  
  3900. if(strlen(g_PlayerInfo[id][g_szUserPrivilegies]) > 0) {
  3901.  
  3902. if(containi(g_PlayerInfo[id][g_szUserPrivilegies], Klase[item][6]) != -1) { }
  3903. else {
  3904. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3905. IzaberiKlasu(id);
  3906. return PLUGIN_HANDLED;
  3907. }
  3908. }
  3909. else {
  3910. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_DOZVOLU");
  3911. IzaberiKlasu(id);
  3912. return PLUGIN_HANDLED;
  3913. }
  3914. }
  3915. }
  3916.  
  3917. if(g_PlayerInfo[id][g_iClass]) {
  3918. g_PlayerInfo[id][g_iNewClass] = item;
  3919. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_SLEDECA_RUNDA");
  3920. }
  3921.  
  3922. else {
  3923. g_PlayerInfo[id][g_iClass] = item;
  3924. UcitajPodatke(id, g_PlayerInfo[id][g_iClass]);
  3925. fw_Ham_Spawn_Post(id);
  3926. Statistika[ item ]++;
  3927. }
  3928.  
  3929. return PLUGIN_CONTINUE;
  3930. }
  3931.  
  3932. public DodelaPoena(id) {
  3933. static szMenuItems[6][86], iMenuID;
  3934. formatex(szMenuItems[0], 31, "\r%L \d[\y%i\d] \w:", id, "ML_DODELA_POENA", g_PlayerInfo[id][g_iPoints]);
  3935. iMenuID = menu_create(szMenuItems[0], "hDodelaPoena");
  3936.  
  3937. formatex(szMenuItems[0], 85, "\y%L \w: \d[ \r%d \y/ \r1000 \d]", id, "ML_INTELIGENCIJA", g_PlayerInfo[id][g_iIntelligence]);
  3938. formatex(szMenuItems[1], 85, "\y%L \w: \d[ \r%d \y/ \r1200 \d]", id, "ML_ENERGIJA", g_PlayerInfo[id][g_iEnergy]);
  3939. formatex(szMenuItems[2], 85, "\y%L \w: \d[ \r%d \y/ \r600 \d]", id, "ML_SNAGA", g_PlayerInfo[id][g_iTrim]);
  3940. formatex(szMenuItems[3], 85, "\y%L \w: \d[ \r%d \y/ \r600 \d]", id, "ML_KONDICIJA", g_PlayerInfo[id][g_iStamina]);
  3941. formatex(szMenuItems[4], 85, "\y%L \w: \d[ \r%d \y/ \r600 \d]^n", id, "ML_STETA", g_PlayerInfo[id][g_iDamage]);
  3942. formatex(szMenuItems[5], 85, "\y%L \w: \r[ \y%d \r]", id, "ML_BROJ_DODAVANJA", g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]]);
  3943.  
  3944. for(new i; i<6; i++) menu_additem(iMenuID, szMenuItems[i]);
  3945.  
  3946. menu_display(id, iMenuID);
  3947. }
  3948.  
  3949. public hDodelaPoena(id, iMenuID, iItem) {
  3950. client_cmd(id, "spk ExitCOD/select");
  3951.  
  3952. if(iItem == MENU_EXIT) {
  3953. menu_destroy(iMenuID);
  3954. return 0;
  3955. }
  3956.  
  3957. if(g_PlayerInfo[id][g_iPoints] < 1) return 0;
  3958.  
  3959. static iBroj;
  3960. if(g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]] > g_PlayerInfo[id][g_iPoints]) iBroj = g_PlayerInfo[id][g_iPoints];
  3961. else iBroj = g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]];
  3962.  
  3963. switch(iItem) {
  3964. case 0: {
  3965. if(g_PlayerInfo[id][g_iIntelligence] < get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaInte])) {
  3966. if(g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]] > get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaInte]) - g_PlayerInfo[id][g_iIntelligence]) iBroj = get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaInte]) - g_PlayerInfo[id][g_iIntelligence];
  3967. g_PlayerInfo[id][g_iIntelligence] += iBroj;
  3968. g_PlayerInfo[id][g_iPoints] -= iBroj;
  3969. }
  3970. else ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_MAX_NIVO_INTELIGENCIJA");
  3971. }
  3972. case 1: {
  3973. if(g_PlayerInfo[id][g_iEnergy] < get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaEnergija])) {
  3974. if(g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]] > get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaEnergija]) - g_PlayerInfo[id][g_iEnergy]) iBroj = get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaEnergija]) - g_PlayerInfo[id][g_iEnergy];
  3975. g_PlayerInfo[id][g_iEnergy] += iBroj;
  3976. g_PlayerInfo[id][g_iPoints] -= iBroj;
  3977. }
  3978. else ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_MAX_NIVO_ENERGIJA");
  3979. }
  3980. case 2: {
  3981. if(g_PlayerInfo[id][g_iTrim] < get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaSnaga])) {
  3982. if(g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]] > get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaSnaga]) - g_PlayerInfo[id][g_iTrim]) iBroj = get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaSnaga]) - g_PlayerInfo[id][g_iTrim];
  3983. g_PlayerInfo[id][g_iTrim] += iBroj;
  3984. g_PlayerInfo[id][g_iPoints] -= iBroj;
  3985. }
  3986. else ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_MAX_NIVO_SNAGA");
  3987. }
  3988. case 3: {
  3989. if(g_PlayerInfo[id][g_iStamina] < get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaKondicija])) {
  3990. if(g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]] > get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaKondicija]) - g_PlayerInfo[id][g_iStamina]) iBroj = get_pcvar_num(g_CvarInfo[CvarData_MaksimalnaKondicija]) - g_PlayerInfo[id][g_iStamina];
  3991. g_PlayerInfo[id][g_iStamina] += iBroj;
  3992. g_PlayerInfo[id][g_iPoints] -= iBroj;
  3993. }
  3994. else ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_MAX_NIVO_KONDICIJA");
  3995. }
  3996. case 4: {
  3997. if(g_PlayerInfo[id][g_iDamage] < get_pcvar_num(g_CvarInfo[CvarData_MaksimalnoOstecenje])) {
  3998. if(g_PlayerInfo[id][g_iIntelligence] >= 500 && g_PlayerInfo[id][g_iDamage] <= 300) {
  3999. g_PlayerInfo[id][g_iDamage] = 300;
  4000. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_SMANJI_INTELIGENCIJU");
  4001. return 0;
  4002. }
  4003. if(g_iAddPointsNumber[g_PlayerInfo[id][g_iAddNumber]] > get_pcvar_num(g_CvarInfo[CvarData_MaksimalnoOstecenje]) - g_PlayerInfo[id][g_iDamage]) iBroj = get_pcvar_num(g_CvarInfo[CvarData_MaksimalnoOstecenje]) - g_PlayerInfo[id][g_iDamage];
  4004. g_PlayerInfo[id][g_iDamage] += iBroj;
  4005. g_PlayerInfo[id][g_iPoints] -= iBroj;
  4006. }
  4007. else ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_MAX_NIVO_STETA");
  4008. }
  4009. case 5: {
  4010. if(g_PlayerInfo[id][g_iAddNumber] == 5) g_PlayerInfo[id][g_iAddNumber] = 0;
  4011. else g_PlayerInfo[id][g_iAddNumber] ++;
  4012. }
  4013. }
  4014.  
  4015. if(g_PlayerInfo[id][g_iPoints] > 0) DodelaPoena(id);
  4016.  
  4017. return 0;
  4018. }
  4019.  
  4020. public KomandaResetujPoene(id) {
  4021. if(!g_PlayerInfo[id][g_iClass]) return 1;
  4022.  
  4023. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_POENI_RESTARTOVANI");
  4024. client_cmd(id, "spk ExitCOD/select");
  4025.  
  4026. ResetujPoene(id);
  4027.  
  4028. return 0;
  4029. }
  4030.  
  4031. public ResetujPoene(id) {
  4032. g_PlayerInfo[id][g_iPoints] = (g_PlayerInfo[id][g_iLevel]-1)*2;
  4033. g_PlayerInfo[id][g_iIntelligence] = 0;
  4034. g_PlayerInfo[id][g_iEnergy] = 0;
  4035. g_PlayerInfo[id][g_iStamina] = 0;
  4036. g_PlayerInfo[id][g_iTrim] = 0;
  4037. g_PlayerInfo[id][g_iDamage] = 0;
  4038.  
  4039. if(g_PlayerInfo[id][g_iPoints]) DodelaPoena(id);
  4040. }
  4041.  
  4042. public fw_TraceLine(Float: fvStart[3], Float: fvEnd[3], ignoreM, id, iTrace) {
  4043. if(!is_user_connected( id )) return;
  4044.  
  4045. new iHit = get_tr2(iTrace, TR_pHit);
  4046.  
  4047. if(!is_user_connected(iHit)) return;
  4048.  
  4049. new iHitZone = get_tr2(iTrace, TR_iHitgroup);
  4050.  
  4051. switch(predmet_igraca[iHit][0]) {
  4052. case 47: if((predmet_igraca[iHit][1] == 1) && (iHitZone == HIT_HEAD)) return;
  4053. case 65: if((get_user_weapon(iHit) == CSW_USP) && !random(6) && (iHitZone != HIT_HEAD)) set_tr2(iTrace, TR_iHitgroup, HIT_HEAD);
  4054. case 66: if((get_user_weapon(iHit) == CSW_M4A1) && !random(9) && (iHitZone != HIT_HEAD)) set_tr2(iTrace, TR_iHitgroup, HIT_HEAD);
  4055. case 67: if((get_user_weapon(iHit) == CSW_AK47) && !random(9) && (iHitZone != HIT_HEAD)) set_tr2(iTrace, TR_iHitgroup, HIT_HEAD);
  4056. case 68: if(!random(6) && (iHitZone != HIT_HEAD) && (iHitZone != HIT_CHEST)) return;
  4057. }
  4058.  
  4059. if((g_PlayerInfo[iHit][g_iClass] == Wolverine) && !random(4) && (iHitZone == HIT_HEAD)) return;
  4060. if((g_PlayerInfo[iHit][g_iClass] == Samuraj) && (iHitZone == HIT_HEAD)) return;
  4061.  
  4062. if( goldVIP[ iHit ] && iHitZone == HIT_HEAD )
  4063. set_tr2( iTrace, TR_iHitgroup, 8 );
  4064.  
  4065. }
  4066.  
  4067. public fw_AddToFullPack( es, e, ent, host, host_flags, player, p_set ) {
  4068. if( !( 1 <= host <= 32 ) )
  4069. return FMRES_IGNORED;
  4070.  
  4071. if( !( 1 <= ent <= 32 ) )
  4072. return FMRES_IGNORED;
  4073.  
  4074.  
  4075. if( !is_user_alive( host ) )
  4076. return FMRES_IGNORED
  4077.  
  4078. if( !is_user_alive( ent ) )
  4079. return FMRES_IGNORED;
  4080.  
  4081. if( predmet_igraca[host][0] == 37 || g_PlayerInfo[host][g_iClass] == Indian || g_PlayerInfo[host][g_iClass] == Lopov || g_PlayerInfo[host][g_iClass] == Predator || g_PlayerInfo[host][g_iClass] == CicaDraza || g_PlayerInfo[host][g_iClass] == Kamikaza || g_PlayerInfo[host][g_iClass] == ProSapper || g_PlayerInfo[host][g_iClass] == Lovac )
  4082. set_es( es, ES_RenderAmt, 255.0 );
  4083.  
  4084. return FMRES_HANDLED;
  4085. }
  4086.  
  4087.  
  4088.  
  4089. public CreateBomb(id) {
  4090. if(!g_PlayerInfo[id][g_iBomb]) {
  4091. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4092. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_ISKORISTIO_BOMBE");
  4093. return PLUGIN_CONTINUE;
  4094. }
  4095.  
  4096. if(is_user_alive( id )) {
  4097. if(g_fLastUsed[id] + 2.0 > get_gametime()) {
  4098. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4099. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L", id, "ML_SACEKAJ_SEC_BOMBE");
  4100. return PLUGIN_CONTINUE;
  4101. }
  4102.  
  4103. if(g_PlayerInfo[id][g_iIntelligence] < 1) {
  4104. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4105. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_POVECAJ_INTELIGENCIJU_BOMBE");
  4106. }
  4107.  
  4108. g_fLastUsed[id] = get_gametime();
  4109. g_PlayerInfo[id][g_iBomb]--;
  4110.  
  4111. new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
  4112.  
  4113. entity_get_vector(id, EV_VEC_v_angle, vAngle);
  4114. entity_get_vector(id, EV_VEC_origin , Origin);
  4115.  
  4116. new Ent = create_entity("info_target");
  4117.  
  4118. entity_set_string(Ent, EV_SZ_classname, g_szEntsNames[ENT_Bomb]);
  4119. entity_set_model(Ent, g_szModels[MDL_ROCKET]);
  4120.  
  4121. vAngle[0] *= -1.0;
  4122.  
  4123. entity_set_origin(Ent, Origin);
  4124. entity_set_vector(Ent, EV_VEC_angles, vAngle);
  4125.  
  4126. entity_set_int(Ent, EV_INT_effects, 2);
  4127. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  4128. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_TOSS);
  4129. entity_set_edict(Ent, EV_ENT_owner, id);
  4130.  
  4131. VelocityByAim(id, 1000 , Velocity);
  4132. entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
  4133. }
  4134. return PLUGIN_CONTINUE;
  4135. }
  4136.  
  4137. public DodirBombe(Ent) {
  4138. if(!is_valid_ent(Ent)) return;
  4139.  
  4140. new Attacker = entity_get_edict(Ent, EV_ENT_owner);
  4141.  
  4142. new Float: Origin[3];
  4143. entity_get_vector(Ent, EV_VEC_origin, Origin);
  4144.  
  4145. new Ent = create_entity("info_target");
  4146.  
  4147. entity_set_string(Ent, EV_SZ_classname, g_szEntsNames[ENT_Bomb]);
  4148. entity_set_model(Ent, g_szModels[MDL_ROCKET]);
  4149. entity_set_origin(Ent, Origin);
  4150.  
  4151. entity_set_int(Ent, EV_INT_effects, 2);
  4152. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  4153. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_NOCLIP);
  4154. entity_set_edict(Ent, EV_ENT_owner, Attacker);
  4155.  
  4156. remove_entity(Ent);
  4157. }
  4158.  
  4159. public EksplozijaBombe(id) {
  4160. new iEnt = find_ent_by_class(-1, g_szEntsNames[ENT_Bomb]);
  4161. while(iEnt > 0) {
  4162. new Attacker = entity_get_edict(iEnt, EV_ENT_owner);
  4163. if(Attacker == id) {
  4164. Eksplozija(iEnt);
  4165. remove_entity(iEnt);
  4166. }
  4167. iEnt = find_ent_by_class(iEnt,g_szEntsNames[ENT_Bomb]);
  4168. }
  4169. }
  4170.  
  4171. public Eksplozija(Ent) {
  4172. new Attacker = entity_get_edict(Ent, EV_ENT_owner);
  4173.  
  4174. static Float:fOrigin[3], iOrigin[3];
  4175. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4176.  
  4177. for(new i=0;i<3;i++) iOrigin[i] = floatround(fOrigin[i]);
  4178.  
  4179. Create_TE_EXPLOSION(iOrigin, g_iSpriteID[SPR_Blast], 32, 20, 0);
  4180.  
  4181. static szEntList[33];
  4182. new iNumFound = find_sphere_class(Ent, "player", 200.0, szEntList, charsmax(szEntList));
  4183.  
  4184. for(new i=0; i<iNumFound; i++) {
  4185. new iPlayers = szEntList[i];
  4186. if(!is_user_alive( iPlayers ) || get_user_team(Attacker) == get_user_team(iPlayers)) continue;
  4187.  
  4188. ExecuteHam(Ham_TakeDamage, iPlayers, Ent, Attacker, 100.0+0.5*float(g_PlayerInfo[Attacker][g_iIntelligence]) , 1);
  4189. }
  4190. remove_entity(Ent);
  4191. }
  4192.  
  4193. public CreatePoisonKit(id) {
  4194. if(!g_PlayerInfo[id][g_iPoisonKit]) {
  4195. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4196. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_ISKORISTIO", g_szEntsNames[ENT_PoisonKit]);
  4197. return PLUGIN_CONTINUE;
  4198. }
  4199.  
  4200. if(g_PlayerInfo[id][g_iIntelligence] < 1) {
  4201. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4202. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_POVECAJ_INTELIGENCIJU", g_szEntsNames[ENT_PoisonKit]);
  4203. }
  4204.  
  4205. g_PlayerInfo[id][g_iPoisonKit]--;
  4206.  
  4207. new Float:Origin[3];
  4208. entity_get_vector(id, EV_VEC_origin, Origin);
  4209.  
  4210. new Ent = create_entity("info_target");
  4211. entity_set_string(Ent, EV_SZ_classname, g_szEntsNames[ENT_PoisonKit]);
  4212. entity_set_edict(Ent, EV_ENT_owner, id);
  4213. entity_set_int(Ent, EV_INT_solid, SOLID_NOT);
  4214. entity_set_vector(Ent, EV_VEC_origin, Origin);
  4215. entity_set_float(Ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
  4216.  
  4217. entity_set_model(Ent, g_szModels[MDL_POISONKIT]);
  4218. set_rendering(Ent, kRenderFxGlowShell, 0, 255, 0, kRenderFxNone, 255) ;
  4219. drop_to_floor(Ent);
  4220.  
  4221. entity_set_float(Ent, EV_FL_nextthink, halflife_time() + 0.1);
  4222.  
  4223. return PLUGIN_CONTINUE;
  4224. }
  4225.  
  4226. public fw_Think_PoisonKit(Ent) {
  4227. if(!is_valid_ent(Ent)) return PLUGIN_HANDLED;
  4228.  
  4229. new id = entity_get_edict(Ent, EV_ENT_owner);
  4230. new iHeal = 5+floatround(g_PlayerInfo[id][g_iIntelligence]*0.5);
  4231.  
  4232. if(entity_get_edict(Ent, EV_ENT_euser2) == 1) {
  4233. new Float:fOrigin[3], Origin[3];
  4234. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4235. FVecIVec(fOrigin, Origin);
  4236.  
  4237. new szEntList[33];
  4238. new iNumFound = find_sphere_class(0, "player", 300.0, szEntList, charsmax(szEntList), fOrigin);
  4239.  
  4240. for(new i=0; i < iNumFound; i++) {
  4241. new iPlayers = szEntList[i];
  4242.  
  4243. if(is_user_alive( iPlayers ) && get_user_team(iPlayers) != get_user_team(id)) set_user_health(iPlayers, get_user_health(iPlayers) - iHeal);
  4244. }
  4245.  
  4246. entity_set_edict(Ent, EV_ENT_euser2, 0);
  4247. entity_set_float(Ent, EV_FL_nextthink, halflife_time() + 1.5);
  4248. }
  4249.  
  4250. if(entity_get_float(Ent, EV_FL_ltime) < halflife_time() || !is_user_alive( id )) {
  4251. remove_entity(Ent);
  4252. return PLUGIN_CONTINUE;
  4253. }
  4254.  
  4255. if(entity_get_float(Ent, EV_FL_ltime)-2.0 < halflife_time()) set_rendering(Ent, kRenderFxNone, 255, 255, 255, kRenderTransAlpha, 100);
  4256.  
  4257. new Float:fOrigin[3], iOrigin[3];
  4258. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4259. FVecIVec(fOrigin, iOrigin);
  4260.  
  4261. Create_TE_BEAMCYLINDER(iOrigin, 300, g_iSpriteID[SPR_White], 0, 0, 10, 10, 255, 0, 255, 0, 128, 5);
  4262.  
  4263. entity_set_edict(Ent, EV_ENT_euser2, 1);
  4264. entity_set_float(Ent, EV_FL_nextthink, halflife_time() + 0.5);
  4265.  
  4266. return PLUGIN_CONTINUE;
  4267. }
  4268.  
  4269. public CreateMedKit(id) {
  4270. if(!g_PlayerInfo[id][g_iMedKit]) {
  4271. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4272. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_ISKORISTIO", g_szEntsNames[ENT_MedKit]);
  4273. return 0;
  4274. }
  4275.  
  4276. if(is_user_alive( id )) {
  4277. if(g_PlayerInfo[id][g_iIntelligence] < 1) {
  4278. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4279. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_POVECAJ_INTELIGENCIJU", g_szEntsNames[ENT_MedKit]);
  4280. }
  4281.  
  4282. g_PlayerInfo[id][g_iMedKit]--;
  4283.  
  4284. new Float:iOrigin[3];
  4285. entity_get_vector(id, EV_VEC_origin, iOrigin);
  4286.  
  4287. new Ent = create_entity("info_target");
  4288. entity_set_string(Ent, EV_SZ_classname, g_szEntsNames[ENT_MedKit]);
  4289. entity_set_edict(Ent, EV_ENT_owner, id);
  4290. entity_set_int(Ent, EV_INT_solid, SOLID_NOT);
  4291. entity_set_vector(Ent, EV_VEC_origin, iOrigin);
  4292. entity_set_float(Ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
  4293.  
  4294. entity_set_model(Ent, g_szModels[MDL_MEDKIT]);
  4295. set_rendering(Ent, kRenderFxGlowShell, 255, 0, 0, kRenderFxNone, 255) ;
  4296. drop_to_floor(Ent);
  4297.  
  4298. entity_set_float(Ent, EV_FL_nextthink, halflife_time() + 0.1);
  4299. }
  4300.  
  4301. return PLUGIN_CONTINUE;
  4302. }
  4303.  
  4304. public fw_Think_MedKit(Ent) {
  4305. if(!is_valid_ent(Ent)) return PLUGIN_HANDLED;
  4306.  
  4307. new id = entity_get_edict(Ent, EV_ENT_owner);
  4308. new iHP = 5+floatround(g_PlayerInfo[id][g_iIntelligence]*0.5);
  4309.  
  4310. if(entity_get_edict(Ent, EV_ENT_euser2) == 1) {
  4311. new Float:fOrigin[3], iOrigin[3];
  4312. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4313. FVecIVec(fOrigin, iOrigin);
  4314.  
  4315. new szEntList[33];
  4316. new iNumFound = find_sphere_class(0, "player", 300.0, szEntList, charsmax(szEntList), fOrigin);
  4317.  
  4318. for(new i=0; i < iNumFound; i++) {
  4319. new iPlayers = szEntList[i];
  4320.  
  4321. new iNovaEnergija = (get_user_health(iPlayers) + iHP < g_PlayerInfo[iPlayers][g_iMaxEnergy]) ? get_user_health(iPlayers) + iHP : g_PlayerInfo[iPlayers][g_iMaxEnergy];
  4322. if(is_user_alive( iPlayers ) && get_user_team(iPlayers) == get_user_team(id)) set_user_health(iPlayers, iNovaEnergija);
  4323. }
  4324.  
  4325. entity_set_edict(Ent, EV_ENT_euser2, 0);
  4326. entity_set_float(Ent, EV_FL_nextthink, halflife_time() + 1.5);
  4327.  
  4328. return PLUGIN_CONTINUE;
  4329. }
  4330.  
  4331. if(entity_get_float(Ent, EV_FL_ltime) < halflife_time() || !is_user_alive( id )) {
  4332. remove_entity(Ent);
  4333. return PLUGIN_CONTINUE;
  4334. }
  4335.  
  4336. if(entity_get_float(Ent, EV_FL_ltime)-2.0 < halflife_time()) set_rendering(Ent, kRenderFxNone, 255, 255, 255, kRenderTransAlpha, 100);
  4337.  
  4338. new Float:fOrigin[3], iOrigin[3];
  4339. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4340. FVecIVec(fOrigin, iOrigin);
  4341.  
  4342. Create_TE_BEAMCYLINDER(iOrigin, 300, g_iSpriteID[SPR_White], 0, 0, 10, 10, 255, 255, 100, 100, 128, 5);
  4343.  
  4344. entity_set_edict(Ent, EV_ENT_euser2 ,1);
  4345. entity_set_float(Ent, EV_FL_nextthink, halflife_time() + 0.5);
  4346.  
  4347. return PLUGIN_CONTINUE;
  4348. }
  4349.  
  4350. public Explode(id) {
  4351. new Float:fOrigin[3], iOrigin[3];
  4352. entity_get_vector( id, EV_VEC_origin, fOrigin);
  4353. iOrigin[0] = floatround(fOrigin[0]);
  4354. iOrigin[1] = floatround(fOrigin[1]);
  4355. iOrigin[2] = floatround(fOrigin[2]);
  4356.  
  4357. Create_TE_EXPLOSION(iOrigin, g_iSpriteID[SPR_Blast], 32, 20, 0);
  4358.  
  4359. Create_TE_BEAMCYLINDER(iOrigin, 200, g_iSpriteID[SPR_White], 0, 0, 10, 10, 255, 255, 100, 100, 128, 8);
  4360.  
  4361. new szEntList[33];
  4362. new iNumFound = find_sphere_class(id, "player", 200.0, szEntList, charsmax(szEntList));
  4363.  
  4364. for(new i=0; i < iNumFound; i++) {
  4365. new Pid = szEntList[i];
  4366.  
  4367. if(!is_user_alive( Pid ) || get_user_team(id) == get_user_team(Pid)) continue;
  4368. ExecuteHam(Ham_TakeDamage, Pid, 0, id, 400.0, 1);
  4369. }
  4370. return PLUGIN_CONTINUE;
  4371. }
  4372.  
  4373. public CreateRocket(id) {
  4374. if(!g_PlayerInfo[id][g_iRocket]) {
  4375. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4376. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_ISKORISTIO_RAKETA");
  4377. return PLUGIN_CONTINUE;
  4378. }
  4379.  
  4380. if(is_user_alive( id )) {
  4381. if(g_fLastUsed[id] + 2.0 > get_gametime()) {
  4382. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4383. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L", id, "ML_SACEKAJ_SEC_RAKETE");
  4384. return PLUGIN_CONTINUE;
  4385. }
  4386.  
  4387. if(g_PlayerInfo[id][g_iIntelligence] < 1) {
  4388. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4389. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L", id, "ML_POVECAJ_INTELIGENCIJU_RAKETA");
  4390. }
  4391.  
  4392. g_fLastUsed[id] = get_gametime();
  4393. g_PlayerInfo[id][g_iRocket]--;
  4394.  
  4395. new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
  4396.  
  4397. entity_get_vector(id, EV_VEC_v_angle, vAngle);
  4398. entity_get_vector(id, EV_VEC_origin , Origin);
  4399.  
  4400. new Ent = create_entity("info_target");
  4401.  
  4402. entity_set_string(Ent, EV_SZ_classname, g_szEntsNames[ENT_Rocket]);
  4403. entity_set_model(Ent, g_szModels[MDL_ROCKET]);
  4404.  
  4405. vAngle[0] *= -1.0;
  4406.  
  4407. entity_set_origin(Ent, Origin);
  4408. entity_set_vector(Ent, EV_VEC_angles, vAngle);
  4409.  
  4410. entity_set_int(Ent, EV_INT_effects, 2);
  4411. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  4412. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
  4413. entity_set_edict(Ent, EV_ENT_owner, id);
  4414.  
  4415. VelocityByAim(id, 1000, Velocity);
  4416. entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
  4417. }
  4418. return PLUGIN_CONTINUE;
  4419. }
  4420.  
  4421. public CreateDynamite(id) {
  4422. if(!g_PlayerInfo[id][g_iDynamite]) {
  4423. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4424. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_ISKORISTIO_DINAMIT");
  4425. return PLUGIN_CONTINUE;
  4426. }
  4427.  
  4428. if(is_user_alive( id )) {
  4429. if(g_PlayerInfo[id][g_iIntelligence] < 1) {
  4430. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4431. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_POVECAJ_INTELIGENCIJU_DINAMIT");
  4432. }
  4433.  
  4434. g_PlayerInfo[id][g_iDynamite]--;
  4435.  
  4436. new Float:fOrigin[3];
  4437. entity_get_vector(id, EV_VEC_origin, fOrigin);
  4438.  
  4439. new iOrigin[3];
  4440. for(new i=0;i<3;i++) iOrigin[i] = floatround(fOrigin[i]);
  4441.  
  4442. Create_TE_EXPLOSION(iOrigin, g_iSpriteID[SPR_Blast], 32, 20, 0);
  4443.  
  4444. Create_TE_BEAMCYLINDER(iOrigin, 300, g_iSpriteID[SPR_White], 0, 0, 10, 10, 255, 61, 255, 255, 128, 8);
  4445.  
  4446. new szEntList[33];
  4447. new iNumFound = find_sphere_class(id, "player", 90.0, szEntList, charsmax(szEntList));
  4448.  
  4449. for(new i=0; i < iNumFound; i++) {
  4450. new iPlayers = szEntList[i];
  4451.  
  4452. if(!is_user_alive( iPlayers ) || get_user_team(id) == get_user_team(iPlayers) || predmet_igraca[iPlayers][0] == 39 || predmet_igraca[iPlayers][0] == 24 || g_PlayerInfo[iPlayers][g_iClass] == Dante ) continue;
  4453. ExecuteHam(Ham_TakeDamage, iPlayers, 0, id, 120.0+float(g_PlayerInfo[id][g_iIntelligence]), 1);
  4454. }
  4455. }
  4456. return PLUGIN_CONTINUE;
  4457. }
  4458.  
  4459. public CreateMine(id) {
  4460. if(!g_PlayerInfo[id][g_iMine]) {
  4461. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4462. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_ISKORISTIO", g_szEntsNames[ENT_Mine]);
  4463. return PLUGIN_CONTINUE;
  4464. }
  4465.  
  4466. if(is_user_alive( id )) {
  4467. if(g_PlayerInfo[id][g_iIntelligence] < 1) {
  4468. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  4469. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_POVECAJ_INTELIGENCIJU", g_szEntsNames[ENT_Mine]);
  4470. }
  4471.  
  4472. g_PlayerInfo[id][g_iMine]--;
  4473.  
  4474. new Float:fOrigin[3];
  4475. entity_get_vector(id, EV_VEC_origin, fOrigin);
  4476.  
  4477. new Ent = create_entity("info_target");
  4478. entity_set_string(Ent, EV_SZ_classname, g_szEntsNames[ENT_Mine]);
  4479. entity_set_edict(Ent, EV_ENT_owner, id);
  4480. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_TOSS);
  4481. entity_set_origin(Ent, fOrigin);
  4482. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  4483.  
  4484. entity_set_model(Ent, g_szModels[MDL_MINE]);
  4485. entity_set_size(Ent, Float:{-16.0,-16.0,0.0}, Float:{16.0,16.0,2.0});
  4486.  
  4487. drop_to_floor(Ent);
  4488.  
  4489. entity_set_float(Ent, EV_FL_nextthink,halflife_time() + 0.01) ;
  4490.  
  4491. set_rendering(Ent, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 50);
  4492. }
  4493. return PLUGIN_CONTINUE;
  4494. }
  4495.  
  4496. public fw_TouchMine(Ent, id) {
  4497. new Attacker = entity_get_edict(Ent, EV_ENT_owner);
  4498. if(get_user_team(Attacker) != get_user_team(id)) {
  4499. new Float:fOrigin[3];
  4500. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4501.  
  4502. new iOrigin[3];
  4503. for(new i=0;i<3;i++) iOrigin[i] = floatround(fOrigin[i]);
  4504.  
  4505. Create_TE_EXPLOSION(iOrigin, g_iSpriteID[SPR_Blast], 32, 20, 0);
  4506.  
  4507. new szEntList[33];
  4508. new iNumFound = find_sphere_class(Ent, "player", 90.0, szEntList, charsmax(szEntList));
  4509.  
  4510. for(new i=0; i < iNumFound; i++) {
  4511. new iPlayers = szEntList[i];
  4512.  
  4513. if(!is_user_alive( iPlayers ) || get_user_team(Attacker) == get_user_team(iPlayers) || predmet_igraca[iPlayers][0] == 24 || predmet_igraca[iPlayers][0] == 39 || g_PlayerInfo[iPlayers][g_iClass] == Swat || g_PlayerInfo[iPlayers][g_iClass] == Dante ) continue;
  4514. ExecuteHam(Ham_TakeDamage, iPlayers, Ent, Attacker, 100.0+float(g_PlayerInfo[Attacker][g_iIntelligence]), 1);
  4515. }
  4516. remove_entity(Ent);
  4517. }
  4518. }
  4519.  
  4520. public fw_TouchRocket(Ent, id) {
  4521. if(!is_valid_ent(Ent)) return;
  4522.  
  4523. new Attacker = entity_get_edict(Ent, EV_ENT_owner);
  4524. if(get_user_team(Attacker) != get_user_team(id)) {
  4525. new Float:fOrigin[3];
  4526. entity_get_vector(Ent, EV_VEC_origin, fOrigin);
  4527.  
  4528. new iOrigin[3];
  4529. for(new i=0; i<3; i++) iOrigin[i] = floatround(fOrigin[i]);
  4530.  
  4531. Create_TE_EXPLOSION(iOrigin, g_iSpriteID[SPR_Blast], 32, 20, 0);
  4532.  
  4533. new szEntList[33];
  4534. new iNumFound = find_sphere_class(Ent, "player", 100.0, szEntList, charsmax(szEntList));
  4535.  
  4536. for(new i=0; i < iNumFound; i++) {
  4537. new iPlayers = szEntList[i];
  4538.  
  4539. if(!is_user_alive( iPlayers ) || get_user_team(Attacker) == get_user_team(iPlayers) || g_PlayerInfo[iPlayers][g_iClass] == Kadet || g_PlayerInfo[iPlayers][g_iClass] == Swat || g_PlayerInfo[iPlayers][g_iClass] == Madjionicar || g_PlayerInfo[iPlayers][g_iClass] == Dante || predmet_igraca[iPlayers][0] == 39 || predmet_igraca[iPlayers][0] == 24) continue;
  4540. ExecuteHam(Ham_TakeDamage, iPlayers, Ent, Attacker, 250.0+float(g_PlayerInfo[Attacker][g_iIntelligence]), 1);
  4541. }
  4542. remove_entity(Ent);
  4543. }
  4544. }
  4545.  
  4546. public cod_kutija_dodirnuta(id) {
  4547. if(!is_user_alive( id )) return PLUGIN_CONTINUE;
  4548.  
  4549. set_hudmessage(0, 255, 255, -1.0, 0.20, 0, 6.0, 2.0);
  4550. switch(random_num(1, 18)) {
  4551. case 1: {
  4552. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 100 HP", id, "ML_BONUS_DOBILI");
  4553. set_user_health(id, get_user_health(id) + 100);
  4554. }
  4555. case 2: {
  4556. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 100 HP", id, "ML_BONUS_IZGUBILI");
  4557. set_user_health(id, get_user_health(id) - 100);
  4558. }
  4559. case 3: {
  4560. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 100 AP", id, "ML_BONUS_DOBILI");
  4561. set_user_armor(id, get_user_armor(id) + 100);
  4562. }
  4563. case 4: {
  4564. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 100 AP", id, "ML_BONUS_IZGUBILI");
  4565. set_user_armor(id, get_user_armor(id) - 100);
  4566. }
  4567. case 5, 11: ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L", id, "ML_BONUS_NISTA");
  4568. case 6: {
  4569. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 10000$", id, "ML_BONUS_DOBILI");
  4570. cs_set_user_money(id, cs_get_user_money(id) + 10000);
  4571. }
  4572. case 7: {
  4573. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 5000$", id, "ML_BONUS_DOBILI");
  4574. cs_set_user_money(id, cs_get_user_money(id) + 5000);
  4575. }
  4576. case 8: {
  4577. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 20 GOLD", id, "ML_BONUS_DOBILI");
  4578. g_PlayerInfo[id][g_iGold] += 20;
  4579. }
  4580. case 9: {
  4581. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 50 GOLD", id, "ML_BONUS_DOBILI");
  4582. g_PlayerInfo[id][g_iGold] += 50;
  4583. }
  4584. case 10: {
  4585. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 50 GOLD", id, "ML_BONUS_IZGUBILI");
  4586. g_PlayerInfo[id][g_iGold] -= 50;
  4587. }
  4588. case 12: {
  4589. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 1000 XP-a", id, "ML_BONUS_DOBILI");
  4590. g_PlayerInfo[id][g_iXP] += 1000;
  4591. }
  4592. case 13: {
  4593. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 500 XP-a", id, "ML_BONUS_DOBILI");
  4594. g_PlayerInfo[id][g_iXP] += 500;
  4595. }
  4596. case 14: {
  4597. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L Deagle", id, "ML_BONUS_DOBILI");
  4598. give_item(id, "weapon_deagle");
  4599. cs_set_user_bpammo(id, CSW_AK47, 35);
  4600. }
  4601. case 15: {
  4602. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L AK47", id, "ML_BONUS_DOBILI");
  4603. give_item(id, "weapon_ak47");
  4604. cs_set_user_bpammo(id, CSW_AK47, 90);
  4605. }
  4606. case 16: {
  4607. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L M4A1", id, "ML_BONUS_DOBILI");
  4608. give_item(id, "weapon_m4a1");
  4609. cs_set_user_bpammo(id, CSW_M4A1, 90);
  4610. }
  4611. case 17: {
  4612. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L AWP", id, "ML_BONUS_DOBILI");
  4613. give_item(id, "weapon_awp");
  4614. cs_set_user_bpammo(id, CSW_AWP, 30);
  4615. }
  4616. case 18: {
  4617. ShowSyncHudMsg(id, g_HudInfo[HudData_BonusBox], "%L 500 XP-a", id, "ML_BONUS_IZGUBILI");
  4618. g_PlayerInfo[id][g_iXP] -= 500;
  4619. }
  4620. }
  4621.  
  4622. return PLUGIN_CONTINUE;
  4623. }
  4624.  
  4625. public fw_Event_CurWeapon(id) {
  4626. if(g_bFreezeTime || !g_PlayerInfo[id][g_iClass]) return 0;
  4627.  
  4628. new iWeaponID = read_data(2);
  4629.  
  4630. PostaviBrzinu(id);
  4631.  
  4632. if(get_user_weapon(id) == CSW_HEGRENADE) {
  4633. if(is_blocked_map()) {
  4634. client_print(id, print_center, "He Grenade is Blocked");
  4635. engclient_cmd(id, "weapon_knife");
  4636. }
  4637. }
  4638.  
  4639. if(predmet_igraca[id][0] == 32 || ( g_PlayerInfo[id][g_iClass] == Glacier || g_PlayerInfo[id][g_iClass] == Crank || g_PlayerInfo[id][g_iClass] == Robot && iWeaponID == CSW_M3 ) || g_PowerShopInfo[id][PowerShopData_Ammo]) if(g_iWeaponsData[iWeaponID][1] != -1) set_user_clip(id, g_iWeaponsData[iWeaponID][1]);
  4640.  
  4641. update_ammo(id);
  4642.  
  4643. return 0;
  4644. }
  4645.  
  4646. public fw_Ham_Item_Deploy_Post(iEnt) {
  4647. new id = fm_cs_get_weapon_ent_owner(iEnt);
  4648.  
  4649. if(!pev_valid(id)) return;
  4650.  
  4651. new iWeaponID = cs_get_weapon_id(iEnt);
  4652.  
  4653. switch(g_PlayerInfo[id][g_iClass]) {
  4654. case Blade, Ninja, Samuraj: {
  4655. if(iWeaponID == CSW_KNIFE) {
  4656. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_KATANA]);
  4657. entity_set_string(id, EV_SZ_weaponmodel, g_szModels[MDL_P_KATANA]);
  4658. }
  4659. }
  4660. case Batman: {
  4661. if(iWeaponID == CSW_KNIFE) {
  4662. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_BATMAN]);
  4663. }
  4664. }
  4665. case VanHelsing, Lovac, RobinHud: {
  4666. if(iWeaponID == CSW_SCOUT) {
  4667. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_CROSSBOW]);
  4668. entity_set_string(id, EV_SZ_weaponmodel, g_szModels[MDL_P_CROSSBOW]);
  4669. }
  4670. }
  4671. case MisterijaKisobrana: {
  4672. if(iWeaponID == CSW_M3) {
  4673. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_KISOBRAN]);
  4674. entity_set_string(id, EV_SZ_weaponmodel, g_szModels[MDL_P_KISOBRAN]);
  4675. }
  4676. }
  4677. case Hitman: {
  4678. if(iWeaponID == CSW_USP) {
  4679. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_HITMAN_USP]);
  4680. }
  4681. }
  4682. case Predator: {
  4683. if(iWeaponID == CSW_SCOUT) {
  4684. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_PREDATORS]);
  4685. }
  4686. }
  4687. case Phantom: {
  4688. if(iWeaponID == CSW_KNIFE) {
  4689. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_PHANTOMKNIFE]);
  4690. }
  4691. }
  4692. case RokerSMoravu: {
  4693. if(iWeaponID == CSW_SCOUT) {
  4694. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_GITARA]);
  4695. }
  4696. }
  4697. case Wolverine: {
  4698. if(iWeaponID == CSW_KNIFE) {
  4699. entity_set_string(id, EV_SZ_viewmodel, ((g_PlayerInfo[id][g_iClassData] == 0) ? g_szModels[MDL_V_WOLVERINE] : g_szModels[MDL_V_WOLVERINE_CLAWS]));
  4700. entity_set_string(id, EV_SZ_weaponmodel, ((g_PlayerInfo[id][g_iClassData] == 0) ? g_szModels[MDL_P_WOLVERINE] : g_szModels[MDL_P_WOLVERINE_CLAWS]));
  4701. }
  4702. }
  4703. case Boxer: {
  4704. if(iWeaponID == CSW_KNIFE) {
  4705. entity_set_string(id, EV_SZ_viewmodel, g_szModels[MDL_V_WOLVERINE]);
  4706. entity_set_string(id, EV_SZ_weaponmodel, g_szModels[MDL_P_WOLVERINE]);
  4707. }
  4708. }
  4709.  
  4710. }
  4711. }
  4712.  
  4713. public fw_Item_AddToPlayer(const iItem, const iPlayer) {
  4714. if(pev_valid(iItem) && is_user_alive( iPlayer ) && g_PlayerInfo[iPlayer][g_iClass] == Wolverine) {
  4715. message_begin(MSG_ONE, g_iMessageID[MSGID_WeaponList], .player = iPlayer);
  4716. write_string("ExitCOD/weapon_claws");
  4717. write_byte(-1);
  4718. write_byte(-1);
  4719. write_byte(-1);
  4720. write_byte(-1);
  4721. write_byte(2);
  4722. write_byte(1);
  4723. write_byte(CSW_KNIFE);
  4724. write_byte(0);
  4725. message_end();
  4726. }
  4727. }
  4728.  
  4729. public fw_Ham_Weapon_Reload_Post(iEnt) {
  4730. if(get_pdata_int(iEnt, m_fInReload, 4)) {
  4731. new id = get_pdata_cbase(iEnt, m_pPlayer, 4);
  4732.  
  4733. if(predmet_igraca[id][0] == 53) {
  4734. new Float: flNextAttack = get_pdata_float(id, m_flNextAttack, 5) *0.1;
  4735. set_pdata_float(id, m_flNextAttack, flNextAttack, 5);
  4736.  
  4737. new iSeconds = floatround(flNextAttack, floatround_ceil);
  4738. Make_BarTime2(id, iSeconds, 100 - floatround((flNextAttack/iSeconds) * 100));
  4739. }
  4740. }
  4741. }
  4742.  
  4743. public fw_Ham_Item_Holster(iEnt) {
  4744. if(get_pdata_int(iEnt, m_fInReload, 4)) {
  4745. new id = get_pdata_cbase(iEnt, m_pPlayer, 4);
  4746.  
  4747. if(predmet_igraca[id][0] == 53) Make_BarTime2(id, 0, 0);
  4748. }
  4749. }
  4750.  
  4751. Make_BarTime2(id, iSeconds, iPercent) {
  4752. message_begin(MSG_ONE_UNRELIABLE, g_iMessageID[MSGID_BarTime2], _, id);
  4753. write_short(iSeconds);
  4754. write_short(iPercent);
  4755. message_end();
  4756. }
  4757.  
  4758. public SacuvajPodatke(id) {
  4759. if(!g_PlayerInfo[id][g_iClass]) return PLUGIN_CONTINUE;
  4760.  
  4761. new szVaultKey[45], szVaultData[128];
  4762. formatex(szVaultData, charsmax(szVaultData),"%i %i %i %i %i %i %i", g_PlayerInfo[id][g_iXP], g_PlayerInfo[id][g_iLevel], g_PlayerInfo[id][g_iIntelligence], g_PlayerInfo[id][g_iEnergy], g_PlayerInfo[id][g_iTrim], g_PlayerInfo[id][g_iStamina], g_PlayerInfo[id][g_iDamage]);
  4763.  
  4764. formatex(szVaultKey, charsmax(szVaultKey),"%s-%s-cod", g_PlayerInfo[id][g_szSteamID], Klase[ g_PlayerInfo[id][g_iClass] ][ 0 ] );
  4765. nvault_set(gVault, szVaultKey, szVaultData);
  4766.  
  4767. return PLUGIN_CONTINUE;
  4768. }
  4769.  
  4770. public UcitajPodatke(id, klasa) {
  4771. new szVaultKey[45], szVaultData[128], szPlayerData[7][16];
  4772.  
  4773. formatex(szVaultKey, charsmax(szVaultKey),"%s-%s-cod", g_PlayerInfo[id][g_szSteamID], Klase[ klasa ][ 0 ] );
  4774. nvault_get(gVault, szVaultKey, szVaultData, charsmax(szVaultData));
  4775.  
  4776. parse(szVaultData, szPlayerData[0], charsmax( szPlayerData[ ] ), szPlayerData[1], charsmax( szPlayerData[ ] ), szPlayerData[2], charsmax( szPlayerData[ ] ),
  4777. szPlayerData[3], charsmax( szPlayerData[ ] ), szPlayerData[4], charsmax( szPlayerData[ ] ), szPlayerData[5], charsmax( szPlayerData[ ] ), szPlayerData[6], charsmax( szPlayerData[ ] ) );
  4778.  
  4779. g_PlayerInfo[id][g_iXP] = str_to_num(szPlayerData[0]);
  4780. g_PlayerInfo[id][g_iLevel] = str_to_num(szPlayerData[1])>0?str_to_num(szPlayerData[1]):50;
  4781. g_PlayerInfo[id][g_iIntelligence] = str_to_num(szPlayerData[2]);
  4782. g_PlayerInfo[id][g_iEnergy] = str_to_num(szPlayerData[3]);
  4783. g_PlayerInfo[id][g_iTrim] = str_to_num(szPlayerData[4]);
  4784. g_PlayerInfo[id][g_iStamina] = str_to_num(szPlayerData[5]);
  4785. g_PlayerInfo[id][g_iDamage] = str_to_num(szPlayerData[6]);
  4786. g_PlayerInfo[id][g_iPoints] = (g_PlayerInfo[id][g_iLevel]-1)*2-g_PlayerInfo[id][g_iIntelligence]-g_PlayerInfo[id][g_iEnergy]-g_PlayerInfo[id][g_iTrim]-g_PlayerInfo[id][g_iStamina]-g_PlayerInfo[id][g_iDamage];
  4787.  
  4788. return PLUGIN_CONTINUE;
  4789. }
  4790.  
  4791. public IzbaciPredmet(id) {
  4792. if(predmet_igraca[id][0]) {
  4793. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L.", id, "ML_BACIO_SI", id, g_szPerksData[predmet_igraca[id][0]][0]);
  4794. Obrisipredmet(id);
  4795. }
  4796. else ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_PREDMET");
  4797. }
  4798.  
  4799. public Obrisipredmet(id) {
  4800. for(new i=0; i<2; i++) predmet_igraca[id][i] = 0;
  4801.  
  4802. if(is_user_alive( id )) {
  4803. set_user_footsteps(id, 0);
  4804. set_user_visible(id, 255);
  4805. }
  4806. }
  4807.  
  4808. public OpisPredmetaIgraca(id) ShowPerkDescription(id, predmet_igraca[id][0], 1);
  4809.  
  4810. public Provera(id) {
  4811. id -= ZADATAK_PROVERA;
  4812. ExecuteHamB(Ham_CS_RoundRespawn, id);
  4813. }
  4814.  
  4815. public ProveriNivo(id) {
  4816. new iOldLevel = g_PlayerInfo[id][g_iLevel];
  4817.  
  4818. if(g_PlayerInfo[id][g_iLevel] < 2000) {
  4819. while(g_PlayerInfo[id][g_iXP] >= g_iLevelXP[g_PlayerInfo[id][g_iLevel]]) g_PlayerInfo[id][g_iLevel]++;
  4820.  
  4821. g_PlayerInfo[id][g_iPoints] = (g_PlayerInfo[id][g_iLevel]-1)*2-g_PlayerInfo[id][g_iIntelligence]-g_PlayerInfo[id][g_iEnergy]-g_PlayerInfo[id][g_iTrim]-g_PlayerInfo[id][g_iStamina]-g_PlayerInfo[id][g_iDamage];
  4822.  
  4823. if(iOldLevel < g_PlayerInfo[id][g_iLevel]) {
  4824. set_hudmessage(0, 255, 255, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
  4825. ShowSyncHudMsg(id, g_HudInfo[HudData_LevelUP], "%L", id, "ML_LEVEL_UP", g_PlayerInfo[id][g_iLevel]);
  4826. client_cmd(id, "spk ExitCOD/levelup");
  4827. }
  4828. }
  4829.  
  4830. SacuvajPodatke(id);
  4831. SacuvajBanku( id );
  4832. }
  4833.  
  4834.  
  4835. public ShowInfo() {
  4836. new iEnt = create_entity("info_target");
  4837.  
  4838. if(!iEnt) return;
  4839.  
  4840. entity_set_string(iEnt, EV_SZ_classname, g_szEntsNames[ENT_HudData]);
  4841. entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 4.0);
  4842. }
  4843.  
  4844. public fw_Think_HudInfo(iEnt) {
  4845. if(!is_valid_ent(iEnt)) return;
  4846.  
  4847. new szClassName[32];
  4848. entity_get_string(iEnt, EV_SZ_classname, szClassName, charsmax(szClassName));
  4849. entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1);
  4850.  
  4851. if(!equali(szClassName, g_szEntsNames[ENT_HudData])) return;
  4852.  
  4853. for(new i=1; i<=g_iMaxPlayers; i++) if(is_user_connected( i )) ShowPlayerInformations(i);
  4854. }
  4855.  
  4856. public ShowPlayerInformations(id) {
  4857. if(is_user_bot( id ) || !is_user_connected( id )) return;
  4858.  
  4859. new szPower[64], iPlayer = (is_user_alive( id ) ? id : entity_get_int(id, EV_INT_iuser2));
  4860. new const opis[][] = {
  4861. "ML_PSHOP_DESET_DAMAGE",
  4862. "ML_PSHOP_DVADESET_DAMAGE",
  4863. "ML_PSHOP_DOUBLE",
  4864. "ML_PSHOP_TRIPLE",
  4865. "ML_PSHOP_SPEED",
  4866. "ML_PSHOP_AMMO",
  4867. "ML_PSHOP_RECOIL",
  4868. "ML_NEMA"
  4869. }
  4870. if(g_PowerShopInfo[id][PowerShopData_10DMG])
  4871. c[id] = 0;
  4872. else if(g_PowerShopInfo[id][PowerShopData_20DMG])
  4873. c[id] = 1;
  4874. else if(g_PowerShopInfo[id][PowerShopData_Double])
  4875. c[id] = 2;
  4876. else if(g_PowerShopInfo[id][PowerShopData_Triple])
  4877. c[id] = 3;
  4878. else if(g_PowerShopInfo[id][PowerShopData_Speed])
  4879. c[id] = 4;
  4880. else if(g_PowerShopInfo[id][PowerShopData_Ammo])
  4881. c[id] = 5;
  4882. else if(g_PowerShopInfo[id][PowerShopData_Recoil])
  4883. c[id] = 6;
  4884. else
  4885. c[id] = 7;
  4886.  
  4887. formatex(szPower, charsmax(szPower), opis[c[id]])
  4888. new Float:fPosX = is_user_alive( id ) ? 0.02 : 0.6;
  4889. new Float:fPosY = is_user_alive( id ) ? 0.15 : -1.0;
  4890.  
  4891. if(is_user_connected( iPlayer ) ) {
  4892. set_hudmessage(0, 255, 255, fPosX, fPosY, 0, 6.0, 0.1);
  4893. ShowSyncHudMsg(id, g_HudInfo[HudData_Info], "-=[%L : %L]=-^n-=[%L : %i / %i]=-^n-=[Level : %i]=-^n-=[%L : %L]=-^n-=[%L : %d]=-^n-=[%L : %d]=-^n-=[Gold : %d]=-^n-=[%L : %L]=-^n-=[SP: %i]=-^n-=[TS: %i]=-",
  4894. id, "ML_KLASA", id, Klase[g_PlayerInfo[iPlayer][g_iClass]][0], id, "ML_ISKUSTVO", g_PlayerInfo[iPlayer][g_iXP], g_iLevelXP[g_PlayerInfo[iPlayer][g_iLevel]], g_PlayerInfo[iPlayer][g_iLevel], id, "ML_PREDMET",
  4895. id, g_szPerksData[predmet_igraca[iPlayer][0]][0], id, "ML_BRZINA", get_speed(iPlayer), id, "ML_ENERGI", floatround( entity_get_float( iPlayer, EV_FL_health ) ), g_PlayerInfo[iPlayer][g_iGold], id, "ML_SPOSOBNOST",
  4896. id, szPower, g_PlayerInfo[ iPlayer ][ g_iSP ],points_igraca[id]);
  4897.  
  4898. if(g_PlayerInfo[iPlayer][g_iMedKit] > 0) {
  4899. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4900. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[MedKit: %i]", g_PlayerInfo[iPlayer][g_iMedKit]);
  4901. }
  4902. if(g_PlayerInfo[iPlayer][g_iRocket] > 0) {
  4903. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4904. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[%L: %i]", id, "ML_RAKETA", g_PlayerInfo[iPlayer][g_iRocket]);
  4905. }
  4906. if(g_PlayerInfo[iPlayer][g_iMine] > 0) {
  4907. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4908. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[Mine: %i]", g_PlayerInfo[iPlayer][g_iMine]);
  4909. }
  4910. if(g_PlayerInfo[iPlayer][g_iDynamite] > 0) {
  4911. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4912. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[%L: %i]", id, "ML_DINAMIT", g_PlayerInfo[iPlayer][g_iDynamite]);
  4913. }
  4914. if(g_PlayerInfo[iPlayer][g_iPoisonKit] > 0) {
  4915. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4916. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[PoisonKit : %i]", g_PlayerInfo[iPlayer][g_iPoisonKit]);
  4917. }
  4918. if(g_PlayerInfo[iPlayer][g_iBomb] > 0) {
  4919. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4920. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[Bomb: %i]", g_PlayerInfo[iPlayer][g_iBomb]);
  4921. }
  4922. if(cod_broj_munja(iPlayer) < 0) {
  4923. set_hudmessage(0, 255, 255, 0.80, 0.20, 0, 0.0, 0.3, 0.0, 0.0, 2);
  4924. ShowSyncHudMsg(id, g_HudInfo[HudData_Item], "[Munja: test]", cod_broj_munja(iPlayer));
  4925. }
  4926.  
  4927. }
  4928. }
  4929.  
  4930. public fw_Ham_Touch(iWeaponID, id) {
  4931. if(!is_user_connected(id)) return HAM_IGNORED;
  4932.  
  4933. new szModel[23];
  4934. entity_get_string(iWeaponID, EV_SZ_model, szModel, charsmax(szModel));
  4935. if(pev(iWeaponID, pev_owner) == id || containi(szModel, "w_backpack") != -1 || g_PlayerInfo[id][g_iClass] == Hitman) return HAM_IGNORED;
  4936.  
  4937. return HAM_SUPERCEDE;
  4938. }
  4939.  
  4940. public BlokirajKomande() return 1;
  4941.  
  4942. public plugin_end() {
  4943. nvault_close(gVault);
  4944.  
  4945. TrieDestroy(tCharacters);
  4946. TrieDestroy(tPassword);
  4947.  
  4948. ArraySort( g_SteamID, "SortRanks" );
  4949. SaveRanks( );
  4950. ArrayDestroy( g_SteamID );
  4951. }
  4952.  
  4953. public ProdajPredmet(id) {
  4954. client_cmd(id, "spk ExitCOD/select");
  4955.  
  4956. if(!predmet_igraca[id][0]) {
  4957. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L.", id, "ML_NEMATE_PREDMET");
  4958. return 0;
  4959. }
  4960.  
  4961. else {
  4962. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L^1 %L^3 2000$", id, "ML_PRODAO_SI", id, g_szPerksData[predmet_igraca[id][0]][0], id, "ML_ZA");
  4963. Obrisipredmet(id);
  4964. cs_set_user_money(id, cs_get_user_money(id) + 2000);
  4965. }
  4966.  
  4967. return 0;
  4968. }
  4969.  
  4970. public PostaviLang(id) {
  4971. new szLang[3];
  4972. get_user_lang(id, szLang, charsmax(szLang));
  4973.  
  4974. set_user_lang(id, ((equali(szLang, "en") || equali(szLang, "sr")) ? szLang : "en"));
  4975. }
  4976.  
  4977. public fw_Touch(id, iWorld) if(is_user_alive( id ) && (g_PlayerInfo[id][g_iClass] == Samuraj || g_PlayerInfo[id][g_iClass] == VampirToza || g_PlayerInfo[id][g_iClass] == Ninja || g_PlayerInfo[id][g_iClass] == Phantom ) && pev_valid(id)) entity_get_vector(id, EV_VEC_origin, g_fWallOrigin[id]);
  4978.  
  4979.  
  4980. public WallClimb(id) {
  4981. new Float: fOrigin[3];
  4982. entity_get_vector(id, EV_VEC_origin, fOrigin);
  4983.  
  4984. if(get_distance_f(fOrigin, g_fWallOrigin[id]) > 25.0) return FMRES_IGNORED;
  4985.  
  4986. if(entity_get_int(id, EV_INT_flags) & FL_ONGROUND) return FMRES_IGNORED;
  4987.  
  4988. new iButton = entity_get_int(id, EV_INT_button);
  4989.  
  4990. if((iButton & IN_FORWARD) || (iButton & IN_BACK)) {
  4991. new Float: fVelocity[3];
  4992. VelocityByAim(id, ((iButton & IN_FORWARD) ? 120 : -120), fVelocity);
  4993. entity_set_vector(id, EV_VEC_velocity, fVelocity);
  4994. }
  4995.  
  4996. return FMRES_IGNORED;
  4997. }
  4998.  
  4999. public Info(id) {
  5000. if(g_PlayerInfo[id][g_iClass] == Teleporter || predmet_igraca[id][0] == 52) {
  5001. set_hudmessage(0, 255, 255, -1.0, 0.30, 0, 6.0, 2.0);
  5002. ShowSyncHudMsg(id, g_HudInfo[HudData_ItemInfo], "%L!", id, "ML_TELEPORT_KORISTI");
  5003. }
  5004. }
  5005.  
  5006. stock Teleport(Index) {
  5007. new Float: fStart[3], Float: fViewOfs[3], Float: fDest[3], Float: fDstOrigin[3], Float: fNormal[3];
  5008.  
  5009. entity_get_vector(Index, EV_VEC_origin, fStart);
  5010. entity_get_vector(Index, EV_VEC_view_ofs, fViewOfs);
  5011. xs_vec_add(fStart, fViewOfs, fStart);
  5012.  
  5013. entity_get_vector(Index, EV_VEC_v_angle, fDest);
  5014. engfunc(EngFunc_MakeVectors, fDest);
  5015. global_get(glb_v_forward, fDest);
  5016. xs_vec_mul_scalar(fDest, 999.0, fDest);
  5017. xs_vec_add(fStart, fDest, fDest);
  5018.  
  5019. engfunc(EngFunc_TraceLine, fStart, fDest, 0, Index, 0);
  5020.  
  5021. get_tr2(0, TR_vecEndPos, fDstOrigin);
  5022.  
  5023. if(engfunc(EngFunc_PointContents, fDstOrigin) == CONTENTS_SKY) return 0;
  5024.  
  5025. get_tr2(0, TR_vecPlaneNormal, fNormal);
  5026.  
  5027. xs_vec_mul_scalar(fNormal, 50.0, fNormal);
  5028. xs_vec_add(fDstOrigin, fNormal, fDstOrigin);
  5029. entity_set_vector(Index, EV_VEC_origin, fDstOrigin);
  5030.  
  5031. return true;
  5032. }
  5033.  
  5034. stock bool: UTIL_In_FOV(Index, iTarget) {
  5035. if(Find_Angle(Index, iTarget, 9999.9) > 0.0) return true;
  5036. return false;
  5037. }
  5038.  
  5039. stock Float: Find_Angle(iCore, iTarget, Float: fDist) {
  5040. new Float: fVec2LOS[2], Float: fDot, Float: fCoreOrigin[3], Float: fTargetOrigin[3], Float: fCoreAngles[3];
  5041.  
  5042. entity_get_vector(iCore, EV_VEC_origin, fCoreOrigin);
  5043. entity_get_vector(iTarget, EV_VEC_origin, fTargetOrigin);
  5044.  
  5045. if(get_distance_f(fCoreOrigin, fTargetOrigin) > fDist) return 0.0;
  5046.  
  5047. entity_get_vector(iCore, EV_VEC_angles, fCoreAngles);
  5048.  
  5049. for(new i=0; i<2; i++) fVec2LOS[i] = fTargetOrigin[i] - fCoreOrigin[i];
  5050.  
  5051. new Float: fVecLength = Vec2DLength(fVec2LOS);
  5052.  
  5053. if(fVecLength <= 0.0) {
  5054. fVec2LOS[0] = 0.0;
  5055. fVec2LOS[1] = 0.0;
  5056. }
  5057.  
  5058. else {
  5059. new Float: fLen = 1.0 / fVecLength;
  5060. for(new i=0; i<2; i++) fVec2LOS[i] *= fLen;
  5061. }
  5062.  
  5063. engfunc(EngFunc_MakeVectors, fCoreAngles);
  5064.  
  5065. new Float: fvForward[3], Float: fvForward2D[2];
  5066. get_global_vector(GL_v_forward, fvForward);
  5067.  
  5068. for(new i=0; i<2; i++) fvForward2D[i] = fvForward[i];
  5069.  
  5070. fDot = fVec2LOS[0]*fvForward2D[0]+fVec2LOS[1]*fvForward2D[1];
  5071.  
  5072. if(fDot > 0.5) return fDot;
  5073.  
  5074. return 0.0;
  5075. }
  5076.  
  5077. stock ShowPerkDescription(Index, iPerk1, iPerk2) {
  5078. new szDesc[512], szRandomNum[3];
  5079. num_to_str(predmet_igraca[Index][1], szRandomNum, charsmax(szRandomNum));
  5080.  
  5081. if(!iPerk2) formatex(szDesc, charsmax(szDesc), "\y%L \d: \r%L^n\y%L \d: \r%L", Index, "ML_PREDMET", Index, g_szPerksData[iPerk1][0], Index, "ML_OPIS", Index, g_szPerksData[iPerk1][1]);
  5082.  
  5083. else {
  5084. new iTarget = pev(Index, pev_iuser2);
  5085.  
  5086. if(iTarget) formatex(szDesc, charsmax(szDesc), "\r%L \w:^n\y%L \d: \r%L^n\y%L \d: \r%L^n^n\r%L \w:^n\y%L \d: \r%L^n\y%L \d: \r%L", Index, "ML_MOJ_PREDMET", Index, "ML_PREDMET", Index, g_szPerksData[iPerk1][0], Index, "ML_OPIS", Index, g_szPerksData[iPerk1][1], Index, "ML_PREDMET_METE", Index, "ML_PREDMET", Index, g_szPerksData[predmet_igraca[iTarget][0]][0], Index, "ML_OPIS", Index, g_szPerksData[predmet_igraca[iTarget][0]][1]);
  5087. else formatex(szDesc, charsmax(szDesc), "\y%L \d: \r%L^n\y%L \d: \r%L", Index, "ML_PREDMET", Index, g_szPerksData[iPerk1][0], Index, "ML_OPIS", Index, g_szPerksData[iPerk1][1]);
  5088. }
  5089.  
  5090. replace_all(szDesc, charsmax(szDesc), "LW", szRandomNum);
  5091. show_menu(Index, 1023, szDesc);
  5092.  
  5093. return 0;
  5094. }
  5095.  
  5096. stock Create_TE_BEAMENTS(iStartEntity, iEndEntity, iSprite, iStartFrame, iFrameRate, iLife, iWidth, iNoise, iRed, iGreen, iBlue, iAlpha, iSpeed) {
  5097. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  5098. write_byte(TE_BEAMENTS);
  5099. write_short(iStartEntity);
  5100. write_short(iEndEntity);
  5101. write_short(iSprite);
  5102. write_byte(iStartFrame);
  5103. write_byte(iFrameRate);
  5104. write_byte(iLife);
  5105. write_byte(iWidth);
  5106. write_byte(iNoise);
  5107. write_byte(iRed);
  5108. write_byte(iGreen);
  5109. write_byte(iBlue);
  5110. write_byte(iAlpha);
  5111. write_byte(iSpeed);
  5112. message_end();
  5113. }
  5114.  
  5115. stock Create_TE_BEAMCYLINDER(iOrigin[3], iPlusOrigin, iSprite, iStartFrame, iFrameRate, iLife, iWidth, iNoise, iRed, iGreen, iBlue, iAlpha, iSpeed) {
  5116. message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iOrigin);
  5117. write_byte(TE_BEAMCYLINDER);
  5118. write_coord(iOrigin[0]);
  5119. write_coord(iOrigin[1]);
  5120. write_coord(iOrigin[2]);
  5121. write_coord(iOrigin[0]);
  5122. write_coord(iOrigin[1] + iPlusOrigin);
  5123. write_coord(iOrigin[2] + iPlusOrigin);
  5124. write_short(iSprite);
  5125. write_byte(iStartFrame);
  5126. write_byte(iFrameRate);
  5127. write_byte(iLife);
  5128. write_byte(iWidth);
  5129. write_byte(iNoise);
  5130. write_byte(iRed);
  5131. write_byte(iGreen);
  5132. write_byte(iBlue);
  5133. write_byte(iAlpha);
  5134. write_byte(iSpeed);
  5135. message_end();
  5136. }
  5137.  
  5138. stock Create_TE_EXPLOSION(iOrigin[3], iSprite, iScale, iFrameRate, iFlags) {
  5139. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  5140. write_byte(TE_EXPLOSION);
  5141. write_coord(iOrigin[0]);
  5142. write_coord(iOrigin[1]);
  5143. write_coord(iOrigin[2]);
  5144. write_short(iSprite);
  5145. write_byte(iScale);
  5146. write_byte(iFrameRate);
  5147. write_byte(iFlags);
  5148. message_end();
  5149. }
  5150.  
  5151. stock GivePerk(Index, iPerk) {
  5152. Obrisipredmet(Index);
  5153.  
  5154. for(new i=0; i<sizeof(g_iPerksWithHe); i++) {
  5155. if(is_blocked_map()) {
  5156. if(iPerk == g_iPerksWithHe[i]) {
  5157. new iRand = random_num(1, sizeof(g_szPerksData)-1);
  5158.  
  5159. if(iRand == g_iPerksWithHe[i]) iRand = random_num(1, sizeof(g_szPerksData)-1);
  5160. }
  5161. }
  5162. }
  5163.  
  5164. predmet_igraca[Index][0] = iPerk;
  5165.  
  5166. ColorChat(Index, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L.", Index, "ML_DOBIO_SI", Index, g_szPerksData[predmet_igraca[Index][0]][0]);
  5167.  
  5168. switch(iPerk) {
  5169. case 4, 8, 10, 13, 56: if( g_PlayerInfo[Index][g_iClass] == DrugTito ) {
  5170. GivePerk( Index, random_num(1, sizeof g_szPerksData - 1 ) );
  5171. return;
  5172. }
  5173. }
  5174. switch(iPerk) {
  5175. case 1, 44: set_user_footsteps(Index, 1);
  5176. case 5: predmet_igraca[Index][1] = random_num(6, 9);
  5177. case 6: {
  5178. predmet_igraca[Index][1] = random_num(100, 150);
  5179. set_rendering(Index, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, predmet_igraca[Index][1]);
  5180. }
  5181. case 7: predmet_igraca[Index][1] = random_num(2, 4);
  5182. case 10: {
  5183. predmet_igraca[Index][1] = random_num(4, 8);
  5184. give_item(Index, "weapon_hegrenade");
  5185. }
  5186. case 12: predmet_igraca[Index][1] = random_num(1, 4);
  5187. case 13: give_item(Index, "weapon_awp");
  5188. case 19: predmet_igraca[Index][1] = 1;
  5189. case 26: predmet_igraca[Index][1] = random_num(3, 6);
  5190. case 27: predmet_igraca[Index][1] = 3;
  5191. case 45: {
  5192. give_item(Index, "weapon_hegrenade");
  5193. PromeniModel(Index, 0 );
  5194. predmet_igraca[Index][1] = random_num(1, 3);
  5195. }
  5196. case 47: predmet_igraca[Index][1] = random_num(1, 3);
  5197. case 51: CreateUAV(Index);
  5198. case 55: give_item(Index, "weapon_scout");
  5199. case 56: give_item(Index, "weapon_m4a1");
  5200. case 57: give_item(Index, "weapon_deagle");
  5201. case 59: give_item(Index, "weapon_awp");
  5202. case 60: give_item(Index, "weapon_hegrenade");
  5203. case 61: give_item(Index, "weapon_galil");
  5204. case 62: {
  5205. give_item(Index, "weapon_usp");
  5206. give_item(Index, "weapon_mp5navy");
  5207. }
  5208. case 63: give_item(Index, "weapon_m3");
  5209. case 64: give_item(Index, "weapon_sg550");
  5210. }
  5211. }
  5212.  
  5213. stock update_ammo(Index) {
  5214. new iWeaponID[32], iWeaponsNum;
  5215. get_user_weapons(Index, iWeaponID, iWeaponsNum);
  5216.  
  5217. for(new i=0; i<iWeaponsNum; i++) if(is_user_alive(Index)) if(g_iWeaponsData[iWeaponID[i]][0] > 0) cs_set_user_bpammo(Index, iWeaponID[i], g_iWeaponsData[iWeaponID[i]][0]);
  5218. }
  5219.  
  5220. stock get_user_hitpoint(id, Float: hOrigin[3]) {
  5221. if(!is_user_alive( id )) return 0;
  5222.  
  5223. new Float: fOrigin[3], Float: fvAngle[3], Float: fvOffset[3], Float: fvOrigin[3], Float: feOrigin[3], Float: fTemp[3];
  5224.  
  5225. entity_set_vector(id, EV_VEC_origin, fOrigin);
  5226. entity_set_vector(id, EV_VEC_v_angle, fvAngle);
  5227. entity_set_vector(id, EV_VEC_view_ofs, fvOffset);
  5228.  
  5229. xs_vec_add(fOrigin, fvOffset, fvOrigin);
  5230.  
  5231. engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp);
  5232.  
  5233. xs_vec_mul_scalar(feOrigin, 9999.9, feOrigin);
  5234. xs_vec_add(fvOrigin, feOrigin, feOrigin);
  5235.  
  5236. engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id);
  5237. global_get(glb_trace_endpos, hOrigin);
  5238.  
  5239. return 1;
  5240. }
  5241.  
  5242. stock CallOfDutyAim(Index, const szColor[]) client_cmd(Index, "cl_crosshair_color ^"%s^"", szColor);
  5243.  
  5244. stock Float: Vec2DLength(Float: fVec[2]) return floatsqroot(fVec[0]*fVec[0] + fVec[1]*fVec[1]);
  5245.  
  5246. stock set_user_clip(Index, iAmmo) {
  5247. new szWeaponName[32], iWeaponID = -1, szWeapon = get_user_weapon(Index, _, _);
  5248. get_weaponname(szWeapon, szWeaponName, charsmax(szWeaponName));
  5249.  
  5250. while((iWeaponID = find_ent_by_class(iWeaponID, szWeaponName)) != 0) {
  5251. if(entity_get_edict(iWeaponID, EV_ENT_owner) == Index) {
  5252. set_pdata_int(iWeaponID, 51, iAmmo, 4);
  5253. return iWeaponID;
  5254. }
  5255. }
  5256.  
  5257. return 0;
  5258. }
  5259.  
  5260. stock set_user_visible(Index, iValue) {
  5261. set_user_rendering( Index, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, iValue );
  5262. }
  5263.  
  5264. stock set_user_lang(Index, const szLang[]) client_cmd(Index, "setinfo lang %s", szLang);
  5265.  
  5266. stock get_user_lang(Index, szLang[], iLen) get_user_info(Index, "lang", szLang, iLen);
  5267.  
  5268. stock screen_fade(Index, Float: fTime, iRed, iGreen, iBlue) {
  5269. message_begin(MSG_ONE_UNRELIABLE, g_iMessageID[MSGID_ScreenFade], _, Index);
  5270. write_short((1 << 12) * 1);
  5271. write_short(floatround((1 << 12) * fTime));
  5272. write_short(0x0000);
  5273. write_byte(iRed);
  5274. write_byte(iGreen);
  5275. write_byte(iBlue);
  5276. write_byte(150);
  5277. message_end();
  5278. }
  5279.  
  5280. stock give_weapon_id(Index, iWeaponID) {
  5281. new szWeaponName[21];
  5282. get_weaponname(iWeaponID, szWeaponName, charsmax(szWeaponName));
  5283.  
  5284. give_item(Index, szWeaponName);
  5285. }
  5286.  
  5287. stock cs_weapon_id_to_name(iWeaponID, szOutPut[], iLen) copy(szOutPut, iLen, g_szWeaponsData[iWeaponID][0]);
  5288.  
  5289.  
  5290.  
  5291. stock fm_cs_get_weapon_ent_owner(iEnt) {
  5292. if(pev_valid(iEnt) != PDATA_SAFE) return -1;
  5293.  
  5294. return get_pdata_cbase(iEnt, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS);
  5295. }
  5296.  
  5297. stock register_client_command(const szCommands[], const szForward[]) {
  5298. new szCommand[2][32];
  5299.  
  5300. formatex(szCommand[0], charsmax(szCommand[]), "say %s", szCommands);
  5301. formatex(szCommand[1], charsmax(szCommand[]), "say_team %s", szCommands);
  5302.  
  5303. for(new i=0; i<2; i++) register_clcmd(szCommand[i], szForward);
  5304. }
  5305.  
  5306. stock bool:is_blocked_map() {
  5307. new szMapName[32];
  5308. get_mapname(szMapName, charsmax(szMapName));
  5309.  
  5310. for(new i; i<sizeof(g_szMapsWithBlockedHe); i++) if(equal(szMapName, g_szMapsWithBlockedHe[i])) return true;
  5311. return false;
  5312. }
  5313.  
  5314. #define MAX_DIST 8192.0
  5315. #define MAX 32
  5316.  
  5317. stock getClosestPlayer(ent)
  5318. {
  5319. new iClosestPlayer = 0, Float:flClosestDist = MAX_DIST, Float:flDistanse, Float:fOrigin[2][3];
  5320. new num, players[32];
  5321. get_players(players, num, "gh")
  5322. for(new a = 0; a < num; a++)
  5323. {
  5324. new i = players[a];
  5325. if(!is_user_connected(i) || !is_user_alive(i) || /*!ExecuteHam(Ham_FVisible, i, ent)*/!fm_is_ent_visible(i, ent) || get_user_team(i) == get_user_team(entity_get_int(ent, EV_INT_iuser2)))
  5326. continue;
  5327.  
  5328. if(UTIL_In_FOV(i, ent))
  5329. continue;
  5330.  
  5331. entity_get_vector(i, EV_VEC_origin, fOrigin[0]);
  5332. entity_get_vector(ent, EV_VEC_origin, fOrigin[1]);
  5333.  
  5334. flDistanse = get_distance_f(fOrigin[0], fOrigin[1]);
  5335.  
  5336. if(flDistanse <= flClosestDist)
  5337. {
  5338. iClosestPlayer = i;
  5339. flClosestDist = flDistanse;
  5340. }
  5341. }
  5342. return iClosestPlayer;
  5343. }
  5344.  
  5345. public task_check_dead_flag(id)
  5346. {
  5347. if(!is_user_connected(id))
  5348. return
  5349.  
  5350. if(pev(id, pev_deadflag) == DEAD_DEAD)
  5351. create_fake_corpse(id)
  5352. else
  5353. set_task(0.5, "task_check_dead_flag", id)
  5354. }
  5355.  
  5356. public create_fake_corpse(id)
  5357. {
  5358. if( !is_user_connected( id ) ) return 0;
  5359. set_pev(id, pev_effects, EF_NODRAW)
  5360.  
  5361. static model[32]
  5362. cs_get_user_model(id, model, 31)
  5363.  
  5364. static player_model[64]
  5365. format(player_model, 63, "models/player/%s/%s.mdl", model, model)
  5366.  
  5367. static Float: player_origin[3]
  5368. pev(id, pev_origin, player_origin)
  5369.  
  5370. static Float:mins[3]
  5371. mins[0] = -16.0
  5372. mins[1] = -16.0
  5373. mins[2] = -34.0
  5374.  
  5375. static Float:maxs[3]
  5376. maxs[0] = 16.0
  5377. maxs[1] = 16.0
  5378. maxs[2] = 34.0
  5379.  
  5380. if(g_wasducking[id])
  5381. {
  5382. mins[2] /= 2
  5383. maxs[2] /= 2
  5384. }
  5385.  
  5386. static Float:player_angles[3]
  5387. pev(id, pev_angles, player_angles)
  5388. player_angles[2] = 0.0
  5389.  
  5390. new sequence = pev(id, pev_sequence)
  5391.  
  5392. new ent = fm_create_entity("info_target")
  5393. if(ent)
  5394. {
  5395. set_pev(ent, pev_classname, "fake_corpse")
  5396. engfunc(EngFunc_SetModel, ent, player_model)
  5397. engfunc(EngFunc_SetOrigin, ent, player_origin)
  5398. engfunc(EngFunc_SetSize, ent, mins, maxs)
  5399. set_pev(ent, pev_solid, SOLID_TRIGGER)
  5400. set_pev(ent, pev_movetype, MOVETYPE_TOSS)
  5401. set_pev(ent, pev_owner, id)
  5402. set_pev(ent, pev_angles, player_angles)
  5403. set_pev(ent, pev_sequence, sequence)
  5404. set_pev(ent, pev_frame, 9999.9)
  5405. }
  5406.  
  5407. return 0;
  5408. }
  5409.  
  5410. public fwd_emitsound(id, channel, sound[])
  5411. {
  5412. if( !is_user_connected( id ) || !is_user_alive(id) || !g_haskit[id])
  5413. return FMRES_IGNORED
  5414.  
  5415. if(!equali(sound, "common/wpn_denyselect.wav"))
  5416. return FMRES_IGNORED
  5417.  
  5418. if(task_exists(TASKID_REVIVE + id))
  5419. return FMRES_IGNORED
  5420.  
  5421. if(!(fm_get_user_button(id) & IN_USE))
  5422. return FMRES_IGNORED
  5423.  
  5424. new body = find_dead_body(id)
  5425. if(!fm_is_valid_ent(body))
  5426. return FMRES_IGNORED
  5427.  
  5428. new lucky_bastard = pev(body, pev_owner)
  5429. new lb_team = get_user_team(lucky_bastard)
  5430. new rev_team = get_user_team(id)
  5431. if(lb_team != 1 && lb_team != 2 || lb_team != rev_team)
  5432. return FMRES_IGNORED
  5433.  
  5434. static name[32]
  5435. get_user_name(lucky_bastard, name, 31)
  5436. client_print(id, print_chat, "Reviving %s", name)
  5437.  
  5438. new revivaltime = 6
  5439. msg_bartime(id, revivaltime)
  5440.  
  5441. new Float:gametime = get_gametime()
  5442. g_revive_delay[id] = gametime + float(revivaltime) - 0.01
  5443.  
  5444. emit_sound(id, CHAN_AUTO, SOUND_START, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  5445. set_task(0.0, "task_revive", TASKID_REVIVE + id)
  5446.  
  5447. return FMRES_SUPERCEDE
  5448. }
  5449.  
  5450. public task_revive(taskid)
  5451. {
  5452. new id = taskid - TASKID_REVIVE
  5453.  
  5454. if( !is_user_connected( id ) ) return FMRES_IGNORED;
  5455.  
  5456. if(!is_user_alive(id))
  5457. {
  5458. failed_revive(id)
  5459. return FMRES_IGNORED
  5460. }
  5461.  
  5462. if(!(fm_get_user_button(id) & IN_USE))
  5463. {
  5464. failed_revive(id)
  5465. return FMRES_IGNORED
  5466. }
  5467.  
  5468. new body = find_dead_body(id)
  5469. if(!fm_is_valid_ent(body))
  5470. {
  5471. failed_revive(id)
  5472. return FMRES_IGNORED
  5473. }
  5474.  
  5475. new lucky_bastard = pev(body, pev_owner)
  5476. if(!is_user_connected(lucky_bastard))
  5477. {
  5478. failed_revive(id)
  5479. return FMRES_IGNORED
  5480. }
  5481.  
  5482. new lb_team = get_user_team(lucky_bastard)
  5483. new rev_team = get_user_team(id)
  5484. if(lb_team != 1 && lb_team != 2 || lb_team != rev_team)
  5485. {
  5486. failed_revive(id)
  5487. return FMRES_IGNORED
  5488. }
  5489.  
  5490. static Float:velocity[3]
  5491. pev(id, pev_velocity, velocity)
  5492. velocity[0] = 0.0
  5493. velocity[1] = 0.0
  5494. set_pev(id, pev_velocity, velocity)
  5495.  
  5496. new Float:gametime = get_gametime()
  5497. if(g_revive_delay[id] < gametime)
  5498. {
  5499. if(findemptyloc(body, 10.0))
  5500. {
  5501. fm_remove_entity(body)
  5502. emit_sound(id, CHAN_AUTO, SOUND_FINISHED, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  5503. set_task(0.1, "task_respawn", TASKID_RESPAWN + lucky_bastard)
  5504. }
  5505. else
  5506. failed_revive(id)
  5507. }
  5508. else
  5509. set_task(0.1, "task_revive", TASKID_REVIVE + id)
  5510.  
  5511. return FMRES_IGNORED
  5512. }
  5513.  
  5514. public failed_revive(id)
  5515. {
  5516. if( !is_user_connected( id ) ) return PLUGIN_CONTINUE;
  5517. msg_bartime(id, 0)
  5518. emit_sound(id, CHAN_AUTO, SOUND_FAILED, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  5519. return PLUGIN_CONTINUE;
  5520. }
  5521.  
  5522. public task_origin(taskid)
  5523. {
  5524. new id = taskid - TASKID_ORIGIN
  5525. if( !is_user_connected( id ) ) return PLUGIN_CONTINUE;
  5526.  
  5527. engfunc(EngFunc_SetOrigin, id, g_body_origin[id])
  5528.  
  5529. static Float:origin[3]
  5530. pev(id, pev_origin, origin)
  5531. set_pev(id, pev_zorigin, origin[2])
  5532.  
  5533. set_task(0.1, "task_stuck_check", TASKID_CHECKST + id)
  5534.  
  5535. return PLUGIN_CONTINUE;
  5536. }
  5537.  
  5538. stock find_dead_body(id)
  5539. {
  5540. if( !is_user_connected( id ) ) return 0;
  5541.  
  5542. static Float:origin[3]
  5543. pev(id, pev_origin, origin)
  5544.  
  5545. new ent
  5546. static classname[32]
  5547. while((ent = fm_find_ent_in_sphere(ent, origin, 70.0)) != 0)
  5548. {
  5549. pev(ent, pev_classname, classname, 31)
  5550. if(equali(classname, "fake_corpse") && fm_is_ent_visible(id, ent))
  5551. return ent
  5552. }
  5553. return 0
  5554. }
  5555.  
  5556. stock msg_bartime(id, seconds)
  5557. {
  5558. if(is_user_bot(id) || !is_user_connected( id ) )
  5559. return
  5560.  
  5561. message_begin(MSG_ONE, g_msg_bartime, _, id)
  5562. write_byte(seconds)
  5563. write_byte(0)
  5564. message_end()
  5565. }
  5566.  
  5567. stock msg_statusicon(id, status)
  5568. {
  5569. if(is_user_bot(id) || !is_user_connected( id ) )
  5570. return
  5571.  
  5572. message_begin(MSG_ONE, g_msg_statusicon, _, id)
  5573. write_byte(status)
  5574. write_string("rescue")
  5575. write_byte(0)
  5576. write_byte(160)
  5577. write_byte(0)
  5578. message_end()
  5579. }
  5580.  
  5581. public task_respawn(taskid)
  5582. {
  5583. new id = taskid - TASKID_RESPAWN
  5584. if( !is_user_connected( id ) )
  5585. return PLUGIN_CONTINUE;
  5586.  
  5587. set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
  5588. dllfunc(DLLFunc_Spawn, id)
  5589. set_pev(id, pev_iuser1, 0)
  5590.  
  5591. set_task(0.1, "task_check_respawn", TASKID_CHECKRE + id)
  5592.  
  5593. return PLUGIN_CONTINUE;
  5594. }
  5595.  
  5596. public task_check_respawn(taskid)
  5597. {
  5598. new id = taskid - TASKID_CHECKRE
  5599.  
  5600. if( !is_user_connected( id ) )
  5601. return PLUGIN_CONTINUE;
  5602.  
  5603. if(pev(id, pev_iuser1))
  5604. set_task(0.1, "task_respawn", TASKID_RESPAWN + id)
  5605. else
  5606. set_task(0.1, "task_origin", TASKID_ORIGIN + id)
  5607.  
  5608. return PLUGIN_CONTINUE;
  5609. }
  5610.  
  5611. public task_stuck_check(taskid)
  5612. {
  5613. new id = taskid - TASKID_CHECKST
  5614.  
  5615. if( !is_user_connected( id ) )
  5616. return PLUGIN_CONTINUE;
  5617.  
  5618. static Float:origin[3]
  5619. pev(id, pev_origin, origin)
  5620.  
  5621. if(origin[2] == pev(id, pev_zorigin))
  5622. set_task(0.1, "task_respawn", TASKID_RESPAWN + id)
  5623. else
  5624. set_task(0.1, "task_setplayer", TASKID_SETUSER + id)
  5625.  
  5626. return PLUGIN_CONTINUE;
  5627. }
  5628.  
  5629. public task_setplayer(taskid)
  5630. {
  5631. new id = taskid - TASKID_SETUSER
  5632.  
  5633. if( !is_user_connected( id ) )
  5634. return PLUGIN_CONTINUE;
  5635.  
  5636. fm_strip_user_weapons(id)
  5637. fm_give_item(id, "weapon_knife")
  5638. fm_set_user_health(id, 75)
  5639.  
  5640. message_begin(MSG_ONE, g_iMessageID[ MSGID_ScreenFade ], _, id)
  5641. write_short(seconds(2))
  5642. write_short(seconds(2))
  5643. write_short(0)
  5644. write_byte(0)
  5645. write_byte(0)
  5646. write_byte(0)
  5647. write_byte(255)
  5648. message_end()
  5649.  
  5650. return PLUGIN_CONTINUE;
  5651. }
  5652.  
  5653.  
  5654. stock bool:findemptyloc(ent, Float:radius)
  5655. {
  5656. if(!fm_is_valid_ent(ent))
  5657. return false
  5658.  
  5659. static Float:origin[3]
  5660. pev(ent, pev_origin, origin)
  5661. origin[2] += 2.0
  5662.  
  5663. new owner = pev(ent, pev_owner)
  5664. new num = 0, bool:found = false
  5665.  
  5666. while(num <= 100)
  5667. {
  5668. if(is_hull_vacant(origin))
  5669. {
  5670. g_body_origin[owner][0] = origin[0]
  5671. g_body_origin[owner][1] = origin[1]
  5672. g_body_origin[owner][2] = origin[2]
  5673.  
  5674. found = true
  5675. break
  5676. }
  5677. else
  5678. {
  5679. origin[0] += random_float(-radius, radius)
  5680. origin[1] += random_float(-radius, radius)
  5681. origin[2] += random_float(-radius, radius)
  5682.  
  5683. num++
  5684. }
  5685. }
  5686. return found
  5687. }
  5688.  
  5689. stock bool:is_hull_vacant(const Float:origin[3])
  5690. {
  5691. new tr = 0
  5692. engfunc(EngFunc_TraceHull, origin, origin, 0, HULL_HUMAN, 0, tr)
  5693. if(!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
  5694. return true
  5695.  
  5696. return false
  5697. }
  5698. public fwd_playerpostthink(id)
  5699. {
  5700. if(!is_user_connected(id) || !g_haskit[id])
  5701. return FMRES_IGNORED
  5702.  
  5703. if(!is_user_alive(id))
  5704. {
  5705. msg_statusicon(id, ICON_HIDE)
  5706. return FMRES_IGNORED
  5707. }
  5708.  
  5709. new body = find_dead_body(id)
  5710. if(fm_is_valid_ent(body))
  5711. {
  5712. new lucky_bastard = pev(body, pev_owner)
  5713.  
  5714. if(!is_user_connected(lucky_bastard))
  5715. return FMRES_IGNORED
  5716.  
  5717. new lb_team = get_user_team(lucky_bastard)
  5718. new rev_team = get_user_team(id)
  5719. if(lb_team == 1 || lb_team == 2 && lb_team == rev_team)
  5720. msg_statusicon(id, ICON_FLASH)
  5721. }
  5722. else
  5723. msg_statusicon(id, ICON_SHOW)
  5724.  
  5725. return FMRES_IGNORED
  5726. }
  5727.  
  5728. public event_death()
  5729. {
  5730. new id = read_data(2)
  5731.  
  5732. if( !is_user_connected( id ) )
  5733. return PLUGIN_CONTINUE;
  5734.  
  5735. reset_player(id)
  5736.  
  5737. static Float:minsize[3]
  5738. pev(id, pev_mins, minsize)
  5739.  
  5740. if(minsize[2] == -18.0)
  5741. g_wasducking[id] = true
  5742. else
  5743. g_wasducking[id] = false
  5744.  
  5745. set_task(0.5, "task_check_dead_flag", id)
  5746.  
  5747. return PLUGIN_CONTINUE;
  5748. }
  5749.  
  5750.  
  5751. public event_hltv()
  5752. {
  5753. fm_remove_entity_name("fake_corpse")
  5754. fm_remove_entity_name("revival_kit")
  5755.  
  5756. static players[32], num
  5757. get_players(players, num, "a")
  5758. for(new i = 0; i < num; ++i)
  5759. reset_player(players[i])
  5760. }
  5761.  
  5762. public reset_player(id)
  5763. {
  5764. remove_task(TASKID_REVIVE + id)
  5765. remove_task(TASKID_RESPAWN + id)
  5766. remove_task(TASKID_CHECKRE + id)
  5767. remove_task(TASKID_CHECKST + id)
  5768. remove_task(TASKID_ORIGIN + id)
  5769. remove_task(TASKID_SETUSER + id)
  5770.  
  5771. msg_bartime(id, 0)
  5772. g_revive_delay[id] = 0.0
  5773. g_wasducking[id] = false
  5774. g_body_origin[id] = Float:{0.0, 0.0, 0.0}
  5775. }
  5776.  
  5777. public Menu(id) {
  5778. static szItems[32], iMenuID;
  5779. iMenuID = menu_create("\rGolds Stars CoD:Mw4 Menu \w:", "hMenu");
  5780.  
  5781. for(new i; i<sizeof(g_szMenuItems); i++) {
  5782. szItems[0] = '^0';
  5783. formatex(szItems, charsmax(szItems), "\y%L", id, g_szMenuItems[i]);
  5784. menu_additem(iMenuID, szItems);
  5785. }
  5786.  
  5787. menu_display(id, iMenuID);
  5788.  
  5789. client_cmd(id, "spk ExitCOD/select");
  5790. }
  5791.  
  5792. public hMenu(id, iMenuID, iItem) {
  5793. client_cmd(id, "spk ExitCOD/select");
  5794.  
  5795. switch(iItem) {
  5796. case MENU_EXIT: {
  5797. menu_destroy(iMenuID);
  5798. return 1;
  5799. }
  5800. case 0: Class(id);
  5801. case 1: Perk(id);
  5802. case 2: ChooseTeam(id);
  5803. case 3: client_cmd(id, "say /shop");
  5804. case 4: Prices(id);
  5805. case 5: Boost(id);
  5806. case 6: Awards(id);
  5807. case 7: client_cmd(id, "say /vipinfo");
  5808. case 8: Commands(id);
  5809. case 9: Rank(id);
  5810. case 10: client_cmd(id, "say /reset");
  5811. case 11: client_cmd(id, "say /codadmin");
  5812. }
  5813.  
  5814. return 0;
  5815. }
  5816.  
  5817. public Class(id) {
  5818. static szItems[32], iMenuID;
  5819. formatex(szItems, charsmax(szItems), "\r%L \w:", id, "ML_KLASA");
  5820. iMenuID = menu_create(szItems, "hClass");
  5821.  
  5822. for(new i; i<sizeof(g_szClassMenuData); i++) {
  5823. szItems[0] = '^0';
  5824. formatex(szItems, charsmax(szItems), "\y%L", id, g_szClassMenuData[i][0]);
  5825. menu_additem(iMenuID, szItems);
  5826. }
  5827.  
  5828. menu_display(id, iMenuID);
  5829.  
  5830. client_cmd(id, "spk ExitCOD/select");
  5831. }
  5832.  
  5833. public hClass(id, iMenuID, iItem) {
  5834. client_cmd(id, "spk ExitCOD/select");
  5835.  
  5836. if(iItem == MENU_EXIT) {
  5837. menu_destroy(iMenuID);
  5838. return 0;
  5839. }
  5840.  
  5841. client_cmd(id, g_szClassMenuData[iItem][1]);
  5842.  
  5843. return 0;
  5844. }
  5845.  
  5846. public Perk(id) {
  5847. static szItems[32], iMenuID;
  5848. formatex(szItems, charsmax(szItems), "\r%L \w:", id, "ML_PREDMET");
  5849. iMenuID = menu_create(szItems, "hPerk");
  5850.  
  5851. for(new i; i<sizeof(g_szPerkMenuData); i++) {
  5852. szItems[0] = '^0';
  5853. formatex(szItems, charsmax(szItems), "\y%L", id, g_szPerkMenuData[i][0]);
  5854. menu_additem(iMenuID, szItems);
  5855. }
  5856.  
  5857. menu_display(id, iMenuID);
  5858.  
  5859. client_cmd(id, "spk ExitCOD/select");
  5860. }
  5861.  
  5862. public hPerk(id, iMenuID, iItem) {
  5863. client_cmd(id, "spk ExitCOD/select");
  5864.  
  5865. if(iItem == MENU_EXIT) {
  5866. menu_destroy(iMenuID);
  5867. return 0;
  5868. }
  5869.  
  5870. client_cmd(id, g_szPerkMenuData[iItem][1]);
  5871.  
  5872. return 0;
  5873. }
  5874.  
  5875. public ChooseTeam(id) {
  5876. static szItems[32], iMenuID;
  5877. formatex(szItems, charsmax(szItems), "\r%L \w:", id, "ML_TIM");
  5878. iMenuID = menu_create(szItems, "hChooseTeam");
  5879.  
  5880. for(new i; i<sizeof(g_szTeamMenuData); i++) menu_additem(iMenuID, g_szTeamMenuData[i][0]);
  5881.  
  5882. menu_display(id, iMenuID);
  5883.  
  5884. client_cmd(id, "spk ExitCOD/select");
  5885. }
  5886.  
  5887. public hChooseTeam(id, iMenuID, iItem) {
  5888. client_cmd(id, "spk ExitCOD/select");
  5889.  
  5890. if(iItem == MENU_EXIT) {
  5891. menu_destroy(iMenuID);
  5892. return 0;
  5893. }
  5894.  
  5895. new CsTeams:iTeam = cs_get_user_team(id);
  5896.  
  5897. switch(iItem) {
  5898. case 0: {
  5899. if(iTeam != CS_TEAM_T) cs_set_user_team(id, CS_TEAM_T);
  5900. if(is_user_alive(id)) user_kill(id);
  5901. }
  5902. case 1: {
  5903. if(iTeam != CS_TEAM_CT) cs_set_user_team(id, CS_TEAM_CT);
  5904. if(is_user_alive(id)) user_kill(id);
  5905. }
  5906. case 2: {
  5907. if(iTeam != CS_TEAM_SPECTATOR) cs_set_user_team(id, CS_TEAM_SPECTATOR);
  5908. if(is_user_alive(id)) user_kill(id);
  5909. }
  5910. }
  5911.  
  5912. return 0;
  5913. }
  5914.  
  5915. public Boost(id)
  5916. {
  5917. client_print(id, print_center, "%L", id, "ML_POGLEDAJ_CHAT_BOOST");
  5918. ColorChat( id, GREEN,"^4[HTBS]^1 %L", id, "ML_NISI_ZEMLJA_BOOST" );
  5919.  
  5920. set_task(3.0, "BoostMenu", id)
  5921. return PLUGIN_CONTINUE
  5922. }
  5923.  
  5924. public BoostMenu(id)
  5925. {
  5926. new naslov[60]
  5927. new menuitem[65]
  5928. format(naslov, 59, "\r%L \w:", id, "ML_IZABERI_DRZAVU_BOOST");
  5929. new BoostMenu = menu_create(naslov, "boost_menu_handler");
  5930. for(new i=0;i<sizeof zemlje;i++)
  5931. {
  5932. formatex(menuitem, charsmax(menuitem), "%s", zemlje[i]);
  5933. menu_additem(BoostMenu, menuitem);
  5934. }
  5935. menu_display(id, BoostMenu);
  5936. }
  5937.  
  5938. public boost_menu_handler(id, menu, item)
  5939. {
  5940. if(item==MENU_EXIT)
  5941. {
  5942. menu_destroy(menu)
  5943. return PLUGIN_CONTINUE
  5944. }
  5945. new ip[32], ime[32]
  5946. get_user_ip(0, ip, charsmax(ip))
  5947. get_user_name(id, ime, 31)
  5948.  
  5949. switch(item)
  5950. {
  5951. case 0: ColorChat(id, TEAM_COLOR, "^4[HTBS Srbija]^3 %L", id, "ML_SRBIA_BOOST", ip, ime);
  5952. case 1: ColorChat(id, TEAM_COLOR, "^4[HTBS Hrvatska]:^3 %L", id, "ML_HRVATSKA_BOOST", ip, ime);
  5953. case 2: ColorChat(id, TEAM_COLOR, "^4[HTBS BIH]:^3 %L", id, "ML_BIH_BOOST", ip, ime);
  5954. case 3: ColorChat(id, TEAM_COLOR, "^4[HTBS Crna Gora]:^3 %L", id, "ML_CG_BOOST", ip, ime);
  5955. case 4: ColorChat(id, TEAM_COLOR, "^4[HTBS Makedonija]:^3 %L", id, "ML_MK_BOOST", ip, ime);
  5956. case 5: ColorChat(id, TEAM_COLOR, "^4[HTBS Bulgaria]:^3 %L", id, "ML_BG_BOOST", ip, ime);
  5957. case 6: ColorChat(id, TEAM_COLOR, "^4[HTBS Romania]:^3 %L", id, "ML_RM_BOOST", ip, ime);
  5958. case 7: ColorChat(id, TEAM_COLOR, "^4[HTBS Kosovo]:^3 %L", id, "ML_KS_BOOST", ip, ime);
  5959. case 8: ColorChat(id, TEAM_COLOR, "^4[HTBS Albania]:^3 %L", id, "ML_ALB_BOOST", ip, ime);
  5960. case 9: ColorChat(id, TEAM_COLOR, "^4[HTBS Austria]:^3 %L", id, "ML_AUS_BOOST", ip, ime);
  5961. case 10: ColorChat(id, TEAM_COLOR, "^4[HTBS Germany]:^3 %L", id, "ML_GER_BOOST", ip, ime);
  5962. case 11: ColorChat(id, TEAM_COLOR, "^4[HTBS Russia]:^3 %L", id, "ML_RUS_BOOST", ip, ime);
  5963. case 12: ColorChat(id, TEAM_COLOR, "^4[HTBS Slovenia]:^3 %L", id, "ML_SLO_BOOST", ip, ime);
  5964. case 13: ColorChat(id, TEAM_COLOR, "^4[HTBS Italy]:^3 %L", id, "ML_ITL_BOOST", ip, ime);
  5965. }
  5966. return PLUGIN_CONTINUE
  5967. }
  5968.  
  5969. public Awards(id) {
  5970. new iMenuID = menu_create("\rAwards:", "hAwards");
  5971.  
  5972. for(new i=0; i<sizeof(g_szAwardsMenuData); i++) menu_additem(iMenuID, g_szAwardsMenuData[i]);
  5973.  
  5974. menu_display(id, iMenuID);
  5975.  
  5976. client_cmd(id, "spk ExitCOD/select");
  5977. }
  5978.  
  5979. public hAwards(id, iMenuID, iItem) {
  5980. client_cmd(id, "spk ExitCOD/select");
  5981.  
  5982. switch(iItem) {
  5983. case MENU_EXIT: {
  5984. menu_destroy(iMenuID);
  5985. return 0;
  5986. }
  5987. case 0: Awards(id);
  5988. }
  5989.  
  5990. return 0;
  5991. }
  5992.  
  5993. public Commands(id) {
  5994. if(!is_user_connected(id)) return 1;
  5995.  
  5996. client_cmd(id, "spk ExitCOD/select");
  5997.  
  5998. static szMotd[1501], szTitle[32], iLen=0;
  5999.  
  6000. iLen = formatex(szMotd, charsmax(szMotd), "<meta charset=UTF-8><style>body{background:#E6E6E6;font-family:Verdana}th{background:#F5F5F5;color:#A70000;padding:6px;text-align:left}td{padding:2px 6px}table{color:#333;background:#E6E6E6;font-size:10px;font-family:Georgia;border:2px solid #D9D9D9}</style><body><table width=100%% border=0 align=center cellpadding=0 cellspacing=1><tr><th>%L<th>%L</tr>", id, "ML_KOMANDA", id, "ML_OPIS");
  6001. for(new i; i<sizeof(g_szCommandsItems); i++) iLen += formatex(szMotd[iLen], charsmax(szMotd)-iLen, "<tr><td>%L<td>%L", id, g_szCommandsItems[i][0], id, g_szCommandsItems[i][1]);
  6002.  
  6003. formatex(szTitle, charsmax(szTitle), "%L", id, "ML_KOMANDE_SERVERA");
  6004. show_motd(id, szMotd, szTitle);
  6005.  
  6006. return 0;
  6007. }
  6008.  
  6009. public Rank(id) {
  6010. static szItems[32], iMenuID;
  6011. formatex(szItems, charsmax(szItems), "\r%L \w:", id, "ML_IZABERI_RANK");
  6012. iMenuID = menu_create(szItems, "hRank");
  6013.  
  6014. for(new i; i<sizeof(g_szRankMenuData); i++) menu_additem(iMenuID, g_szRankMenuData[i][0]);
  6015.  
  6016. menu_display(id, iMenuID);
  6017.  
  6018. client_cmd(id, "spk ExitCOD/select");
  6019. }
  6020.  
  6021. public hRank(id, iMenuID, iItem) {
  6022. client_cmd(id, "spk ExitCOD/select");
  6023.  
  6024. if(iItem == MENU_EXIT) {
  6025. menu_destroy(iMenuID);
  6026. return 0;
  6027. }
  6028.  
  6029. client_cmd(id, g_szRankMenuData[iItem][1]);
  6030.  
  6031. return 0;
  6032. }
  6033.  
  6034. public Prices(id) {
  6035. new iMenuID = menu_create("\rSta zelite?", "hPrices");
  6036.  
  6037. for(new i=0; i<sizeof(g_szPricesMenuData); i++) menu_additem(iMenuID, g_szPricesMenuData[i]);
  6038.  
  6039. menu_display(id, iMenuID);
  6040.  
  6041. client_cmd(id, "spk ExitCOD/select");
  6042. }
  6043.  
  6044. public hPrices(id, iMenuID, iItem) {
  6045. client_cmd(id, "spk ExitCOD/select");
  6046.  
  6047. switch(iItem) {
  6048. case MENU_EXIT: {
  6049. menu_destroy(iMenuID);
  6050. return 0;
  6051. }
  6052. case 0: CeneAdmina(id);
  6053. case 1: CeneVipa(id);
  6054. case 2: CeneKlasa(id);
  6055. case 3: CeneOstalo(id);
  6056. }
  6057.  
  6058. return 0;
  6059. }
  6060. public CeneAdmina(id) {
  6061. new iMenuID = menu_create("\rCene Admina:", "hCeneAdmina");
  6062.  
  6063. for(new i=0; i<sizeof(g_szCeneAdminaMenuData); i++) menu_additem(iMenuID, g_szCeneAdminaMenuData[i]);
  6064.  
  6065. menu_display(id, iMenuID);
  6066.  
  6067. client_cmd(id, "spk ExitCOD/select");
  6068. }
  6069. public hCeneAdmina(id, iMenuID, iItem) {
  6070. client_cmd(id, "spk ExitCOD/select");
  6071.  
  6072. switch(iItem) {
  6073. case MENU_EXIT: {
  6074. menu_destroy(iMenuID);
  6075. return 0;
  6076. }
  6077. case 0: CeneAdmina(id);
  6078. }
  6079.  
  6080. return 0;
  6081. }
  6082. public CeneVipa(id) {
  6083. new iMenuID = menu_create("\rCene VIP-a:", "hCeneVipa");
  6084.  
  6085. for(new i=0; i<sizeof(g_szCeneVipaMenuData); i++) menu_additem(iMenuID, g_szCeneVipaMenuData[i]);
  6086.  
  6087. menu_display(id, iMenuID);
  6088.  
  6089. client_cmd(id, "spk ExitCOD/select");
  6090. }
  6091. public hCeneVipa(id, iMenuID, iItem) {
  6092. client_cmd(id, "spk ExitCOD/select");
  6093.  
  6094. switch(iItem) {
  6095. case MENU_EXIT: {
  6096. menu_destroy(iMenuID);
  6097. return 0;
  6098. }
  6099. case 0: CeneVipa(id);
  6100. }
  6101.  
  6102. return 0;
  6103. }
  6104. public CeneKlasa(id) {
  6105. new iMenuID = menu_create("\rCene Klasa:", "hCeneKlasa");
  6106.  
  6107. for(new i=0; i<sizeof(g_szCeneKlasaMenuData); i++) menu_additem(iMenuID, g_szCeneKlasaMenuData[i]);
  6108.  
  6109. menu_display(id, iMenuID);
  6110.  
  6111. client_cmd(id, "spk ExitCOD/select");
  6112. }
  6113. public hCeneKlasa(id, iMenuID, iItem) {
  6114. client_cmd(id, "spk ExitCOD/select");
  6115.  
  6116. switch(iItem) {
  6117. case MENU_EXIT: {
  6118. menu_destroy(iMenuID);
  6119. return 0;
  6120. }
  6121. case 0: CenePremiumKlasa(id);
  6122. case 1: CeneGoldsStarsKlasa(id);
  6123. case 2: CeneSpecialKlasa(id);
  6124. case 3: CeneSuperPreimumKlasa(id);
  6125. }
  6126.  
  6127. return 0;
  6128. }
  6129. public CenePremiumKlasa(id) {
  6130. new iMenuID = menu_create("\rCene Premium Klasa:", "hCenePremiumKlasa");
  6131.  
  6132. for(new i=0; i<sizeof(g_szCenePremiumKlasaMenuData); i++) menu_additem(iMenuID, g_szCenePremiumKlasaMenuData[i]);
  6133.  
  6134. menu_display(id, iMenuID);
  6135.  
  6136. client_cmd(id, "spk ExitCOD/select");
  6137. }
  6138. public hCenePremiumKlasa(id, iMenuID, iItem) {
  6139. client_cmd(id, "spk ExitCOD/select");
  6140.  
  6141. switch(iItem) {
  6142. case MENU_EXIT: {
  6143. menu_destroy(iMenuID);
  6144. return 0;
  6145. }
  6146. case 0: CenePremiumKlasa(id);
  6147. }
  6148.  
  6149. return 0;
  6150. }
  6151. public CeneGoldsStarsKlasa(id) {
  6152. new iMenuID = menu_create("\rCene Gold Stars Klasa:", "hCeneGoldsStarsKlasa");
  6153.  
  6154. for(new i=0; i<sizeof(g_szCeneGoldsStarsKlasaMenuData); i++) menu_additem(iMenuID, g_szCeneGoldsStarsKlasaMenuData[i]);
  6155.  
  6156. menu_display(id, iMenuID);
  6157.  
  6158. client_cmd(id, "spk ExitCOD/select");
  6159. }
  6160. public hCeneGoldsStarsKlasa(id, iMenuID, iItem) {
  6161. client_cmd(id, "spk ExitCOD/select");
  6162.  
  6163. switch(iItem) {
  6164. case MENU_EXIT: {
  6165. menu_destroy(iMenuID);
  6166. return 0;
  6167. }
  6168. case 0: CeneGoldsStarsKlasa(id);
  6169. }
  6170.  
  6171. return 0;
  6172. }
  6173. public CeneSpecialKlasa(id) {
  6174. new iMenuID = menu_create("\rCene Special Klasa:", "hCeneSpecialKlasa");
  6175.  
  6176. for(new i=0; i<sizeof(g_szCeneSpecialKlasaMenuData); i++) menu_additem(iMenuID, g_szCeneSpecialKlasaMenuData[i]);
  6177.  
  6178. menu_display(id, iMenuID);
  6179.  
  6180. client_cmd(id, "spk ExitCOD/select");
  6181. }
  6182. public hCeneSpecialKlasa(id, iMenuID, iItem) {
  6183. client_cmd(id, "spk ExitCOD/select");
  6184.  
  6185. switch(iItem) {
  6186. case MENU_EXIT: {
  6187. menu_destroy(iMenuID);
  6188. return 0;
  6189. }
  6190. case 0: CeneSpecialKlasa(id);
  6191. }
  6192.  
  6193. return 0;
  6194. }
  6195. public CeneSuperPreimumKlasa(id) {
  6196. new iMenuID = menu_create("\rCene Super Premium Klasa:", "hCeneSuperPreimumKlasa");
  6197.  
  6198. for(new i=0; i<sizeof(g_szCeneSupePremKlasaMenuData); i++) menu_additem(iMenuID, g_szCeneSupePremKlasaMenuData[i]);
  6199.  
  6200. menu_display(id, iMenuID);
  6201.  
  6202. client_cmd(id, "spk ExitCOD/select");
  6203. }
  6204. public hCeneSuperPreimumKlasa(id, iMenuID, iItem) {
  6205. client_cmd(id, "spk ExitCOD/select");
  6206.  
  6207. switch(iItem) {
  6208. case MENU_EXIT: {
  6209. menu_destroy(iMenuID);
  6210. return 0;
  6211. }
  6212. case 0: CeneSuperPreimumKlasa(id);
  6213. }
  6214.  
  6215. return 0;
  6216. }
  6217. public CeneOstalo(id) {
  6218. new iMenuID = menu_create("\rCene Ostalo:", "hCeneOstalo");
  6219.  
  6220. for(new i=0; i<sizeof(g_szCeneOstaloMenuData); i++) menu_additem(iMenuID, g_szCeneOstaloMenuData[i]);
  6221.  
  6222. menu_display(id, iMenuID);
  6223.  
  6224. client_cmd(id, "spk ExitCOD/select");
  6225. }
  6226. public hCeneOstalo(id, iMenuID, iItem) {
  6227. client_cmd(id, "spk ExitCOD/select");
  6228.  
  6229. switch(iItem) {
  6230. case MENU_EXIT: {
  6231. menu_destroy(iMenuID);
  6232. return 0;
  6233. }
  6234. case 0: CeneOstalo(id);
  6235. }
  6236.  
  6237. return 0;
  6238. }
  6239. stock bool:is_user_steam(id)
  6240. {
  6241. static dp_pointer
  6242. if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
  6243. {
  6244. server_cmd("dp_clientinfo %d", id)
  6245. server_exec()
  6246. return (get_pcvar_num(dp_pointer) == 2) ? true : false
  6247. }
  6248. return false
  6249. }
  6250.  
  6251. public EfekatZamrzavanja(id) {
  6252. if (!is_user_alive(id) || !is_user_connected( id ) || Zamrznut[id])
  6253. return;
  6254.  
  6255. screen_fade( id, 1.0, 0, 50, 200 );
  6256.  
  6257. fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25)
  6258.  
  6259. Zamrznut[id] = true;
  6260. set_task( 5.0, "OdmrzniIgraca", id)
  6261. }
  6262.  
  6263. EfekatZamrzavanjaPrsten( const Float: originF3[ 3 ] ) {
  6264. engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0)
  6265. write_byte(TE_BEAMCYLINDER) // TE id
  6266. engfunc(EngFunc_WriteCoord, originF3[0]) // x
  6267. engfunc(EngFunc_WriteCoord, originF3[1]) // y
  6268. engfunc(EngFunc_WriteCoord, originF3[2]) // z
  6269. engfunc(EngFunc_WriteCoord, originF3[0]) // x axis
  6270. engfunc(EngFunc_WriteCoord, originF3[1]) // y axis
  6271. engfunc(EngFunc_WriteCoord, originF3[2]+100.0) // z axis
  6272. write_short(Talas) // sprite
  6273. write_byte(0) // startframe
  6274. write_byte(0) // framerate
  6275. write_byte(4) // life
  6276. write_byte(60) // width
  6277. write_byte(0) // noise
  6278. write_byte(41) // red
  6279. write_byte(138) // green
  6280. write_byte(255) // blue
  6281. write_byte(200) // brightness
  6282. write_byte(0)
  6283. message_end()
  6284. }
  6285.  
  6286. public OdmrzniIgraca(id) {
  6287. if (!is_user_alive(id))
  6288. return;
  6289.  
  6290. Zamrznut[id] = false;
  6291.  
  6292. fm_set_rendering(id)
  6293. PostaviBrzinu( id );
  6294. }
  6295.  
  6296. public ChatPrefiks( id ) {
  6297. static Reko[ 192 ];
  6298. read_args( Reko, charsmax( Reko ) );
  6299. remove_quotes( Reko );
  6300. static Poruka[ 256 ], i;
  6301.  
  6302. if( goldVIP[ id ] ) {
  6303. formatex( Poruka, charsmax( Poruka ), "^4[VIP] ^4[^4%L ^4- ^4%d^4] ^3%s ^1: %s", id, Klase[ g_PlayerInfo[ id ][ g_iClass ] ][ 0 ], g_PlayerInfo[ id ][ g_iLevel ], g_PlayerInfo[ id ][ g_szName ], Reko );
  6304. for( i = 1; i <= get_maxplayers(); i++ ) {
  6305. if( !is_user_connected( i ) )
  6306. continue;
  6307.  
  6308. if( is_user_alive( id ) && is_user_alive( i ) || !is_user_alive( id ) && !is_user_alive( i ) )
  6309. IspisiPoruku( Poruka, id, i );
  6310. }
  6311.  
  6312. return 2;
  6313. } else {
  6314. formatex( Poruka, charsmax( Poruka ), "^4[^4%L ^4- ^4%d^4] ^3%s ^1: %s", id, Klase[ g_PlayerInfo[ id ][ g_iClass ] ][ 0 ], g_PlayerInfo[ id ][ g_iLevel ], g_PlayerInfo[ id ][ g_szName ], Reko );
  6315. for( i = 1; i <= get_maxplayers( ); i++ ) {
  6316. if( !is_user_connected( i ) )
  6317. continue;
  6318.  
  6319. if( is_user_alive( id ) && is_user_alive( i ) || !is_user_alive( id ) && !is_user_alive( i ) )
  6320. IspisiPoruku( Poruka, id, i );
  6321. }
  6322.  
  6323. return 2;
  6324. }
  6325.  
  6326. return 0;
  6327. }
  6328.  
  6329. IspisiPoruku( const Poruka[ ], const id, const i ) {
  6330. message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, i );
  6331. write_byte( id );
  6332. write_string( Poruka );
  6333. message_end( );
  6334. }
  6335.  
  6336. public Rkl( id ) {
  6337. if( !is_user_connected( id ) || is_user_bot( id ) )
  6338. return;
  6339.  
  6340. static BrojReklama;
  6341. BrojReklama = 6;
  6342.  
  6343. switch( random_num( 1, BrojReklama ) ) {
  6344. case 1: ColorChat( id, GREEN, "[CoD:Mw4] ^1%L", id, "ML_REKLAMA_1" );
  6345. case 2: ColorChat( id, GREEN, "[CoD:Mw4] ^1%L", id, "ML_REKLAMA_2" );
  6346. case 3: ColorChat( id, GREEN, "[CoD:Mw4] ^1%L", id, "ML_REKLAMA_3" );
  6347. case 4: ColorChat( id, GREEN, "[CoD:Mw4] ^1%L", id, "ML_REKLAMA_4" );
  6348. case 5: ColorChat( id, GREEN, "[CoD:Mw4] ^1%L", id, "ML_REKLAMA_5" );
  6349. case 6: ColorChat( id, GREEN, "[CoD:Mw4] ^1%L", id, "ML_REKLAMA_6" );
  6350. }
  6351.  
  6352. set_task( 60.0, "Rkl", id );
  6353. }
  6354.  
  6355. public DajNekomPredmet( id ) {
  6356. static Meni, Odziv, BrojPredmeta = 1, i;
  6357. Meni = menu_create( "Izaberi Igraca / Choose Player", "DajNekomPredmet_Funkcija" );
  6358. Odziv = menu_makecallback( "DajNekomPredmet_Odziv" );
  6359.  
  6360. for( i = 0; i <= 32; i++ ) {
  6361. if( !is_user_connected( i ) || is_user_bot( i ))
  6362. continue;
  6363. if(BrojPredmeta >= sizeof(daj_igracu))
  6364. break;
  6365. daj_igracu[ BrojPredmeta ] = i;
  6366. BrojPredmeta++
  6367. menu_additem( Meni, g_PlayerInfo[ i ][ g_szName ], "0", 0, Odziv );
  6368. }
  6369.  
  6370. menu_display( id, Meni );
  6371. }
  6372.  
  6373. public DajNekomPredmet_Funkcija( id, Meni, Stavka ) {
  6374. if( Stavka < 1 || Stavka > 32 )
  6375. return PLUGIN_CONTINUE;
  6376.  
  6377. if( is_user_bot( daj_igracu[ Stavka ] ) ) {
  6378. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_IGRAC_JE_BOT" );
  6379. return PLUGIN_CONTINUE;
  6380. }
  6381.  
  6382. if( !is_user_connected( daj_igracu[ Stavka ] ) ) {
  6383. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_IGRAC_SE_DISKONEKTOVAO" );
  6384. return PLUGIN_CONTINUE;
  6385. }
  6386.  
  6387. if( dobio_predmet[ daj_igracu[ Stavka ] ] ) {
  6388. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_SACEKAJ_RUNDU" );
  6389. return PLUGIN_CONTINUE;
  6390. }
  6391.  
  6392. if( dobio_predmet[ id ] ) {
  6393. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_SACEKAJ_RUNDU" );
  6394. return PLUGIN_CONTINUE;
  6395. }
  6396.  
  6397. if( !predmet_igraca[ id ][ 0 ] ) {
  6398. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_NEMAS_PREDMET" );
  6399. return PLUGIN_CONTINUE;
  6400. }
  6401.  
  6402. if( predmet_igraca[ daj_igracu[ Stavka ] ][ 0 ] ) {
  6403. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_VEC_IMA_PREDMET" );
  6404. return PLUGIN_CONTINUE;
  6405. }
  6406.  
  6407. if( !is_user_alive( daj_igracu[ Stavka ] ) ) {
  6408. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_MORA_BUDE_ZIV" );
  6409. return PLUGIN_CONTINUE;
  6410. }
  6411.  
  6412. dobio_predmet[ daj_igracu[ Stavka ] ] = true;
  6413. GivePerk( daj_igracu[ Stavka ], predmet_igraca[ id ][ 0 ] );
  6414. predmet_igraca[ daj_igracu[ Stavka ] ][ 1 ] = predmet_igraca[ id ][ 1 ];
  6415. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L %L", id, "ML_NAGRADIO", g_PlayerInfo[ daj_igracu[ Stavka ] ][ g_szName ], id, g_szPerksData[ predmet_igraca[ id ][ 0 ] ][ 0 ] );
  6416. ColorChat( daj_igracu[ Stavka ], RED, "^4[CoD:Mw4]^1 Dobio si predmet od %s", g_PlayerInfo[ id ][ g_szName ] );
  6417. Obrisipredmet( id );
  6418.  
  6419. return PLUGIN_CONTINUE;
  6420. }
  6421.  
  6422. public DajNekomPredmet_Odziv( id, Meni, Stavka ) {
  6423. if( daj_igracu[ Stavka ] == id )
  6424. return ITEM_DISABLED;
  6425.  
  6426. return ITEM_ENABLED;
  6427. }
  6428.  
  6429. public ZameniPredmet( id ) {
  6430. static Meni, Odziv, i, n;
  6431. Meni = menu_create( "Zameni predmet sa:", "Zameni_Funkcija");
  6432. Odziv = menu_makecallback( "Odziv_Zamene" );
  6433.  
  6434. for( i = 0, n = 0; i <= 32; i++ ) {
  6435. if( !is_user_connected( i ) || is_user_bot( i ) )
  6436. continue;
  6437.  
  6438. zamena_id[ n++ ] = i;
  6439. menu_additem( Meni, g_PlayerInfo[ i ][ g_szName ], "0", 0, Odziv );
  6440. }
  6441.  
  6442. menu_display( id, Meni );
  6443.  
  6444. return PLUGIN_HANDLED;
  6445. }
  6446.  
  6447. public Zameni_Funkcija( id, Meni, Stavka ) {
  6448. if( Stavka == MENU_EXIT ) {
  6449. menu_destroy( Meni );
  6450. return PLUGIN_CONTINUE;
  6451. }
  6452.  
  6453. if( is_user_bot( zamena_id[ Stavka ] ) ) {
  6454. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_IGRAC_JE_BOT" );
  6455. return PLUGIN_CONTINUE;
  6456. }
  6457.  
  6458. if( !is_user_connected( zamena_id[ Stavka ] ) )
  6459. {
  6460. ColorChat(id, RED, "^4[COD:MW4]^3 %L.", id, "DISKONEKTOVAN");
  6461. return PLUGIN_CONTINUE;
  6462. }
  6463.  
  6464. if( dobio_predmet[ zamena_id[ Stavka ] ] ) {
  6465. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_SACEKAJ_RUNDU" );
  6466. return PLUGIN_CONTINUE;
  6467. }
  6468.  
  6469. if( dobio_predmet[ id ] ) {
  6470. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_SACEKAJ_RUNDU" );
  6471. return PLUGIN_CONTINUE;
  6472. }
  6473.  
  6474. if( !predmet_igraca[ id ][ 0 ] ) {
  6475. ColorChat( id, RED, "^4[CoD:Mw4]^1 %L", id, "ML_NEMAS_PREDMET" );
  6476. return PLUGIN_CONTINUE;
  6477. }
  6478.  
  6479. static NaslovMenija[ 64 ], Meni2;
  6480. formatex( NaslovMenija, charsmax( NaslovMenija ), "\y%L\r [%s]", id, "ML_ZAMENI_SA", g_PlayerInfo[ zamena_id[ Stavka ] ][ g_szName ] )
  6481.  
  6482. Meni2 = menu_create( NaslovMenija, "Funkcija_Menija_Zamene" );
  6483.  
  6484. menu_additem( Meni2, "Potvrdi | Accept", g_PlayerInfo[ zamena_id[ Stavka ] ][ g_szName ] );
  6485. menu_additem( Meni2, "Odbij | Cancel", g_PlayerInfo[ zamena_id[ Stavka ] ][ g_szName ] );
  6486.  
  6487. menu_display( zamena_id[ Stavka ], Meni2 );
  6488.  
  6489. return PLUGIN_HANDLED;
  6490. }
  6491.  
  6492. public Funkcija_Menija_Zamene( id, Meni, Stavka ) {
  6493. if( Stavka == MENU_EXIT ) {
  6494. menu_destroy( Meni );
  6495. return PLUGIN_CONTINUE;
  6496. }
  6497.  
  6498. static Pristup, Odziv, Podaci[ 32 ];
  6499. menu_item_getinfo( Meni, Stavka, Pristup, Podaci, charsmax( Podaci ), _, _, Odziv );
  6500. new id2 = get_user_index( Podaci );
  6501.  
  6502. switch( Stavka ) {
  6503. case 0: {
  6504. new Zamena[4];
  6505.  
  6506. Zamena[ 0 ] = predmet_igraca[ id2 ][ 0 ];
  6507. Zamena[ 1] = predmet_igraca[ id ][ 0 ];
  6508. Zamena[ 2 ] = predmet_igraca[ id2 ][ 1 ];
  6509. Zamena[ 3 ] = predmet_igraca[ id ][ 1 ];
  6510.  
  6511. GivePerk( id, Zamena[ 0 ] );
  6512. GivePerk( id2, Zamena[ 1 ] );
  6513.  
  6514. predmet_igraca[ id ][ 1 ] = Zamena[ 2 ];
  6515. predmet_igraca[ id2 ][ 1 ] = Zamena[ 3 ];
  6516.  
  6517. dobio_predmet[ id2 ] = true;
  6518. dobio_predmet[ id ] = true;
  6519.  
  6520. ColorChat( id, RED, "^4[COD:MW4]^1 %L ^3 %s.", id, "ML_ZAMENIO", Podaci );
  6521. ColorChat( id2, RED, "^4[COD:MW4]^1 %L^3 %s.", id, "ML_ZAMENIO", g_PlayerInfo[ id ][ g_szName ] );
  6522. }
  6523. case 1: ColorChat( id2, RED, "^4[COD:MW4]^3 %L", id, "ML_ODBIO_ZAMENU" );
  6524. }
  6525.  
  6526. return PLUGIN_HANDLED
  6527. }
  6528.  
  6529. public Odziv_Zamene( id, Meni, Stavka ) {
  6530. if( zamena_id[ Stavka ] == id || !predmet_igraca[ zamena_id[ Stavka ] ][ 0 ] )
  6531. return ITEM_DISABLED;
  6532.  
  6533. return ITEM_ENABLED;
  6534. }
  6535.  
  6536. public FunkcijaSutni( id ) {
  6537. if( is_user_alive( id ) && get_pdata_float( id, 83 ) <= 0.0 && !( pev( id, pev_flags ) & FL_DUCKING ) ) {
  6538. set_pev( id, pev_velocity, { 0.0 } );
  6539. set_pev( id, pev_viewmodel2, Model );
  6540. Animacija( id, 1 ) ;
  6541. set_pdata_float( id, 83, 0.6 );
  6542. Sut[id] = true;
  6543.  
  6544. static Meta, Telo;
  6545. get_user_aiming( id, Meta, Telo, 100 );
  6546.  
  6547. if( Meta && is_user_alive( Meta ) && is_user_connected( Meta ) && get_user_team( Meta ) != get_user_team( id ) ) {
  6548. /*new Float: BrzinaSuta[ 3 ];
  6549. velocity_by_aim( id, 500, BrzinaSuta );
  6550. BrzinaSuta[2] = 300.0;
  6551. set_pev( Meta, pev_velocity, BrzinaSuta );*/
  6552.  
  6553. ExecuteHam( Ham_TakeDamage, Meta, 0, id, float( get_user_health( Meta ) ), DMG_SLASH );
  6554. }
  6555.  
  6556. if( RazdaljinaGledanja( id ) <= 100 || is_user_alive( Meta ) ) emit_sound( id, CHAN_WEAPON, Zvukovi[ 1 ], 1.0, ATTN_NORM, 0, PITCH_NORM );
  6557. else emit_sound( id, CHAN_WEAPON, Zvukovi[ 0 ], 1.0, ATTN_NORM, 0, PITCH_NORM );
  6558. }
  6559.  
  6560. return PLUGIN_HANDLED;
  6561. }
  6562.  
  6563. public PlayerPreThink( id ) {
  6564. static Float: SledeciSut;
  6565. SledeciSut = get_pdata_float( id, 83, 5 );
  6566.  
  6567. if( SledeciSut >= 0.0 && Sut[ id ] ) {
  6568. set_pev( id, pev_velocity, { 0.0, 0.0, 0.0 } );
  6569. }
  6570.  
  6571. if( SledeciSut <= 0.0 && Sut[ id ] ) {
  6572. static Oruzije;
  6573. Oruzije = get_pdata_cbase( id, 373 );
  6574. if( is_valid_ent( Oruzije ) ) {
  6575. ExecuteHamB( Ham_Item_Deploy, Oruzije );
  6576. Sut[id] = false;
  6577. }
  6578. }
  6579.  
  6580. static Dugme;
  6581. Dugme = get_user_button( id );
  6582.  
  6583. if( ( Dugme & IN_USE ) && ( g_PlayerInfo[ id ][ g_iClass ] == RokerSMoravu ) )
  6584. FunkcijaSutni( id );
  6585. }
  6586.  
  6587. stock Float: RazdaljinaGledanja( id ) {
  6588. static a, Float:b ;
  6589. return get_user_aiming( id, a, _:b );
  6590. }
  6591.  
  6592. stock Animacija( const Igrac, const Sekvenca ) {
  6593. set_pev( Igrac, pev_weaponanim, Sekvenca );
  6594. message_begin( MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Igrac );
  6595. write_byte( Sekvenca );
  6596. write_byte( pev( Igrac, pev_body ) );
  6597. message_end( );
  6598. }
  6599.  
  6600. public PromeniModel( id, reset ) {
  6601.  
  6602. if( id < 1 || id > 32 || !is_user_connected( id ) )
  6603. return PLUGIN_CONTINUE;
  6604.  
  6605. if( reset )
  6606. cs_reset_user_model( id );
  6607. else {
  6608.  
  6609. new num = random_num( 0,3 );
  6610. switch( get_user_team( id ) ) {
  6611.  
  6612. case 1: cs_set_user_model( id, ModelsCT[ num ] );
  6613. case 2: cs_set_user_model( id, ModelsTT[ num ] );
  6614. }
  6615. }
  6616. return PLUGIN_CONTINUE;
  6617. }
  6618. stock get_auth( id, data[ ], len ) get_user_authid( id, data, len );
  6619.  
  6620. stock build_time( pminutes, data[ ], len )
  6621. if( pminutes == 1 )
  6622. copy( data, len, "1 minute" );
  6623. else if( pminutes != 1 && pminutes < 60 )
  6624. formatex( data, len, "%d minutes", pminutes );
  6625. else if( pminutes == 60 )
  6626. copy( data, len, "1 hour" );
  6627. else {
  6628. new ptime = pminutes/60;
  6629. if( ptime*60 == pminutes )
  6630. formatex( data, len, "%d %s", ptime, (ptime==1) ? "hour":"hours" );
  6631. else {
  6632. new diff = pminutes-ptime*60;
  6633. formatex( data, len, "%d %s and %d %s", ptime, (ptime==1) ? "hour" : "hours", diff, (diff==1) ? "minute" : "minutes" );
  6634. }
  6635. }
  6636. public getLevel( id ) {
  6637.  
  6638. new nv = nvault_open( NV_NAME );
  6639.  
  6640. if( nv == INVALID_HANDLE ) {
  6641.  
  6642. ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_INACTIVE" );
  6643. return;
  6644. }
  6645. new txt_min[ 32 ], txt_lvl[ 10 ];
  6646. new lvl = 50,pminutes = 1440;
  6647.  
  6648. copy( txt_lvl, charsmax( txt_lvl ), ( lvl == 1 ) ? "level" : "levels" );
  6649. build_time( pminutes, txt_min, charsmax( txt_min ) );
  6650.  
  6651. if( g_player[ id ][ ftime ] ) {
  6652.  
  6653. if( g_PlayerInfo[ id ][ g_iClass ] ) {
  6654.  
  6655. if( g_PlayerInfo[ id ][ g_iLevel ] < 300 ) {
  6656.  
  6657. ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_JUST_RECEIVED_ANOTHER", lvl, txt_lvl,txt_min);
  6658. g_PlayerInfo[ id ][ g_iXP ] = g_iLevelXP[ g_PlayerInfo[ id ][ g_iLevel ] + lvl ];
  6659. ProveriNivo( id );
  6660. g_player[ id ][ ftime ] = false;
  6661. nvault_touch( nv, g_player[ id ][ key ], g_player[ id ][ mtime ] = get_systime( ) );
  6662. return;
  6663. }
  6664. else ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_PREVELIKI_LVL" );
  6665. }
  6666. else ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_NEMAS_KLASE" );
  6667. }
  6668. new user_time = get_systime( )-g_player[ id ][ mtime ];
  6669. new diff_min = ( user_time < ( pminutes*60 ) ) ? pminutes - (user_time/60) : pminutes;
  6670. build_time( diff_min, txt_min, charsmax( txt_min ) );
  6671.  
  6672. if( user_time >= ( pminutes*60 ) ) {
  6673.  
  6674. if( g_PlayerInfo[ id ][ g_iClass ] ) {
  6675.  
  6676. if( g_PlayerInfo[ id ][ g_iLevel ] < 300 ) {
  6677.  
  6678. ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_JUST_RECEIVED_PASSED", lvl, txt_lvl, txt_min);
  6679. g_PlayerInfo[ id ][ g_iXP ] = g_iLevelXP[ g_PlayerInfo[ id ][ g_iLevel ] + lvl ];
  6680. ProveriNivo( id );
  6681. nvault_touch( nv, g_player[ id ][ key ], g_player[ id ][ mtime ] = get_systime( ) );
  6682. }
  6683. else ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_PREVELIKI_LVL" );
  6684. }
  6685. else ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_NEMAS_KLASE" );
  6686. }
  6687. else ColorChat( id,GREEN,"^4[COD:MW4]^3 %L", id, "ML_GET_RETRYAGAIN", txt_min, lvl, txt_lvl );
  6688.  
  6689. nvault_close( nv );
  6690. }
  6691.  
  6692. new bool:falling[33];
  6693.  
  6694. public client_PreThink(id) {
  6695.  
  6696. if (!goldVIP[ id ])
  6697. return PLUGIN_CONTINUE
  6698.  
  6699. entity_set_float(id, EV_FL_fuser2, 0.0)
  6700.  
  6701. if (entity_get_int(id, EV_INT_button) & 2) {
  6702.  
  6703. new flags = entity_get_int(id, EV_INT_flags)
  6704.  
  6705. if (flags & FL_WATERJUMP)
  6706. return PLUGIN_CONTINUE
  6707. if ( entity_get_int(id, EV_INT_waterlevel) >= 2 )
  6708. return PLUGIN_CONTINUE
  6709. if ( !(flags & FL_ONGROUND) )
  6710. return PLUGIN_CONTINUE
  6711.  
  6712. new Float:velocity[3]
  6713. entity_get_vector(id, EV_VEC_velocity, velocity)
  6714. velocity[2] += 250.0
  6715. entity_set_vector(id, EV_VEC_velocity, velocity)
  6716.  
  6717. entity_set_int(id, EV_INT_gaitsequence, 6)
  6718. }
  6719. if( goldVIP[ id ] && is_user_alive(id) && is_user_connected(id)) {
  6720.  
  6721. if(entity_get_float(id, EV_FL_flFallVelocity) >= FALL_VELOCITY) {
  6722. falling[id] = true;
  6723. } else {
  6724. falling[id] = false;
  6725. }
  6726. }
  6727. return PLUGIN_CONTINUE
  6728. }
  6729. public client_PostThink(id) {
  6730.  
  6731. if(goldVIP[ id ] && is_user_alive(id) && is_user_connected(id)) {
  6732. if(falling[id]) {
  6733. entity_set_int(id, EV_INT_watertype, -3);
  6734. }
  6735. }
  6736. }
  6737. public ProveriChat( id ) {
  6738.  
  6739. set_task( 0.1, "VipsOnline", id );
  6740. return PLUGIN_HANDLED;
  6741. }
  6742. public VipsInfo(id)
  6743. {
  6744. new configsdir[200]
  6745. new MOTDfile[200]
  6746. get_configsdir(configsdir,199)
  6747. format(MOTDfile,199,"addons/amxmodx/configs/CODMW/VIP/VipInfo.txt",configsdir)
  6748. show_motd(id,MOTDfile)
  6749. }
  6750. public VipsOnline( korisnik ) {
  6751.  
  6752. new ImenaVipova[ 33 ][ 32 ];
  6753. new poruka[ 256 ];
  6754. new id, izbroj, x, linija;
  6755.  
  6756. for( id = 1 ; id <= get_maxplayers( ); id++ )
  6757. if( is_user_connected( id ) )
  6758. if( goldVIP[ id ] ) get_user_name( id, ImenaVipova[ izbroj++ ], 31 );
  6759.  
  6760. linija = format( poruka, 255, "^4VIP-s Online: " );
  6761.  
  6762. new iHour;
  6763. time(iHour);
  6764. new bool: bDnevnoVreme = (9 <= iHour <= 23);
  6765.  
  6766. if( bDnevnoVreme )
  6767. {
  6768. if( izbroj > 0 ) {
  6769.  
  6770. for( x = 0 ; x < izbroj ; x++ ) {
  6771.  
  6772. linija += format( poruka[ linija ], 255-linija, "%s%s ", ImenaVipova[ x ], x < ( izbroj-1 ) ? ", ":"" );
  6773. if( linija > 96 ) {
  6774.  
  6775. prikazi_poruku( korisnik, poruka );
  6776. linija = format( poruka, 255, "^4 " );
  6777.  
  6778. }
  6779. }
  6780. prikazi_poruku( korisnik, poruka );
  6781. }
  6782. else {
  6783.  
  6784. linija += format( poruka[ linija ], 255-linija, "Nema vipova online." );
  6785. prikazi_poruku( korisnik, poruka );
  6786. }
  6787. }
  6788. else {
  6789.  
  6790. linija += format( poruka[ linija ], 255-linija, "Svi su Vipovi! FREE VIP 23-09!." );
  6791. prikazi_poruku( korisnik, poruka );
  6792. }
  6793. return PLUGIN_CONTINUE;
  6794. }
  6795. prikazi_poruku( id, poruka[ ] ) {
  6796.  
  6797. message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
  6798. write_byte( id );
  6799. write_string( poruka );
  6800. message_end( );
  6801.  
  6802.  
  6803. }
  6804. public Banka(id)
  6805. {
  6806. new menu = menu_create("\rCOD:MW\y4\r Banka:","BankaHandler")
  6807. menu_additem(menu,"\yPut TS points in the bank")
  6808. menu_additem(menu,"\yPick TS points from banks")
  6809. menu_additem(menu,"\yView account balances")
  6810. menu_setprop(menu, MPROP_EXITNAME, "\rExit");
  6811. menu_display(id, menu);
  6812. }
  6813. public BankaHandler(id, menu, item)
  6814. {
  6815. if(item == MENU_EXIT)
  6816. {
  6817. menu_destroy(menu);
  6818. return PLUGIN_CONTINUE;
  6819. }
  6820. switch(item)
  6821. {
  6822. case MENU_EXIT:
  6823. {
  6824. menu_destroy(menu)
  6825. }
  6826. case 0:
  6827. {
  6828. client_cmd(id,"messagemode deposit")
  6829. ColorChat(id,GREEN,"^3[COD:MW4]^4 Type the number of TS Points that you want to put in the bank")
  6830. }
  6831. case 1:
  6832. {
  6833. client_cmd(id,"messagemode withdraw")
  6834. ColorChat(id,GREEN,"^3[COD:MW4]^4 Type the number of TS Points that you want to withdraw from your bank")
  6835. }
  6836. case 2:
  6837. {
  6838. new broj_poena[32],pid[32]
  6839. get_user_authid(id,pid,31)
  6840. nvault_get(g_vault,pid,broj_poena,31)
  6841. ColorChat(id,GREEN,"^3[COD:MW4]^4 You have %s TS points in your account",broj_poena)
  6842. }
  6843. }
  6844. return PLUGIN_CONTINUE
  6845. }
  6846.  
  6847. public ubaci(id)
  6848. {
  6849. new suma[32],suma2, broj_poena
  6850. read_argv(1,suma,31)
  6851. suma2 = str_to_num(suma)
  6852. broj_poena = points_igraca[id]
  6853. if(suma2<0) return
  6854. if(suma2>broj_poena)
  6855. suma2=broj_poena
  6856.  
  6857. new pid[32], bpoeni[32],bpoeni2, xxx[32]
  6858. get_user_authid(id,pid,31)
  6859. nvault_get(g_vault,pid,bpoeni,31)
  6860. bpoeni2 = str_to_num(bpoeni)
  6861. num_to_str(suma2+bpoeni2,xxx,31)
  6862. nvault_set(g_vault,pid,xxx)
  6863. points_igraca[id] = broj_poena - suma2
  6864. ColorChat(id,GREEN,"^3[COD:MW4]^4 Successfully you put %i TS Points in your Bank!",suma2)
  6865. }
  6866. public podigni(id)
  6867. {
  6868. new suma[32],suma2, broj_poena,broj_bpoena[32],broj_bpoena2,pid[32],xxx[32]
  6869. read_argv(1,suma,31)
  6870. suma2 = str_to_num(suma)
  6871. broj_poena = points_igraca[id]
  6872. get_user_authid(id,pid,31)
  6873. nvault_get(g_vault,pid,broj_bpoena,31)
  6874. broj_bpoena2 = str_to_num(broj_bpoena)
  6875. if(suma2<0)
  6876. return
  6877. if(suma2>broj_bpoena2)
  6878. suma2 = broj_bpoena2
  6879.  
  6880. points_igraca[id] = broj_poena + suma2
  6881. num_to_str(broj_bpoena2-suma2,xxx,31)
  6882. nvault_set(g_vault,pid,xxx)
  6883. ColorChat(id,GREEN,"^3[COD:MW4]^4 you withdrawed %i TS Points!",suma2)
  6884. }
  6885.  
  6886. public cmdShop(id)
  6887. {
  6888.  
  6889. // TS Shop Data
  6890.  
  6891. new const g_TSShopData[][][] = {
  6892.  
  6893. new menu = menu_create("\r[AlbatroZ Cod:Mw4]^n \wAwards Menu:", "Nagrody_Handler");
  6894.  
  6895. menu_additem(menu, "\y10 Lvl \d[50 TS]");
  6896. menu_additem(menu, "\r20 Lvl \d[100 TS]");
  6897. menu_additem(menu, "\y30 Lvl \d[150 TS]");
  6898. menu_additem(menu, "\r40 Lvl \d[200 TS]");
  6899.  
  6900. if(g_iTSShopData[iItem][1] > g_PlayerInfo[id][g_iTS) {
  6901. ColorChat(id, TEAM_COLOR, "^4[CoD:Mw4] ^1%L ^3%L^1, %L ^3%i^4TS^1.", id, "ML_NEMATE_TS", id, g_szPerksData[g_iTSShopData[iItem][0]][0], id, "ML_TREBA_VAM", g_iTSShopData[iItem][1]);
  6902. return 1;
  6903. }
  6904.  
  6905.  
  6906. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  6907.  
  6908. menu_display(id, menu, 0);
  6909.  
  6910. }
  6911.  
  6912. public Nagrody_Handler(id, menu, item)
  6913. {
  6914. if(!is_user_alive(id))
  6915. return PLUGIN_HANDLED;
  6916.  
  6917. if(item == MENU_EXIT)
  6918. {
  6919. menu_destroy(menu);
  6920. return PLUGIN_HANDLED;
  6921. }
  6922.  
  6923. switch(item)
  6924. {
  6925. case 0:
  6926. {
  6927. if(points_igraca[id] <= 50)
  6928. {
  6929. return PLUGIN_HANDLED;
  6930. }
  6931. cod_set_user_xp(id, cod_get_level_xp(cod_get_user_level(id) + 10));
  6932. points_igraca[id]-=50
  6933. }
  6934. case 1:{
  6935. if(points_igraca[id] <= 100)
  6936. {
  6937. return PLUGIN_HANDLED;
  6938. }
  6939. cod_set_user_xp(id, cod_get_level_xp(cod_get_user_level(id) + 20));
  6940. points_igraca[id]-=100
  6941. }
  6942. case 2:{
  6943. if(points_igraca[id] <= 150)
  6944. {
  6945. return PLUGIN_HANDLED;
  6946. }
  6947. cod_set_user_xp(id, cod_get_level_xp(cod_get_user_level(id) + 30));
  6948. points_igraca[id]-=150
  6949. }
  6950. case 3:{
  6951. if(points_igraca[id] <= 200)
  6952. {
  6953. return PLUGIN_HANDLED;
  6954. }
  6955. cod_set_user_xp(id, cod_get_level_xp(cod_get_user_level(id) + 40));
  6956. points_igraca[id]-=200
  6957. }
  6958. }
  6959. return PLUGIN_HANDLED;
  6960. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement