Advertisement
Guest User

Untitled

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