MegastoRM

cod_fix'd

Aug 2nd, 2012
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 74.88 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fun>
  4. #include <cstrike>
  5. #include <fakemeta>
  6. #include <engine>
  7. #include <hamsandwich>
  8. #include <nvault>
  9. #include <colorchat>
  10.  
  11. #define PLUGIN "Call of Duty: MW2 Mod"
  12. #define VERSION "0.8.0"
  13. #define AUTHOR "QTM_Peyote [Edit: AsSassin]"
  14.  
  15. #define STANDARDNA_brzina 250.0
  16.  
  17. #define ZADATAK_POKAZI_INFORMACIJE 672
  18. #define ZADATAK_PROVERA 704
  19. #define ZADATAK_POKAZI_REKLAME 768
  20. #define ZADATAK_POSTAVI_brzinu 832
  21.  
  22. //#define BOTY 1
  23.  
  24. new SyncHudObj;
  25. new SyncHudObj3;
  26. new g_msg_screenfade;
  27.  
  28. new cvar_xp_za_ubistvo;
  29.  
  30. new sprite_white;
  31. new sprite_blast;
  32. new sprite_beam;
  33.  
  34. new g_vault;
  35.  
  36. new iskustvo_za_pare;
  37. new iskustvo_za_mnogopara;
  38.  
  39. new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
  40. new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"};
  41.  
  42. new const maxAmmo[31]={0,52,0,90,1,32,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,32,90,120,90,2,35,90,90,0,100};
  43. new const maxClip[31] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20,
  44. 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
  45.  
  46. new informacije_predmet_igraca[33][2];
  47. new const naziv_predmeta[][] = {"Nema",
  48. "Necujne Cizme", //1
  49. "Dupli Pancir", //2
  50. "Ojacani Pancir", //3
  51. "Veteran sa nozem", //4
  52. "Iznenadi neprijatelje", //5
  53. "Nevidljivost", //6
  54. "Respawn", //7
  55. "Noz Marinca", //8
  56. "Kamuflaza", //9
  57. "HE Expert", //10
  58. "Dupli Skok", //11
  59. "Vojna tajna", //12
  60. "AWP Master",//13
  61. "Adrenalin",//14
  62. "Rambova tajna",//15
  63. "Deagle Manijak",//16
  64. "Super Pancir",//17
  65. "Extra HP++",//18
  66. "Komplet za prvu pomoc",//19
  67. "No Recoil",//20
  68. "Titanijumski metci",//21
  69. "Pukovnikovi metci",//22
  70. "Ogranicen no-recoil",//23
  71. "SWAT Stit",//24
  72. "50 HP++",//25
  73. "Nano Oklop",//26
  74. "BulletProof",//27
  75. "Jetpack",//28
  76. "Gravitacija",//29
  77. "Speed"//30
  78. };
  79.  
  80. new const opis_predmet[][] = {"Ubi nekog i dobices predmet",
  81. "Necujno trcanje",
  82. "Smanjuje stetu za LW %",
  83. "Smanjuje stetu za LW %",
  84. "Brze ubijas nozem",
  85. "Kada pogodite nekog od pozadi, povrede su dva puta vece",
  86. "Imate LW % nevidljivosti",
  87. "1/LW sanse da se respawn posle smrti",
  88. "Brzo ubijanje nozem",
  89. "Imate 1/LW sanse da odmah ubijete sa HE. Takodje izgledate kao neprijatelj",
  90. "Instant kill sa granatom (HE). Zadajes LW % dodatne stete",
  91. "Dupli skok",
  92. "Vase povrede su smanjene za 5. Imate 1/LW sanse da oslepite neprijatelja",
  93. "Instant kill sa AWP",
  94. "Za svaki kill dobijate 50hp",
  95. "Za svaki kill dobijate pun sarzer i 20hp",
  96. "Dobijate Deagle",
  97. "Imate 500 stita",
  98. "Dobijate +100hp svake runde, ali zato ste sporiji",
  99. "Koristite da regeneriste maximalni HP",
  100. "Nema trzanja puske kad pucate",
  101. "Zadajete protivnicima +10 vise stete",
  102. "Zadajete protivnicima +20 vise stete",
  103. "Smanjeno trazanje puske",
  104. "Ni jedan predmet nece uticati na vas",
  105. "Dobijate +50hp svake runde, ali zato ste sporiji",
  106. "Imate 1/LW sanse da izbegnete stetu",
  107. "Otporni ste na 3 metka u svakom krugu",
  108. "Pritisnite CRTL i SPACE da koristite jetpack, jetpack se obnavlja svake 4 sec",
  109. "Smanjena gravitacija",
  110. "Povecana Brzina"
  111. };
  112.  
  113. new klasa_igraca[33];
  114. new level_igraca[33] = 1;
  115. new iskustvo_igraca[33];
  116.  
  117. new nova_klasa_igraca[33];
  118.  
  119. new const iskustvo_levelu[] = {0,7,28,63,112,175,252,343,448,567,700,847,1008,1183,1372,1575,1792,2023,2268,2527,
  120. 2800,3087,3388,3703,4032,4375,4732,5103,5488,5887,6300,6727,7168,7623,8092,8575,9072,9583,10108,10647,
  121. 11200,11767,12348,12943,13552,14175,14812,15463,16128,16807,17500,18207,18928,19663,20412,21175,21952,22743,23548,24367,
  122. 25200,26047,26908,27783,28672,29575,30492,31423,32368,33327,34300,35287,36288,37303,38332,39375,40432,41503,42588,43687,
  123. 44800,45927,47068,48223,49392,50575,51772,52983,54208,55447,56700,57967,59248,60543,61852,63175,64512,65863,67228,68607,
  124. 70000,71407,72828,74263,75712,77175,78652,80143,81648,83167,84700,86247,87808,89383,90972,92575,94192,95823,97468,99127,
  125. 100800,102487,104188,105903,107632,109375,111132,112903,114688,116487,118300,120127,121968,123823,125692,127575,129472,131383,133308,135247,
  126. 137200,139167,141148,143143,145152,147175,149212,151263,153328,155407,157500,159607,161728,163863,166012,168175,170352,172543,174748,176967,
  127. 179200,181447,183708,185983,188272,190575,192892,195223,197568,199927,202300,204687,207088,209503,211932,214375,216832,219303,221788,224287,
  128. 226800,229327,231868,234423,236992,239575,242172,244783,247408,250047,252700,255367,258048,260743,263452,266175,268912,271663,274428,277207,
  129. 280000,282807,285628,288463,291312,294175,297052,299943,302848,305767,308700,311647,314608,317583,320572,323575,326592,329623,332668,335727,
  130. 338800,341887,344988,348103,351232,354375,357532,360703,363888,367087,370300,373527,376768,380023,383292,386575,389872,393183,396508,399847,
  131. 403200,406567,409948,413343,416752,420175,423612,427063,430528,434007,437500,441007,444528,448063,451612,455175,458752,462343,465948,469567,
  132. 473200,476847,480508,484183,487872,491575,495292,499023,502768,506527,510300,514087,517888,521703,525532,529375,533232,537103,540988,544887,
  133. 548800,552727,556668,560623,564592,568575,572572,576583,580608,584647,588700,592767,596848,600943,605052,609175,613312,617463,621628,625807,
  134. 630000,634207,638428,642663,646912,651175,655452,659743,664048,668367,672700,677047,681408,685783,690172,694575,698992,703423,707868,712327,
  135. 716800,721287,725788,730303,734832,739375,743932,748503,753088,757687,762300,766927,771568,776223,780892,785575,790272,794983,799708,804447,
  136. 809200,813967,818748,823543,828352,833175,838012,842863,847728,852607,857500,862407,867328,872263,877212,882175,887152,892143,897148,902167,
  137. 907200,912247,917308,922383,927472,932575,937692,942823,947968,953127,958300,963487,968688,973903,979132,984375,989632,994903,1000188,1005487,
  138. 1010800,1016127,1021468,1026823,1032192,1037575,1042972,1048383,1053808,1059247,1064700,1070167,1075648,1081143,1086652,1092175,1097712,1103263,1108828,1114407,
  139. 1120000,1125607,1131228,1136863,1142512,1148175,1153852,1159543,1165248,1170967,1176700,1182447,1188208,1193983,1199772,1205575,1211392,1217223,1223068,1228927,
  140. 1234800,1240687,1246588,1252503,1258432,1264375,1270332,1276303,1282288,1288287,1294300,1300327,1306368,1312423,1318492,1324575,1330672,1336783,1342908,1349047,
  141. 1355200,1361367,1367548,1373743,1379952,1386175,1392412,1398663,1404928,1411207,1417500,1423807,1430128,1436463,1442812,1449175,1455552,1461943,1468348,1474767,
  142. 1481200,1487647,1494108,1500583,1507072,1513575,1520092,1526623,1533168,1539727,1546300,1552887,1559488,1566103,1572732,1579375,1586032,1592703,1599388,1606087,
  143. 1612800,1619527,1626268,1633023,1639792,1646575,1653372,1660183,1667008,1673847,1680700,1687567,1694448,1701343,1708252,1715175,1722112,1729063,1736028,1743007,
  144. 1750000,1757007,1764028,1771063,1778112,1785175,1792252,1799343,1806448,1813567,1820700,1827847,1835008,1842183,1849372,1856575,1863792,1871023,1878268,1885527,
  145. 1892800,1900087,1907388,1914703,1922032,1929375,1936732,1944103,1951488,1958887,1966300,1973727,1981168,1988623,1996092,2003575,2011072,2018583,2026108,2033647,
  146. 2041200,2048767,2056348,2063943,2071552,2079175,2086812,2094463,2102128,2109807,2117500,2125207,2132928,2140663,2148412,2156175,2163952,2171743,2179548,2187367,
  147. 2195200,2203047,2210908,2218783,2226672,2234575,2242492,2250423,2258368,2266327,2274300,2282287,2290288,2298303,2306332,2314375,2322432,2330503,2338588,2346687,
  148. 2354800,2362927,2371068,2379223,2387392,2395575,2403772,2411983,2420208,2428447,2436700,2444967,2453248,2461543,2469852,2478175,2486512,2494863,2503228,2511607,
  149. 2520000,2528407,2536828,2545263,2553712,2562175,2570652,2579143,2587648,2596167,2604700,2613247,2621808,2630383,2638972,2647575,2656192,2664823,2673468,2682127,
  150. 2690800,2699487,2708188,2716903,2725632,2734375,2743132,2751903,2760688,2769487,2778300,2787127,2795968,2804823,2813692,2822575,2831472,2840383,2849308,2858247,
  151. 2867200,2876167,2885148,2894143,2903152,2912175,2921212,2930263,2939328,2948407,2957500,2966607,2975728,2984863,2994012,3003175,3012352,3021543,3030748,3039967,
  152. 3049200,3058447,3067708,3076983,3086272,3095575,3104892,3114223,3123568,3132927,3142300,3151687,3161088,3170503,3179932,3189375,3198832,3208303,3217788,3227287,
  153. 3236800,3246327,3255868,3265423,3274992,3284575,3294172,3303783,3313408,3323047,3332700,3342367,3352048,3361743,3371452,3381175,3390912,3400663,3410428,3420207,
  154. 3430000,3439807,3449628,3459463,3469312,3479175,3489052,3498943,3508848,3518767,3528700,3538647,3548608,3558583,3568572,3578575,3588592,3598623,3608668,3618727,
  155. 3628800,3638887,3648988,3659103,3669232,3679375,3689532,3699703,3709888,3720087,3730300,3740527,3750768,3761023,3771292,3781575,3791872,3802183,3812508,3822847,
  156. 3833200,3843567,3853948,3864343,3874752,3885175,3895612,3906063,3916528,3927007,3937500,3948007,3958528,3969063,3979612,3990175,4000752,4011343,4021948,4032567,
  157. 4043200,4053847,4064508,4075183,4085872,4096575,4107292,4118023,4128768,4139527,4150300,4161087,4171888,4182703,4193532,4204375,4215232,4226103,4236988,4247887,
  158. 4258800,4269727,4280668,4291623,4302592,4313575,4324572,4335583,4346608,4357647,4368700,4379767,4390848,4401943,4413052,4424175,4435312,4446463,4457628,4468807,
  159. 4480000,4491207,4502428,4513663,4524912,4536175,4547452,4558743,4570048,4581367,4592700,4604047,4615408,4626783,4638172,4649575,4660992,4672423,4683868,4695327,
  160. 4706800,4718287,4729788,4741303,4752832,4764375,4775932,4787503,4799088,4810687,4822300,4833927,4845568,4857223,4868892,4880575,4892272,4903983,4915708,4927447,
  161. 4939200,4950967,4962748,4974543,4986352,4998175,5010012,5021863,5033728,5045607,5057500,5069407,5081328,5093263,5105212,5117175,5129152,5141143,5153148,5165167,
  162. 5177200,5189247,5201308,5213383,5225472,5237575,5249692,5261823,5273968,5286127,5298300,5310487,5322688,5334903,5347132,5359375,5371632,5383903,5396188,5408487,
  163. 5420800,5433127,5445468,5457823,5470192,5482575,5494972,5507383,5519808,5532247,5544700,5557167,5569648,5582143,5594652,5607175,5619712,5632263,5644828,5657407,
  164. 5670000,5682607,5695228,5707863,5720512,5733175,5745852,5758543,5771248,5783967,5796700,5809447,5822208,5834983,5847772,5860575,5873392,5886223,5899068,5911927,
  165. 5924800,5937687,5950588,5963503,5976432,5989375,6002332,6015303,6028288,6041287,6054300,6067327,6080368,6093423,6106492,6119575,6132672,6145783,6158908,6172047,
  166. 6185200,6198367,6211548,6224743,6237952,6251175,6264412,6277663,6290928,6304207,6317500,6330807,6344128,6357463,6370812,6384175,6397552,6410943,6424348,6437767,
  167. 6451200,6464647,6478108,6491583,6505072,6518575,6532092,6545623,6559168,6572727,6586300,6599887,6613488,6627103,6640732,6654375,6668032,6681703,6695388,6709087,
  168. 6722800,6736527,6750268,6764023,6777792,6791575,6805372,6819183,6833008,6846847,6860700,6874567,6888448,6902343,6916252,6930175,6944112,6958063,6972028,6986007,//1000
  169. 7000000,7014007,7028028,7042063,7056112,7070175,7084252,7098343,7112448,7126567,7140700,7154847,7169008,7183183,7197372,7211575,7225792,7240023,7254268,7268527,
  170. 7282800,7297087,7311388,7325703,7340032,7354375,7368732,7383103,7397488,7411887,7426300,7440727,7455168,7469623,7484092,7498575,7513072,7527583,7542108,7556647,
  171. 7571200,7585767,7600348,7614943,7629552,7644175,7658812,7673463,7688128,7702807,7717500,7732207,7746928,7761663,7776412,7791175,7805952,7820743,7835548,7850367,
  172. 7865200,7880047,7894908,7909783,7924672,7939575,7954492,7969423,7984368,7999327,8014300,8029287,8044288,8059303,8074332,8089375,8104432,8119503,8134588,8149687,
  173. 8164800,8179927,8195068,8210223,8225392,8240575,8255772,8270983,8286208,8301447,8316700,8331967,8347248,8362543,8377852,8393175,8408512,8423863,8439228,8454607,
  174. 8470000,8485407,8500828,8516263,8531712,8547175,8562652,8578143,8593648,8609167,8624700,8640247,8655808,8671383,8686972,8702575,8718192,8733823,8749468,8765127,
  175. 8780800,8796487,8812188,8827903,8843632,8859375,8875132,8890903,8906688,8922487,8938300,8954127,8969968,8985823,9001692,9017575,9033472,9049383,9065308,9081247,
  176. 9097200,9113167,9129148,9145143,9161152,9177175,9193212,9209263,9225328,9241407,9257500,9273607,9289728,9305863,9322012,9338175,9354352,9370543,9386748,9402967,
  177. 9419200,9435447,9451708,9467983,9484272,9500575,9516892,9533223,9549568,9565927,9582300,9598687,9615088,9631503,9647932,9664375,9680832,9697303,9713788,9730287,
  178. 9746800,9763327,9779868,9796423,9812992,9829575,9846172,9862783,9879408,9896047,9912700,9929367,9946048,9962743,9979452,9996175,10012912,10029663,10046428,10063207,
  179. 10080000};
  180.  
  181. new poeni_igraca[33];
  182. new energija_igraca[33];
  183. new inteligencija_igraca[33];
  184. new snaga_igraca[33];
  185. new Float:smanjene_povrede_igraca[33];
  186. new kondicija_igraca[33];
  187. new maximalna_energija_igraca[33];
  188. new Float:brzina_igraca[33];
  189. new gb_poeni_igraca[33]
  190.  
  191. enum { NONE = 0,
  192. Snajperista,
  193. Marinac,
  194. Pro_Strelac,
  195. Mitraljezac,
  196. Doktor,
  197. Vatrena_Podrska,
  198. Miner,
  199. Demolitions,
  200. Rusher,
  201. Rambo,
  202. Partizan,
  203. Spijun,
  204. Bombarder,
  205. Gunner,
  206. Pesadinac,
  207. Pobunjenik,
  208. Assassin,
  209. SWAT,
  210. Stealth,
  211. Eliminator,
  212. Ninja
  213. };
  214.  
  215. new const energija_klasa[] = { 0,
  216. 120,
  217. 140,
  218. 110,
  219. 120,
  220. 110,
  221. 100,
  222. 100,
  223. 110,
  224. 100,
  225. 130,
  226. 100,
  227. 70,
  228. 140,
  229. 125,
  230. 100,
  231. 125,
  232. 10,
  233. 100,
  234. 100,
  235. 150,
  236. 120
  237. };
  238.  
  239. new const Float:brzina_klasa[] = {0.0,
  240. 1.2,
  241. 1.35,
  242. 0.8,
  243. 0.8,
  244. 1.0,
  245. 1.0,
  246. 1.0,
  247. 1.0,
  248. 1.3,
  249. 1.15,
  250. 1.1,
  251. 1.2,
  252. 0.9,
  253. 0.9,
  254. 1.35,
  255. 1.2,
  256. 2.0,
  257. 0.8,
  258. 1.35,
  259. 1.2,
  260. 1.25
  261. };
  262.  
  263. new const oklop_klase[] = { 0,
  264. 100,
  265. 100,
  266. 100,
  267. 150,
  268. 100,
  269. 0,
  270. 100,
  271. 100,
  272. 0,
  273. 150,
  274. 0,
  275. 0,
  276. 150,
  277. 50,
  278. 0,
  279. 25,
  280. 100,
  281. 0,
  282. 100,
  283. 150,
  284. 120
  285. };
  286.  
  287. new const naziv_klase[][] = {"Nema",
  288. "Snajperista",
  289. "Marinac",
  290. "Pro-Strelac",
  291. "Mitraljezac",
  292. "Doktor",
  293. "Vatrena podrska",
  294. "Miner",
  295. "Demolitions",
  296. "Rusher",
  297. "Rambo",
  298. "Partizan",
  299. "Spijun",
  300. "Bombarder",
  301. "Gunner",
  302. "Pesadinac",
  303. "Pobunjenik",
  304. "Assassin",
  305. "SWAT",
  306. "Stealth",
  307. "Eliminator",
  308. "Ninja"
  309. };
  310. new const frakcije[][] = {
  311. "Nema",
  312. "\y[\rObicne\y]\r Klase",
  313. "\y[\rPremium\y]\r Klase"
  314. }
  315.  
  316. enum {
  317. NONE = 0,
  318. obicna,
  319. premium
  320. }
  321.  
  322. new const pripada[] = {
  323. NONE, // Nema 0
  324. obicna,
  325. obicna,
  326. obicna,
  327. obicna,
  328. obicna,
  329. obicna,
  330. obicna,
  331. obicna,
  332. obicna,
  333. premium,
  334. obicna,
  335. obicna,
  336. obicna,
  337. premium,
  338. obicna,
  339. obicna,
  340. premium,
  341. obicna,
  342. premium,
  343. premium,
  344. premium
  345.  
  346.  
  347. }
  348. new frakcija_igraca[33]
  349.  
  350. new const opis_klase[][] = {"Nema",
  351. "\yOruzije:\w AWP, Deagle, Scout^n\yEnergija:\w 120 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w 1:3 sansa za brzo ubijanje nozem",
  352. "\yOruzije:\w Deagle^n\yEnergija:\w 140 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 135%^n\ySpecijalne moci:\w Odma ubija nozem",
  353. "\yOruzije:\w AK47, M4A1^n\yEnergija:\w 110 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 80%^n\ySpecijalne moci:\w Nema",
  354. "\yOruzije:\w M249(krmaca)^n\yEnergija:\w 120 HP^n\yArmor:\w 150 AP^n\yBrzina:\w 80%^n\ySpecijalne moci:\w Otporan na mine, ima sve bombe",
  355. "\yOruzije:\w UMP45^n\yEnergija:\w 110 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Ima komplet za prvu pomoc",
  356. "\yOruzije:\w MP5^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Ima dve rakete",
  357. "\yOruzije:\w P90^n\yEnergija:\w 100 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Dobija 3 mine",
  358. "\yOruzije:\w AUG^n\yEnergija:\w 110 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Ima sve bombe, dobija dinamit, koji ubija sve u krugu od 1m",
  359. "\yOruzije:\w M3(pumparica)^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 130%^n\ySpecijalne moci:\w Nema",
  360. "\yOruzije:\w FAMAS^n\yEnergija:\w 130 HP^n\yArmor:\w 150 AP^n\yBrzina:\w 115%^n\ySpecijalne moci:\w Za svako ubistvo dobija 20 HP i pun sanzer, dupli skok",
  361. "\yOruzije:\w P90, FLASHBANG^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 110%^n\ySpecijalne moci:\w Manje je vidljiv",
  362. "\yOruzije:\w Deagle^n\yEnergija:\w 70 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w Kamuflaza (izgleda kao neprijatelj)",
  363. "\yOruzije:\w M4A1, Deagle, HE-Grenade^n\yEnergija:\w 140 HP^n\yArmor:\w 150 AP^n\yBrzina:\w 90%^n\ySpecijalne moci:\w Nema",
  364. "\yOruzije:\w G3/SG-1(rafalni snajper)^n\yEnergija:\w 125 HP^n\yArmor:\w 50 AP^n\yBrzina:\w 90%^n\ySpecijalne moci:\w Ima 1 raketu",
  365. "\yOruzije:\w GAIL + P228,^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 135%^n\ySpecijalne moci:\w Nema",
  366. "\yOruzije:\w SG552, HE-Grenade^n\yEnergija:\w 100 HP^n\yArmor:\w 25 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w Ima 1 minu",
  367. "\yOruzije:\w Noz, USP^n\yEnergija:\w 10 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 200%^n\ySpecijalne moci:\w Nevidljiv kad ima noz",
  368. "\yOruzije:\w M4a1^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 80%^n\ySpecijalne moci:\w Otporan na noz",
  369. "\yOruzije:\w ak47, usp^n\yEnergija:\w 100 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 135%^n\ySpecijalne moci:\w instant Kill Knife, Manje vidljiv",
  370. "\yOruzije:\w M4a1, deagle^n\yEnergija:\w 150 HP^n\yArmor:\w 150 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w Ima 5 dinamita, Instant Kill Knife",
  371. "\yOruzije:\w usp^n\yEnergija:\w 120 HP^n\yArmor:\w 120 AP^n\yBrzina:\w 125%^n\ySpecijalne moci:\w Manje vidljiv kada drzi noz, Instant Kill Knife"
  372. };
  373.  
  374. new broj_medkit_igraca[33];
  375. new broj_raketa_igraca[33];
  376. new Float:prethodna_raketa_igraca[33];
  377. new broj_min_igraca[33];
  378. new broj_dinamita_igraca[33];
  379. new broj_skokova_igraca[33];
  380.  
  381. new bool:freezetime = true;
  382.  
  383. new gb_hs
  384.  
  385. public plugin_init()
  386. {
  387. register_plugin("Call of Duty : MW2 Mod", "0.8.0", "QTM_Peyote");
  388.  
  389. g_vault = nvault_open("cOd");
  390.  
  391. register_think("MedKit","MedKitThink");
  392.  
  393. RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
  394. RegisterHam(Ham_Spawn, "player", "Pocetak", 1);
  395. RegisterHam(Ham_Touch, "armoury_entity", "DodirOruzija");
  396. RegisterHam(Ham_Touch, "weapon_shield", "DodirOruzija");
  397. RegisterHam(Ham_Touch, "weaponbox", "DodirOruzija");
  398.  
  399. register_forward(FM_CmdStart, "CmdStart");
  400. register_forward(FM_EmitSound, "EmitSound");
  401.  
  402. register_logevent("PocetakRunde", 2, "1=Round_Start");
  403.  
  404. register_event("DeathMsg", "Death", "ade");
  405. register_event("Damage", "Damage", "b", "2!=0");
  406. register_event("CurWeapon","CurWeapon","be", "1=1");
  407. register_event("HLTV", "novaRunda", "a", "1=0", "2=0");
  408.  
  409. register_touch("Rocket", "*" , "DodirRakete");
  410. register_touch("Mine", "player", "DodirMine");
  411.  
  412. cvar_xp_za_ubistvo = register_cvar("cod_killxp", "100");
  413. gb_hs = register_cvar("cod_killgb", "1")
  414. register_concmd("deposit","ubaci")
  415. register_concmd("withdraw","podigni")
  416.  
  417. register_clcmd("say /klasa", "IzaberiKlasu");
  418. register_clcmd("say /opis", "OpisKlase");
  419. register_clcmd("say /predmet", "OpisPredmeta");
  420. register_clcmd("say /item", "OpisPredmeta");
  421. register_clcmd("say /drop", "IzbaciPredmet");
  422. register_clcmd("say /izbaci", "IzbaciPredmet");
  423. register_clcmd("say /reset", "KomandaResetujPoene");
  424. register_clcmd("say /shop", "Shope");
  425. register_clcmd("say /prodaj", "Prodaj");
  426. register_clcmd("say /banka", "Banka");
  427. register_clcmd("say /bank", "Banka");
  428. register_clcmd("fullupdate", "BlokirajKomande");
  429.  
  430. g_msg_screenfade = get_user_msgid("ScreenFade");
  431.  
  432. SyncHudObj = CreateHudSyncObj();
  433. SyncHudObj3 = CreateHudSyncObj();
  434.  
  435. register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlase");
  436. iskustvo_za_pare = 400;
  437. iskustvo_za_mnogopara = 1000;
  438. }
  439. public Banka(id)
  440. {
  441. new menu = menu_create("\rCOD:MW\y2\r Banka:","BankaHandler")
  442. menu_additem(menu,"\yStavi GB poene u banku")
  443. menu_additem(menu,"\yPodigni GB poene iz banke")
  444. menu_additem(menu,"\yVidi stanje na racunu")
  445. menu_setprop(menu, MPROP_EXITNAME, "\rIzadji");
  446. menu_display(id, menu);
  447. }
  448. public BankaHandler(id, menu, item)
  449. {
  450. if(item == MENU_EXIT)
  451. {
  452. menu_destroy(menu);
  453. return PLUGIN_CONTINUE;
  454. }
  455. switch(item)
  456. {
  457. case MENU_EXIT:
  458. {
  459. menu_destroy(menu)
  460. }
  461. case 0:
  462. {
  463. client_cmd(id,"messagemode deposit")
  464. ColorChat(id,GREEN,"^3[COD:MW2]^4 Ukucaj broj GB Poena koji hoces da stavis u banku")
  465. }
  466. case 1:
  467. {
  468. client_cmd(id,"messagemode withdraw")
  469. ColorChat(id,GREEN,"^3[COD:MW2]^4 Ukucaj broj GB Poena koji hoces da podignes iz banke")
  470. }
  471. case 2:
  472. {
  473. new broj_poena[32],pid[32]
  474. get_user_authid(id,pid,31)
  475. nvault_get(g_vault,pid,broj_poena,31)
  476. ColorChat(id,GREEN,"^3[COD:MW2]^4 Imas %s GB Poena poena na racunu",broj_poena)
  477. }
  478. }
  479. return PLUGIN_CONTINUE
  480. }
  481.  
  482. public ubaci(id)
  483. {
  484. new suma[32],suma2, broj_poena
  485. read_argv(1,suma,31)
  486. suma2 = str_to_num(suma)
  487. broj_poena = gb_poeni_igraca[id]
  488. if(suma2<0) return
  489. if(suma2>broj_poena)
  490. suma2=broj_poena
  491.  
  492. new pid[32], bpoeni[32],bpoeni2, xxx[32]
  493. get_user_authid(id,pid,31)
  494. nvault_get(g_vault,pid,bpoeni,31)
  495. bpoeni2 = str_to_num(bpoeni)
  496. num_to_str(suma2+bpoeni2,xxx,31)
  497. nvault_set(g_vault,pid,xxx)
  498. gb_poeni_igraca[id] = broj_poena - suma2
  499. ColorChat(id,GREEN,"^3[COD:MW2]^4 Uspesno si stavio %i GB poena u banku!",suma2)
  500. }
  501. public podigni(id)
  502. {
  503. new suma[32],suma2, broj_poena,broj_bpoena[32],broj_bpoena2,pid[32],xxx[32]
  504. read_argv(1,suma,31)
  505. suma2 = str_to_num(suma)
  506. broj_poena = gb_poeni_igraca[id]
  507. get_user_authid(id,pid,31)
  508. nvault_get(g_vault,pid,broj_bpoena,31)
  509. broj_bpoena2 = str_to_num(broj_bpoena)
  510. if(suma2<0)
  511. return
  512. if(suma2>broj_bpoena2)
  513. suma2 = broj_bpoena2
  514.  
  515. gb_poeni_igraca[id] = broj_poena + suma2
  516. num_to_str(broj_bpoena2-suma2,xxx,31)
  517. nvault_set(g_vault,pid,xxx)
  518. ColorChat(id,GREEN,"^3[COD:MW2]^4 Podigao si %i GB Poena!",suma2)
  519. }
  520. public Prodaj(id)
  521. {
  522. //client_cmd(id, "spk MW4/select");
  523.  
  524. if(!informacije_predmet_igraca[id][0])
  525. {
  526. ColorChat(id, NORMAL, "^4[COD:MW2]^1 Nemate predmet.");
  527. return PLUGIN_CONTINUE;
  528. }
  529. else
  530. {
  531. new pare_igraca;
  532. pare_igraca = cs_get_user_money(id);
  533. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Prodao si ^3%s^1 za ^3$2500", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  534. Obrisipredmet(id);
  535. cs_set_user_money(id, pare_igraca+2500);
  536. }
  537. return PLUGIN_CONTINUE;
  538. }
  539.  
  540. public plugin_cfg()
  541. {
  542. server_cmd("sv_maxspeed 9999");
  543. }
  544.  
  545. public plugin_precache()
  546. {
  547. new Entity = create_entity( "info_map_parameters" );
  548.  
  549. DispatchKeyValue( Entity, "buying", "3" );
  550. DispatchSpawn( Entity );
  551.  
  552. sprite_white = precache_model("sprites/white.spr") ;
  553. sprite_blast = precache_model("sprites/dexplo.spr");
  554. sprite_beam = precache_model("sprites/zbeam4.spr")
  555.  
  556. precache_sound("QTM_CodMod/select.wav");
  557. precache_sound("QTM_CodMod/start.wav");
  558. precache_sound("QTM_CodMod/start2.wav");
  559. precache_sound("QTM_CodMod/levelup.wav");
  560.  
  561. precache_model("models/w_medkit.mdl");
  562. precache_model("models/rpgrocket.mdl");
  563. precache_model("models/mine.mdl");
  564. }
  565.  
  566. public pfn_keyvalue( Entity )
  567. {
  568. new ClassName[ 20 ], Dummy[ 2 ];
  569. copy_keyvalue( ClassName, charsmax( ClassName ), Dummy, charsmax( Dummy ), Dummy, charsmax( Dummy ) );
  570.  
  571. if( equal( ClassName, "info_map_parameters" ) )
  572. {
  573. remove_entity( Entity );
  574. return PLUGIN_HANDLED ;
  575. }
  576. return PLUGIN_CONTINUE;
  577. }
  578.  
  579. public CmdStart(id, uc_handle)
  580. {
  581. if(!is_user_alive(id))
  582. return FMRES_IGNORED;
  583.  
  584. new button = get_uc(uc_handle, UC_Buttons);
  585. new flags = pev(id, pev_flags);
  586.  
  587. if(informacije_predmet_igraca[id][0] == 11 || klasa_igraca[id] == Rambo)
  588. {
  589. new oldbutton = pev(id, pev_oldbuttons);
  590.  
  591. if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && broj_skokova_igraca[id] > 0)
  592. {
  593. broj_skokova_igraca[id]--;
  594. new Float:velocity[3];
  595. pev(id, pev_velocity,velocity);
  596. velocity[2] = random_float(265.0,285.0);
  597. set_pev(id, pev_velocity,velocity);
  598. }
  599. else if(flags & FL_ONGROUND)
  600. {
  601. broj_skokova_igraca[id] = 0;
  602. if(informacije_predmet_igraca[id][0] == 11)
  603. broj_skokova_igraca[id]++;
  604. if(klasa_igraca[id] == Rambo)
  605. broj_skokova_igraca[id]++;
  606. }
  607. }
  608.  
  609. if(button & IN_ATTACK)
  610. {
  611. new Float:punchangle[3];
  612.  
  613. if(informacije_predmet_igraca[id][0] == 20)
  614. set_pev(id, pev_punchangle, punchangle);
  615. if(informacije_predmet_igraca[id][0] == 23)
  616. {
  617. set_pev(id, pev_punchangle, punchangle);
  618. for(new i=0; i<3;i++)
  619. punchangle[i]*=0.9;
  620. set_pev(id, pev_punchangle, punchangle);
  621. }
  622. }
  623.  
  624. if(informacije_predmet_igraca[id][0] == 28 && button & IN_JUMP && button & IN_DUCK && flags & FL_ONGROUND && get_gametime() > informacije_predmet_igraca[id][1]+4.0)
  625. {
  626. informacije_predmet_igraca[id][1] = floatround(get_gametime());
  627. new Float:velocity[3];
  628. VelocityByAim(id, 700, velocity);
  629. velocity[2] = random_float(265.0,285.0);
  630. set_pev(id, pev_velocity, velocity);
  631. }
  632. return FMRES_IGNORED;
  633. }
  634. public Shope(id)
  635. {
  636. new menu = menu_create("Shop:", "AAAbp");
  637. menu_additem(menu, "\yObican Shop");
  638. menu_additem(menu, "\yGB Shop");
  639. menu_display(id, menu);
  640. }
  641. public AAAbp(id, menu, item)
  642. {
  643. client_cmd(id, "spk QTM_CodMod/select");
  644.  
  645. if(item == MENU_EXIT)
  646. {
  647. menu_destroy(menu);
  648. return PLUGIN_CONTINUE;
  649. }
  650. switch(item)
  651. {
  652. case 0:
  653. {
  654. Shop(id)
  655. }
  656. case 1:
  657. {
  658. Predmeti(id)
  659. }
  660. }
  661. return PLUGIN_CONTINUE;
  662. }
  663. public Shop(id)
  664. {
  665. new menu = menu_create("Shop:", "Shop_Handle");
  666. menu_additem(menu, "\yMala Apoteka \r[Dodaje 50 HP] \yCena: \r3000$");
  667. menu_additem(menu, "\yVelika Apoteka \r[Dodaje 100 HP] \yCena: \r5000$");
  668. menu_additem(menu, "\yRedBull \r[Veci Skok + Veca Brzina] \yCena: \r7500$");
  669. menu_additem(menu, "\yLotto \r[Tiket za loto] \yCena: \r2000$");
  670. menu_additem(menu, "\yMali Exe \r[Dodaje 10 XP] \yCena: \r5000$");
  671. menu_additem(menu, "\yVeliki Exp \r[Dodaje 25 XP] \yCena: \r10000$");
  672. menu_additem(menu, "\ySlucajni Predmet \r[Predmet] \yCena: \r3000$");
  673. menu_display(id, menu);
  674. }
  675. public Shop_Handle(id, menu, item)
  676. {
  677. client_cmd(id, "spk QTM_CodMod/select");
  678.  
  679. if(item == MENU_EXIT)
  680. {
  681. menu_destroy(menu);
  682. return PLUGIN_CONTINUE;
  683. }
  684. menu_display(id, menu);
  685. new pare_igraca = cs_get_user_money(id);
  686. new hp = get_user_health(id);
  687. switch(item)
  688. {
  689. case 0:
  690. {
  691. new cena = 3000;
  692. if (pare_igraca<cena)
  693. {
  694. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  695. return PLUGIN_CONTINUE;
  696. }
  697. if(hp >= maximalna_energija_igraca[id] || klasa_igraca[id] == Assassin)
  698. {
  699. ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
  700. return PLUGIN_CONTINUE;
  701. }
  702. new ammount=50;
  703. new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
  704. set_user_health(id, nova_energija);
  705. ColorChat(id,GREEN,"[Shop] ^1kupio si ^3Aspirin");
  706. cs_set_user_money(id, pare_igraca-cena);
  707. }
  708. case 1:
  709. {
  710. new cena = 5000;
  711. if (pare_igraca<cena)
  712. {
  713. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  714. return PLUGIN_CONTINUE;
  715. }
  716. if(hp >= maximalna_energija_igraca[id] || klasa_igraca[id] == Assassin)
  717. {
  718. ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
  719. return PLUGIN_CONTINUE;
  720. }
  721. new ammount=100;
  722. new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
  723. set_user_health(id, nova_energija);
  724. ColorChat(id,GREEN,"[Shop] ^1Kupio si^3 Morfijum");
  725. cs_set_user_money(id, pare_igraca-cena);
  726. }
  727. case 2:
  728. {
  729. new cena = 7500;
  730. if (pare_igraca<cena)
  731. {
  732. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  733. return PLUGIN_CONTINUE;
  734. }
  735. set_user_gravity(id,get_user_gravity(id) - 0.3);
  736. set_user_maxspeed(id,get_user_maxspeed(id) + 10.0);
  737. ColorChat(id,GREEN,"[Shop]^1 Kupio si^3 RedBull");
  738. cs_set_user_money(id, pare_igraca-cena)
  739. }
  740. case 3:
  741. {
  742. new cena = 2000;
  743. if (pare_igraca<cena)
  744. {
  745. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  746. return PLUGIN_CONTINUE;
  747. }
  748. cs_set_user_money(id, pare_igraca-cena);
  749. ColorChat(id,GREEN,"[Shop] ^1Kupio si tiket za Loto");
  750. ColorChat(id,GREEN,"[Shop] ^1Ucitavam brojeve...");
  751.  
  752. new rand = random_num(0,13);
  753. switch(rand)
  754. {
  755. case 0:
  756. {
  757. ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 10$^1!")
  758. cs_set_user_money(id, pare_igraca + 10)
  759. }
  760. case 1:
  761. {
  762. ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 Redbull^1!")
  763. set_user_gravity(id,get_user_gravity(id) - 0.3);
  764. set_user_maxspeed(id,get_user_maxspeed(id) + 10.0);
  765. }
  766. case 2:
  767. {
  768. ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
  769. }
  770. case 3:
  771. {
  772. ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 300$^1!")
  773. cs_set_user_money(id, pare_igraca + 300)
  774. }
  775. case 4:
  776. {
  777. ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 1000$^1!")
  778. cs_set_user_money(id, pare_igraca + 1000)
  779. }
  780. case 5:
  781. {
  782. ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
  783. }
  784. case 6:
  785. {
  786. ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
  787. }
  788. case 7:
  789. {
  790. ColorChat(id,GREEN,"[Shop] ^1Izgubio si^3 16000$^1!")
  791. cs_set_user_money(id, pare_igraca - 16000)
  792. }
  793. case 8:
  794. {
  795. ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
  796. }
  797. case 9:
  798. {
  799. ColorChat(id,GREEN,"[Shop]^1 Dobio si^3 1000 EXP ^1!")
  800. iskustvo_igraca[id] += iskustvo_za_mnogopara;
  801. }
  802. case 10:
  803. {
  804. ColorChat(id,GREEN,"[Shop]^1 Dobio si^3 500 EXP^1!")
  805. iskustvo_igraca[id] += 500;
  806. }
  807. case 11:
  808. {
  809. ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
  810. }
  811. case 12:
  812. {
  813. ColorChat(id,GREEN,"[Shop]^1 Dobio si^3 100 EXP^1 !")
  814. iskustvo_igraca[id] += 100;
  815. }
  816. case 13:
  817. {
  818. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  819. }
  820. }
  821. ProveriNivo(id);
  822. return PLUGIN_CONTINUE;
  823. }
  824. case 4:
  825. {
  826. new cena = 5000;
  827. if (pare_igraca<cena)
  828. {
  829. ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
  830. return PLUGIN_CONTINUE;
  831. }
  832. iskustvo_igraca[id] += iskustvo_za_pare;
  833. ColorChat(id,GREEN,"[Shop] ^1Kupio si ^3Iskustvo");
  834. cs_set_user_money(id, pare_igraca-cena)
  835. ProveriNivo(id);
  836. }
  837. case 5:
  838. {
  839. new cena = 10000;
  840. if (pare_igraca<cena)
  841. {
  842. ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
  843. return PLUGIN_CONTINUE;
  844. }
  845. iskustvo_igraca[id] += iskustvo_za_mnogopara;
  846. ColorChat(id,GREEN,"[Shop]^1Kupio si ^3Super Iskustvo");
  847. cs_set_user_money(id, pare_igraca-cena)
  848. ProveriNivo(id);
  849. }
  850. case 6:
  851. {
  852. new cena = 3000;
  853. if (pare_igraca<cena)
  854. {
  855. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno para!");
  856. return PLUGIN_CONTINUE;
  857. }
  858. cs_set_user_money(id, pare_igraca-cena)
  859. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  860. }
  861. }
  862. return PLUGIN_CONTINUE;
  863. }
  864. public Predmeti(id)
  865. {
  866. new menu = menu_create("\yGB shop:", "Predmeti_Handle");
  867. menu_additem(menu, "\dSwat Stit \y[\rPredmet\y] \rCena: \y200 GB");
  868. menu_additem(menu, "\dAWP Master \y[\rPredmet\y] \rCena: \y200 GB");
  869. menu_additem(menu, "\dNoz Marinca \y[\rPredmet\y] \rCena: \y175 GB");
  870. menu_additem(menu, "\dSet Stuntera \y[\rPredmet\y] \rCena: \y175 GB");
  871. menu_additem(menu, "\dHE Expert \y[\rPredmet\y] \rCena: \y145 GB");
  872. menu_additem(menu, "\dDeagle Master \y[\rPredmet\y] \rCena: \y145 GB");
  873. menu_display(id, menu);
  874. }
  875. public Predmeti_Handle(id, menu, item)
  876. {
  877. client_cmd(id, "spk QTM_CodMod/select");
  878.  
  879. if(item == MENU_EXIT)
  880. {
  881. menu_destroy(menu);
  882. return PLUGIN_CONTINUE;
  883. }
  884. switch(item)
  885. {
  886. case 0:
  887. {
  888. if(gb_poeni_igraca[id]<200)
  889. {
  890. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno Shop poena!");
  891. return PLUGIN_HANDLED;
  892. }
  893. gb_poeni_igraca[id]-=200
  894. DajPredmet(id, 24)
  895. }
  896. case 1:
  897. {
  898. if(gb_poeni_igraca[id]<200)
  899. {
  900. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno Shop poena!");
  901. return PLUGIN_HANDLED;
  902. }
  903. gb_poeni_igraca[id]-=200
  904. DajPredmet(id, 13)
  905. }
  906. case 2:
  907. {
  908. if(gb_poeni_igraca[id]<175)
  909. {
  910. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno Shop poena!");
  911. return PLUGIN_HANDLED;
  912. }
  913. gb_poeni_igraca[id]-=175
  914. DajPredmet(id, 8)
  915. }
  916. case 3:
  917. {
  918. if(gb_poeni_igraca[id]<175)
  919. {
  920. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno Shop poena!");
  921. return PLUGIN_HANDLED;
  922. }
  923. gb_poeni_igraca[id]-=175
  924. DajPredmet(id, 31)
  925. }
  926. case 4:
  927. {
  928. if(gb_poeni_igraca[id]<145)
  929. {
  930. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno Shop poena!");
  931. return PLUGIN_HANDLED;
  932. }
  933. gb_poeni_igraca[id]-=145
  934. DajPredmet(id, 10)
  935. }
  936. case 5:
  937. {
  938. if(gb_poeni_igraca[id]<145)
  939. {
  940. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno Shop poena!");
  941. return PLUGIN_HANDLED;
  942. }
  943. gb_poeni_igraca[id]-=145
  944. DajPredmet(id, 33)
  945. }
  946. }
  947. return PLUGIN_CONTINUE;
  948. }
  949.  
  950. public Pocetak(id)
  951. {
  952. if(!is_user_alive(id) || !is_user_connected(id))
  953. return PLUGIN_CONTINUE;
  954.  
  955. if(nova_klasa_igraca[id])
  956. {
  957. klasa_igraca[id] = nova_klasa_igraca[id];
  958. nova_klasa_igraca[id] = 0;
  959. strip_user_weapons(id);
  960. give_item(id, "weapon_knife");
  961.  
  962. UcitajPodatke(id, klasa_igraca[id]);
  963. }
  964.  
  965. if(!klasa_igraca[id])
  966. {
  967. IzaberiKlasu(id);
  968. return PLUGIN_CONTINUE;
  969. }
  970.  
  971. switch(klasa_igraca[id])
  972. {
  973. case Snajperista:
  974. {
  975. give_item(id, "weapon_awp");
  976. give_item(id, "weapon_scout");
  977. give_item(id, "weapon_deagle");
  978. }
  979. case Marinac:
  980. {
  981. give_item(id, "weapon_deagle");
  982. }
  983. case Pro_Strelac:
  984. {
  985. give_item(id, "weapon_m4a1");
  986. give_item(id, "weapon_ak47");
  987. }
  988. case Mitraljezac:
  989. {
  990. give_item(id, "weapon_m249");
  991. give_item(id, "weapon_hegrenade");
  992. give_item(id, "weapon_flashbang");
  993. give_item(id, "weapon_smokegrenade");
  994. }
  995. case Doktor:
  996. {
  997. give_item(id, "weapon_ump45");
  998. broj_medkit_igraca[id] = 2;
  999. }
  1000. case Vatrena_Podrska:
  1001. {
  1002. give_item(id, "weapon_mp5navy");
  1003. broj_raketa_igraca[id] = 2;
  1004. }
  1005. case Miner:
  1006. {
  1007. give_item(id, "weapon_p90");
  1008. broj_min_igraca[id] = 3;
  1009. }
  1010. case Demolitions:
  1011. {
  1012. give_item(id, "weapon_aug");
  1013. give_item(id, "weapon_hegrenade");
  1014. give_item(id, "weapon_flashbang");
  1015. give_item(id, "weapon_smokegrenade");
  1016. broj_dinamita_igraca[id] = 1;
  1017. }
  1018. case Rusher:
  1019. {
  1020. give_item(id, "weapon_m3");
  1021. }
  1022. case Rambo:
  1023. {
  1024. give_item(id, "weapon_famas");
  1025. }
  1026. case Partizan:
  1027. {
  1028. give_item(id, "weapon_p90");
  1029. give_item(id, "weapon_flashbang");
  1030. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
  1031. }
  1032. case Spijun:
  1033. {
  1034. give_item(id, "weapon_deagle");
  1035. }
  1036. case Bombarder:
  1037. {
  1038. give_item(id, "weapon_m4a1");
  1039. give_item(id, "weapon_deagle");
  1040. give_item(id, "weapon_hegrenade");
  1041. }
  1042. case Gunner:
  1043. {
  1044. give_item(id, "weapon_g3sg1");
  1045. broj_raketa_igraca[id] = 1 ;
  1046. }
  1047. case Pesadinac:
  1048. {
  1049. give_item(id, "weapon_galil");
  1050. give_item(id, "weapon_p228");
  1051. }
  1052. case Pobunjenik:
  1053. {
  1054. give_item(id, "weapon_sg552");
  1055. give_item(id, "weapon_hegrenade");
  1056. broj_min_igraca[id] = 1 ;
  1057. }
  1058. case Assassin:
  1059. {
  1060. give_item(id, "weapon_knife");
  1061. give_item(id, "weapon_usp");
  1062. }
  1063. case SWAT:
  1064. {
  1065. give_item(id, "weapon_m4a1");
  1066. }
  1067. case Stealth:
  1068. {
  1069. give_item(id, "weapon_ak47");
  1070. give_item(id, "weapon_usp");
  1071. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 80);
  1072. }
  1073. case Eliminator:
  1074. {
  1075. give_item(id, "weapon_m4a1");
  1076. give_item(id, "weapon_deagle");
  1077. broj_dinamita_igraca[id] = 5;
  1078. }
  1079. case Ninja:
  1080. {
  1081. give_item(id, "weapon_usp");
  1082. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 80);
  1083.  
  1084. }
  1085. }
  1086.  
  1087. if(poeni_igraca[id]>0)
  1088. DodelaPoena(id);
  1089.  
  1090. if(informacije_predmet_igraca[id][0] == 10 || informacije_predmet_igraca[id][0] == 9)
  1091. give_item(id, "weapon_hegrenade");
  1092.  
  1093. if(informacije_predmet_igraca[id][0] == 9)
  1094.  
  1095. if(informacije_predmet_igraca[id][0] == 1)
  1096. set_user_footsteps(id, 1);
  1097. else
  1098. set_user_footsteps(id, 0);
  1099.  
  1100. if(informacije_predmet_igraca[id][0] == 13)
  1101. give_item(id, "weapon_awp");
  1102.  
  1103. if(informacije_predmet_igraca[id][0] == 16)
  1104. give_item(id, "weapon_deagle");
  1105.  
  1106. if(informacije_predmet_igraca[id][0] == 19)
  1107. informacije_predmet_igraca[id][1] = 1;
  1108.  
  1109. if(informacije_predmet_igraca[id][0] == 27)
  1110. informacije_predmet_igraca[id][1] = 3;
  1111.  
  1112. if(informacije_predmet_igraca[id][0] == 29)
  1113. set_user_gravity(id,get_user_gravity(id) - 0.4);
  1114.  
  1115. new weapons[32];
  1116. new weaponsnum;
  1117. get_user_weapons(id, weapons, weaponsnum);
  1118. for(new i=0; i<weaponsnum; i++)
  1119. if(is_user_alive(id))
  1120. if(maxAmmo[weapons[i]] > 0)
  1121. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  1122.  
  1123. PostaviAtribute(id)
  1124.  
  1125. return PLUGIN_CONTINUE;
  1126. }
  1127.  
  1128. public PostaviAtribute(id)
  1129. {
  1130. smanjene_povrede_igraca[id] = (0.7*(1.0-floatpower(1.1, -0.112311341*float(snaga_igraca[id]))));
  1131. maximalna_energija_igraca[id] = energija_klasa[klasa_igraca[id]]+energija_igraca[id]*2;
  1132. brzina_igraca[id] = STANDARDNA_brzina*brzina_klasa[klasa_igraca[id]]+floatround(kondicija_igraca[id]*1.3);
  1133.  
  1134. if(informacije_predmet_igraca[id][0] == 18 && klasa_igraca[id] != Assassin)
  1135. {
  1136. maximalna_energija_igraca[id] += 100;
  1137. brzina_igraca[id] -= 0.4;
  1138. }
  1139.  
  1140. if(informacije_predmet_igraca[id][0] == 25 && klasa_igraca[id] != Assassin)
  1141. {
  1142. maximalna_energija_igraca[id] += 50;
  1143. brzina_igraca[id] -= 0.3;
  1144. }
  1145. if(informacije_predmet_igraca[id][0] == 30)
  1146. {
  1147. brzina_igraca[id] += 1.2;
  1148. }
  1149. set_user_armor(id, oklop_klase[klasa_igraca[id]]);
  1150.  
  1151. if(informacije_predmet_igraca[id][0] == 17)
  1152. set_user_armor(id, 500);
  1153.  
  1154. set_user_health(id, maximalna_energija_igraca[id]);
  1155.  
  1156. if(klasa_igraca[id] == Partizan)
  1157. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
  1158. else
  1159. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
  1160. }
  1161.  
  1162. public PocetakRunde()
  1163. {
  1164. freezetime = false;
  1165. for(new id=0;id<=32;id++)
  1166. {
  1167. if(!is_user_alive(id))
  1168. continue;
  1169.  
  1170. set_task(0.1, "PostaviBrzinu", id+ZADATAK_POSTAVI_brzinu);
  1171.  
  1172. switch(get_user_team(id))
  1173. {
  1174. case 1: client_cmd(id, "spk QTM_CodMod/start2");
  1175. case 2: client_cmd(id, "spk QTM_CodMod/start");
  1176. }
  1177. }
  1178. }
  1179.  
  1180. public novaRunda()
  1181. {
  1182. freezetime = true;
  1183. new iEnt = find_ent_by_class(-1, "Mine");
  1184. while(iEnt > 0)
  1185. {
  1186. remove_entity(iEnt);
  1187. iEnt = find_ent_by_class(iEnt, "Mine");
  1188. }
  1189. }
  1190.  
  1191. public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
  1192. {
  1193. if(!is_user_alive(this) || !is_user_connected(this) || informacije_predmet_igraca[this][0] == 24 || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_igraca[idattacker])
  1194. return HAM_IGNORED;
  1195.  
  1196. new health = get_user_health(this);
  1197. new weapon = get_user_weapon(idattacker);
  1198.  
  1199. if(health < 2)
  1200. return HAM_IGNORED;
  1201.  
  1202. if(informacije_predmet_igraca[this][0] == 27 && informacije_predmet_igraca[this][1]>0)
  1203. {
  1204. informacije_predmet_igraca[this][1]--;
  1205. return HAM_SUPERCEDE;
  1206. }
  1207.  
  1208. if(snaga_igraca[this]>0)
  1209. damage -= smanjene_povrede_igraca[this]*damage;
  1210.  
  1211. if(informacije_predmet_igraca[this][0] == 2 || informacije_predmet_igraca[this][0] == 3)
  1212. damage-=(float(informacije_predmet_igraca[this][1])<damage)? float(informacije_predmet_igraca[this][1]): damage;
  1213.  
  1214. if(informacije_predmet_igraca[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
  1215. damage*=2.0;
  1216.  
  1217. if(informacije_predmet_igraca[idattacker][0] == 10)
  1218. damage+=informacije_predmet_igraca[idattacker][1];
  1219.  
  1220. if(informacije_predmet_igraca[this][0] == 12)
  1221. damage-=(5.0<damage)? 5.0: damage;
  1222.  
  1223. if(weapon == CSW_AWP && informacije_predmet_igraca[idattacker][0] == 13)
  1224. damage=float(health);
  1225.  
  1226. if(informacije_predmet_igraca[idattacker][0] == 21)
  1227. damage+=10;
  1228.  
  1229. if(informacije_predmet_igraca[idattacker][0] == 22)
  1230. damage+=20;
  1231.  
  1232. if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
  1233. {
  1234. if((informacije_predmet_igraca[idattacker][0] == 9 && random_num(1, informacije_predmet_igraca[idattacker][1]) == 1) || informacije_predmet_igraca[idattacker][0] == 10)
  1235. damage = float(health);
  1236. }
  1237.  
  1238. if(weapon == CSW_KNIFE)
  1239. {
  1240. if(klasa_igraca[this] == SWAT)
  1241. return HAM_SUPERCEDE;
  1242. if(informacije_predmet_igraca[this][0] == 4)
  1243. damage=damage*1.4+inteligencija_igraca[idattacker];
  1244. if(informacije_predmet_igraca[idattacker][0] == 8 || (klasa_igraca[idattacker] == Snajperista && random_num(1,2) == 1) || klasa_igraca[idattacker] == Marinac || klasa_igraca[idattacker] == Assassin && !(get_user_button(idattacker) & IN_ATTACK))
  1245. damage = float(health);
  1246. if(klasa_igraca[idattacker] == Stealth)
  1247. damage = float(health)
  1248. if(klasa_igraca[idattacker] == Ninja)
  1249. damage = float(health)
  1250. }
  1251.  
  1252. if(informacije_predmet_igraca[this][0] == 26 && random_num(1, informacije_predmet_igraca[this][1]) == 1)
  1253. {
  1254. SetHamParamEntity(3, this);
  1255. SetHamParamEntity(1, idattacker);
  1256. }
  1257.  
  1258.  
  1259. SetHamParamFloat(4, damage);
  1260. return HAM_IGNORED;
  1261. }
  1262.  
  1263. public Damage(id)
  1264. {
  1265. new attacker = get_user_attacker(id);
  1266. new damage = read_data(2);
  1267. if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker || !klasa_igraca[attacker])
  1268. return PLUGIN_CONTINUE;
  1269.  
  1270. if(informacije_predmet_igraca[attacker][0] == 12 && random_num(1, informacije_predmet_igraca[id][1]) == 1)
  1271. Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230);
  1272.  
  1273. if(get_user_team(id) != get_user_team(attacker))
  1274. {
  1275. while(damage>20)
  1276. {
  1277. damage-=20;
  1278. iskustvo_igraca[attacker]++;
  1279. gb_poeni_igraca[attacker] += get_pcvar_num(gb_hs)
  1280. }
  1281. }
  1282. ProveriNivo(attacker);
  1283. return PLUGIN_CONTINUE;
  1284. }
  1285.  
  1286. public Death()
  1287. {
  1288. new id = read_data(2);
  1289. new attacker = read_data(1);
  1290.  
  1291. if(!is_user_alive(attacker) || !is_user_connected(attacker))
  1292. return PLUGIN_CONTINUE;
  1293.  
  1294. new weapon = get_user_weapon(attacker);
  1295. new energija = get_user_health(attacker);
  1296.  
  1297. if(get_user_team(id) != get_user_team(attacker) && klasa_igraca[attacker])
  1298. {
  1299. new iskustvo_za_ubistvo = get_pcvar_num(cvar_xp_za_ubistvo);
  1300. new novo_iskustvo = get_pcvar_num(cvar_xp_za_ubistvo);
  1301.  
  1302. if(klasa_igraca[id] == Rambo && klasa_igraca[attacker] != Rambo)
  1303. novo_iskustvo += iskustvo_za_ubistvo*2;
  1304.  
  1305. if(level_igraca[id] > level_igraca[attacker])
  1306. novo_iskustvo += (level_igraca[id]-level_igraca[attacker])*(iskustvo_za_ubistvo/10);
  1307.  
  1308. if(klasa_igraca[attacker] == Rambo || informacije_predmet_igraca[attacker][0] == 15 && maxClip[weapon] != -1)
  1309. {
  1310.  
  1311. new nova_energija = (energija+20<maximalna_energija_igraca[attacker])? energija+20: maximalna_energija_igraca[attacker];
  1312. set_user_clip(attacker, maxClip[weapon]);
  1313. set_user_health(attacker, nova_energija);
  1314. }
  1315. #if defined BOTY
  1316. if(is_user_bot2(attacker) && random(9) == 0)
  1317. IzbaciPredmet(id);
  1318. #endif
  1319. if(!informacije_predmet_igraca[attacker][0])
  1320. DajPredmet(attacker, random_num(1, sizeof naziv_predmeta-1));
  1321.  
  1322. if(informacije_predmet_igraca[attacker][0] == 14)
  1323. {
  1324. new nova_energija = (energija+50<maximalna_energija_igraca[attacker])? energija+50: maximalna_energija_igraca[attacker];
  1325. set_user_health(attacker, nova_energija);
  1326. }
  1327. iskustvo_igraca[attacker] += novo_iskustvo;
  1328. }
  1329.  
  1330. ProveriNivo(attacker);
  1331.  
  1332. if(informacije_predmet_igraca[id][0] == 7 && random_num(1, informacije_predmet_igraca[id][1]) == 1)
  1333. set_task(0.1, "Provera", id+ZADATAK_PROVERA);
  1334.  
  1335. return PLUGIN_CONTINUE;
  1336. }
  1337.  
  1338. public client_putinserver(id)
  1339. {
  1340. DeleteSkills(id);
  1341.  
  1342. ObrisiZadatke(id);
  1343. Obrisipredmet(id);
  1344.  
  1345. set_task(3.0, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
  1346. }
  1347.  
  1348. public client_disconnect(id)
  1349. {
  1350. SacuvajPodatke(id);
  1351. DeleteSkills(id);
  1352. ObrisiZadatke(id);
  1353. Obrisipredmet(id);
  1354. }
  1355. public DeleteSkills(id)
  1356. {
  1357. klasa_igraca[id] = 0;
  1358. level_igraca[id] = 0;
  1359. iskustvo_igraca[id] = 0;
  1360. poeni_igraca[id] = 0;
  1361. energija_igraca[id] = 0;
  1362. inteligencija_igraca[id] = 0;
  1363. snaga_igraca[id] = 0;
  1364. kondicija_igraca[id] = 0;
  1365. maximalna_energija_igraca[id] = 0;
  1366. brzina_igraca[id] = 0.0;
  1367. }
  1368.  
  1369. public ObrisiZadatke(id)
  1370. {
  1371. remove_task(id+ZADATAK_POKAZI_INFORMACIJE);
  1372. remove_task(id+ZADATAK_POKAZI_REKLAME);
  1373. remove_task(id+ZADATAK_POSTAVI_brzinu);
  1374. remove_task(id+ZADATAK_PROVERA);
  1375. }
  1376.  
  1377. public OpisKlase(id)
  1378. {
  1379. new menu = menu_create("Izaberi Klasu:", "OpisKlase_Handle");
  1380. for(new i=1; i <sizeof naziv_klase; i++)
  1381. menu_additem(menu, naziv_klase[i]);
  1382. menu_setprop(menu, MPROP_EXITNAME, "Izlaz");
  1383. menu_setprop(menu, MPROP_BACKNAME, "Prethodna strana");
  1384. menu_setprop(menu, MPROP_NEXTNAME, "Sledeca strana");
  1385. menu_display(id, menu);
  1386.  
  1387. client_cmd(id, "spk QTM_CodMod/select");
  1388. }
  1389.  
  1390. public OpisKlase_Handle(id, menu, item)
  1391. {
  1392. client_cmd(id, "spk QTM_CodMod/select");
  1393.  
  1394. if(item++ == MENU_EXIT)
  1395. {
  1396. menu_destroy(menu);
  1397. return PLUGIN_CONTINUE;
  1398. }
  1399. new opis[512];
  1400. format(opis, charsmax(opis), "\wKlasa: \y%s^n%s", naziv_klase[item], opis_klase[item]);
  1401. show_menu(id, 1023, opis);
  1402.  
  1403. return PLUGIN_CONTINUE;
  1404. }
  1405. public IzaberiKlasu(id)
  1406. {
  1407. new menu = menu_create("\rIzaberi Klase:", "IzaberiFrakciju_Handle");
  1408. for(new i = 1;i<sizeof(frakcije);i++)
  1409. {
  1410. menu_additem(menu, frakcije[i]);
  1411. }
  1412. menu_display(id, menu);
  1413. menu_setprop(menu, MPROP_EXITNAME, "Izadji");
  1414. }
  1415.  
  1416. public IzaberiFrakciju_Handle(id, menu2, item)
  1417. {
  1418. if(item == MENU_EXIT)
  1419. {
  1420. menu_destroy(menu2);
  1421. return PLUGIN_CONTINUE;
  1422. }
  1423.  
  1424. item++;
  1425. frakcija_igraca[id] = item;
  1426. new menu = menu_create("\rIzaberi Klase:", "IzaberiKlasu_Handle");
  1427. new klasa[50];
  1428. for(new i=1; i<sizeof naziv_klase; i++)
  1429. {
  1430. if(pripada[i] == item)
  1431. {
  1432. UcitajPodatke(id, i);
  1433. format(klasa, 49, "\w%s \yLevel: %i", naziv_klase[i], level_igraca[id]);
  1434. menu_additem(menu, klasa);
  1435. }
  1436. }
  1437.  
  1438. UcitajPodatke(id, klasa_igraca[id]);
  1439.  
  1440. menu_setprop(menu, MPROP_EXITNAME, "Izadji");
  1441. menu_setprop(menu, MPROP_BACKNAME, "Predhodna Strana");
  1442. menu_setprop(menu, MPROP_NEXTNAME, "Sledeca Strana");
  1443. menu_display(id, menu);
  1444.  
  1445. client_cmd(id, "spk QTM_CodMod/select");
  1446.  
  1447. return PLUGIN_CONTINUE;
  1448. }
  1449. public IzaberiKlasu_Handle(id, menu, item)
  1450. {
  1451.  
  1452. client_cmd(id, "spk QTM_CodMod/select");
  1453.  
  1454. if(item == MENU_EXIT)
  1455. {
  1456. menu_destroy(menu);
  1457. return PLUGIN_CONTINUE;
  1458. }
  1459.  
  1460. item++;
  1461.  
  1462. new ile = 0;
  1463. for(new i=1; i<sizeof naziv_klase; i++)
  1464. {
  1465. if(pripada[i] == frakcija_igraca[id])
  1466. {
  1467. ile++;
  1468. }
  1469. if(ile == item)
  1470. {
  1471. item = i;
  1472. break;
  1473. }
  1474. }
  1475.  
  1476. if(item == klasa_igraca[id])
  1477. return PLUGIN_CONTINUE;
  1478.  
  1479. if(item == Rambo && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1480. {
  1481. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dozvolu za Premium Klasu.");
  1482. IzaberiKlasu(id);
  1483. return PLUGIN_CONTINUE;
  1484. }
  1485. if(item == Assassin && !(get_user_flags(id) & ADMIN_LEVEL_B))
  1486. {
  1487. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dozvolu za Premium Klasu.");
  1488. IzaberiKlasu(id);
  1489. return PLUGIN_CONTINUE;
  1490. }
  1491. if(item == Gunner && !(get_user_flags(id) & ADMIN_LEVEL_C))
  1492. {
  1493. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dozvolu za Premium Klasu.");
  1494. IzaberiKlasu(id);
  1495. return PLUGIN_CONTINUE;
  1496. }
  1497. if(item == Stealth && !(get_user_flags(id) & ADMIN_LEVEL_D))
  1498. {
  1499. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dozvolu za Premium Klasu.");
  1500. IzaberiKlasu(id);
  1501. return PLUGIN_CONTINUE;
  1502. }
  1503. if(item == Eliminator && !(get_user_flags(id) & ADMIN_LEVEL_E))
  1504. {
  1505. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dozvolu za Premium Klasu.");
  1506. IzaberiKlasu(id);
  1507. return PLUGIN_CONTINUE;
  1508. }
  1509. if(item == Ninja && !(get_user_flags(id) & ADMIN_LEVEL_F))
  1510. {
  1511. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dozvolu za Premium Klasu.");
  1512. IzaberiKlasu(id);
  1513. return PLUGIN_CONTINUE;
  1514. }
  1515.  
  1516.  
  1517. if(klasa_igraca[id])
  1518. {
  1519. nova_klasa_igraca[id] = item;
  1520. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Klasa ce biti izmenjena u sledecoj rundi.");
  1521. }
  1522. else
  1523. {
  1524. klasa_igraca[id] = item;
  1525. UcitajPodatke(id, klasa_igraca[id]);
  1526. Pocetak(id);
  1527. }
  1528. return PLUGIN_CONTINUE;
  1529. }
  1530.  
  1531. public DodelaPoena(id)
  1532. {
  1533. new inteligencija[65], inteligencija10[65];
  1534. new energija[60], energija10[60];
  1535. new snaga[60], snaga10[60];
  1536. new kondicija[60], kondicija10[60];
  1537. new naslov[25];
  1538. format(inteligencija, 64, "Inteligencija: \r%i \y(Povecava napad)", inteligencija_igraca[id]);
  1539. format(energija, 59, "Energija: \r%i \y(Povecaca energiju)", energija_igraca[id]);
  1540. format(snaga, 59, "Snaga: \r%i \y(Smanjuje povrede)", snaga_igraca[id]);
  1541. format(kondicija, 59, "Kondicija: \r%i \y(Povecava tempo hodanja)", kondicija_igraca[id]);
  1542. format(inteligencija10, 64, "Dodaj 10 poena na inteligenciju");
  1543. format(energija10, 59, "Dodaj 10 poena na energiju");
  1544. format(snaga10, 59, "Dodaj 10 poena na snagu");
  1545. format(kondicija10, 59, "Dodaj 10 poena na kondiciju");
  1546. format(naslov, 24, "Dodeli poena(%i):", poeni_igraca[id]);
  1547. new menu = menu_create(naslov, "DodelaPoena_Handler");
  1548. menu_additem(menu, inteligencija);
  1549. menu_additem(menu, energija);
  1550. menu_additem(menu, snaga);
  1551. menu_additem(menu, kondicija);
  1552. menu_additem(menu, inteligencija10);
  1553. menu_additem(menu, energija10);
  1554. menu_additem(menu, snaga10);
  1555. menu_additem(menu, kondicija10);
  1556. menu_display(id, menu);
  1557. #if defined BOTY
  1558. if(is_user_bot2(id))
  1559. DodelaPoena_Handler(id, menu, random(4));
  1560. #endif
  1561. }
  1562.  
  1563. public DodelaPoena_Handler(id, menu, item)
  1564. {
  1565. client_cmd(id, "spk QTM_CodMod/select");
  1566.  
  1567. if(item == MENU_EXIT)
  1568. {
  1569. menu_destroy(menu);
  1570. return PLUGIN_CONTINUE;
  1571. }
  1572.  
  1573.  
  1574. if(poeni_igraca[id] < 1)
  1575. return PLUGIN_CONTINUE;
  1576.  
  1577. switch(item)
  1578. {
  1579. case 0:
  1580. {
  1581. if(inteligencija_igraca[id]<4001)
  1582. {
  1583. inteligencija_igraca[id]++;
  1584. poeni_igraca[id]--;
  1585. }
  1586. else
  1587. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo inteligencije");
  1588.  
  1589. }
  1590. case 1:
  1591. {
  1592. if(energija_igraca[id]<4001)
  1593. {
  1594. energija_igraca[id]++;
  1595. poeni_igraca[id]--;
  1596. }
  1597. else
  1598. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo energije");
  1599. }
  1600. case 2:
  1601. {
  1602. if(snaga_igraca[id]<4001)
  1603. {
  1604. snaga_igraca[id]++;
  1605. poeni_igraca[id]--;
  1606. }
  1607. else
  1608. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo snage");
  1609.  
  1610. }
  1611. case 3:
  1612. {
  1613. if(kondicija_igraca[id]<4001)
  1614. {
  1615. kondicija_igraca[id]++;
  1616. poeni_igraca[id]--;
  1617. }
  1618. else
  1619. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo kondicije");
  1620. }
  1621. case 4:
  1622. {
  1623. if(poeni_igraca[id] < 10)
  1624. {
  1625. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dovoljno poena");
  1626. }
  1627. else if(inteligencija_igraca[id]<4001)
  1628. {
  1629. inteligencija_igraca[id]+=10;
  1630. poeni_igraca[id]-=10
  1631. }
  1632. else
  1633. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo inteligencije");
  1634. }
  1635. case 5:
  1636. {
  1637. if(poeni_igraca[id] < 10)
  1638. {
  1639. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dovoljno poena");
  1640. }
  1641. else if(energija_igraca[id]<4001)
  1642. {
  1643. energija_igraca[id]+=10;
  1644. poeni_igraca[id]-=10;
  1645. }
  1646. else
  1647. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo energije");
  1648. }
  1649. case 6:
  1650. {
  1651. if(poeni_igraca[id] < 10)
  1652. {
  1653. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dovoljno poena");
  1654. }
  1655. else if(snaga_igraca[id]<4001)
  1656. {
  1657. snaga_igraca[id]+=10;
  1658. poeni_igraca[id]-=10;
  1659. }
  1660. else
  1661. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo snage");
  1662. }
  1663. case 7:
  1664. {
  1665. if(poeni_igraca[id] < 10)
  1666. {
  1667. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate dovoljno poena");
  1668. }
  1669. else if(kondicija_igraca[id]<4001)
  1670. {
  1671. kondicija_igraca[id]+=10;
  1672. poeni_igraca[id]-=10;
  1673. }
  1674. else
  1675. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Dostigli ste maximalni nivo kondicije");
  1676. }
  1677.  
  1678. }
  1679.  
  1680. if(poeni_igraca[id]>0)
  1681. DodelaPoena(id);
  1682.  
  1683. return PLUGIN_CONTINUE;
  1684. }
  1685.  
  1686. public KomandaResetujPoene(id)
  1687. {
  1688. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Poeni su resetovani");
  1689. client_cmd(id, "spk QTM_CodMod/select");
  1690.  
  1691. ResetujPoene(id)
  1692. }
  1693.  
  1694. public ResetujPoene(id)
  1695. {
  1696. poeni_igraca[id] = level_igraca[id]*2-2;
  1697. inteligencija_igraca[id] = 0;
  1698. energija_igraca[id] = 0;
  1699. kondicija_igraca[id] = 0;
  1700. snaga_igraca[id] = 0;
  1701.  
  1702. if(poeni_igraca[id])
  1703. DodelaPoena(id);
  1704. }
  1705.  
  1706. public KreirajMedKit(id)
  1707. {
  1708. if (!broj_medkit_igraca[id])
  1709. {
  1710. client_print(id, print_center, "Imate samo 2 paketa za prvu pomoc u jednoj rundi!");
  1711. return PLUGIN_CONTINUE;
  1712. }
  1713.  
  1714. if(inteligencija_igraca[id] < 1)
  1715. client_print(id, print_center, "Da koristite paket za prvu pomoc, morate povecati inteligenciju");
  1716.  
  1717. broj_medkit_igraca[id]--;
  1718.  
  1719. new Float:origin[3];
  1720. entity_get_vector(id, EV_VEC_origin, origin);
  1721.  
  1722. new ent = create_entity("info_target");
  1723. entity_set_string(ent, EV_SZ_classname, "MedKit");
  1724. entity_set_edict(ent, EV_ENT_owner, id);
  1725. entity_set_int(ent, EV_INT_solid, SOLID_NOT);
  1726. entity_set_vector(ent, EV_VEC_origin, origin);
  1727. entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
  1728.  
  1729.  
  1730. entity_set_model(ent, "models/w_medkit.mdl");
  1731. set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) ;
  1732. drop_to_floor(ent);
  1733.  
  1734. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
  1735.  
  1736. return PLUGIN_CONTINUE;
  1737. }
  1738.  
  1739. public MedKitThink(ent)
  1740. {
  1741. new id = entity_get_edict(ent, EV_ENT_owner);
  1742. new totem_dist = 300;
  1743. new totem_heal = 5+floatround(inteligencija_igraca[id]*0.5);
  1744. if (entity_get_edict(ent, EV_ENT_euser2) == 1)
  1745. {
  1746. new Float:forigin[3], origin[3];
  1747. entity_get_vector(ent, EV_VEC_origin, forigin);
  1748. FVecIVec(forigin,origin);
  1749.  
  1750. new entlist[33];
  1751. new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist, 32,forigin);
  1752.  
  1753. for (new i=0; i < numfound; i++)
  1754. {
  1755. new pid = entlist[i];
  1756.  
  1757. if (get_user_team(pid) != get_user_team(id))
  1758. continue;
  1759.  
  1760. new energija = get_user_health(pid);
  1761. new nova_energija = (energija+totem_heal<maximalna_energija_igraca[pid])?energija+totem_heal:maximalna_energija_igraca[pid];
  1762. if (is_user_alive(pid)) set_user_health(pid, nova_energija);
  1763. }
  1764.  
  1765. entity_set_edict(ent, EV_ENT_euser2, 0);
  1766. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5);
  1767.  
  1768. return PLUGIN_CONTINUE;
  1769. }
  1770.  
  1771. if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
  1772. {
  1773. remove_entity(ent);
  1774. return PLUGIN_CONTINUE;
  1775. }
  1776.  
  1777. if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
  1778. set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) ;
  1779.  
  1780. new Float:forigin[3], origin[3];
  1781. entity_get_vector(ent, EV_VEC_origin, forigin);
  1782. FVecIVec(forigin,origin);
  1783.  
  1784. //Find people near and give them health
  1785. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
  1786. write_byte( TE_BEAMCYLINDER );
  1787. write_coord( origin[0] );
  1788. write_coord( origin[1] );
  1789. write_coord( origin[2] );
  1790. write_coord( origin[0] );
  1791. write_coord( origin[1] + totem_dist );
  1792. write_coord( origin[2] + totem_dist );
  1793. write_short( sprite_white );
  1794. write_byte( 0 ); // startframe
  1795. write_byte( 0 ); // framerate
  1796. write_byte( 10 ); // life
  1797. write_byte( 10 ); // width
  1798. write_byte( 255 ); // noise
  1799. write_byte( 255 ); // r, g, b
  1800. write_byte( 100 );// r, g, b
  1801. write_byte( 100 ); // r, g, b
  1802. write_byte( 128 ); // brightness
  1803. write_byte( 5 ); // speed
  1804. message_end();
  1805.  
  1806. entity_set_edict(ent, EV_ENT_euser2 ,1);
  1807. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5);
  1808.  
  1809.  
  1810. return PLUGIN_CONTINUE;
  1811. }
  1812.  
  1813. public KreirajRakete(id)
  1814. {
  1815. if (!broj_raketa_igraca[id])
  1816. {
  1817. client_print(id, print_center, "Vec ste iskoristili sve rakete!");
  1818. return PLUGIN_CONTINUE;
  1819. }
  1820.  
  1821. if(prethodna_raketa_igraca[id] + 2.0 > get_gametime())
  1822. {
  1823. client_print(id, print_center, "Mozate da koristite raketu za 2 sekunde!");
  1824. return PLUGIN_CONTINUE;
  1825. }
  1826.  
  1827. if (is_user_alive(id))
  1828. {
  1829. if(inteligencija_igraca[id] < 1)
  1830. client_print(id, print_center, "Da koristite rakete, morate povecati inteligenciju!");
  1831.  
  1832. prethodna_raketa_igraca[id] = get_gametime();
  1833. broj_raketa_igraca[id]--;
  1834.  
  1835. new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
  1836.  
  1837. entity_get_vector(id, EV_VEC_v_angle, vAngle);
  1838. entity_get_vector(id, EV_VEC_origin , Origin);
  1839.  
  1840. new Ent = create_entity("info_target");
  1841.  
  1842. entity_set_string(Ent, EV_SZ_classname, "Rocket");
  1843. entity_set_model(Ent, "models/rpgrocket.mdl");
  1844.  
  1845. vAngle[0] *= -1.0;
  1846.  
  1847. entity_set_origin(Ent, Origin);
  1848. entity_set_vector(Ent, EV_VEC_angles, vAngle);
  1849.  
  1850. entity_set_int(Ent, EV_INT_effects, 2);
  1851. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  1852. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
  1853. entity_set_edict(Ent, EV_ENT_owner, id);
  1854.  
  1855. VelocityByAim(id, 1000 , Velocity);
  1856. entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
  1857.  
  1858. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1859. write_byte(22)
  1860. write_short(Ent)
  1861. write_short(sprite_beam)
  1862. write_byte(45)
  1863. write_byte(4)
  1864. write_byte(255)
  1865. write_byte(105)
  1866. write_byte(180)
  1867. write_byte(25)
  1868. message_end()
  1869. }
  1870. return PLUGIN_CONTINUE;
  1871. }
  1872.  
  1873. public KreirajDinamit(id)
  1874. {
  1875. if(!broj_dinamita_igraca[id])
  1876. {
  1877. client_print(id, print_center, "Vec ste iskoristili sav dinamit!");
  1878. return PLUGIN_CONTINUE;
  1879. }
  1880.  
  1881. if(inteligencija_igraca[id] < 1)
  1882. client_print(id, print_center, "Da koristite dinamit, morate povecati inteligenciju!");
  1883.  
  1884. broj_dinamita_igraca[id]--;
  1885.  
  1886. new Float:fOrigin[3];
  1887. entity_get_vector(id, EV_VEC_origin, fOrigin);
  1888.  
  1889. new iOrigin[3];
  1890. for(new i=0;i<3;i++)
  1891. iOrigin[i] = floatround(fOrigin[i]);
  1892.  
  1893. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1894. write_byte(TE_EXPLOSION);
  1895. write_coord(iOrigin[0]);
  1896. write_coord(iOrigin[1]);
  1897. write_coord(iOrigin[2]);
  1898. write_short(sprite_blast);
  1899. write_byte(32);
  1900. write_byte(20);
  1901. write_byte(0);
  1902. message_end();
  1903.  
  1904. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
  1905. write_byte( TE_BEAMCYLINDER );
  1906. write_coord( iOrigin[0] );
  1907. write_coord( iOrigin[1] );
  1908. write_coord( iOrigin[2] );
  1909. write_coord( iOrigin[0] );
  1910. write_coord( iOrigin[1] + 300 );
  1911. write_coord( iOrigin[2] + 300 );
  1912. write_short( sprite_white );
  1913. write_byte( 0 ); // startframe
  1914. write_byte( 0 ); // framerate
  1915. write_byte( 10 ); // life
  1916. write_byte( 10 ); // width
  1917. write_byte( 255 ); // noise
  1918. write_byte( 255 ); // r, g, b
  1919. write_byte( 100 );// r, g, b
  1920. write_byte( 100 ); // r, g, b
  1921. write_byte( 128 ); // brightness
  1922. write_byte( 8 ); // speed
  1923. message_end();
  1924.  
  1925. new entlist[33];
  1926. new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
  1927.  
  1928. for (new i=0; i < numfound; i++)
  1929. {
  1930. new pid = entlist[i];
  1931.  
  1932. if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24)
  1933. continue;
  1934. ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencija_igraca[id]) , 1);
  1935. }
  1936. return PLUGIN_CONTINUE;
  1937. }
  1938.  
  1939. public PostaviMine(id)
  1940. {
  1941. if (!broj_min_igraca[id])
  1942. {
  1943. client_print(id, print_center, "Vec ste iskoristili sve mine!");
  1944. return PLUGIN_CONTINUE;
  1945. }
  1946.  
  1947. if(inteligencija_igraca[id] < 1)
  1948. client_print(id, print_center, "Da koristite mine, morate povecati inteligenciju!");
  1949.  
  1950. broj_min_igraca[id]--;
  1951.  
  1952. new Float:origin[3];
  1953. entity_get_vector(id, EV_VEC_origin, origin);
  1954.  
  1955. new ent = create_entity("info_target");
  1956. entity_set_string(ent ,EV_SZ_classname, "Mine");
  1957. entity_set_edict(ent ,EV_ENT_owner, id);
  1958. entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
  1959. entity_set_origin(ent, origin);
  1960. entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
  1961.  
  1962. entity_set_model(ent, "models/mine.mdl");
  1963. entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
  1964.  
  1965. drop_to_floor(ent);
  1966.  
  1967. entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
  1968.  
  1969. set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
  1970.  
  1971.  
  1972. return PLUGIN_CONTINUE;
  1973. }
  1974.  
  1975. public DodirMine(ent, id)
  1976. {
  1977. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1978. if (get_user_team(attacker) != get_user_team(id))
  1979. {
  1980. new Float:fOrigin[3];
  1981. entity_get_vector( ent, EV_VEC_origin, fOrigin);
  1982.  
  1983. new iOrigin[3];
  1984. for(new i=0;i<3;i++)
  1985. iOrigin[i] = floatround(fOrigin[i]);
  1986.  
  1987. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1988. write_byte(TE_EXPLOSION);
  1989. write_coord(iOrigin[0]);
  1990. write_coord(iOrigin[1]);
  1991. write_coord(iOrigin[2]);
  1992. write_short(sprite_blast);
  1993. write_byte(32); // scale
  1994. write_byte(20); // framerate
  1995. write_byte(0);// flags
  1996. message_end();
  1997. new entlist[33];
  1998. new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
  1999.  
  2000. for (new i=0; i < numfound; i++)
  2001. {
  2002. new pid = entlist[i];
  2003.  
  2004. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24 || klasa_igraca[id] == Mitraljezac)
  2005. continue;
  2006.  
  2007. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencija_igraca[attacker]) , 1);
  2008. }
  2009. remove_entity(ent);
  2010. }
  2011. }
  2012.  
  2013. public DodirRakete(ent)
  2014. {
  2015. if ( !is_valid_ent(ent))
  2016. return;
  2017.  
  2018. new attacker = entity_get_edict(ent, EV_ENT_owner);
  2019.  
  2020. new Float:fOrigin[3];
  2021. entity_get_vector(ent, EV_VEC_origin, fOrigin);
  2022.  
  2023. new iOrigin[3];
  2024. for(new i=0;i<3;i++)
  2025. iOrigin[i] = floatround(fOrigin[i]);
  2026.  
  2027. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  2028. write_byte(TE_EXPLOSION);
  2029. write_coord(iOrigin[0]);
  2030. write_coord(iOrigin[1]);
  2031. write_coord(iOrigin[2]);
  2032. write_short(sprite_blast);
  2033. write_byte(32); // scale
  2034. write_byte(20); // framerate
  2035. write_byte(0);// flags
  2036. message_end();
  2037.  
  2038. new entlist[33];
  2039. new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
  2040.  
  2041. for (new i=0; i < numfound; i++)
  2042. {
  2043. new pid = entlist[i];
  2044.  
  2045. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24)
  2046. continue;
  2047. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0+float(inteligencija_igraca[attacker]) , 1);
  2048. }
  2049. remove_entity(ent);
  2050. }
  2051.  
  2052. public CurWeapon(id)
  2053. {
  2054. if(freezetime || !klasa_igraca[id])
  2055. return PLUGIN_CONTINUE;
  2056.  
  2057. new weapon = get_user_weapon(id);
  2058.  
  2059. if(klasa_igraca[id] == Assassin && weapon == CSW_KNIFE)
  2060. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 10);
  2061. else if(klasa_igraca[id] == Assassin && weapon != CSW_KNIFE)
  2062. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
  2063.  
  2064. new weapons[32];
  2065. new weaponsnum;
  2066. get_user_weapons(id, weapons, weaponsnum);
  2067. for(new i=0; i<weaponsnum; i++)
  2068. if(is_user_alive(id))
  2069. if(maxAmmo[weapons[i]] > 0)
  2070. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  2071.  
  2072. PostaviBrzinu(id);
  2073. return PLUGIN_CONTINUE;
  2074. }
  2075.  
  2076. public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
  2077. {
  2078. if(!is_user_alive(id))
  2079. return FMRES_IGNORED;
  2080.  
  2081. if(equal(szSound, "common/wpn_denyselect.wav"))
  2082. {
  2083. KoristiPredmet(id);
  2084. return FMRES_SUPERCEDE;
  2085. }
  2086.  
  2087. return FMRES_IGNORED;
  2088. }
  2089.  
  2090. public KoristiPredmet(id)
  2091. {
  2092. if(informacije_predmet_igraca[id][0] == 19 && informacije_predmet_igraca[id][1]>0)
  2093. {
  2094. set_user_health(id, maximalna_energija_igraca[id]);
  2095. informacije_predmet_igraca[id][1]--;
  2096. }
  2097.  
  2098. if(broj_medkit_igraca[id]>0)
  2099. KreirajMedKit(id);
  2100. if(broj_raketa_igraca[id]>0)
  2101. KreirajRakete(id);
  2102. if(broj_min_igraca[id]>0)
  2103. PostaviMine(id);
  2104. if(broj_dinamita_igraca[id]>0)
  2105. KreirajDinamit(id);
  2106.  
  2107. return PLUGIN_HANDLED;
  2108. }
  2109.  
  2110. public SacuvajPodatke(id)
  2111. {
  2112. if(!klasa_igraca[id])
  2113. return PLUGIN_CONTINUE;
  2114.  
  2115. new vaultkey[128],vaultdata[256], ID_igraca[64];
  2116. format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", iskustvo_igraca[id], level_igraca[id], inteligencija_igraca[id], energija_igraca[id], snaga_igraca[id], kondicija_igraca[id]);
  2117.  
  2118. get_user_authid(id, ID_igraca, charsmax(ID_igraca))
  2119.  
  2120. format(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa_igraca[id]);
  2121. nvault_set(g_vault,vaultkey,vaultdata);
  2122.  
  2123. return PLUGIN_CONTINUE;
  2124. }
  2125.  
  2126. public UcitajPodatke(id, klasa)
  2127. {
  2128. new vaultkey[128],vaultdata[256], ID_igraca[64];
  2129.  
  2130. get_user_authid(id, ID_igraca, charsmax(ID_igraca))
  2131.  
  2132. format(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa);
  2133. nvault_get(g_vault,vaultkey,vaultdata,255);
  2134.  
  2135. replace_all(vaultdata, 255, "#", " ");
  2136.  
  2137. new playerdata[6][32];
  2138.  
  2139. parse(vaultdata, playerdata[0], 31, playerdata[1], 31, playerdata[2], 31, playerdata[3], 31, playerdata[4], 31, playerdata[5], 31);
  2140.  
  2141. iskustvo_igraca[id] = str_to_num(playerdata[0]);
  2142. level_igraca[id] = str_to_num(playerdata[1])>0?str_to_num(playerdata[1]):1;
  2143. inteligencija_igraca[id] = str_to_num(playerdata[2]);
  2144. energija_igraca[id] = str_to_num(playerdata[3]);
  2145. snaga_igraca[id] = str_to_num(playerdata[4]);
  2146. kondicija_igraca[id] = str_to_num(playerdata[5]);
  2147. poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
  2148.  
  2149. return PLUGIN_CONTINUE;
  2150. }
  2151.  
  2152. public IzbaciPredmet(id)
  2153. {
  2154. if(informacije_predmet_igraca[id][0])
  2155. {
  2156. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Bacio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  2157. Obrisipredmet(id);
  2158. }
  2159. else
  2160. ColorChat(id, NORMAL, "^4[COD:MW2] ^1Nemate nijedan predmet.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  2161. }
  2162.  
  2163. public Obrisipredmet(id)
  2164. {
  2165. informacije_predmet_igraca[id][0] = 0;
  2166. informacije_predmet_igraca[id][1] = 0;
  2167. if(is_user_alive(id))
  2168. {
  2169. set_user_footsteps(id, 0);
  2170. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
  2171. PromeniModel(id, 1);
  2172. }
  2173. }
  2174.  
  2175. public DajPredmet(id, predmet)
  2176. {
  2177. Obrisipredmet(id);
  2178. informacije_predmet_igraca[id][0] = predmet;
  2179. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dobio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  2180.  
  2181. switch(predmet)
  2182. {
  2183. case 1:
  2184. {
  2185. set_user_footsteps(id, 1);
  2186. }
  2187. case 2:
  2188. {
  2189. informacije_predmet_igraca[id][1] = random_num(3,6);
  2190. }
  2191. case 3:
  2192. {
  2193. informacije_predmet_igraca[id][1] = random_num(6, 11);
  2194. }
  2195. case 5:
  2196. {
  2197. informacije_predmet_igraca[id][1] = random_num(6, 9);
  2198. }
  2199. case 6:
  2200. {
  2201. if(klasa_igraca[id] == Partizan || klasa_igraca[id] == Assassin )
  2202. {
  2203. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  2204. }
  2205. else
  2206. {
  2207. informacije_predmet_igraca[id][1] = random_num(100, 150);
  2208. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, informacije_predmet_igraca[id][1]);
  2209. }
  2210. }
  2211. case 7:
  2212. {
  2213. informacije_predmet_igraca[id][1] = random_num(2, 4);
  2214. }
  2215. case 8:
  2216. {
  2217. if(klasa_igraca[id] == Marinac || klasa_igraca[id] == Assassin)
  2218. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  2219. }
  2220. case 9:
  2221. {
  2222. informacije_predmet_igraca[id][1] = random_num(1, 3);
  2223. PromeniModel(id, 0);
  2224. give_item(id, "weapon_hegrenade");
  2225. }
  2226. case 10:
  2227. {
  2228. informacije_predmet_igraca[id][1] = random_num(4, 8);
  2229. give_item(id, "weapon_hegrenade");
  2230. }
  2231. case 12:
  2232. {
  2233. informacije_predmet_igraca[id][1] = random_num(1, 4);
  2234. }
  2235. case 13:
  2236. {
  2237. give_item(id, "weapon_awp");
  2238. }
  2239. case 15:
  2240. {
  2241. if(klasa_igraca[id] == Rambo)
  2242. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  2243. }
  2244. case 19:
  2245. {
  2246. informacije_predmet_igraca[id][1] = 1;
  2247. }
  2248. case 26:
  2249. {
  2250. informacije_predmet_igraca[id][1] = random_num(3, 6);
  2251. }
  2252. case 27:
  2253. {
  2254. informacije_predmet_igraca[id][1] = 3;
  2255. }
  2256. }
  2257. }
  2258.  
  2259. public OpisPredmeta(id, menu, item)
  2260. {
  2261. new opis_predmeta[128];
  2262. new slucajne_vrednosti[3];
  2263. num_to_str(informacije_predmet_igraca[id][1], slucajne_vrednosti, 2);
  2264. format(opis_predmeta, 127, opis_predmet[informacije_predmet_igraca[id][0]]);
  2265. replace_all(opis_predmeta, 127, "LW", slucajne_vrednosti);
  2266.  
  2267. if(item++ == MENU_EXIT)
  2268. {
  2269. menu_destroy(menu);
  2270. return PLUGIN_CONTINUE;
  2271. }
  2272. new opis2[552]
  2273. format(opis2, charsmax(opis2), "\rPredmet: \y%s^n\rOpis: \d%s.", naziv_predmeta[informacije_predmet_igraca[id][0]], opis_predmeta);
  2274. show_menu(id, 1023, opis2)
  2275. return PLUGIN_CONTINUE;
  2276. }
  2277.  
  2278. public Provera(id)
  2279. {
  2280. id-=ZADATAK_PROVERA;
  2281. ExecuteHamB(Ham_CS_RoundRespawn, id);
  2282. }
  2283. public ProveriNivo(id)
  2284. {
  2285. if(level_igraca[id] < 1200)
  2286. {
  2287. while(iskustvo_igraca[id] >= iskustvo_levelu[level_igraca[id]])
  2288. {
  2289. level_igraca[id]++;
  2290. set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
  2291. ShowSyncHudMsg(id, SyncHudObj3, "Dobrodosao na %i level!", level_igraca[id]);
  2292. client_cmd(id, "spk QTM_CodMod/levelup");
  2293. }
  2294. poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
  2295. }
  2296. SacuvajPodatke(id);
  2297. }
  2298.  
  2299. public PokaziInformacije(id)
  2300. {
  2301. id -= ZADATAK_POKAZI_INFORMACIJE;
  2302.  
  2303. set_task(0.1, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
  2304.  
  2305. if(is_user_connected(id) && !is_user_alive(id))
  2306. {
  2307. new target = entity_get_int(id, EV_INT_iuser2);
  2308.  
  2309. if(!target)
  2310. return PLUGIN_CONTINUE;
  2311.  
  2312. set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
  2313. ShowSyncHudMsg(id, SyncHudObj, "-== COD:MW2 ==-^nKlasa : %s^nXP : %i / %i^nLevel : %i^nPredmet : %s^nHP %d^nGB : %i^n-== Private MOD ==-", naziv_klase[klasa_igraca[target]], iskustvo_igraca[target], iskustvo_levelu[level_igraca[target]], level_igraca[target], naziv_predmeta[informacije_predmet_igraca[target][0]], get_user_health(target), gb_poeni_igraca[target]);
  2314.  
  2315. return PLUGIN_CONTINUE;
  2316. }
  2317. set_hudmessage(255, 255, 0, 0.01, 0.21, 0, 6.0, 00.0)
  2318. ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Iskustvo : %i / %i]^n[Level : %i]^n[Predmet : %s]^n[Energija: %d]^n[GB: %i]", naziv_klase[klasa_igraca[id]], iskustvo_igraca[id], iskustvo_levelu[level_igraca[id]], level_igraca[id], naziv_predmeta[informacije_predmet_igraca[id][0]], get_user_health(id), gb_poeni_igraca[id]);
  2319. return PLUGIN_CONTINUE;
  2320. }
  2321.  
  2322. public PostaviBrzinu(id)
  2323. {
  2324. id -= id>32? ZADATAK_POSTAVI_brzinu: 0;
  2325.  
  2326. if(klasa_igraca[id])
  2327. set_user_maxspeed(id, brzina_igraca[id]);
  2328. }
  2329.  
  2330. public PromeniModel(id,reset)
  2331. {
  2332. if (id<1 || id>32 || !is_user_connected(id))
  2333. return PLUGIN_CONTINUE;
  2334.  
  2335. if (reset)
  2336. cs_reset_user_model(id);
  2337. else
  2338. {
  2339. new num = random_num(0,3);
  2340. switch(get_user_team(id))
  2341. {
  2342. case 1: cs_set_user_model(id, Ubrania_CT[num]);
  2343. case 2:cs_set_user_model(id, Ubrania_Terro[num]);
  2344. }
  2345. }
  2346. return PLUGIN_CONTINUE;
  2347. }
  2348.  
  2349. public DodirOruzija(weapon,id)
  2350. {
  2351. if(!is_user_connected(id))
  2352. return HAM_IGNORED;
  2353.  
  2354. new model[23];
  2355. pev(weapon, pev_model, model, 22);
  2356. if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
  2357. return HAM_IGNORED;
  2358. return HAM_SUPERCEDE;
  2359. }
  2360.  
  2361. stock bool:UTIL_In_FOV(id,target)
  2362. {
  2363. if (Find_Angle(id,target,9999.9) > 0.0)
  2364. return true;
  2365.  
  2366. return false;
  2367. }
  2368. #if defined BOTY
  2369. public is_user_bot2(id)
  2370. {
  2371. new ping, loss
  2372. get_user_ping(id, ping, loss)
  2373. if(ping > 0 && loss > 0)
  2374. return false
  2375. return true
  2376. }
  2377. #endif
  2378.  
  2379. stock Float:Find_Angle(Core,Target,Float:dist)
  2380. {
  2381. new Float:vec2LOS[2];
  2382. new Float:flDot;
  2383. new Float:CoreOrigin[3];
  2384. new Float:TargetOrigin[3];
  2385. new Float:CoreAngles[3];
  2386.  
  2387. pev(Core,pev_origin,CoreOrigin);
  2388. pev(Target,pev_origin,TargetOrigin);
  2389.  
  2390. if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
  2391. return 0.0;
  2392.  
  2393. pev(Core,pev_angles, CoreAngles);
  2394.  
  2395. for ( new i = 0; i < 2; i++ )
  2396. vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
  2397.  
  2398. new Float:veclength = Vec2DLength(vec2LOS);
  2399.  
  2400. //Normalize V2LOS
  2401. if (veclength <= 0.0)
  2402. {
  2403. vec2LOS[0] = 0.0;
  2404. vec2LOS[1] = 0.0;
  2405. }
  2406. else
  2407. {
  2408. new Float:flLen = 1.0 / veclength;
  2409. vec2LOS[0] = vec2LOS[0]*flLen;
  2410. vec2LOS[1] = vec2LOS[1]*flLen;
  2411. }
  2412.  
  2413. //Do a makevector to make v_forward right
  2414. engfunc(EngFunc_MakeVectors,CoreAngles);
  2415.  
  2416. new Float:v_forward[3];
  2417. new Float:v_forward2D[2];
  2418. get_global_vector(GL_v_forward, v_forward);
  2419.  
  2420. v_forward2D[0] = v_forward[0];
  2421. v_forward2D[1] = v_forward[1];
  2422.  
  2423. flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
  2424.  
  2425. if ( flDot > 0.5 )
  2426. {
  2427. return flDot;
  2428. }
  2429.  
  2430. return 0.0;
  2431. }
  2432.  
  2433. stock Float:Vec2DLength( Float:Vec[2] )
  2434. {
  2435. return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
  2436. }
  2437.  
  2438. stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
  2439. {
  2440. message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
  2441. write_short( duration ); // Duration of fadeout
  2442. write_short( holdtime ); // Hold time of color
  2443. write_short( fadetype ); // Fade type
  2444. write_byte ( red ); // Red
  2445. write_byte ( green ); // Green
  2446. write_byte ( blue ); // Blue
  2447. write_byte ( alpha ); // Alpha
  2448. message_end();
  2449. }
  2450.  
  2451. stock set_user_clip(id, ammo)
  2452. {
  2453. new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
  2454. get_weaponname(weapon, weaponname, 31);
  2455. while ((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
  2456. if(entity_get_edict(weaponid, EV_ENT_owner) == id)
  2457. {
  2458. set_pdata_int(weaponid, 51, ammo, 4);
  2459. return weaponid;
  2460. }
  2461. return 0;
  2462. }
  2463.  
  2464. public BlokirajKomande()
  2465. return PLUGIN_HANDLED;
  2466.  
  2467. public plugin_end()
  2468. nvault_close( g_vault )
Advertisement
Add Comment
Please, Sign In to add comment