MegastoRM

v1_bez_predmeta_I_Klasa

Apr 15th, 2012
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.78 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fun>
  3. #include <cstrike>
  4. #include <fakemeta>
  5. #include <engine>
  6. #include <hamsandwich>
  7. #include <nvault>
  8. #include <colorchat>
  9.  
  10. #define PLUGIN "Call of Duty: MW Mod"
  11. #define VERSION "0.8.0"
  12. #define AUTHOR "QTM_Peyote"
  13.  
  14. #define STANDARDNA_brzina 250.0
  15.  
  16. #define ZADATAK_POKAZI_INFORMACIJE 672
  17. #define ZADATAK_PROVERA 704
  18. #define ZADATAK_POKAZI_REKLAME 768
  19. #define ZADATAK_POSTAVI_brzinu 832
  20.  
  21. //#define BOTY 1
  22.  
  23. new za_hejtere[] = "MARS U PICKU MATERINU I TI I DISASSEMBLER, BOTINO RASPALA" // hvala desikac
  24.  
  25. new SyncHudObj;
  26. new SyncHudObj3;
  27. new g_msg_screenfade;
  28.  
  29. new cvar_xp_za_ubistvo;
  30.  
  31. new sprite_white;
  32. new sprite_blast;
  33. new sprite_beam;
  34.  
  35. new g_vault;
  36.  
  37. new iskustvo_za_pare;
  38. new iskustvo_za_mnogopara;
  39.  
  40. new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
  41. new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"};
  42.  
  43. 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};
  44.  
  45. new level_igraca[33] = 1;
  46. new iskustvo_igraca[33];
  47.  
  48. new const iskustvo_levelu[] = {0,7,28,63,112,175,252,343,448,567,700,847,1008,1183,1372,1575,1792,2023,2268,2527,
  49. 2800,3087,3388,3703,4032,4375,4732,5103,5488,5887,6300,6727,7168,7623,8092,8575,9072,9583,10108,10647,
  50. 11200,11767,12348,12943,13552,14175,14812,15463,16128,16807,17500,18207,18928,19663,20412,21175,21952,22743,23548,24367,
  51. 25200,26047,26908,27783,28672,29575,30492,31423,32368,33327,34300,35287,36288,37303,38332,39375,40432,41503,42588,43687,
  52. 44800,45927,47068,48223,49392,50575,51772,52983,54208,55447,56700,57967,59248,60543,61852,63175,64512,65863,67228,68607,
  53. 70000,71407,72828,74263,75712,77175,78652,80143,81648,83167,84700,86247,87808,89383,90972,92575,94192,95823,97468,99127,
  54. 100800,102487,104188,105903,107632,109375,111132,112903,114688,116487,118300,120127,121968,123823,125692,127575,129472,131383,133308,135247,
  55. 137200,139167,141148,143143,145152,147175,149212,151263,153328,155407,157500,159607,161728,163863,166012,168175,170352,172543,174748,176967,
  56. 179200,181447,183708,185983,188272,190575,192892,195223,197568,199927,202300,204687,207088,209503,211932,214375,216832,219303,221788,224287,
  57. 226800,229327,231868,234423,236992,239575,242172,244783,247408,250047,252700,255367,258048,260743,263452,266175,268912,271663,274428,277207,
  58. 280000,282807,285628,288463,291312,294175,297052,299943,302848,305767,308700,311647,314608,317583,320572,323575,326592,329623,332668,335727,
  59. 338800,341887,344988,348103,351232,354375,357532,360703,363888,367087,370300,373527,376768,380023,383292,386575,389872,393183,396508,399847,
  60. 403200,406567,409948,413343,416752,420175,423612,427063,430528,434007,437500,441007,444528,448063,451612,455175,458752,462343,465948,469567,
  61. 473200,476847,480508,484183,487872,491575,495292,499023,502768,506527,510300,514087,517888,521703,525532,529375,533232,537103,540988,544887,
  62. 548800,552727,556668,560623,564592,568575,572572,576583,580608,584647,588700,592767,596848,600943,605052,609175,613312,617463,621628,625807,
  63. 630000,634207,638428,642663,646912,651175,655452,659743,664048,668367,672700,677047,681408,685783,690172,694575,698992,703423,707868,712327,
  64. 716800,721287,725788,730303,734832,739375,743932,748503,753088,757687,762300,766927,771568,776223,780892,785575,790272,794983,799708,804447,
  65. 809200,813967,818748,823543,828352,833175,838012,842863,847728,852607,857500,862407,867328,872263,877212,882175,887152,892143,897148,902167,
  66. 907200,912247,917308,922383,927472,932575,937692,942823,947968,953127,958300,963487,968688,973903,979132,984375,989632,994903,1000188,1005487,
  67. 1010800,1016127,1021468,1026823,1032192,1037575,1042972,1048383,1053808,1059247,1064700,1070167,1075648,1081143,1086652,1092175,1097712,1103263,1108828,1114407,
  68. 1120000,1125607,1131228,1136863,1142512,1148175,1153852,1159543,1165248,1170967,1176700,1182447,1188208,1193983,1199772,1205575,1211392,1217223,1223068,1228927,
  69. 1234800,1240687,1246588,1252503,1258432,1264375,1270332,1276303,1282288,1288287,1294300,1300327,1306368,1312423,1318492,1324575,1330672,1336783,1342908,1349047,
  70. 1355200,1361367,1367548,1373743,1379952,1386175,1392412,1398663,1404928,1411207,1417500,1423807,1430128,1436463,1442812,1449175,1455552,1461943,1468348,1474767,
  71. 1481200,1487647,1494108,1500583,1507072,1513575,1520092,1526623,1533168,1539727,1546300,1552887,1559488,1566103,1572732,1579375,1586032,1592703,1599388,1606087,
  72. 1612800,1619527,1626268,1633023,1639792,1646575,1653372,1660183,1667008,1673847,1680700,1687567,1694448,1701343,1708252,1715175,1722112,1729063,1736028,1743007,
  73. 1750000,1757007,1764028,1771063,1778112,1785175,1792252,1799343,1806448,1813567,1820700,1827847,1835008,1842183,1849372,1856575,1863792,1871023,1878268,1885527,
  74. 1892800,1900087,1907388,1914703,1922032,1929375,1936732,1944103,1951488,1958887,1966300,1973727,1981168,1988623,1996092,2003575,2011072,2018583,2026108,2033647,
  75. 2041200,2048767,2056348,2063943,2071552,2079175,2086812,2094463,2102128,2109807,2117500,2125207,2132928,2140663,2148412,2156175,2163952,2171743,2179548,2187367,
  76. 2195200,2203047,2210908,2218783,2226672,2234575,2242492,2250423,2258368,2266327,2274300,2282287,2290288,2298303,2306332,2314375,2322432,2330503,2338588,2346687,
  77. 2354800,2362927,2371068,2379223,2387392,2395575,2403772,2411983,2420208,2428447,2436700,2444967,2453248,2461543,2469852,2478175,2486512,2494863,2503228,2511607,
  78. 2520000,2528407,2536828,2545263,2553712,2562175,2570652,2579143,2587648,2596167,2604700,2613247,2621808,2630383,2638972,2647575,2656192,2664823,2673468,2682127,
  79. 2690800,2699487,2708188,2716903,2725632,2734375,2743132,2751903,2760688,2769487,2778300,2787127,2795968,2804823,2813692,2822575,2831472,2840383,2849308,2858247,
  80. 2867200,2876167,2885148,2894143,2903152,2912175,2921212,2930263,2939328,2948407,2957500,2966607,2975728,2984863,2994012,3003175,3012352,3021543,3030748,3039967,
  81. 3049200,3058447,3067708,3076983,3086272,3095575,3104892,3114223,3123568,3132927,3142300,3151687,3161088,3170503,3179932,3189375,3198832,3208303,3217788,3227287,
  82. 3236800,3246327,3255868,3265423,3274992,3284575,3294172,3303783,3313408,3323047,3332700,3342367,3352048,3361743,3371452,3381175,3390912,3400663,3410428,3420207,
  83. 3430000,3439807,3449628,3459463,3469312,3479175,3489052,3498943,3508848,3518767,3528700,3538647,3548608,3558583,3568572,3578575,3588592,3598623,3608668,3618727,
  84. 3628800,3638887,3648988,3659103,3669232,3679375,3689532,3699703,3709888,3720087,3730300,3740527,3750768,3761023,3771292,3781575,3791872,3802183,3812508,3822847,
  85. 3833200,3843567,3853948,3864343,3874752,3885175,3895612,3906063,3916528,3927007,3937500,3948007,3958528,3969063,3979612,3990175,4000752,4011343,4021948,4032567,
  86. 4043200,4053847,4064508,4075183,4085872,4096575,4107292,4118023,4128768,4139527,4150300,4161087,4171888,4182703,4193532,4204375,4215232,4226103,4236988,4247887,
  87. 4258800,4269727,4280668,4291623,4302592,4313575,4324572,4335583,4346608,4357647,4368700,4379767,4390848,4401943,4413052,4424175,4435312,4446463,4457628,4468807,
  88. 4480000,4491207,4502428,4513663,4524912,4536175,4547452,4558743,4570048,4581367,4592700,4604047,4615408,4626783,4638172,4649575,4660992,4672423,4683868,4695327,
  89. 4706800,4718287,4729788,4741303,4752832,4764375,4775932,4787503,4799088,4810687,4822300,4833927,4845568,4857223,4868892,4880575,4892272,4903983,4915708,4927447,
  90. 4939200,4950967,4962748,4974543,4986352,4998175,5010012,5021863,5033728,5045607,5057500,5069407,5081328,5093263,5105212,5117175,5129152,5141143,5153148,5165167,
  91. 5177200,5189247,5201308,5213383,5225472,5237575,5249692,5261823,5273968,5286127,5298300,5310487,5322688,5334903,5347132,5359375,5371632,5383903,5396188,5408487,
  92. 5420800,5433127,5445468,5457823,5470192,5482575,5494972,5507383,5519808,5532247,5544700,5557167,5569648,5582143,5594652,5607175,5619712,5632263,5644828,5657407,
  93. 5670000,5682607,5695228,5707863,5720512,5733175,5745852,5758543,5771248,5783967,5796700,5809447,5822208,5834983,5847772,5860575,5873392,5886223,5899068,5911927,
  94. 5924800,5937687,5950588,5963503,5976432,5989375,6002332,6015303,6028288,6041287,6054300,6067327,6080368,6093423,6106492,6119575,6132672,6145783,6158908,6172047,
  95. 6185200,6198367,6211548,6224743,6237952,6251175,6264412,6277663,6290928,6304207,6317500,6330807,6344128,6357463,6370812,6384175,6397552,6410943,6424348,6437767,
  96. 6451200,6464647,6478108,6491583,6505072,6518575,6532092,6545623,6559168,6572727,6586300,6599887,6613488,6627103,6640732,6654375,6668032,6681703,6695388,6709087,
  97. 6722800,6736527,6750268,6764023,6777792,6791575,6805372,6819183,6833008,6846847,6860700,6874567,6888448,6902343,6916252,6930175,6944112,6958063,6972028,6986007,//1000
  98. 7000000,7014007,7028028,7042063,7056112,7070175,7084252,7098343,7112448,7126567,7140700,7154847,7169008,7183183,7197372,7211575,7225792,7240023,7254268,7268527,
  99. 7282800,7297087,7311388,7325703,7340032,7354375,7368732,7383103,7397488,7411887,7426300,7440727,7455168,7469623,7484092,7498575,7513072,7527583,7542108,7556647,
  100. 7571200,7585767,7600348,7614943,7629552,7644175,7658812,7673463,7688128,7702807,7717500,7732207,7746928,7761663,7776412,7791175,7805952,7820743,7835548,7850367,
  101. 7865200,7880047,7894908,7909783,7924672,7939575,7954492,7969423,7984368,7999327,8014300,8029287,8044288,8059303,8074332,8089375,8104432,8119503,8134588,8149687,
  102. 8164800,8179927,8195068,8210223,8225392,8240575,8255772,8270983,8286208,8301447,8316700,8331967,8347248,8362543,8377852,8393175,8408512,8423863,8439228,8454607,
  103. 8470000,8485407,8500828,8516263,8531712,8547175,8562652,8578143,8593648,8609167,8624700,8640247,8655808,8671383,8686972,8702575,8718192,8733823,8749468,8765127,
  104. 8780800,8796487,8812188,8827903,8843632,8859375,8875132,8890903,8906688,8922487,8938300,8954127,8969968,8985823,9001692,9017575,9033472,9049383,9065308,9081247,
  105. 9097200,9113167,9129148,9145143,9161152,9177175,9193212,9209263,9225328,9241407,9257500,9273607,9289728,9305863,9322012,9338175,9354352,9370543,9386748,9402967,
  106. 9419200,9435447,9451708,9467983,9484272,9500575,9516892,9533223,9549568,9565927,9582300,9598687,9615088,9631503,9647932,9664375,9680832,9697303,9713788,9730287,
  107. 9746800,9763327,9779868,9796423,9812992,9829575,9846172,9862783,9879408,9896047,9912700,9929367,9946048,9962743,9979452,9996175,10012912,10029663,10046428,10063207,
  108. 10080000};
  109.  
  110. new poeni_igraca[33];
  111. new energija_igraca[33];
  112. new inteligencija_igraca[33];
  113. new snaga_igraca[33];
  114. new Float:smanjene_povrede_igraca[33];
  115. new kondicija_igraca[33];
  116. new maximalna_energija_igraca[33];
  117. new Float:brzina_igraca[33];
  118.  
  119.  
  120. new broj_medkit_igraca[33];
  121. new broj_raketa_igraca[33];
  122. new Float:prethodna_raketa_igraca[33];
  123. new broj_min_igraca[33];
  124. new broj_dinamita_igraca[33];
  125. new broj_skokova_igraca[33];
  126.  
  127. new bool:freezetime = true;
  128.  
  129. public plugin_init()
  130. {
  131. register_plugin(PLUGIN, VERSION, AUTHOR);
  132.  
  133. g_vault = nvault_open("CodMod");
  134.  
  135. register_think("MedKit","MedKitThink");
  136.  
  137. RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
  138. RegisterHam(Ham_Spawn, "player", "Pocetak", 1);
  139. RegisterHam(Ham_Touch, "armoury_entity", "DodirOruzija");
  140. RegisterHam(Ham_Touch, "weapon_shield", "DodirOruzija");
  141. RegisterHam(Ham_Touch, "weaponbox", "DodirOruzija");
  142.  
  143. register_forward(FM_CmdStart, "CmdStart");
  144. register_forward(FM_EmitSound, "EmitSound");
  145.  
  146. register_logevent("PocetakRunde", 2, "1=Round_Start");
  147.  
  148. register_event("DeathMsg", "Death", "ade");
  149. register_event("Damage", "Damage", "b", "2!=0");
  150. register_event("CurWeapon","CurWeapon","be", "1=1");
  151. register_event("HLTV", "novaRunda", "a", "1=0", "2=0");
  152.  
  153. register_touch("Rocket", "*" , "DodirRakete");
  154. register_touch("Mine", "player", "DodirMine");
  155.  
  156. cvar_xp_za_ubistvo = register_cvar("cod_killxp", "70");
  157.  
  158. register_clcmd("say /klasa", "IzaberiKlasu");
  159. register_clcmd("say /opis", "OpisKlase");
  160. register_clcmd("say /predmet", "OpisPredmeta");
  161. register_clcmd("say /item", "OpisPredmeta");
  162. register_clcmd("say /drop", "IzbaciPredmet");
  163. register_clcmd("say /izbaci", "IzbaciPredmet");
  164. register_clcmd("say /reset", "KomandaResetujPoene");
  165. register_clcmd("say /shop", "Shop");
  166. register_clcmd("say /pomoc", "Pomoc");
  167. register_clcmd("say /help", "Pomoc");
  168. register_clcmd("fullupdate", "BlokirajKomande");
  169.  
  170. g_msg_screenfade = get_user_msgid("ScreenFade");
  171.  
  172. SyncHudObj = CreateHudSyncObj();
  173. SyncHudObj3 = CreateHudSyncObj();
  174.  
  175. register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlase");
  176. iskustvo_za_pare = 400;
  177. iskustvo_za_mnogopara = 1000;
  178.  
  179. format(za_hejtere, 10, "1")
  180. }
  181.  
  182. public plugin_cfg()
  183. {
  184. server_cmd("sv_maxspeed 9999");
  185. }
  186.  
  187. public plugin_precache()
  188. {
  189. new Entity = create_entity( "info_map_parameters" );
  190.  
  191. DispatchKeyValue( Entity, "buying", "3" );
  192. DispatchSpawn( Entity );
  193.  
  194. sprite_white = precache_model("sprites/white.spr") ;
  195. sprite_blast = precache_model("sprites/dexplo.spr");
  196. sprite_beam = precache_model("sprites/zbeam4.spr")
  197.  
  198. precache_sound("QTM_CodMod/select.wav");
  199. precache_sound("QTM_CodMod/start.wav");
  200. precache_sound("QTM_CodMod/start2.wav");
  201. precache_sound("QTM_CodMod/levelup.wav");
  202.  
  203. precache_model("models/w_medkit.mdl");
  204. precache_model("models/rpgrocket.mdl");
  205. precache_model("models/mine.mdl");
  206. }
  207.  
  208. public pfn_keyvalue( Entity )
  209. {
  210. new ClassName[ 20 ], Dummy[ 2 ];
  211. copy_keyvalue( ClassName, charsmax( ClassName ), Dummy, charsmax( Dummy ), Dummy, charsmax( Dummy ) );
  212.  
  213. if( equal( ClassName, "info_map_parameters" ) )
  214. {
  215. remove_entity( Entity );
  216. return PLUGIN_HANDLED ;
  217. }
  218. return PLUGIN_CONTINUE;
  219. }
  220.  
  221. public CmdStart(id, uc_handle)
  222. {
  223. if(!is_user_alive(id))
  224. return FMRES_IGNORED;
  225.  
  226. new button = get_uc(uc_handle, UC_Buttons);
  227. new flags = pev(id, pev_flags);
  228. new oldbutton = pev(id, pev_oldbuttons);
  229.  
  230. if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && broj_skokova_igraca[id] > 0)
  231. {
  232. broj_skokova_igraca[id]--;
  233. new Float:velocity[3];
  234. pev(id, pev_velocity,velocity);
  235. velocity[2] = random_float(265.0,285.0);
  236. set_pev(id, pev_velocity,velocity);
  237. }
  238. else if(flags & FL_ONGROUND)
  239. {
  240. broj_skokova_igraca[id] = 0;
  241. if(is_user_alive(id))
  242. broj_skokova_igraca[id]++;
  243. }
  244.  
  245. if(button & IN_ATTACK)
  246. {
  247. new Float:punchangle[3];
  248. {
  249. set_pev(id, pev_punchangle, punchangle);
  250. for(new i=0; i<3;i++)
  251. punchangle[i]*=0.9;
  252. set_pev(id, pev_punchangle, punchangle);
  253. }
  254. }
  255.  
  256. if( button & IN_JUMP && button & IN_DUCK && flags & FL_ONGROUND && get_gametime() > 4.0)
  257. {
  258. new Float:velocity[3];
  259. VelocityByAim(id, 700, velocity);
  260. velocity[2] = random_float(265.0,285.0);
  261. set_pev(id, pev_velocity, velocity);
  262. }
  263. return FMRES_IGNORED;
  264. }
  265.  
  266. public Shop(id)
  267. {
  268. new menu = menu_create("Shop:", "Shop_Handle");
  269. menu_additem(menu, "Aspirin \r[Dodaje 50 HP] \yCena: \r3000$");
  270. menu_additem(menu, "Morfijum \r[Dodaje 100 HP] \yCena: \r5000$");
  271. menu_additem(menu, "RedBull \r[Veci Skok + Veca Brzina] \yCena: \r7500$");
  272. menu_additem(menu, "Iskustvo \r[Dodaje 400 XP] \yCena: \r5000$");
  273. menu_additem(menu, "Super iskustvo \r[Dodaje 1000 XP] \yCena: \r10000$");
  274. menu_additem(menu, "Slucajni Izbor \r[Predmet] \yCena: \r3000$");
  275. menu_additem(menu, "Mine \r[Dobijate 2 Mine] \yCena: \r10000$");
  276. menu_display(id, menu);
  277. }
  278. public Shop_Handle(id, menu, item)
  279. {
  280. client_cmd(id, "spk QTM_CodMod/select");
  281.  
  282. if(item == MENU_EXIT)
  283. {
  284. menu_destroy(menu);
  285. return PLUGIN_CONTINUE;
  286. }
  287. menu_display(id, menu);
  288. new pare_igraca = cs_get_user_money(id);
  289. new hp = get_user_health(id);
  290. switch(item)
  291. {
  292. case 0:
  293. {
  294. new cena = 3000;
  295. if (pare_igraca<cena)
  296. {
  297. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  298. return PLUGIN_CONTINUE;
  299. }
  300. if(hp >= maximalna_energija_igraca[id])
  301. {
  302. ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
  303. return PLUGIN_CONTINUE;
  304. }
  305. new ammount=50;
  306. new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
  307. set_user_health(id, nova_energija);
  308. ColorChat(id,GREEN,"[Shop] ^1kupio si ^3Aspirin");
  309. cs_set_user_money(id, pare_igraca-cena);
  310. }
  311. case 1:
  312. {
  313. new cena = 5000;
  314. if (pare_igraca<cena)
  315. {
  316. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  317. return PLUGIN_CONTINUE;
  318. }
  319. if(hp >= maximalna_energija_igraca[id] )
  320. {
  321. ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
  322. return PLUGIN_CONTINUE;
  323. }
  324. new ammount=100;
  325. new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
  326. set_user_health(id, nova_energija);
  327. ColorChat(id,GREEN,"[Shop] ^1Kupio si^3 Morfijum");
  328. cs_set_user_money(id, pare_igraca-cena);
  329. }
  330. case 2:
  331. {
  332. new cena = 7500;
  333. if (pare_igraca<cena)
  334. {
  335. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  336. return PLUGIN_CONTINUE;
  337. }
  338. set_user_gravity(id,get_user_gravity(id) - 0.3);
  339. set_user_maxspeed(id,get_user_maxspeed(id) + 10.0);
  340. ColorChat(id,GREEN,"[Shop]^1 Kupio si^3 RedBull");
  341. cs_set_user_money(id, pare_igraca-cena)
  342. }
  343. case 3:
  344. {
  345. new cena = 5000;
  346. if (pare_igraca<cena)
  347. {
  348. ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
  349. return PLUGIN_CONTINUE;
  350. }
  351. iskustvo_igraca[id] += iskustvo_za_pare;
  352. ColorChat(id,GREEN,"[Shop] ^1Kupio si ^3Iskustvo");
  353. cs_set_user_money(id, pare_igraca-cena)
  354. ProveriNivo(id);
  355. }
  356. case 4:
  357. {
  358. new cena = 10000;
  359. if (pare_igraca<cena)
  360. {
  361. ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
  362. return PLUGIN_CONTINUE;
  363. }
  364. iskustvo_igraca[id] += iskustvo_za_mnogopara;
  365. ColorChat(id,GREEN,"[Shop]^1Kupio si ^3Super Iskustvo");
  366. cs_set_user_money(id, pare_igraca-cena)
  367. ProveriNivo(id);
  368. }
  369. case 5:
  370. {
  371. new cena = 3000;
  372. if (pare_igraca<cena)
  373. {
  374. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno para!");
  375. return PLUGIN_CONTINUE;
  376. }
  377. cs_set_user_money(id, pare_igraca-cena)
  378. }
  379. case 6:
  380. {
  381. new cena = 10000;
  382. if (pare_igraca<cena)
  383. {
  384. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno para!");
  385. return PLUGIN_HANDLED;
  386. }
  387. broj_min_igraca[id] +=2;
  388. ColorChat(id,GREEN,"[Shop]^1 Kupio si^3 2 ^1mine");
  389. cs_set_user_money(id, pare_igraca-cena)
  390. }
  391. }
  392. return PLUGIN_CONTINUE;
  393. }
  394.  
  395. public Pocetak(id)
  396. {
  397. if(!is_user_alive(id) || !is_user_connected(id))
  398. return PLUGIN_CONTINUE;
  399.  
  400. if(poeni_igraca[id]>0)
  401. DodelaPoena(id);
  402. new weapons[32];
  403. new weaponsnum;
  404. get_user_weapons(id, weapons, weaponsnum);
  405. for(new i=0; i<weaponsnum; i++)
  406. if(is_user_alive(id))
  407. if(maxAmmo[weapons[i]] > 0)
  408. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  409.  
  410. PostaviAtribute(id)
  411.  
  412. return PLUGIN_CONTINUE;
  413. }
  414.  
  415. public PostaviAtribute(id)
  416. {
  417. smanjene_povrede_igraca[id] = (0.7*(1.0-floatpower(1.1, -0.112311341*float(snaga_igraca[id]))));
  418. maximalna_energija_igraca[id] = 50*2;
  419. brzina_igraca[id] = STANDARDNA_brzina*1.0+floatround(kondicija_igraca[id]*1.3);
  420.  
  421. set_user_health(id, maximalna_energija_igraca[id]);
  422. }
  423.  
  424. public PocetakRunde()
  425. {
  426. freezetime = false;
  427. for(new id=0;id<=32;id++)
  428. {
  429. if(!is_user_alive(id))
  430. continue;
  431.  
  432. set_task(0.1, "PostaviBrzinu", id+ZADATAK_POSTAVI_brzinu);
  433.  
  434. switch(get_user_team(id))
  435. {
  436. case 1: client_cmd(id, "spk QTM_CodMod/start2");
  437. case 2: client_cmd(id, "spk QTM_CodMod/start");
  438. }
  439. }
  440. }
  441.  
  442. public novaRunda()
  443. {
  444. freezetime = true;
  445. new iEnt = find_ent_by_class(-1, "Mine");
  446. while(iEnt > 0)
  447. {
  448. remove_entity(iEnt);
  449. iEnt = find_ent_by_class(iEnt, "Mine");
  450. }
  451. }
  452.  
  453. public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
  454. {
  455. if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
  456. return HAM_IGNORED;
  457.  
  458. new health = get_user_health(this);
  459. new weapon = get_user_weapon(idattacker);
  460.  
  461. if(health < 2)
  462. return HAM_IGNORED;
  463.  
  464. if(snaga_igraca[this]>0)
  465. damage -= smanjene_povrede_igraca[this]*damage;
  466.  
  467. if(weapon == CSW_AWP && is_user_alive(idattacker))
  468. damage=float(health);
  469.  
  470. if(get_user_flags(idattacker) && ADMIN_LEVEL_H)
  471. damage+=20;
  472.  
  473. if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
  474. {
  475. if((weapon = CSW_DEAGLE))
  476. damage = float(health);
  477. }
  478.  
  479. SetHamParamFloat(4, damage);
  480. return HAM_IGNORED;
  481. }
  482.  
  483. public Damage(id)
  484. {
  485. new attacker = get_user_attacker(id);
  486. new damage = read_data(2);
  487. if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker )
  488. return PLUGIN_CONTINUE;
  489.  
  490. if(get_user_flags(attacker) && ADMIN_LEVEL_H)
  491. Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230);
  492.  
  493. if(get_user_team(id) != get_user_team(attacker))
  494. {
  495. while(damage>20)
  496. {
  497. damage-=20;
  498. iskustvo_igraca[attacker]++;
  499. }
  500. }
  501. ProveriNivo(attacker);
  502. return PLUGIN_CONTINUE;
  503. }
  504.  
  505. public Death()
  506. {
  507. new id = read_data(2);
  508. new attacker = read_data(1);
  509.  
  510. if(!is_user_alive(attacker) || !is_user_connected(attacker))
  511. return PLUGIN_CONTINUE;
  512.  
  513.  
  514. if(get_user_team(id) != get_user_team(attacker))
  515. {
  516. new iskustvo_za_ubistvo = get_pcvar_num(cvar_xp_za_ubistvo);
  517. new novo_iskustvo = get_pcvar_num(cvar_xp_za_ubistvo);
  518.  
  519. if(get_user_flags(attacker) && ADMIN_LEVEL_H)
  520. novo_iskustvo += iskustvo_za_ubistvo*2;
  521.  
  522. if(level_igraca[id] > level_igraca[attacker])
  523. novo_iskustvo += (level_igraca[id]-level_igraca[attacker])*(iskustvo_za_ubistvo/10);
  524.  
  525. #if defined BOTY
  526. if(is_user_bot2(attacker) && random(9) == 0)
  527. IzbaciPredmet(id);
  528. #endif
  529. iskustvo_igraca[attacker] += novo_iskustvo;
  530. }
  531.  
  532. ProveriNivo(attacker);
  533.  
  534. return PLUGIN_CONTINUE;
  535. }
  536.  
  537. public client_putinserver(id)
  538. {
  539. DeleteSkills(id);
  540.  
  541. ObrisiZadatke(id);
  542.  
  543. set_task(3.0, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
  544. set_task(10.0, "PokaziReklame", id+ZADATAK_POKAZI_REKLAME);
  545. }
  546.  
  547. public client_disconnect(id)
  548. {
  549. SacuvajPodatke(id);
  550. DeleteSkills(id);
  551. ObrisiZadatke(id);
  552. }
  553. public DeleteSkills(id)
  554. {
  555. level_igraca[id] = 0;
  556. iskustvo_igraca[id] = 0;
  557. poeni_igraca[id] = 0;
  558. energija_igraca[id] = 0;
  559. inteligencija_igraca[id] = 0;
  560. snaga_igraca[id] = 0;
  561. kondicija_igraca[id] = 0;
  562. maximalna_energija_igraca[id] = 0;
  563. brzina_igraca[id] = 0.0;
  564. }
  565.  
  566. public ObrisiZadatke(id)
  567. {
  568. remove_task(id+ZADATAK_POKAZI_INFORMACIJE);
  569. remove_task(id+ZADATAK_POKAZI_REKLAME);
  570. remove_task(id+ZADATAK_POSTAVI_brzinu);
  571. remove_task(id+ZADATAK_PROVERA);
  572. }
  573.  
  574. public DodelaPoena(id)
  575. {
  576. new inteligencija[65], inteligencija10[65];
  577. new energija[60], energija10[60];
  578. new snaga[60], snaga10[60];
  579. new kondicija[60], kondicija10[60];
  580. new naslov[25];
  581. format(inteligencija, 64, "Inteligencija: \r%i \y(Povecava napad)", inteligencija_igraca[id]);
  582. format(energija, 59, "Energija: \r%i \y(Povecaca energiju)", energija_igraca[id]);
  583. format(snaga, 59, "Snaga: \r%i \y(Smanjuje povrede)", snaga_igraca[id]);
  584. format(kondicija, 59, "Kondicija: \r%i \y(Povecava tempo hodanja)", kondicija_igraca[id]);
  585. format(inteligencija10, 64, "Dodaj 10 poena na inteligenciju");
  586. format(energija10, 59, "Dodaj 10 poena na energiju");
  587. format(snaga10, 59, "Dodaj 10 poena na snagu");
  588. format(kondicija10, 59, "Dodaj 10 poena na kondiciju");
  589. format(naslov, 24, "Dodeli poena(%i):", poeni_igraca[id]);
  590. new menu = menu_create(naslov, "DodelaPoena_Handler");
  591. menu_additem(menu, inteligencija);
  592. menu_additem(menu, energija);
  593. menu_additem(menu, snaga);
  594. menu_additem(menu, kondicija);
  595. menu_additem(menu, inteligencija10);
  596. menu_additem(menu, energija10);
  597. menu_additem(menu, snaga10);
  598. menu_additem(menu, kondicija10);
  599. menu_display(id, menu);
  600. #if defined BOTY
  601. if(is_user_bot2(id))
  602. DodelaPoena_Handler(id, menu, random(4));
  603. #endif
  604. }
  605.  
  606. public DodelaPoena_Handler(id, menu, item)
  607. {
  608. client_cmd(id, "spk QTM_CodMod/select");
  609.  
  610. if(item == MENU_EXIT)
  611. {
  612. menu_destroy(menu);
  613. return PLUGIN_CONTINUE;
  614. }
  615.  
  616.  
  617. if(poeni_igraca[id] < 1)
  618. return PLUGIN_CONTINUE;
  619.  
  620. switch(item)
  621. {
  622. case 0:
  623. {
  624. if(inteligencija_igraca[id]<4001)
  625. {
  626. inteligencija_igraca[id]++;
  627. poeni_igraca[id]--;
  628. }
  629. else
  630. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo inteligencije");
  631.  
  632. }
  633. case 1:
  634. {
  635. if(energija_igraca[id]<4001)
  636. {
  637. energija_igraca[id]++;
  638. poeni_igraca[id]--;
  639. }
  640. else
  641. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo energije");
  642. }
  643. case 2:
  644. {
  645. if(snaga_igraca[id]<4001)
  646. {
  647. snaga_igraca[id]++;
  648. poeni_igraca[id]--;
  649. }
  650. else
  651. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo snage");
  652.  
  653. }
  654. case 3:
  655. {
  656. if(kondicija_igraca[id]<4001)
  657. {
  658. kondicija_igraca[id]++;
  659. poeni_igraca[id]--;
  660. }
  661. else
  662. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo kondicije");
  663. }
  664. case 4:
  665. {
  666. if(poeni_igraca[id] < 10)
  667. {
  668. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  669. }
  670. else if(inteligencija_igraca[id]<4001)
  671. {
  672. inteligencija_igraca[id]+=10;
  673. poeni_igraca[id]-=10
  674. }
  675. else
  676. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo inteligencije");
  677. }
  678. case 5:
  679. {
  680. if(poeni_igraca[id] < 10)
  681. {
  682. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  683. }
  684. else if(energija_igraca[id]<4001)
  685. {
  686. energija_igraca[id]+=10;
  687. poeni_igraca[id]-=10;
  688. }
  689. else
  690. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo energije");
  691. }
  692. case 6:
  693. {
  694. if(poeni_igraca[id] < 10)
  695. {
  696. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  697. }
  698. else if(snaga_igraca[id]<4001)
  699. {
  700. snaga_igraca[id]+=10;
  701. poeni_igraca[id]-=10;
  702. }
  703. else
  704. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo snage");
  705. }
  706. case 7:
  707. {
  708. if(poeni_igraca[id] < 10)
  709. {
  710. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  711. }
  712. else if(kondicija_igraca[id]<4001)
  713. {
  714. kondicija_igraca[id]+=10;
  715. poeni_igraca[id]-=10;
  716. }
  717. else
  718. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo kondicije");
  719. }
  720.  
  721. }
  722.  
  723. if(poeni_igraca[id]>0)
  724. DodelaPoena(id);
  725.  
  726. return PLUGIN_CONTINUE;
  727. }
  728.  
  729. public KomandaResetujPoene(id)
  730. {
  731. ColorChat(id, NORMAL, "^4[COD:MW] ^1Poeni su resetovani");
  732. client_cmd(id, "spk QTM_CodMod/select");
  733.  
  734. ResetujPoene(id)
  735. }
  736.  
  737. public ResetujPoene(id)
  738. {
  739. poeni_igraca[id] = level_igraca[id]*2-2;
  740. inteligencija_igraca[id] = 0;
  741. energija_igraca[id] = 0;
  742. kondicija_igraca[id] = 0;
  743. snaga_igraca[id] = 0;
  744.  
  745. if(poeni_igraca[id])
  746. DodelaPoena(id);
  747. }
  748.  
  749. public KreirajMedKit(id)
  750. {
  751. if (!broj_medkit_igraca[id])
  752. {
  753. client_print(id, print_center, "Imate samo 2 paketa za prvu pomoc u jednoj rundi!");
  754. return PLUGIN_CONTINUE;
  755. }
  756.  
  757. if(inteligencija_igraca[id] < 1)
  758. client_print(id, print_center, "Da koristite paket za prvu pomoc, morate povecati inteligenciju");
  759.  
  760. broj_medkit_igraca[id]--;
  761.  
  762. new Float:origin[3];
  763. entity_get_vector(id, EV_VEC_origin, origin);
  764.  
  765. new ent = create_entity("info_target");
  766. entity_set_string(ent, EV_SZ_classname, "MedKit");
  767. entity_set_edict(ent, EV_ENT_owner, id);
  768. entity_set_int(ent, EV_INT_solid, SOLID_NOT);
  769. entity_set_vector(ent, EV_VEC_origin, origin);
  770. entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
  771.  
  772.  
  773. entity_set_model(ent, "models/w_medkit.mdl");
  774. set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) ;
  775. drop_to_floor(ent);
  776.  
  777. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
  778.  
  779. return PLUGIN_CONTINUE;
  780. }
  781.  
  782. public MedKitThink(ent)
  783. {
  784. new id = entity_get_edict(ent, EV_ENT_owner);
  785. new totem_dist = 300;
  786. new totem_heal = 5+floatround(inteligencija_igraca[id]*0.5);
  787. if (entity_get_edict(ent, EV_ENT_euser2) == 1)
  788. {
  789. new Float:forigin[3], origin[3];
  790. entity_get_vector(ent, EV_VEC_origin, forigin);
  791. FVecIVec(forigin,origin);
  792.  
  793. new entlist[33];
  794. new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist, 32,forigin);
  795.  
  796. for (new i=0; i < numfound; i++)
  797. {
  798. new pid = entlist[i];
  799.  
  800. if (get_user_team(pid) != get_user_team(id))
  801. continue;
  802.  
  803. new energija = get_user_health(pid);
  804. new nova_energija = (energija+totem_heal<maximalna_energija_igraca[pid])?energija+totem_heal:maximalna_energija_igraca[pid];
  805. if (is_user_alive(pid)) set_user_health(pid, nova_energija);
  806. }
  807.  
  808. entity_set_edict(ent, EV_ENT_euser2, 0);
  809. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5);
  810.  
  811. return PLUGIN_CONTINUE;
  812. }
  813.  
  814. if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
  815. {
  816. remove_entity(ent);
  817. return PLUGIN_CONTINUE;
  818. }
  819.  
  820. if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
  821. set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) ;
  822.  
  823. new Float:forigin[3], origin[3];
  824. entity_get_vector(ent, EV_VEC_origin, forigin);
  825. FVecIVec(forigin,origin);
  826.  
  827. //Find people near and give them health
  828. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
  829. write_byte( TE_BEAMCYLINDER );
  830. write_coord( origin[0] );
  831. write_coord( origin[1] );
  832. write_coord( origin[2] );
  833. write_coord( origin[0] );
  834. write_coord( origin[1] + totem_dist );
  835. write_coord( origin[2] + totem_dist );
  836. write_short( sprite_white );
  837. write_byte( 0 ); // startframe
  838. write_byte( 0 ); // framerate
  839. write_byte( 10 ); // life
  840. write_byte( 10 ); // width
  841. write_byte( 255 ); // noise
  842. write_byte( 255 ); // r, g, b
  843. write_byte( 100 );// r, g, b
  844. write_byte( 100 ); // r, g, b
  845. write_byte( 128 ); // brightness
  846. write_byte( 5 ); // speed
  847. message_end();
  848.  
  849. entity_set_edict(ent, EV_ENT_euser2 ,1);
  850. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5);
  851.  
  852.  
  853. return PLUGIN_CONTINUE;
  854. }
  855.  
  856. public KreirajRakete(id)
  857. {
  858. if (!broj_raketa_igraca[id])
  859. {
  860. client_print(id, print_center, "Vec ste iskoristili sve rakete!");
  861. return PLUGIN_CONTINUE;
  862. }
  863.  
  864. if(prethodna_raketa_igraca[id] + 2.0 > get_gametime())
  865. {
  866. client_print(id, print_center, "Mozate da koristite raketu za 2 sekunde!");
  867. return PLUGIN_CONTINUE;
  868. }
  869.  
  870. if (is_user_alive(id))
  871. {
  872. if(inteligencija_igraca[id] < 1)
  873. client_print(id, print_center, "Da koristite rakete, morate povecati inteligenciju!");
  874.  
  875. prethodna_raketa_igraca[id] = get_gametime();
  876. broj_raketa_igraca[id]--;
  877.  
  878. new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
  879.  
  880. entity_get_vector(id, EV_VEC_v_angle, vAngle);
  881. entity_get_vector(id, EV_VEC_origin , Origin);
  882.  
  883. new Ent = create_entity("info_target");
  884.  
  885. entity_set_string(Ent, EV_SZ_classname, "Rocket");
  886. entity_set_model(Ent, "models/rpgrocket.mdl");
  887.  
  888. vAngle[0] *= -1.0;
  889.  
  890. entity_set_origin(Ent, Origin);
  891. entity_set_vector(Ent, EV_VEC_angles, vAngle);
  892.  
  893. entity_set_int(Ent, EV_INT_effects, 2);
  894. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  895. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
  896. entity_set_edict(Ent, EV_ENT_owner, id);
  897.  
  898. VelocityByAim(id, 1000 , Velocity);
  899. entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
  900.  
  901. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  902. write_byte(22)
  903. write_short(Ent)
  904. write_short(sprite_beam)
  905. write_byte(45)
  906. write_byte(4)
  907. write_byte(255)
  908. write_byte(105)
  909. write_byte(180)
  910. write_byte(25)
  911. message_end()
  912. }
  913. return PLUGIN_CONTINUE;
  914. }
  915.  
  916. public KreirajDinamit(id)
  917. {
  918. if(!broj_dinamita_igraca[id])
  919. {
  920. client_print(id, print_center, "Vec ste iskoristili sav dinamit!");
  921. return PLUGIN_CONTINUE;
  922. }
  923.  
  924. if(inteligencija_igraca[id] < 1)
  925. client_print(id, print_center, "Da koristite dinamit, morate povecati inteligenciju!");
  926.  
  927. broj_dinamita_igraca[id]--;
  928.  
  929. new Float:fOrigin[3];
  930. entity_get_vector(id, EV_VEC_origin, fOrigin);
  931.  
  932. new iOrigin[3];
  933. for(new i=0;i<3;i++)
  934. iOrigin[i] = floatround(fOrigin[i]);
  935.  
  936. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  937. write_byte(TE_EXPLOSION);
  938. write_coord(iOrigin[0]);
  939. write_coord(iOrigin[1]);
  940. write_coord(iOrigin[2]);
  941. write_short(sprite_blast);
  942. write_byte(32);
  943. write_byte(20);
  944. write_byte(0);
  945. message_end();
  946.  
  947. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
  948. write_byte( TE_BEAMCYLINDER );
  949. write_coord( iOrigin[0] );
  950. write_coord( iOrigin[1] );
  951. write_coord( iOrigin[2] );
  952. write_coord( iOrigin[0] );
  953. write_coord( iOrigin[1] + 300 );
  954. write_coord( iOrigin[2] + 300 );
  955. write_short( sprite_white );
  956. write_byte( 0 ); // startframe
  957. write_byte( 0 ); // framerate
  958. write_byte( 10 ); // life
  959. write_byte( 10 ); // width
  960. write_byte( 255 ); // noise
  961. write_byte( 255 ); // r, g, b
  962. write_byte( 100 );// r, g, b
  963. write_byte( 100 ); // r, g, b
  964. write_byte( 128 ); // brightness
  965. write_byte( 8 ); // speed
  966. message_end();
  967.  
  968. new entlist[33];
  969. new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
  970.  
  971. for (new i=0; i < numfound; i++)
  972. {
  973. new pid = entlist[i];
  974.  
  975. if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid))
  976. continue;
  977. ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencija_igraca[id]) , 1);
  978. }
  979. return PLUGIN_CONTINUE;
  980. }
  981.  
  982. public PostaviMine(id)
  983. {
  984. if (!broj_min_igraca[id])
  985. {
  986. client_print(id, print_center, "Vec ste iskoristili sve mine!");
  987. return PLUGIN_CONTINUE;
  988. }
  989.  
  990. if(inteligencija_igraca[id] < 1)
  991. client_print(id, print_center, "Da koristite mine, morate povecati inteligenciju!");
  992.  
  993. broj_min_igraca[id]--;
  994.  
  995. new Float:origin[3];
  996. entity_get_vector(id, EV_VEC_origin, origin);
  997.  
  998. new ent = create_entity("info_target");
  999. entity_set_string(ent ,EV_SZ_classname, "Mine");
  1000. entity_set_edict(ent ,EV_ENT_owner, id);
  1001. entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
  1002. entity_set_origin(ent, origin);
  1003. entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
  1004.  
  1005. entity_set_model(ent, "models/mine.mdl");
  1006. entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
  1007.  
  1008. drop_to_floor(ent);
  1009.  
  1010. entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
  1011.  
  1012. set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
  1013.  
  1014.  
  1015. return PLUGIN_CONTINUE;
  1016. }
  1017.  
  1018. public DodirMine(ent, id)
  1019. {
  1020. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1021. if (get_user_team(attacker) != get_user_team(id))
  1022. {
  1023. new Float:fOrigin[3];
  1024. entity_get_vector( ent, EV_VEC_origin, fOrigin);
  1025.  
  1026. new iOrigin[3];
  1027. for(new i=0;i<3;i++)
  1028. iOrigin[i] = floatround(fOrigin[i]);
  1029.  
  1030. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1031. write_byte(TE_EXPLOSION);
  1032. write_coord(iOrigin[0]);
  1033. write_coord(iOrigin[1]);
  1034. write_coord(iOrigin[2]);
  1035. write_short(sprite_blast);
  1036. write_byte(32); // scale
  1037. write_byte(20); // framerate
  1038. write_byte(0);// flags
  1039. message_end();
  1040. new entlist[33];
  1041. new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
  1042.  
  1043. for (new i=0; i < numfound; i++)
  1044. {
  1045. new pid = entlist[i];
  1046.  
  1047. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) )
  1048. continue;
  1049.  
  1050. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencija_igraca[attacker]) , 1);
  1051. }
  1052. remove_entity(ent);
  1053. }
  1054. }
  1055.  
  1056. public DodirRakete(ent)
  1057. {
  1058. if ( !is_valid_ent(ent))
  1059. return;
  1060.  
  1061. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1062.  
  1063. new Float:fOrigin[3];
  1064. entity_get_vector(ent, EV_VEC_origin, fOrigin);
  1065.  
  1066. new iOrigin[3];
  1067. for(new i=0;i<3;i++)
  1068. iOrigin[i] = floatround(fOrigin[i]);
  1069.  
  1070. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1071. write_byte(TE_EXPLOSION);
  1072. write_coord(iOrigin[0]);
  1073. write_coord(iOrigin[1]);
  1074. write_coord(iOrigin[2]);
  1075. write_short(sprite_blast);
  1076. write_byte(32); // scale
  1077. write_byte(20); // framerate
  1078. write_byte(0);// flags
  1079. message_end();
  1080.  
  1081. new entlist[33];
  1082. new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
  1083.  
  1084. for (new i=0; i < numfound; i++)
  1085. {
  1086. new pid = entlist[i];
  1087.  
  1088. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
  1089. continue;
  1090. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0+float(inteligencija_igraca[attacker]) , 1);
  1091. }
  1092. remove_entity(ent);
  1093. }
  1094.  
  1095. public CurWeapon(id)
  1096. {
  1097. if(freezetime)
  1098. return PLUGIN_CONTINUE;
  1099.  
  1100. new weapons[32];
  1101. new weaponsnum;
  1102. get_user_weapons(id, weapons, weaponsnum);
  1103. for(new i=0; i<weaponsnum; i++)
  1104. if(is_user_alive(id))
  1105. if(maxAmmo[weapons[i]] > 0)
  1106. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  1107.  
  1108. PostaviBrzinu(id);
  1109. return PLUGIN_CONTINUE;
  1110. }
  1111.  
  1112. public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
  1113. {
  1114. if(!is_user_alive(id))
  1115. return FMRES_IGNORED;
  1116.  
  1117. if(equal(szSound, "common/wpn_denyselect.wav"))
  1118. {
  1119. KoristiPredmet(id);
  1120. return FMRES_SUPERCEDE;
  1121. }
  1122.  
  1123. return FMRES_IGNORED;
  1124. }
  1125.  
  1126. public KoristiPredmet(id)
  1127. {
  1128. if(broj_medkit_igraca[id]>0)
  1129. KreirajMedKit(id);
  1130. if(broj_raketa_igraca[id]>0)
  1131. KreirajRakete(id);
  1132. if(broj_min_igraca[id]>0)
  1133. PostaviMine(id);
  1134. if(broj_dinamita_igraca[id]>0)
  1135. KreirajDinamit(id);
  1136.  
  1137. return PLUGIN_HANDLED;
  1138. }
  1139.  
  1140. public SacuvajPodatke(id)
  1141. {
  1142. if(!is_user_alive(id))
  1143. return PLUGIN_CONTINUE;
  1144.  
  1145. new vaultkey[128],vaultdata[256], ID_igraca[64];
  1146. 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]);
  1147.  
  1148. get_user_authid(id, ID_igraca, charsmax(ID_igraca))
  1149.  
  1150. format(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca);
  1151. nvault_set(g_vault,vaultkey,vaultdata);
  1152.  
  1153. return PLUGIN_CONTINUE;
  1154. }
  1155.  
  1156. public UcitajPodatke(id, klasa)
  1157. {
  1158. new vaultkey[128],vaultdata[256], ID_igraca[64];
  1159.  
  1160. get_user_authid(id, ID_igraca, charsmax(ID_igraca))
  1161.  
  1162. format(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa);
  1163. nvault_get(g_vault,vaultkey,vaultdata,255);
  1164.  
  1165. replace_all(vaultdata, 255, "#", " ");
  1166.  
  1167. new playerdata[6][32];
  1168.  
  1169. parse(vaultdata, playerdata[0], 31, playerdata[1], 31, playerdata[2], 31, playerdata[3], 31, playerdata[4], 31, playerdata[5], 31);
  1170.  
  1171. iskustvo_igraca[id] = str_to_num(playerdata[0]);
  1172. level_igraca[id] = str_to_num(playerdata[1])>0?str_to_num(playerdata[1]):1;
  1173. inteligencija_igraca[id] = str_to_num(playerdata[2]);
  1174. energija_igraca[id] = str_to_num(playerdata[3]);
  1175. snaga_igraca[id] = str_to_num(playerdata[4]);
  1176. kondicija_igraca[id] = str_to_num(playerdata[5]);
  1177. poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
  1178.  
  1179. return PLUGIN_CONTINUE;
  1180. }
  1181.  
  1182.  
  1183. public Provera(id)
  1184. {
  1185. id-=ZADATAK_PROVERA;
  1186. ExecuteHamB(Ham_CS_RoundRespawn, id);
  1187. }
  1188.  
  1189. public ProveriNivo(id)
  1190. {
  1191. if(level_igraca[id] < 1200)
  1192. {
  1193. while(iskustvo_igraca[id] >= iskustvo_levelu[level_igraca[id]])
  1194. {
  1195. level_igraca[id]++;
  1196. set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
  1197. ShowSyncHudMsg(id, SyncHudObj3, "Dobrodosao na %i level!", level_igraca[id]);
  1198. client_cmd(id, "spk QTM_CodMod/levelup");
  1199. }
  1200. poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
  1201. }
  1202. SacuvajPodatke(id);
  1203. }
  1204.  
  1205. public PokaziInformacije(id)
  1206. {
  1207. id -= ZADATAK_POKAZI_INFORMACIJE;
  1208.  
  1209. set_task(0.1, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
  1210.  
  1211. if(is_user_connected(id) && !is_user_alive(id))
  1212. {
  1213. new target = entity_get_int(id, EV_INT_iuser2);
  1214.  
  1215. if(!target)
  1216. return PLUGIN_CONTINUE;
  1217.  
  1218. set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
  1219. ShowSyncHudMsg(id, SyncHudObj, "Iskustvo : %i / %i^nLevel : %i^nEnergija %d", iskustvo_igraca[target], iskustvo_levelu[level_igraca[target]], level_igraca[target], get_user_health(target));
  1220.  
  1221. return PLUGIN_CONTINUE;
  1222. }
  1223. set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0, -1);
  1224. ShowSyncHudMsg(id, SyncHudObj, "[Iskustvo : %i / %i]^n[Level : %i]^n[Energija: %d]", iskustvo_igraca[id], iskustvo_levelu[level_igraca[id]], level_igraca[id], get_user_health(id));
  1225.  
  1226. return PLUGIN_CONTINUE;
  1227. }
  1228.  
  1229. public PokaziReklame(id)
  1230. {
  1231. id-=ZADATAK_POKAZI_REKLAME;
  1232. ColorChat(id, NORMAL, "^4[COD:MW] ^1Za vise informacija kucajte ^3/pomoc.");
  1233. }
  1234.  
  1235. public Pomoc(id)
  1236. show_menu(id, 1023, "\y/reset\w - Resetuje poene^n\y/klasa\w - Promeni klasu^n\y/drop\w - Izbaci predmet^n\y/perk\w - Pokazuje opis vaseg predmeta^n\y/opis\w - Pokazuje opis klase^n\y+use\w - Koristi specijalne moci klase", -1, "Pomoc");
  1237.  
  1238. public PostaviBrzinu(id)
  1239. {
  1240. id -= id>32? ZADATAK_POSTAVI_brzinu: 0;
  1241. }
  1242.  
  1243. public PromeniModel(id,reset)
  1244. {
  1245. if (id<1 || id>32 || !is_user_connected(id))
  1246. return PLUGIN_CONTINUE;
  1247.  
  1248. if (reset)
  1249. cs_reset_user_model(id);
  1250. else
  1251. {
  1252. new num = random_num(0,3);
  1253. switch(get_user_team(id))
  1254. {
  1255. case 1: cs_set_user_model(id, Ubrania_CT[num]);
  1256. case 2:cs_set_user_model(id, Ubrania_Terro[num]);
  1257. }
  1258. }
  1259. return PLUGIN_CONTINUE;
  1260. }
  1261.  
  1262. public DodirOruzija(weapon,id)
  1263. {
  1264. if(!is_user_connected(id))
  1265. return HAM_IGNORED;
  1266.  
  1267. new model[23];
  1268. pev(weapon, pev_model, model, 22);
  1269. if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
  1270. return HAM_IGNORED;
  1271. return HAM_SUPERCEDE;
  1272. }
  1273.  
  1274. stock bool:UTIL_In_FOV(id,target)
  1275. {
  1276. if (Find_Angle(id,target,9999.9) > 0.0)
  1277. return true;
  1278.  
  1279. return false;
  1280. }
  1281. #if defined BOTY
  1282. public is_user_bot2(id)
  1283. {
  1284. new ping, loss
  1285. get_user_ping(id, ping, loss)
  1286. if(ping > 0 && loss > 0)
  1287. return false
  1288. return true
  1289. }
  1290. #endif
  1291.  
  1292. stock Float:Find_Angle(Core,Target,Float:dist)
  1293. {
  1294. new Float:vec2LOS[2];
  1295. new Float:flDot;
  1296. new Float:CoreOrigin[3];
  1297. new Float:TargetOrigin[3];
  1298. new Float:CoreAngles[3];
  1299.  
  1300. pev(Core,pev_origin,CoreOrigin);
  1301. pev(Target,pev_origin,TargetOrigin);
  1302.  
  1303. if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
  1304. return 0.0;
  1305.  
  1306. pev(Core,pev_angles, CoreAngles);
  1307.  
  1308. for ( new i = 0; i < 2; i++ )
  1309. vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
  1310.  
  1311. new Float:veclength = Vec2DLength(vec2LOS);
  1312.  
  1313. //Normalize V2LOS
  1314. if (veclength <= 0.0)
  1315. {
  1316. vec2LOS[0] = 0.0;
  1317. vec2LOS[1] = 0.0;
  1318. }
  1319. else
  1320. {
  1321. new Float:flLen = 1.0 / veclength;
  1322. vec2LOS[0] = vec2LOS[0]*flLen;
  1323. vec2LOS[1] = vec2LOS[1]*flLen;
  1324. }
  1325.  
  1326. //Do a makevector to make v_forward right
  1327. engfunc(EngFunc_MakeVectors,CoreAngles);
  1328.  
  1329. new Float:v_forward[3];
  1330. new Float:v_forward2D[2];
  1331. get_global_vector(GL_v_forward, v_forward);
  1332.  
  1333. v_forward2D[0] = v_forward[0];
  1334. v_forward2D[1] = v_forward[1];
  1335.  
  1336. flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
  1337.  
  1338. if ( flDot > 0.5 )
  1339. {
  1340. return flDot;
  1341. }
  1342.  
  1343. return 0.0;
  1344. }
  1345.  
  1346. stock Float:Vec2DLength( Float:Vec[2] )
  1347. {
  1348. return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
  1349. }
  1350.  
  1351. stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
  1352. {
  1353. message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
  1354. write_short( duration ); // Duration of fadeout
  1355. write_short( holdtime ); // Hold time of color
  1356. write_short( fadetype ); // Fade type
  1357. write_byte ( red ); // Red
  1358. write_byte ( green ); // Green
  1359. write_byte ( blue ); // Blue
  1360. write_byte ( alpha ); // Alpha
  1361. message_end();
  1362. }
  1363.  
  1364. stock set_user_clip(id, ammo)
  1365. {
  1366. new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
  1367. get_weaponname(weapon, weaponname, 31);
  1368. while ((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
  1369. if(entity_get_edict(weaponid, EV_ENT_owner) == id)
  1370. {
  1371. set_pdata_int(weaponid, 51, ammo, 4);
  1372. return weaponid;
  1373. }
  1374. return 0;
  1375. }
  1376.  
  1377. public BlokirajKomande()
  1378. return PLUGIN_HANDLED;
  1379.  
  1380. public plugin_end()
  1381. nvault_close( g_vault )
Advertisement
Add Comment
Please, Sign In to add comment