MegastoRM

petak14

Apr 14th, 2012
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 60.76 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. new const maxClip[31] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20,
  45. 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
  46.  
  47. new informacije_predmet_igraca[33][2];
  48. new const naziv_predmeta[][] = {"Nema",
  49. "Necujne Cizme", //1
  50. "Dupli Pancir", //2
  51. "Ojacani Pancir", //3
  52. "Veteran sa nozem", //4
  53. "Iznenadi neprijatelje", //5
  54. "Nevidljivost", //6
  55. "Respawn", //7
  56. "Noz Marinca", //8
  57. "Kamuflaza", //9
  58. "HE Expert", //10
  59. "Dupli Skok", //11
  60. "Vojna tajna", //12
  61. "AWP Master",//13
  62. "Adrenalin",//14
  63. "Rambova tajna",//15
  64. "Deagle Manijak",//16
  65. "Super Pancir",//17
  66. "Extra HP++",//18
  67. "Komplet za prvu pomoc",//19
  68. "No Recoil",//20
  69. "Titanijumski metci",//21
  70. "Pukovnikovi metci",//22
  71. "Ogranicen no-recoil",//23
  72. "SWAT Stit",//24
  73. "50 HP++",//25
  74. "Nano Oklop",//26
  75. "BulletProof",//27
  76. "Jetpack",
  77. "Gravitacija",
  78. "Speed"
  79. };
  80.  
  81. new const opis_predmet[][] = {"Ubi nekog i dobices predmet",
  82. "Necujno trcanje",
  83. "Smanjuje stetu za LW %",
  84. "Smanjuje stetu za LW %",
  85. "Brze ubijas nozem",
  86. "Kada pogodite nekog od pozadi, povrede su dva puta vece",
  87. "Imate LW % nevidljivosti",
  88. "1/LW sanse da se respawn posle smrti",
  89. "Brzo ubijanje nozem",
  90. "Imate 1/LW sanse da odmah ubijete sa HE. Takodje izgledate kao neprijatelj",
  91. "Instant kill sa granatom (HE). Zadajes LW % dodatne stete",
  92. "Dupli skok",
  93. "Vase povrede su smanjene za 5. Imate 1/LW sanse da oslepite neprijatelja",
  94. "Instant kill sa AWP",
  95. "Za svaki kill dobijate 50hp",
  96. "Za svaki kill dobijate pun sarzer i 20hp",
  97. "Dobijate Deagle",
  98. "Imate 500 stita",
  99. "Dobijate +100hp svake runde, ali zato ste sporiji",
  100. "Koristite da regeneriste maximalni HP",
  101. "Nema trzanja puske kad pucate",
  102. "Zadajete protivnicima +10 vise stete",
  103. "Zadajete protivnicima +20 vise stete",
  104. "Smanjeno trazanje puske",
  105. "Ni jedan predmet nece uticati na vas",
  106. "Dobijate +50hp svake runde, ali zato ste sporiji",
  107. "Imate 1/LW sanse da izbegnete stetu",
  108. "Otporni ste na 3 metka u svakom krugu",
  109. "Pritisnite CRTL i SPACE da koristite jetpack, jetpack se obnavlja svake 4 sec",
  110. "Smanjena gravitacija",
  111. "Povecana Brzina"
  112. };
  113.  
  114. new klasa_igraca[33];
  115. new level_igraca[33] = 1;
  116. new iskustvo_igraca[33];
  117.  
  118. new nova_klasa_igraca[33];
  119.  
  120. new poeni_igraca[33];
  121. new energija_igraca[33];
  122. new inteligencija_igraca[33];
  123. new snaga_igraca[33];
  124. new Float:smanjene_povrede_igraca[33];
  125. new kondicija_igraca[33];
  126. new maximalna_energija_igraca[33];
  127. new Float:brzina_igraca[33];
  128.  
  129. enum {
  130. NONE = 0,
  131. Snajperista,
  132. Marinac,
  133. Pro_Strelac,
  134. Mitraljezac,
  135. Doktor,
  136. Vatrena_Podrska,
  137. Revolveras,
  138. Hitman,
  139. Inzinjer,
  140. Predator, //Od nule sam krenuoooooo xD (odavde pocinje sto sam dodao)
  141. ProMiner,
  142. General,
  143. Policajac,
  144. Komandos,
  145. Univerzalni_vojnik,
  146. Terrorista,
  147. Placenik,
  148. Pukovnik,
  149. Napadac,
  150. Grammaton_Cleric,
  151. Defender,
  152. Freedom_Fighter,
  153. Gordon_Freeman, //ojsaa belka,rucnaaa xD do ovde sam dodao :)
  154. Partizan,
  155. Spijun,
  156. Bombarder,
  157. Gunner,
  158. Pesadinac,
  159. Pobunjenik,
  160. Assassin,
  161. SWAT
  162.  
  163. }
  164.  
  165. new const energija_klasa[] = {
  166. 0, //NONE
  167. 120, //Snajperista
  168. 100, //Marinac
  169. 100, //Pro-Strelac
  170. 150, //Mitraljezac
  171. 200, //Doktor
  172. 130, //Vatrena_Podrska
  173. 100, //Revolveras
  174. 50, //Hitman
  175. 90, //Inzinjer
  176. 100, //Predator
  177. 100, //ProMiner
  178. 300, // pogledaj posle pro minera koje klase idu dalje
  179. 100,
  180. 100,
  181. 200,
  182. 90,
  183. 100,
  184. 150,
  185. 100,
  186. 100,
  187. 100,
  188. 50,
  189. 100, //Gordana Slobodnjakovic xD
  190. 150, //Partizan
  191. 160, //Spijun
  192. 150, //Bombarder
  193. 150, //Gunner
  194. 100, //Pesadinac
  195. 125, //Pobunjenik
  196. 100, //Assassin
  197. 130 //SWAT
  198. }
  199. new const Float:brzina_klasa[] = {
  200. 0.0, //None
  201. 1.3, //Snajperista
  202. 1.35, //Marinac
  203. 1.3, //Pro-Strelac
  204. 0.8, //Mitraljezac
  205. 1.5, //Doktor
  206. 1.2, //Vatrena podrska
  207. 1.1, //Revolveras
  208. 1.5, //Hitman
  209. 1.4, //Inzinjer
  210. 1.2, //Predator
  211. 1.1, //ProMiner
  212. 1.0, ///stari sablon
  213. 1.0,
  214. 0.9,
  215. 1.0,
  216. 0.9,
  217. 0.9,
  218. 1.1,
  219. 1.0,
  220. 1.0,
  221. 0.7,
  222. 0.7,
  223. 1.0, //Gordon Freeman
  224. 1.2, //Partizan
  225. 1.0, //Spijun
  226. 1.4, //Bombarder
  227. 1.3, //Gunner
  228. 1.3, //Pesadinac
  229. 1.0, //Pobunjenik
  230. 1.2, //Assassin
  231. 1.2 //SWAT
  232. }
  233. new const oklop_klase[] = {
  234. 0, //None
  235. 100, //Snajperista
  236. 100, //Marinac
  237. 100, //Pro-Strelac
  238. 150, //Mitraljezac
  239. 100, //Doktor
  240. 100, //Vatrena podrska
  241. 0, //Revolveras
  242. 0, //Hitman
  243. 200, //Inzinjer
  244. 100, //Predator
  245. 100, //ProMiner
  246. 200, //Isto kao i u prethodnom
  247. 130,
  248. 200,
  249. 200,
  250. 0,
  251. 100,
  252. 150,
  253. 100,
  254. 100,
  255. 300,
  256. 0,
  257. 100, //Gordon F.
  258. 0, //Partizan
  259. 120, //Spijun
  260. 0, //Bombarder
  261. 150, //Gunner
  262. 110, //Pesadinac
  263. 100, //Pobunjenik
  264. 100, //Assassin
  265. 150 //SWAT
  266. }
  267.  
  268. new const naziv_klase[][] = {"Nema",
  269. "Snajperista",// 1
  270. "Marinac", // 2
  271. "Pro-Strelac",// 3
  272. "Mitraljezac",// 4
  273. "Doktor",// 5
  274. "Vatrena podrska",// 6
  275. "Revolveras",// 7
  276. "Hitman",// 8
  277. "Inzinjer",// 9
  278. "Predator",// 10
  279. "Pro Miner",// 11 Od ove sam dodao
  280. "General(Premium - 1.2 eur)",//12
  281. "Policajac",//13
  282. "Komandos",//14
  283. "Univerzalni vojnik(Premium - 1.2 eur)",//15
  284. "Terrorista",//16
  285. "Placenik",//17
  286. "Pukovnik(Premium - 1.2 eur)",//18
  287. "Napadac",//19
  288. "Grammaton Cleric",//20
  289. "Defender",//21
  290. "Freedom Fighter(Premium - 1.2 eur)",//22
  291. "Gordon Freeman(Premium - 1.2 eur)", //23 Do ove
  292. "Partizan",// 24
  293. "Spijun",// 25
  294. "Bombarder",// 26
  295. "Gunner(Premium)",// 27
  296. "Pesadinac",// 28
  297. "Pobunjenik",// 29
  298. "Assassin (Premium - 1.2 eur)",// 30
  299. "SWAT"// 31
  300. }
  301. new const opis_klase[][] = {"Nema",
  302. "\yOruzije:\w AWP, Deagle, Sve Bombe^n\yEnergija:\w 120 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w Instant kill sa nozem,1/4 sansa za instant kil sa AWP", // 1
  303. "\yOruzije:\w Deagle,2 Flesha^n\yEnergija:\w 140 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 135%^n\ySpecijalne moci:\w Odma ubija nozem",// 2
  304. "\yOruzije:\w AK47, M4A1^n\yEnergija:\w 110 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 80%^n\ySpecijalne moci:\w No Recoil",// 3
  305. "\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",// 4
  306. "\yOruzije:\w UMP45, TMP^n\yEnergija:\w 110 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Ima komplet za prvu pomoc",// 5
  307. "\yOruzije:\w MP5,Elites^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Ima dve rakete",// 6
  308. "\yOruzije:\w Svi pistolji^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w Neogranicen broj metkova",// 7
  309. "\yOruzije:\w SG550, Elites ^n\yEnergija:\w 50 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 130%^n\ySpecijalne moci:\w Manje je vidljiv i ima necujne cizme",// 8
  310. "\yOruzije:\w M3, ump45^n\yEnergija:\w 90 HP^n\yArmor:\w 200 AP^n\yBrzina:\w 120%^n\ySpecijalne moci:\w Manje je vidljiv i ima Vojnu tajnu 1/6",// 9
  311. "\yOruzije:\w Deagle, HE^n\yEnergija:\w 100 HP^n\yArmor:\w 100 AP^n\yBrzina:\w 100%^n\ySpecijalne moci:\w Ima jednu raketu,manje je vidljiv i povecanu gravitaciju",// 10
  312. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  313. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  314. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  315. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  316. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  317. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  318. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  319. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  320. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  321. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  322. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  323. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  324. "\yOruzije:\w ^n\yEnergija:\w HP^n\yArmor:\w AP^n\yBrzina:\w ^n\ySpecijalne moci:\w ",//
  325. "\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",// 11
  326. "\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)",// 12
  327. "\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",// 13
  328. "\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",// 14
  329. "\yOruzije:\w GAIL + P228,^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 135%^n\ySpecijalne moci:\w Nema",// 15
  330. "\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",// 16
  331. "\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",// 17
  332. "\yOruzije:\w M4a1^n\yEnergija:\w 100 HP^n\yArmor:\w 0 AP^n\yBrzina:\w 80%^n\ySpecijalne moci:\w Otporan na noz"// 18
  333. };
  334.  
  335. new broj_medkit_igraca[33];
  336. new broj_raketa_igraca[33];
  337. new Float:prethodna_raketa_igraca[33];
  338. new broj_min_igraca[33];
  339. new broj_dinamita_igraca[33];
  340. new broj_skokova_igraca[33];
  341. new iskustvo_levelu[33] = 75
  342.  
  343. new bool:freezetime = true;
  344.  
  345. public plugin_init()
  346. {
  347. register_plugin(PLUGIN, VERSION, AUTHOR);
  348.  
  349. g_vault = nvault_open("CodMod");
  350.  
  351. register_think("MedKit","MedKitThink");
  352.  
  353. RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
  354. RegisterHam(Ham_Spawn, "player", "Pocetak", 1);
  355. RegisterHam(Ham_Touch, "armoury_entity", "DodirOruzija");
  356. RegisterHam(Ham_Touch, "weapon_shield", "DodirOruzija");
  357. RegisterHam(Ham_Touch, "weaponbox", "DodirOruzija");
  358.  
  359. register_forward(FM_CmdStart, "CmdStart");
  360. register_forward(FM_EmitSound, "EmitSound");
  361.  
  362. register_logevent("PocetakRunde", 2, "1=Round_Start");
  363.  
  364. register_event("DeathMsg", "Death", "ade");
  365. register_event("Damage", "Damage", "b", "2!=0");
  366. register_event("CurWeapon","CurWeapon","be", "1=1");
  367. register_event("HLTV", "novaRunda", "a", "1=0", "2=0");
  368.  
  369. register_touch("Rocket", "*" , "DodirRakete");
  370. register_touch("Mine", "player", "DodirMine");
  371.  
  372. cvar_xp_za_ubistvo = register_cvar("cod_killxp", "70");
  373.  
  374. register_clcmd("say /klasa", "IzaberiKlasu");
  375. register_clcmd("say /opis", "OpisKlase");
  376. register_clcmd("say /predmet", "OpisPredmeta");
  377. register_clcmd("say /item", "OpisPredmeta");
  378. register_clcmd("say /drop", "IzbaciPredmet");
  379. register_clcmd("say /izbaci", "IzbaciPredmet");
  380. register_clcmd("say /reset", "KomandaResetujPoene");
  381. register_clcmd("say /shop", "Shop");
  382. register_clcmd("say /pomoc", "Pomoc");
  383. register_clcmd("say /premium","premium_user")
  384. register_clcmd("say /help", "Pomoc");
  385. register_clcmd("fullupdate", "BlokirajKomande");
  386.  
  387. g_msg_screenfade = get_user_msgid("ScreenFade");
  388.  
  389. SyncHudObj = CreateHudSyncObj();
  390. SyncHudObj3 = CreateHudSyncObj();
  391.  
  392. register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlase");
  393. iskustvo_za_pare = 400;
  394. iskustvo_za_mnogopara = 1000;
  395.  
  396. format(za_hejtere, 10, "1")
  397. }
  398. public premium_user(id)
  399. {
  400. ColorChat(id, NORMAL, "Za Premium klase,kontaktirajte nas: Kontakt : FB ( Arpi Barsi ) ; Steam : clarionluckey11")
  401. }
  402.  
  403. public inform(id)
  404. {
  405. ColorChat(id, NORMAL, "Da vidite sta je potrebno za premium klase,say: /premium")
  406. }
  407.  
  408. public client_connect(id)
  409. {
  410. set_task(3.0, "inform");
  411. }
  412.  
  413. public plugin_cfg()
  414. {
  415. server_cmd("sv_maxspeed 9999");
  416. }
  417.  
  418. public plugin_precache()
  419. {
  420. new Entity = create_entity( "info_map_parameters" );
  421.  
  422. DispatchKeyValue( Entity, "buying", "3" );
  423. DispatchSpawn( Entity );
  424.  
  425. sprite_white = precache_model("sprites/white.spr") ;
  426. sprite_blast = precache_model("sprites/dexplo.spr");
  427. sprite_beam = precache_model("sprites/zbeam4.spr")
  428.  
  429. precache_sound("QTM_CodMod/select.wav");
  430. precache_sound("QTM_CodMod/start.wav");
  431. precache_sound("QTM_CodMod/start2.wav");
  432. precache_sound("QTM_CodMod/levelup.wav");
  433.  
  434. precache_model("models/w_medkit.mdl");
  435. precache_model("models/rpgrocket.mdl");
  436. precache_model("models/mine.mdl");
  437. }
  438.  
  439. public pfn_keyvalue( Entity )
  440. {
  441. new ClassName[ 20 ], Dummy[ 2 ];
  442. copy_keyvalue( ClassName, charsmax( ClassName ), Dummy, charsmax( Dummy ), Dummy, charsmax( Dummy ) );
  443.  
  444. if( equal( ClassName, "info_map_parameters" ) )
  445. {
  446. remove_entity( Entity );
  447. return PLUGIN_HANDLED ;
  448. }
  449. return PLUGIN_CONTINUE;
  450. }
  451.  
  452. public CmdStart(id, uc_handle)
  453. {
  454. if(!is_user_alive(id))
  455. return FMRES_IGNORED;
  456.  
  457. new button = get_uc(uc_handle, UC_Buttons);
  458. new flags = pev(id, pev_flags);
  459.  
  460. if(informacije_predmet_igraca[id][0] == 11)
  461. {
  462. new oldbutton = pev(id, pev_oldbuttons);
  463.  
  464. if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && broj_skokova_igraca[id] > 0)
  465. {
  466. broj_skokova_igraca[id]--;
  467. new Float:velocity[3];
  468. pev(id, pev_velocity,velocity);
  469. velocity[2] = random_float(265.0,285.0);
  470. set_pev(id, pev_velocity,velocity);
  471. }
  472. else if(flags & FL_ONGROUND)
  473. {
  474. broj_skokova_igraca[id] = 0;
  475. if(informacije_predmet_igraca[id][0] == 11)
  476. broj_skokova_igraca[id]++;
  477. if(klasa_igraca[id] == Marinac)
  478. broj_skokova_igraca[id]++;
  479. }
  480. }
  481.  
  482. if(button & IN_ATTACK)
  483. {
  484. new Float:punchangle[3];
  485.  
  486. if(informacije_predmet_igraca[id][0] == 20 || klasa_igraca[id] == Pro_Strelac)
  487. set_pev(id, pev_punchangle, punchangle);
  488. if(informacije_predmet_igraca[id][0] == 23)
  489. {
  490. set_pev(id, pev_punchangle, punchangle);
  491. for(new i=0; i<3;i++)
  492. punchangle[i]*=0.9;
  493. set_pev(id, pev_punchangle, punchangle);
  494. }
  495. }
  496.  
  497. 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)
  498. {
  499. informacije_predmet_igraca[id][1] = floatround(get_gametime());
  500. new Float:velocity[3];
  501. VelocityByAim(id, 700, velocity);
  502. velocity[2] = random_float(265.0,285.0);
  503. set_pev(id, pev_velocity, velocity);
  504. }
  505. return FMRES_IGNORED;
  506. }
  507.  
  508. public Shop(id)
  509. {
  510. new menu = menu_create("Shop:", "Shop_Handle");
  511. menu_additem(menu, "Aspirin \r[Dodaje 50 HP] \yCena: \r3000$");
  512. menu_additem(menu, "Morfijum \r[Dodaje 100 HP] \yCena: \r5000$");
  513. menu_additem(menu, "RedBull \r[Veci Skok + Veca Brzina] \yCena: \r7500$");
  514. menu_additem(menu, "Iskustvo \r[Dodaje 400 XP] \yCena: \r5000$");
  515. menu_additem(menu, "Super iskustvo \r[Dodaje 1000 XP] \yCena: \r10000$");
  516. menu_additem(menu, "Slucajni Izbor \r[Predmet] \yCena: \r3000$");
  517. menu_additem(menu, "Mine \r[Dobijate 2 Mine] \yCena: \r10000$");
  518. menu_display(id, menu);
  519. }
  520. public Shop_Handle(id, menu, item)
  521. {
  522. client_cmd(id, "spk QTM_CodMod/select");
  523.  
  524. if(item == MENU_EXIT)
  525. {
  526. menu_destroy(menu);
  527. return PLUGIN_CONTINUE;
  528. }
  529. menu_display(id, menu);
  530. new pare_igraca = cs_get_user_money(id);
  531. new hp = get_user_health(id);
  532. switch(item)
  533. {
  534. case 0:
  535. {
  536. new cena = 3000;
  537. if (pare_igraca<cena)
  538. {
  539. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  540. return PLUGIN_CONTINUE;
  541. }
  542. if(hp >= maximalna_energija_igraca[id] || klasa_igraca[id] == Assassin)
  543. {
  544. ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
  545. return PLUGIN_CONTINUE;
  546. }
  547. new ammount=50;
  548. new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
  549. set_user_health(id, nova_energija);
  550. ColorChat(id,GREEN,"[Shop] ^1kupio si ^3Aspirin");
  551. cs_set_user_money(id, pare_igraca-cena);
  552. }
  553. case 1:
  554. {
  555. new cena = 5000;
  556. if (pare_igraca<cena)
  557. {
  558. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  559. return PLUGIN_CONTINUE;
  560. }
  561. if(hp >= maximalna_energija_igraca[id] || klasa_igraca[id] == Assassin)
  562. {
  563. ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
  564. return PLUGIN_CONTINUE;
  565. }
  566. new ammount=100;
  567. new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
  568. set_user_health(id, nova_energija);
  569. ColorChat(id,GREEN,"[Shop] ^1Kupio si^3 Morfijum");
  570. cs_set_user_money(id, pare_igraca-cena);
  571. }
  572. case 2:
  573. {
  574. new cena = 7500;
  575. if (pare_igraca<cena)
  576. {
  577. ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
  578. return PLUGIN_CONTINUE;
  579. }
  580. set_user_gravity(id,get_user_gravity(id) - 0.3);
  581. set_user_maxspeed(id,get_user_maxspeed(id) + 10.0);
  582. ColorChat(id,GREEN,"[Shop]^1 Kupio si^3 RedBull");
  583. cs_set_user_money(id, pare_igraca-cena)
  584. }
  585. case 3:
  586. {
  587. new cena = 5000;
  588. if (pare_igraca<cena)
  589. {
  590. ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
  591. return PLUGIN_CONTINUE;
  592. }
  593. iskustvo_igraca[id] += iskustvo_za_pare;
  594. ColorChat(id,GREEN,"[Shop] ^1Kupio si ^3Iskustvo");
  595. cs_set_user_money(id, pare_igraca-cena)
  596. ProveriNivo(id);
  597. }
  598. case 4:
  599. {
  600. new cena = 10000;
  601. if (pare_igraca<cena)
  602. {
  603. ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
  604. return PLUGIN_CONTINUE;
  605. }
  606. iskustvo_igraca[id] += iskustvo_za_mnogopara;
  607. ColorChat(id,GREEN,"[Shop]^1Kupio si ^3Super Iskustvo");
  608. cs_set_user_money(id, pare_igraca-cena)
  609. ProveriNivo(id);
  610. }
  611. case 5:
  612. {
  613. new cena = 3000;
  614. if (pare_igraca<cena)
  615. {
  616. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno para!");
  617. return PLUGIN_CONTINUE;
  618. }
  619. cs_set_user_money(id, pare_igraca-cena)
  620. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  621. }
  622. case 6:
  623. {
  624. new cena = 10000;
  625. if (pare_igraca<cena)
  626. {
  627. ColorChat(id,RED,"[Shop]^1 Nemas dovoljno para!");
  628. return PLUGIN_HANDLED;
  629. }
  630. else if(klasa_igraca[id] == Vatrena_Podrska || klasa_igraca[id] == Marinac || klasa_igraca[id] == Gunner)
  631. {
  632. ColorChat(id,GREEN,"[Shop]^1 Vasa klasa ne moze da kupi mine");
  633. return PLUGIN_CONTINUE;
  634. }
  635. broj_min_igraca[id] +=2;
  636. ColorChat(id,GREEN,"[Shop]^1 Kupio si^3 2 ^1mine");
  637. cs_set_user_money(id, pare_igraca-cena)
  638. }
  639. }
  640. return PLUGIN_CONTINUE;
  641. }
  642.  
  643. public Pocetak(id)
  644. {
  645. if(!is_user_alive(id) || !is_user_connected(id))
  646. return PLUGIN_CONTINUE;
  647.  
  648. if(nova_klasa_igraca[id])
  649. {
  650. klasa_igraca[id] = nova_klasa_igraca[id];
  651. nova_klasa_igraca[id] = 0;
  652. strip_user_weapons(id);
  653. give_item(id, "weapon_knife");
  654.  
  655. UcitajPodatke(id, klasa_igraca[id]);
  656. }
  657.  
  658. if(!klasa_igraca[id])
  659. {
  660. IzaberiKlasu(id);
  661. return PLUGIN_CONTINUE;
  662. }
  663.  
  664. switch(klasa_igraca[id])
  665. {
  666. case Snajperista:
  667. {
  668. give_item(id, "weapon_awp");
  669. give_item(id, "weapon_deagle");
  670. give_item(id, "weapon_hegrenade");
  671. give_item(id, "weapon_flashbang");
  672. give_item(id, "weapon_smokegrenade");
  673. }
  674. case Marinac:
  675. {
  676. give_item(id, "weapon_deagle");
  677. give_item(id, "weapon_flashbang");
  678. give_item(id, "weapon_flashbang");
  679. }
  680. case Pro_Strelac:
  681. {
  682. give_item(id, "weapon_m4a1");
  683. give_item(id, "weapon_ak47");
  684. }
  685. case Mitraljezac:
  686. {
  687. give_item(id, "weapon_m249");
  688. give_item(id, "weapon_hegrenade");
  689. give_item(id, "weapon_flashbang");
  690. give_item(id, "weapon_smokegrenade");
  691. }
  692. case Doktor:
  693. {
  694. give_item(id, "weapon_ump45");
  695. give_item(id, "weapon_tmp");
  696. broj_medkit_igraca[id] = 2;
  697. }
  698. case Vatrena_Podrska:
  699. {
  700. give_item(id, "weapon_mp5navy");
  701. give_item(id, "weapon_elites");
  702. broj_raketa_igraca[id] = 2;
  703. }
  704. case Revolveras:
  705. {
  706. give_item(id, "weapon_usp");
  707. give_item(id, "weapon_glock");
  708. give_item(id, "weapon_deagle");
  709. give_item(id, "weapon_elites");
  710. }
  711. case Hitman:
  712. {
  713. give_item(id, "weapon_sg550");
  714. give_item(id, "weapon_elites");
  715. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
  716. }
  717. case Inzinjer:
  718. {
  719. give_item(id, "weapon_m3");
  720. give_item(id, "weapon_ump45");
  721. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 90);
  722. }
  723. case Predator:
  724. {
  725. give_item(id, "weapon_deagle");
  726. give_item(id, "weapon_hegrenade");
  727. }
  728. case ProMiner:
  729. {
  730. give_item(id, "weapon_p90");
  731. give_item(id, "weapon_deagle");
  732. broj_min_igraca[id] = 4;
  733. }
  734. case General:
  735. {
  736. give_item(id, "weapon_sg552");
  737. give_item(id, "weapon_tmp");
  738. }
  739. case Policajac:
  740. {
  741. give_item(id, "weapon_aug");
  742. give_item(id, "weapon_flashbang");
  743. }
  744. case Komandos:
  745. {
  746. give_item(id, "weapon_g3sg1");
  747. give_item(id, "weapon_deagle");
  748. give_item(id, "weapon_smokegrenade");
  749. }
  750. case Univerzalni_vojnik:
  751. {
  752. give_item(id, "weapon_m4a1");
  753. give_item(id, "weapon_fiveseven");
  754. }
  755. case Terrorista:
  756. {
  757. give_item(id, "weapon_ak47");
  758. give_item(id, "weapon_elites");
  759. }
  760. case Placenik:
  761. {
  762. give_item(id, "weapon_galil");
  763. give_item(id, "weapon_mp5navy");
  764. }
  765. case Pukovnik:
  766. {
  767. give_item(id, "weapon_m4a1");
  768. give_item(id, "weapon_hegdenade");
  769. give_item(id, "weapon_flashbang");
  770. give_item(id, "weapon_flashbang");
  771. give_item(id, "weapon_smokegrenade");
  772. }
  773. case Napadac:
  774. {
  775. give_item(id, "weapon_xm1014");
  776. give_item(id, "weapon_famas");
  777. }
  778. case Grammaton_Cleric:
  779. {
  780. give_item(id, "weapon_ak47");
  781. give_item(id, "weapon_elites");
  782. }
  783. case Defender:
  784. {
  785. give_item(id, "weapon_shield")
  786. give_item(id, "weapon_deagle");
  787. }
  788. case Freedom_Fighter:
  789. {
  790. give_item(id, "weapon_tmp");
  791. give_item(id, "weapon_deagle");
  792. give_item(id, "weapon_hegdenade");
  793. give_item(id, "weapon_flashbang");
  794. give_item(id, "weapon_flashbang");
  795. give_item(id, "weapon_smokegrenade");
  796. }
  797. case Gordon_Freeman:
  798. {
  799. give_item(id, "weapon_ak47");
  800. give_item(id, "weapon_xm1014");
  801. }
  802. case Partizan:
  803. {
  804. give_item(id, "weapon_p90");
  805. give_item(id, "weapon_flashbang");
  806. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
  807. }
  808. case Spijun:
  809. {
  810. give_item(id, "weapon_deagle");
  811. PromeniModel(id, 0);
  812. }
  813. case Bombarder:
  814. {
  815. give_item(id, "weapon_m4a1");
  816. give_item(id, "weapon_deagle");
  817. give_item(id, "weapon_hegrenade");
  818. }
  819. case Gunner:
  820. {
  821. give_item(id, "weapon_g3sg1");
  822. broj_raketa_igraca[id] = 1 ;
  823. }
  824. case Pesadinac:
  825. {
  826. give_item(id, "weapon_galil");
  827. give_item(id, "weapon_p228");
  828. }
  829. case Pobunjenik:
  830. {
  831. give_item(id, "weapon_sg552");
  832. give_item(id, "weapon_hegrenade");
  833. broj_min_igraca[id] = 1 ;
  834. }
  835. case Assassin:
  836. {
  837. give_item(id, "weapon_knife");
  838. give_item(id, "weapon_usp");
  839. }
  840. case SWAT:
  841. {
  842. give_item(id, "weapon_m4a1");
  843. }
  844. }
  845.  
  846. if(poeni_igraca[id]>0)
  847. DodelaPoena(id);
  848.  
  849. if(informacije_predmet_igraca[id][0] == 10 || informacije_predmet_igraca[id][0] == 9)
  850. give_item(id, "weapon_hegrenade");
  851.  
  852. if(informacije_predmet_igraca[id][0] == 9)
  853. PromeniModel(id, 0);
  854.  
  855. if(informacije_predmet_igraca[id][0] == 1 || klasa_igraca[id] == Hitman)
  856. set_user_footsteps(id, 1);
  857. else
  858. set_user_footsteps(id, 0);
  859.  
  860. if(informacije_predmet_igraca[id][0] == 13)
  861. give_item(id, "weapon_awp");
  862.  
  863. if(informacije_predmet_igraca[id][0] == 16)
  864. give_item(id, "weapon_deagle");
  865.  
  866. if(informacije_predmet_igraca[id][0] == 19)
  867. informacije_predmet_igraca[id][1] = 1;
  868.  
  869. if(informacije_predmet_igraca[id][0] == 27)
  870. informacije_predmet_igraca[id][1] = 3;
  871.  
  872. if(informacije_predmet_igraca[id][0] == 29)
  873. set_user_gravity(id,get_user_gravity(id) - 0.4);
  874.  
  875. new weapons[32];
  876. new weaponsnum;
  877. get_user_weapons(id, weapons, weaponsnum);
  878. for(new i=0; i<weaponsnum; i++)
  879. if(is_user_alive(id))
  880. if(maxAmmo[weapons[i]] > 0)
  881. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  882.  
  883. PostaviAtribute(id)
  884.  
  885. return PLUGIN_CONTINUE;
  886. }
  887.  
  888. public PostaviAtribute(id)
  889. {
  890. smanjene_povrede_igraca[id] = (0.7*(1.0-floatpower(1.1, -0.112311341*float(snaga_igraca[id]))));
  891. maximalna_energija_igraca[id] = energija_klasa[klasa_igraca[id]]+energija_igraca[id]*2;
  892. brzina_igraca[id] = STANDARDNA_brzina*brzina_klasa[klasa_igraca[id]]+floatround(kondicija_igraca[id]*1.3);
  893.  
  894. if(informacije_predmet_igraca[id][0] == 18 && klasa_igraca[id] != Assassin)
  895. {
  896. maximalna_energija_igraca[id] += 100;
  897. brzina_igraca[id] -= 0.4;
  898. }
  899.  
  900. if(informacije_predmet_igraca[id][0] == 25 && klasa_igraca[id] != Assassin)
  901. {
  902. maximalna_energija_igraca[id] += 50;
  903. brzina_igraca[id] -= 0.3;
  904. }
  905. if(informacije_predmet_igraca[id][0] == 30)
  906. {
  907. brzina_igraca[id] += 1.2;
  908. }
  909. set_user_armor(id, oklop_klase[klasa_igraca[id]]);
  910.  
  911. if(informacije_predmet_igraca[id][0] == 17)
  912. set_user_armor(id, 500);
  913.  
  914. set_user_health(id, maximalna_energija_igraca[id]);
  915.  
  916. if(klasa_igraca[id] == Partizan)
  917. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
  918. else
  919. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
  920. }
  921.  
  922. public PocetakRunde()
  923. {
  924. freezetime = false;
  925. for(new id=0;id<=32;id++)
  926. {
  927. if(!is_user_alive(id))
  928. continue;
  929.  
  930. set_task(0.1, "PostaviBrzinu", id+ZADATAK_POSTAVI_brzinu);
  931.  
  932. switch(get_user_team(id))
  933. {
  934. case 1: client_cmd(id, "spk QTM_CodMod/start2");
  935. case 2: client_cmd(id, "spk QTM_CodMod/start");
  936. }
  937. }
  938. }
  939.  
  940. public novaRunda()
  941. {
  942. freezetime = true;
  943. new iEnt = find_ent_by_class(-1, "Mine");
  944. while(iEnt > 0)
  945. {
  946. remove_entity(iEnt);
  947. iEnt = find_ent_by_class(iEnt, "Mine");
  948. }
  949. }
  950.  
  951. public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
  952. {
  953. 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])
  954. return HAM_IGNORED;
  955.  
  956. new health = get_user_health(this);
  957. new weapon = get_user_weapon(idattacker);
  958.  
  959. if(health < 2)
  960. return HAM_IGNORED;
  961.  
  962. if(informacije_predmet_igraca[this][0] == 27 && informacije_predmet_igraca[this][1]>0)
  963. {
  964. informacije_predmet_igraca[this][1]--;
  965. return HAM_SUPERCEDE;
  966. }
  967.  
  968. if(snaga_igraca[this]>0)
  969. damage -= smanjene_povrede_igraca[this]*damage;
  970.  
  971. if(informacije_predmet_igraca[this][0] == 2 || informacije_predmet_igraca[this][0] == 3)
  972. damage-=(float(informacije_predmet_igraca[this][1])<damage)? float(informacije_predmet_igraca[this][1]): damage;
  973.  
  974. if(informacije_predmet_igraca[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
  975. damage*=2.0;
  976.  
  977. if(informacije_predmet_igraca[idattacker][0] == 10)
  978. damage+=informacije_predmet_igraca[idattacker][1];
  979.  
  980. if(informacije_predmet_igraca[this][0] == 12 || klasa_igraca[idattacker] == Inzinjer)
  981. damage-=(5.0<damage)? 5.0: damage;
  982.  
  983. if(weapon == CSW_AWP && informacije_predmet_igraca[idattacker][0] == 13)
  984. damage=float(health);
  985.  
  986. if(informacije_predmet_igraca[idattacker][0] == 21)
  987. damage+=10;
  988.  
  989. if(informacije_predmet_igraca[idattacker][0] == 22)
  990. damage+=20;
  991.  
  992. if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
  993. {
  994. if((informacije_predmet_igraca[idattacker][0] == 9 && random_num(1, informacije_predmet_igraca[idattacker][1]) == 1) || informacije_predmet_igraca[idattacker][0] == 10)
  995. damage = float(health);
  996. }
  997.  
  998. if(weapon == CSW_KNIFE)
  999. {
  1000. if(klasa_igraca[this] == SWAT)
  1001. return HAM_SUPERCEDE;
  1002. if(informacije_predmet_igraca[this][0] == 4)
  1003. damage=damage*1.4+inteligencija_igraca[idattacker];
  1004. 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))
  1005. damage = float(health);
  1006. }
  1007. if(weapon == CSW_AWP)
  1008. {
  1009. if(klasa_igraca[idattacker] == Snajperista)
  1010. damage = float(health);
  1011. }
  1012.  
  1013. if(informacije_predmet_igraca[this][0] == 26 && random_num(1, informacije_predmet_igraca[this][1]) == 1)
  1014. {
  1015. SetHamParamEntity(3, this);
  1016. SetHamParamEntity(1, idattacker);
  1017. }
  1018.  
  1019.  
  1020. SetHamParamFloat(4, damage);
  1021. return HAM_IGNORED;
  1022. }
  1023.  
  1024. public Damage(id)
  1025. {
  1026. new attacker = get_user_attacker(id);
  1027. new damage = read_data(2);
  1028. if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker || !klasa_igraca[attacker])
  1029. return PLUGIN_CONTINUE;
  1030.  
  1031. if(informacije_predmet_igraca[attacker][0] == 12 && random_num(1, informacije_predmet_igraca[id][1]) == 1)
  1032. Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230);
  1033.  
  1034. if(get_user_team(id) != get_user_team(attacker))
  1035. {
  1036. while(damage>20)
  1037. {
  1038. damage-=20;
  1039. iskustvo_igraca[attacker]++;
  1040. }
  1041. }
  1042. ProveriNivo(attacker);
  1043. return PLUGIN_CONTINUE;
  1044. }
  1045.  
  1046. public Death()
  1047. {
  1048. new id = read_data(2);
  1049. new attacker = read_data(1);
  1050.  
  1051. if(!is_user_alive(attacker) || !is_user_connected(attacker))
  1052. return PLUGIN_CONTINUE;
  1053.  
  1054. new weapon = get_user_weapon(attacker);
  1055. new energija = get_user_health(attacker);
  1056.  
  1057. if(get_user_team(id) != get_user_team(attacker) && klasa_igraca[attacker])
  1058. {
  1059. new iskustvo_za_ubistvo = get_pcvar_num(cvar_xp_za_ubistvo);
  1060. new novo_iskustvo = get_pcvar_num(cvar_xp_za_ubistvo);
  1061.  
  1062. if(klasa_igraca[attacker] == Policajac && klasa_igraca[id] != Policajac)
  1063. novo_iskustvo += iskustvo_za_ubistvo*2;
  1064.  
  1065. if(level_igraca[id] > level_igraca[attacker])
  1066. novo_iskustvo += (level_igraca[id]-level_igraca[attacker])*(iskustvo_za_ubistvo/10);
  1067.  
  1068. if(klasa_igraca[attacker] == Revolveras || informacije_predmet_igraca[attacker][0] == 15 && maxClip[weapon] != -1)
  1069. {
  1070.  
  1071. new nova_energija = (energija+20<maximalna_energija_igraca[attacker])? energija+20: maximalna_energija_igraca[attacker];
  1072. set_user_clip(attacker, maxClip[weapon]);
  1073. set_user_health(attacker, nova_energija);
  1074. }
  1075. #if defined BOTY
  1076. if(is_user_bot2(attacker) && random(9) == 0)
  1077. IzbaciPredmet(id);
  1078. #endif
  1079. if(!informacije_predmet_igraca[attacker][0])
  1080. DajPredmet(attacker, random_num(1, sizeof naziv_predmeta-1));
  1081.  
  1082. if(informacije_predmet_igraca[attacker][0] == 14)
  1083. {
  1084. new nova_energija = (energija+50<maximalna_energija_igraca[attacker])? energija+50: maximalna_energija_igraca[attacker];
  1085. set_user_health(attacker, nova_energija);
  1086. }
  1087. iskustvo_igraca[attacker] += novo_iskustvo;
  1088. }
  1089.  
  1090. ProveriNivo(attacker);
  1091.  
  1092. if(informacije_predmet_igraca[id][0] == 7 && random_num(1, informacije_predmet_igraca[id][1]) == 1)
  1093. set_task(0.1, "Provera", id+ZADATAK_PROVERA);
  1094.  
  1095. return PLUGIN_CONTINUE;
  1096. }
  1097.  
  1098. public client_putinserver(id)
  1099. {
  1100. DeleteSkills(id);
  1101.  
  1102. ObrisiZadatke(id);
  1103. Obrisipredmet(id);
  1104.  
  1105. set_task(3.0, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
  1106. set_task(10.0, "PokaziReklame", id+ZADATAK_POKAZI_REKLAME);
  1107. }
  1108.  
  1109. public client_disconnect(id)
  1110. {
  1111. SacuvajPodatke(id);
  1112. DeleteSkills(id);
  1113. ObrisiZadatke(id);
  1114. Obrisipredmet(id);
  1115. }
  1116. public DeleteSkills(id)
  1117. {
  1118. klasa_igraca[id] = 0;
  1119. level_igraca[id] = 0;
  1120. iskustvo_igraca[id] = 0;
  1121. poeni_igraca[id] = 0;
  1122. energija_igraca[id] = 0;
  1123. inteligencija_igraca[id] = 0;
  1124. snaga_igraca[id] = 0;
  1125. kondicija_igraca[id] = 0;
  1126. maximalna_energija_igraca[id] = 0;
  1127. brzina_igraca[id] = 0.0;
  1128. }
  1129.  
  1130. public ObrisiZadatke(id)
  1131. {
  1132. remove_task(id+ZADATAK_POKAZI_INFORMACIJE);
  1133. remove_task(id+ZADATAK_POKAZI_REKLAME);
  1134. remove_task(id+ZADATAK_POSTAVI_brzinu);
  1135. remove_task(id+ZADATAK_PROVERA);
  1136. }
  1137.  
  1138. public OpisKlase(id)
  1139. {
  1140. new menu = menu_create("Izaberi Klasu:", "OpisKlase_Handle");
  1141. for(new i=1; i <sizeof naziv_klase; i++)
  1142. menu_additem(menu, naziv_klase[i]);
  1143. menu_setprop(menu, MPROP_EXITNAME, "Izlaz");
  1144. menu_setprop(menu, MPROP_BACKNAME, "Prethodna strana");
  1145. menu_setprop(menu, MPROP_NEXTNAME, "Sledeca strana");
  1146. menu_display(id, menu);
  1147.  
  1148. client_cmd(id, "spk QTM_CodMod/select");
  1149. }
  1150.  
  1151. public OpisKlase_Handle(id, menu, item)
  1152. {
  1153. client_cmd(id, "spk QTM_CodMod/select");
  1154.  
  1155. if(item++ == MENU_EXIT)
  1156. {
  1157. menu_destroy(menu);
  1158. return PLUGIN_CONTINUE;
  1159. }
  1160. new opis[512];
  1161. format(opis, charsmax(opis), "\yKlasa: \w%s^n%s", naziv_klase[item], opis_klase[item]);
  1162. show_menu(id, 1023, opis);
  1163.  
  1164. return PLUGIN_CONTINUE;
  1165. }
  1166. public IzaberiKlasu(id)
  1167. {
  1168. new menu = menu_create("Izaberi klasu:", "IzaberiKlasu_Handle");
  1169. new klasa[50];
  1170. for(new i=1; i<sizeof naziv_klase; i++)
  1171. {
  1172. UcitajPodatke(id, i);
  1173. format(klasa, 49, "%s \yLevel: %i", naziv_klase[i], level_igraca[id]);
  1174. menu_additem(menu, klasa);
  1175. }
  1176.  
  1177. UcitajPodatke(id, klasa_igraca[id]);
  1178.  
  1179. menu_setprop(menu, MPROP_EXITNAME, "Izlaz");
  1180. menu_setprop(menu, MPROP_BACKNAME, "Prethodna strana");
  1181. menu_setprop(menu, MPROP_NEXTNAME, "Sledeca strana");
  1182. menu_display(id, menu);
  1183.  
  1184. client_cmd(id, "spk QTM_CodMod/select");
  1185. #if defined BOTY
  1186. if(is_user_bot2(id))
  1187. IzaberiKlasu_Handle(id, menu, random(sizeof naziv_klase-1));
  1188. #endif
  1189. }
  1190.  
  1191. public IzaberiKlasu_Handle(id, menu, item)
  1192. {
  1193. client_cmd(id, "spk QTM_CodMod/select");
  1194.  
  1195. if(item == MENU_EXIT)
  1196. {
  1197. menu_destroy(menu);
  1198. return PLUGIN_CONTINUE;
  1199. }
  1200.  
  1201. item++;
  1202.  
  1203. if(item == klasa_igraca[id])
  1204. return PLUGIN_CONTINUE;
  1205.  
  1206. if(item == Assassin && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1207. {
  1208. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
  1209. IzaberiKlasu(id);
  1210. return PLUGIN_CONTINUE;
  1211. }
  1212. if(item == General && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1213. {
  1214. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
  1215. IzaberiKlasu(id);
  1216. return PLUGIN_CONTINUE;
  1217. }
  1218. if(item == Univerzalni_vojnik && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1219. {
  1220. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
  1221. IzaberiKlasu(id);
  1222. return PLUGIN_CONTINUE;
  1223. }
  1224. if(item == Pukovnik && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1225. {
  1226. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
  1227. IzaberiKlasu(id);
  1228. return PLUGIN_CONTINUE;
  1229. }
  1230. if(item == Freedom_Fighter && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1231. {
  1232. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
  1233. IzaberiKlasu(id);
  1234. return PLUGIN_CONTINUE;
  1235. }
  1236. if(item == Gordon_Freeman && !(get_user_flags(id) & ADMIN_LEVEL_A))
  1237. {
  1238. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
  1239. IzaberiKlasu(id);
  1240. return PLUGIN_CONTINUE;
  1241. }
  1242. if(klasa_igraca[id])
  1243. {
  1244. nova_klasa_igraca[id] = item;
  1245. ColorChat(id, NORMAL, "^4[COD:MW] ^1Klasa ce biti izmenjena u sledecoj rundi.");
  1246. }
  1247. else
  1248. {
  1249. klasa_igraca[id] = item;
  1250. UcitajPodatke(id, klasa_igraca[id]);
  1251. Pocetak(id);
  1252. }
  1253. return PLUGIN_CONTINUE;
  1254. }
  1255.  
  1256. public DodelaPoena(id)
  1257. {
  1258. new inteligencija[65], inteligencija10[65];
  1259. new energija[60], energija10[60];
  1260. new snaga[60], snaga10[60];
  1261. new kondicija[60], kondicija10[60];
  1262. new naslov[25];
  1263. format(inteligencija, 64, "Inteligencija: \r%i \y(Povecava napad)", inteligencija_igraca[id]);
  1264. format(energija, 59, "Energija: \r%i \y(Povecaca energiju)", energija_igraca[id]);
  1265. format(snaga, 59, "Snaga: \r%i \y(Smanjuje povrede)", snaga_igraca[id]);
  1266. format(kondicija, 59, "Kondicija: \r%i \y(Povecava tempo hodanja)", kondicija_igraca[id]);
  1267. format(inteligencija10, 64, "Dodaj 10 poena na inteligenciju");
  1268. format(energija10, 59, "Dodaj 10 poena na energiju");
  1269. format(snaga10, 59, "Dodaj 10 poena na snagu");
  1270. format(kondicija10, 59, "Dodaj 10 poena na kondiciju");
  1271. format(naslov, 24, "Dodeli poena(%i):", poeni_igraca[id]);
  1272. new menu = menu_create(naslov, "DodelaPoena_Handler");
  1273. menu_additem(menu, inteligencija);
  1274. menu_additem(menu, energija);
  1275. menu_additem(menu, snaga);
  1276. menu_additem(menu, kondicija);
  1277. menu_additem(menu, inteligencija10);
  1278. menu_additem(menu, energija10);
  1279. menu_additem(menu, snaga10);
  1280. menu_additem(menu, kondicija10);
  1281. menu_display(id, menu);
  1282. #if defined BOTY
  1283. if(is_user_bot2(id))
  1284. DodelaPoena_Handler(id, menu, random(4));
  1285. #endif
  1286. }
  1287.  
  1288. public DodelaPoena_Handler(id, menu, item)
  1289. {
  1290. client_cmd(id, "spk QTM_CodMod/select");
  1291.  
  1292. if(item == MENU_EXIT)
  1293. {
  1294. menu_destroy(menu);
  1295. return PLUGIN_CONTINUE;
  1296. }
  1297.  
  1298.  
  1299. if(poeni_igraca[id] < 1)
  1300. return PLUGIN_CONTINUE;
  1301.  
  1302. switch(item)
  1303. {
  1304. case 0:
  1305. {
  1306. if(inteligencija_igraca[id]<4001)
  1307. {
  1308. inteligencija_igraca[id]++;
  1309. poeni_igraca[id]--;
  1310. }
  1311. else
  1312. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo inteligencije");
  1313.  
  1314. }
  1315. case 1:
  1316. {
  1317. if(energija_igraca[id]<4001)
  1318. {
  1319. energija_igraca[id]++;
  1320. poeni_igraca[id]--;
  1321. }
  1322. else
  1323. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo energije");
  1324. }
  1325. case 2:
  1326. {
  1327. if(snaga_igraca[id]<4001)
  1328. {
  1329. snaga_igraca[id]++;
  1330. poeni_igraca[id]--;
  1331. }
  1332. else
  1333. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo snage");
  1334.  
  1335. }
  1336. case 3:
  1337. {
  1338. if(kondicija_igraca[id]<4001)
  1339. {
  1340. kondicija_igraca[id]++;
  1341. poeni_igraca[id]--;
  1342. }
  1343. else
  1344. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo kondicije");
  1345. }
  1346. case 4:
  1347. {
  1348. if(poeni_igraca[id] < 10)
  1349. {
  1350. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  1351. }
  1352. else if(inteligencija_igraca[id]<4001)
  1353. {
  1354. inteligencija_igraca[id]+=10;
  1355. poeni_igraca[id]-=10
  1356. }
  1357. else
  1358. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo inteligencije");
  1359. }
  1360. case 5:
  1361. {
  1362. if(poeni_igraca[id] < 10)
  1363. {
  1364. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  1365. }
  1366. else if(energija_igraca[id]<4001)
  1367. {
  1368. energija_igraca[id]+=10;
  1369. poeni_igraca[id]-=10;
  1370. }
  1371. else
  1372. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo energije");
  1373. }
  1374. case 6:
  1375. {
  1376. if(poeni_igraca[id] < 10)
  1377. {
  1378. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  1379. }
  1380. else if(snaga_igraca[id]<4001)
  1381. {
  1382. snaga_igraca[id]+=10;
  1383. poeni_igraca[id]-=10;
  1384. }
  1385. else
  1386. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo snage");
  1387. }
  1388. case 7:
  1389. {
  1390. if(poeni_igraca[id] < 10)
  1391. {
  1392. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dovoljno poena");
  1393. }
  1394. else if(kondicija_igraca[id]<4001)
  1395. {
  1396. kondicija_igraca[id]+=10;
  1397. poeni_igraca[id]-=10;
  1398. }
  1399. else
  1400. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo kondicije");
  1401. }
  1402.  
  1403. }
  1404.  
  1405. if(poeni_igraca[id]>0)
  1406. DodelaPoena(id);
  1407.  
  1408. return PLUGIN_CONTINUE;
  1409. }
  1410.  
  1411. public KomandaResetujPoene(id)
  1412. {
  1413. ColorChat(id, NORMAL, "^4[COD:MW] ^1Poeni su resetovani");
  1414. client_cmd(id, "spk QTM_CodMod/select");
  1415.  
  1416. ResetujPoene(id)
  1417. }
  1418.  
  1419. public ResetujPoene(id)
  1420. {
  1421. poeni_igraca[id] = level_igraca[id]*2-2;
  1422. inteligencija_igraca[id] = 0;
  1423. energija_igraca[id] = 0;
  1424. kondicija_igraca[id] = 0;
  1425. snaga_igraca[id] = 0;
  1426.  
  1427. if(poeni_igraca[id])
  1428. DodelaPoena(id);
  1429. }
  1430.  
  1431. public KreirajMedKit(id)
  1432. {
  1433. if (!broj_medkit_igraca[id])
  1434. {
  1435. client_print(id, print_center, "Imate samo 2 paketa za prvu pomoc u jednoj rundi!");
  1436. return PLUGIN_CONTINUE;
  1437. }
  1438.  
  1439. if(inteligencija_igraca[id] < 1)
  1440. client_print(id, print_center, "Da koristite paket za prvu pomoc, morate povecati inteligenciju");
  1441.  
  1442. broj_medkit_igraca[id]--;
  1443.  
  1444. new Float:origin[3];
  1445. entity_get_vector(id, EV_VEC_origin, origin);
  1446.  
  1447. new ent = create_entity("info_target");
  1448. entity_set_string(ent, EV_SZ_classname, "MedKit");
  1449. entity_set_edict(ent, EV_ENT_owner, id);
  1450. entity_set_int(ent, EV_INT_solid, SOLID_NOT);
  1451. entity_set_vector(ent, EV_VEC_origin, origin);
  1452. entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
  1453.  
  1454.  
  1455. entity_set_model(ent, "models/w_medkit.mdl");
  1456. set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) ;
  1457. drop_to_floor(ent);
  1458.  
  1459. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
  1460.  
  1461. return PLUGIN_CONTINUE;
  1462. }
  1463.  
  1464. public MedKitThink(ent)
  1465. {
  1466. new id = entity_get_edict(ent, EV_ENT_owner);
  1467. new totem_dist = 300;
  1468. new totem_heal = 5+floatround(inteligencija_igraca[id]*0.5);
  1469. if (entity_get_edict(ent, EV_ENT_euser2) == 1)
  1470. {
  1471. new Float:forigin[3], origin[3];
  1472. entity_get_vector(ent, EV_VEC_origin, forigin);
  1473. FVecIVec(forigin,origin);
  1474.  
  1475. new entlist[33];
  1476. new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist, 32,forigin);
  1477.  
  1478. for (new i=0; i < numfound; i++)
  1479. {
  1480. new pid = entlist[i];
  1481.  
  1482. if (get_user_team(pid) != get_user_team(id))
  1483. continue;
  1484.  
  1485. new energija = get_user_health(pid);
  1486. new nova_energija = (energija+totem_heal<maximalna_energija_igraca[pid])?energija+totem_heal:maximalna_energija_igraca[pid];
  1487. if (is_user_alive(pid)) set_user_health(pid, nova_energija);
  1488. }
  1489.  
  1490. entity_set_edict(ent, EV_ENT_euser2, 0);
  1491. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5);
  1492.  
  1493. return PLUGIN_CONTINUE;
  1494. }
  1495.  
  1496. if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
  1497. {
  1498. remove_entity(ent);
  1499. return PLUGIN_CONTINUE;
  1500. }
  1501.  
  1502. if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
  1503. set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) ;
  1504.  
  1505. new Float:forigin[3], origin[3];
  1506. entity_get_vector(ent, EV_VEC_origin, forigin);
  1507. FVecIVec(forigin,origin);
  1508.  
  1509. //Find people near and give them health
  1510. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
  1511. write_byte( TE_BEAMCYLINDER );
  1512. write_coord( origin[0] );
  1513. write_coord( origin[1] );
  1514. write_coord( origin[2] );
  1515. write_coord( origin[0] );
  1516. write_coord( origin[1] + totem_dist );
  1517. write_coord( origin[2] + totem_dist );
  1518. write_short( sprite_white );
  1519. write_byte( 0 ); // startframe
  1520. write_byte( 0 ); // framerate
  1521. write_byte( 10 ); // life
  1522. write_byte( 10 ); // width
  1523. write_byte( 255 ); // noise
  1524. write_byte( 255 ); // r, g, b
  1525. write_byte( 100 );// r, g, b
  1526. write_byte( 100 ); // r, g, b
  1527. write_byte( 128 ); // brightness
  1528. write_byte( 5 ); // speed
  1529. message_end();
  1530.  
  1531. entity_set_edict(ent, EV_ENT_euser2 ,1);
  1532. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5);
  1533.  
  1534.  
  1535. return PLUGIN_CONTINUE;
  1536. }
  1537.  
  1538. public KreirajRakete(id)
  1539. {
  1540. if (!broj_raketa_igraca[id])
  1541. {
  1542. client_print(id, print_center, "Vec ste iskoristili sve rakete!");
  1543. return PLUGIN_CONTINUE;
  1544. }
  1545.  
  1546. if(prethodna_raketa_igraca[id] + 2.0 > get_gametime())
  1547. {
  1548. client_print(id, print_center, "Mozate da koristite raketu za 2 sekunde!");
  1549. return PLUGIN_CONTINUE;
  1550. }
  1551.  
  1552. if (is_user_alive(id))
  1553. {
  1554. if(inteligencija_igraca[id] < 1)
  1555. client_print(id, print_center, "Da koristite rakete, morate povecati inteligenciju!");
  1556.  
  1557. prethodna_raketa_igraca[id] = get_gametime();
  1558. broj_raketa_igraca[id]--;
  1559.  
  1560. new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
  1561.  
  1562. entity_get_vector(id, EV_VEC_v_angle, vAngle);
  1563. entity_get_vector(id, EV_VEC_origin , Origin);
  1564.  
  1565. new Ent = create_entity("info_target");
  1566.  
  1567. entity_set_string(Ent, EV_SZ_classname, "Rocket");
  1568. entity_set_model(Ent, "models/rpgrocket.mdl");
  1569.  
  1570. vAngle[0] *= -1.0;
  1571.  
  1572. entity_set_origin(Ent, Origin);
  1573. entity_set_vector(Ent, EV_VEC_angles, vAngle);
  1574.  
  1575. entity_set_int(Ent, EV_INT_effects, 2);
  1576. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  1577. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
  1578. entity_set_edict(Ent, EV_ENT_owner, id);
  1579.  
  1580. VelocityByAim(id, 1000 , Velocity);
  1581. entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
  1582.  
  1583. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1584. write_byte(22)
  1585. write_short(Ent)
  1586. write_short(sprite_beam)
  1587. write_byte(45)
  1588. write_byte(4)
  1589. write_byte(255)
  1590. write_byte(105)
  1591. write_byte(180)
  1592. write_byte(25)
  1593. message_end()
  1594. }
  1595. return PLUGIN_CONTINUE;
  1596. }
  1597.  
  1598. public KreirajDinamit(id)
  1599. {
  1600. if(!broj_dinamita_igraca[id])
  1601. {
  1602. client_print(id, print_center, "Vec ste iskoristili sav dinamit!");
  1603. return PLUGIN_CONTINUE;
  1604. }
  1605.  
  1606. if(inteligencija_igraca[id] < 1)
  1607. client_print(id, print_center, "Da koristite dinamit, morate povecati inteligenciju!");
  1608.  
  1609. broj_dinamita_igraca[id]--;
  1610.  
  1611. new Float:fOrigin[3];
  1612. entity_get_vector(id, EV_VEC_origin, fOrigin);
  1613.  
  1614. new iOrigin[3];
  1615. for(new i=0;i<3;i++)
  1616. iOrigin[i] = floatround(fOrigin[i]);
  1617.  
  1618. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1619. write_byte(TE_EXPLOSION);
  1620. write_coord(iOrigin[0]);
  1621. write_coord(iOrigin[1]);
  1622. write_coord(iOrigin[2]);
  1623. write_short(sprite_blast);
  1624. write_byte(32);
  1625. write_byte(20);
  1626. write_byte(0);
  1627. message_end();
  1628.  
  1629. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
  1630. write_byte( TE_BEAMCYLINDER );
  1631. write_coord( iOrigin[0] );
  1632. write_coord( iOrigin[1] );
  1633. write_coord( iOrigin[2] );
  1634. write_coord( iOrigin[0] );
  1635. write_coord( iOrigin[1] + 300 );
  1636. write_coord( iOrigin[2] + 300 );
  1637. write_short( sprite_white );
  1638. write_byte( 0 ); // startframe
  1639. write_byte( 0 ); // framerate
  1640. write_byte( 10 ); // life
  1641. write_byte( 10 ); // width
  1642. write_byte( 255 ); // noise
  1643. write_byte( 255 ); // r, g, b
  1644. write_byte( 100 );// r, g, b
  1645. write_byte( 100 ); // r, g, b
  1646. write_byte( 128 ); // brightness
  1647. write_byte( 8 ); // speed
  1648. message_end();
  1649.  
  1650. new entlist[33];
  1651. new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
  1652.  
  1653. for (new i=0; i < numfound; i++)
  1654. {
  1655. new pid = entlist[i];
  1656.  
  1657. if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24)
  1658. continue;
  1659. ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencija_igraca[id]) , 1);
  1660. }
  1661. return PLUGIN_CONTINUE;
  1662. }
  1663.  
  1664. public PostaviMine(id)
  1665. {
  1666. if (!broj_min_igraca[id])
  1667. {
  1668. client_print(id, print_center, "Vec ste iskoristili sve mine!");
  1669. return PLUGIN_CONTINUE;
  1670. }
  1671.  
  1672. if(inteligencija_igraca[id] < 1)
  1673. client_print(id, print_center, "Da koristite mine, morate povecati inteligenciju!");
  1674.  
  1675. broj_min_igraca[id]--;
  1676.  
  1677. new Float:origin[3];
  1678. entity_get_vector(id, EV_VEC_origin, origin);
  1679.  
  1680. new ent = create_entity("info_target");
  1681. entity_set_string(ent ,EV_SZ_classname, "Mine");
  1682. entity_set_edict(ent ,EV_ENT_owner, id);
  1683. entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
  1684. entity_set_origin(ent, origin);
  1685. entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
  1686.  
  1687. entity_set_model(ent, "models/mine.mdl");
  1688. entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
  1689.  
  1690. drop_to_floor(ent);
  1691.  
  1692. entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
  1693.  
  1694. set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
  1695.  
  1696.  
  1697. return PLUGIN_CONTINUE;
  1698. }
  1699.  
  1700. public DodirMine(ent, id)
  1701. {
  1702. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1703. if (get_user_team(attacker) != get_user_team(id))
  1704. {
  1705. new Float:fOrigin[3];
  1706. entity_get_vector( ent, EV_VEC_origin, fOrigin);
  1707.  
  1708. new iOrigin[3];
  1709. for(new i=0;i<3;i++)
  1710. iOrigin[i] = floatround(fOrigin[i]);
  1711.  
  1712. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1713. write_byte(TE_EXPLOSION);
  1714. write_coord(iOrigin[0]);
  1715. write_coord(iOrigin[1]);
  1716. write_coord(iOrigin[2]);
  1717. write_short(sprite_blast);
  1718. write_byte(32); // scale
  1719. write_byte(20); // framerate
  1720. write_byte(0);// flags
  1721. message_end();
  1722. new entlist[33];
  1723. new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
  1724.  
  1725. for (new i=0; i < numfound; i++)
  1726. {
  1727. new pid = entlist[i];
  1728.  
  1729. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24 || klasa_igraca[id] == Mitraljezac)
  1730. continue;
  1731.  
  1732. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencija_igraca[attacker]) , 1);
  1733. }
  1734. remove_entity(ent);
  1735. }
  1736. }
  1737.  
  1738. public DodirRakete(ent)
  1739. {
  1740. if ( !is_valid_ent(ent))
  1741. return;
  1742.  
  1743. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1744.  
  1745. new Float:fOrigin[3];
  1746. entity_get_vector(ent, EV_VEC_origin, fOrigin);
  1747.  
  1748. new iOrigin[3];
  1749. for(new i=0;i<3;i++)
  1750. iOrigin[i] = floatround(fOrigin[i]);
  1751.  
  1752. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1753. write_byte(TE_EXPLOSION);
  1754. write_coord(iOrigin[0]);
  1755. write_coord(iOrigin[1]);
  1756. write_coord(iOrigin[2]);
  1757. write_short(sprite_blast);
  1758. write_byte(32); // scale
  1759. write_byte(20); // framerate
  1760. write_byte(0);// flags
  1761. message_end();
  1762.  
  1763. new entlist[33];
  1764. new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
  1765.  
  1766. for (new i=0; i < numfound; i++)
  1767. {
  1768. new pid = entlist[i];
  1769.  
  1770. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24)
  1771. continue;
  1772. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0+float(inteligencija_igraca[attacker]) , 1);
  1773. }
  1774. remove_entity(ent);
  1775. }
  1776.  
  1777. public CurWeapon(id)
  1778. {
  1779. if(freezetime || !klasa_igraca[id])
  1780. return PLUGIN_CONTINUE;
  1781.  
  1782. new weapon = get_user_weapon(id);
  1783.  
  1784. if(klasa_igraca[id] == Assassin && weapon == CSW_KNIFE)
  1785. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 10);
  1786. else if(klasa_igraca[id] == Assassin && weapon != CSW_KNIFE)
  1787. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
  1788.  
  1789. new weapons[32];
  1790. new weaponsnum;
  1791. get_user_weapons(id, weapons, weaponsnum);
  1792. for(new i=0; i<weaponsnum; i++)
  1793. if(is_user_alive(id))
  1794. if(maxAmmo[weapons[i]] > 0)
  1795. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  1796.  
  1797. PostaviBrzinu(id);
  1798. return PLUGIN_CONTINUE;
  1799. }
  1800.  
  1801. public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
  1802. {
  1803. if(!is_user_alive(id))
  1804. return FMRES_IGNORED;
  1805.  
  1806. if(equal(szSound, "common/wpn_denyselect.wav"))
  1807. {
  1808. KoristiPredmet(id);
  1809. return FMRES_SUPERCEDE;
  1810. }
  1811.  
  1812. return FMRES_IGNORED;
  1813. }
  1814.  
  1815. public KoristiPredmet(id)
  1816. {
  1817. if(informacije_predmet_igraca[id][0] == 19 && informacije_predmet_igraca[id][1]>0)
  1818. {
  1819. set_user_health(id, maximalna_energija_igraca[id]);
  1820. informacije_predmet_igraca[id][1]--;
  1821. }
  1822.  
  1823. if(broj_medkit_igraca[id]>0)
  1824. KreirajMedKit(id);
  1825. if(broj_raketa_igraca[id]>0)
  1826. KreirajRakete(id);
  1827. if(broj_min_igraca[id]>0)
  1828. PostaviMine(id);
  1829. if(broj_dinamita_igraca[id]>0)
  1830. KreirajDinamit(id);
  1831.  
  1832. return PLUGIN_HANDLED;
  1833. }
  1834.  
  1835. public SacuvajPodatke(id)
  1836. {
  1837. if(!klasa_igraca[id])
  1838. return PLUGIN_CONTINUE;
  1839.  
  1840. new vaultkey[128],vaultdata[256], ID_igraca[64];
  1841. 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]);
  1842.  
  1843. get_user_authid(id, ID_igraca, charsmax(ID_igraca))
  1844.  
  1845. format(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa_igraca[id]);
  1846. nvault_set(g_vault,vaultkey,vaultdata);
  1847.  
  1848. return PLUGIN_CONTINUE;
  1849. }
  1850.  
  1851. public UcitajPodatke(id, klasa)
  1852. {
  1853. new vaultkey[128],vaultdata[256], ID_igraca[64];
  1854.  
  1855. get_user_authid(id, ID_igraca, charsmax(ID_igraca))
  1856.  
  1857. format(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa);
  1858. nvault_get(g_vault,vaultkey,vaultdata,255);
  1859.  
  1860. replace_all(vaultdata, 255, "#", " ");
  1861.  
  1862. new playerdata[6][32];
  1863.  
  1864. parse(vaultdata, playerdata[0], 31, playerdata[1], 31, playerdata[2], 31, playerdata[3], 31, playerdata[4], 31, playerdata[5], 31);
  1865.  
  1866. iskustvo_igraca[id] = str_to_num(playerdata[0]);
  1867. level_igraca[id] = str_to_num(playerdata[1])>0?str_to_num(playerdata[1]):1;
  1868. inteligencija_igraca[id] = str_to_num(playerdata[2]);
  1869. energija_igraca[id] = str_to_num(playerdata[3]);
  1870. snaga_igraca[id] = str_to_num(playerdata[4]);
  1871. kondicija_igraca[id] = str_to_num(playerdata[5]);
  1872. poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
  1873.  
  1874. return PLUGIN_CONTINUE;
  1875. }
  1876.  
  1877. public IzbaciPredmet(id)
  1878. {
  1879. if(informacije_predmet_igraca[id][0])
  1880. {
  1881. ColorChat(id, NORMAL, "^4[COD:MW] ^1Bacio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  1882. Obrisipredmet(id);
  1883. }
  1884. else
  1885. ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate nijedan predmet.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  1886. }
  1887.  
  1888. public Obrisipredmet(id)
  1889. {
  1890. informacije_predmet_igraca[id][0] = 0;
  1891. informacije_predmet_igraca[id][1] = 0;
  1892. if(is_user_alive(id))
  1893. {
  1894. set_user_footsteps(id, 0);
  1895. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
  1896. PromeniModel(id, 1);
  1897. }
  1898. }
  1899.  
  1900. public DajPredmet(id, predmet)
  1901. {
  1902. Obrisipredmet(id);
  1903. informacije_predmet_igraca[id][0] = predmet;
  1904. ColorChat(id, NORMAL, "^4[COD:MW] ^1Dobio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  1905.  
  1906. switch(predmet)
  1907. {
  1908. case 1:
  1909. {
  1910. set_user_footsteps(id, 1);
  1911. }
  1912. case 2:
  1913. {
  1914. informacije_predmet_igraca[id][1] = random_num(3,6);
  1915. }
  1916. case 3:
  1917. {
  1918. informacije_predmet_igraca[id][1] = random_num(6, 11);
  1919. }
  1920. case 5:
  1921. {
  1922. informacije_predmet_igraca[id][1] = random_num(6, 9);
  1923. }
  1924. case 6:
  1925. {
  1926. if(klasa_igraca[id] == Partizan || klasa_igraca[id] == Assassin )
  1927. {
  1928. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  1929. }
  1930. else
  1931. {
  1932. informacije_predmet_igraca[id][1] = random_num(100, 150);
  1933. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, informacije_predmet_igraca[id][1]);
  1934. }
  1935. }
  1936. case 7:
  1937. {
  1938. informacije_predmet_igraca[id][1] = random_num(2, 4);
  1939. }
  1940. case 8:
  1941. {
  1942. if(klasa_igraca[id] == Marinac || klasa_igraca[id] == Assassin)
  1943. DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
  1944. }
  1945. case 9:
  1946. {
  1947. informacije_predmet_igraca[id][1] = random_num(1, 3);
  1948. PromeniModel(id, 0);
  1949. give_item(id, "weapon_hegrenade");
  1950. }
  1951. case 10:
  1952. {
  1953. informacije_predmet_igraca[id][1] = random_num(4, 8);
  1954. give_item(id, "weapon_hegrenade");
  1955. }
  1956. case 12:
  1957. {
  1958. informacije_predmet_igraca[id][1] = random_num(1, 4);
  1959. }
  1960. case 13:
  1961. {
  1962. give_item(id, "weapon_awp");
  1963. }
  1964. case 19:
  1965. {
  1966. informacije_predmet_igraca[id][1] = 1;
  1967. }
  1968. case 26:
  1969. {
  1970. informacije_predmet_igraca[id][1] = random_num(3, 6);
  1971. }
  1972. case 27:
  1973. {
  1974. informacije_predmet_igraca[id][1] = 3;
  1975. }
  1976. }
  1977. }
  1978.  
  1979. public OpisPredmeta(id)
  1980. {
  1981. new opis_predmeta[128];
  1982. new slucajne_vrednosti[3];
  1983. num_to_str(informacije_predmet_igraca[id][1], slucajne_vrednosti, 2);
  1984. format(opis_predmeta, 127, opis_predmet[informacije_predmet_igraca[id][0]]);
  1985. replace_all(opis_predmeta, 127, "LW", slucajne_vrednosti);
  1986.  
  1987. ColorChat(id, NORMAL, "^4Predmet: ^1%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
  1988. ColorChat(id, NORMAL, "^4Opis: ^1%s.", opis_predmeta);
  1989. }
  1990.  
  1991. public Provera(id)
  1992. {
  1993. id-=ZADATAK_PROVERA;
  1994. ExecuteHamB(Ham_CS_RoundRespawn, id);
  1995. }
  1996.  
  1997. public ProveriNivo(id)
  1998. {
  1999. if(level_igraca[id] < 9000)
  2000. {
  2001. new level_ratio = 75
  2002. new max_level = 10000000000
  2003. while(iskustvo_igraca[id] >= iskustvo_levelu[id] && level_igraca[id] < max_level)
  2004. {
  2005. level_igraca[id]++;
  2006. set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
  2007. ShowSyncHudMsg(id, SyncHudObj3, "Dobrodosao na %i level!", level_igraca[id]);
  2008. client_cmd(id, "spk QTM_CodMod/levelup");
  2009. iskustvo_levelu[id] = level_igraca[id] * (2 * level_ratio)
  2010. }
  2011. poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
  2012. }
  2013. SacuvajPodatke(id);
  2014. }
  2015.  
  2016. public PokaziInformacije(id)
  2017. {
  2018. id -= ZADATAK_POKAZI_INFORMACIJE;
  2019.  
  2020. set_task(0.1, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
  2021.  
  2022. if(is_user_connected(id) && !is_user_alive(id))
  2023. {
  2024. new target = entity_get_int(id, EV_INT_iuser2);
  2025.  
  2026. if(!target)
  2027. return PLUGIN_CONTINUE;
  2028.  
  2029. set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
  2030. ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^^nIskustvo : %i^nLevel : %i^nPredmet : %s^nEnergija %d", naziv_klase[klasa_igraca[target]], iskustvo_igraca[target], level_igraca[target], naziv_predmeta[informacije_predmet_igraca[target][0]], get_user_health(target));
  2031.  
  2032. return PLUGIN_CONTINUE;
  2033. }
  2034. set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0, -1);
  2035. ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Iskustvo : %i] ^n[Level : %i]^n[Predmet : %s]^n[Energija: %d]", naziv_klase[klasa_igraca[id]], iskustvo_igraca[id], level_igraca[id], naziv_predmeta[informacije_predmet_igraca[id][0]], get_user_health(id));
  2036.  
  2037. return PLUGIN_CONTINUE;
  2038. }
  2039.  
  2040. public PokaziReklame(id)
  2041. {
  2042. id-=ZADATAK_POKAZI_REKLAME;
  2043. ColorChat(id, NORMAL, "^4[COD:MW] ^1Za vise informacija kucajte ^3/pomoc.");
  2044. }
  2045.  
  2046. public Pomoc(id)
  2047. 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");
  2048.  
  2049. public PostaviBrzinu(id)
  2050. {
  2051. id -= id>32? ZADATAK_POSTAVI_brzinu: 0;
  2052.  
  2053. if(klasa_igraca[id])
  2054. set_user_maxspeed(id, brzina_igraca[id]);
  2055. }
  2056.  
  2057. public PromeniModel(id,reset)
  2058. {
  2059. if (id<1 || id>32 || !is_user_connected(id))
  2060. return PLUGIN_CONTINUE;
  2061.  
  2062. if (reset)
  2063. cs_reset_user_model(id);
  2064. else
  2065. {
  2066. new num = random_num(0,3);
  2067. switch(get_user_team(id))
  2068. {
  2069. case 1: cs_set_user_model(id, Ubrania_CT[num]);
  2070. case 2:cs_set_user_model(id, Ubrania_Terro[num]);
  2071. }
  2072. }
  2073. return PLUGIN_CONTINUE;
  2074. }
  2075.  
  2076. public DodirOruzija(weapon,id)
  2077. {
  2078. if(!is_user_connected(id))
  2079. return HAM_IGNORED;
  2080.  
  2081. new model[23];
  2082. pev(weapon, pev_model, model, 22);
  2083. if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
  2084. return HAM_IGNORED;
  2085. return HAM_SUPERCEDE;
  2086. }
  2087.  
  2088. stock bool:UTIL_In_FOV(id,target)
  2089. {
  2090. if (Find_Angle(id,target,9999.9) > 0.0)
  2091. return true;
  2092.  
  2093. return false;
  2094. }
  2095. #if defined BOTY
  2096. public is_user_bot2(id)
  2097. {
  2098. new ping, loss
  2099. get_user_ping(id, ping, loss)
  2100. if(ping > 0 && loss > 0)
  2101. return false
  2102. return true
  2103. }
  2104. #endif
  2105.  
  2106. stock Float:Find_Angle(Core,Target,Float:dist)
  2107. {
  2108. new Float:vec2LOS[2];
  2109. new Float:flDot;
  2110. new Float:CoreOrigin[3];
  2111. new Float:TargetOrigin[3];
  2112. new Float:CoreAngles[3];
  2113.  
  2114. pev(Core,pev_origin,CoreOrigin);
  2115. pev(Target,pev_origin,TargetOrigin);
  2116.  
  2117. if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
  2118. return 0.0;
  2119.  
  2120. pev(Core,pev_angles, CoreAngles);
  2121.  
  2122. for ( new i = 0; i < 2; i++ )
  2123. vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
  2124.  
  2125. new Float:veclength = Vec2DLength(vec2LOS);
  2126.  
  2127. //Normalize V2LOS
  2128. if (veclength <= 0.0)
  2129. {
  2130. vec2LOS[0] = 0.0;
  2131. vec2LOS[1] = 0.0;
  2132. }
  2133. else
  2134. {
  2135. new Float:flLen = 1.0 / veclength;
  2136. vec2LOS[0] = vec2LOS[0]*flLen;
  2137. vec2LOS[1] = vec2LOS[1]*flLen;
  2138. }
  2139.  
  2140. //Do a makevector to make v_forward right
  2141. engfunc(EngFunc_MakeVectors,CoreAngles);
  2142.  
  2143. new Float:v_forward[3];
  2144. new Float:v_forward2D[2];
  2145. get_global_vector(GL_v_forward, v_forward);
  2146.  
  2147. v_forward2D[0] = v_forward[0];
  2148. v_forward2D[1] = v_forward[1];
  2149.  
  2150. flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
  2151.  
  2152. if ( flDot > 0.5 )
  2153. {
  2154. return flDot;
  2155. }
  2156.  
  2157. return 0.0;
  2158. }
  2159.  
  2160. stock Float:Vec2DLength( Float:Vec[2] )
  2161. {
  2162. return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
  2163. }
  2164.  
  2165. stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
  2166. {
  2167. message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
  2168. write_short( duration ); // Duration of fadeout
  2169. write_short( holdtime ); // Hold time of color
  2170. write_short( fadetype ); // Fade type
  2171. write_byte ( red ); // Red
  2172. write_byte ( green ); // Green
  2173. write_byte ( blue ); // Blue
  2174. write_byte ( alpha ); // Alpha
  2175. message_end();
  2176. }
  2177.  
  2178. stock set_user_clip(id, ammo)
  2179. {
  2180. new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
  2181. get_weaponname(weapon, weaponname, 31);
  2182. while ((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
  2183. if(entity_get_edict(weaponid, EV_ENT_owner) == id)
  2184. {
  2185. set_pdata_int(weaponid, 51, ammo, 4);
  2186. return weaponid;
  2187. }
  2188. return 0;
  2189. }
  2190.  
  2191. public BlokirajKomande()
  2192. return PLUGIN_HANDLED;
  2193.  
  2194. public plugin_end()
  2195. nvault_close( g_vault )
Advertisement
Add Comment
Please, Sign In to add comment