Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <fun>
- #include <cstrike>
- #include <fakemeta>
- #include <engine>
- #include <hamsandwich>
- #include <nvault>
- #include <colorchat>
- #define STANDARDNA_BRZINA 250.0
- #define ZADATAK_POKAZI_INFORMACIJE 672
- #define ZADATAK_PROVERA 704
- #define ZADATAK_SANITARNA_OBUKA 736
- #define ZADATAK_POSTAVI_BRZINU 832
- new killovi[32]
- //new p_LevelRatio
- //new p_MaxLevel
- new SyncHudObj
- new SyncHudObj2
- new SyncHudObj3
- new g_msg_screenfade
- new sprite_white
- new sprite_blast
- new g_vault
- new g_msgStatusIcon
- new postavljena
- new deaktivirana
- new iskustvo_za_ubistvo
- new iskustvo_za_c4
- new Kamuflaza_CT[4][] = { "sas", "gsg9", "urban", "gign" }
- new Kamuflaza_T[4][] = { "arctic", "leet", "guerilla", "terror" }
- 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}
- 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}
- new informacije_predmet_igraca[33][2]
- new const naziv_predmeta[][] = {
- "Nema",
- "Necujne Cizme", //1
- "Dupli Pancir", //2
- "Ojacani Pancir", //3
- "Veteran sa nozem", //4
- "Iznenadi neprijatelje", //5
- "Nevidljivost", //6
- "Respawn", //7
- "Noz Marinca", //8
- "Kamuflaza", //9
- "Test Predmet", //10
- "Dupli Skok", //11
- "Vojna tajna", //12
- "AWP Master",//13
- "Adrenalin",//14
- "Rambova tajna",//15
- "Auto-Healer",//16
- "Super Pancir",//17
- "Extra HP++",//18
- "Komplet za prvu pomoc",//19
- "No Recoil",//20
- "Titanijumski metci",//21
- "Pukovnikovi metci",//22
- "Ogranicen no-recoil",//23
- "Stit specijalaca",//24
- "50 HP++",//25
- "Nano Oklop",//26
- "BulletProof",//27
- "Jetpack" //28
- }
- new const opis_predmet[][] = {
- "Ubi nekog i dobices predmet",
- "Ne cujno trcanje", //1
- "Smanjuje stetu za LW %", //2
- "Smanjuje stetu za LW %", //3
- "Brze ubijas nozem", //4
- "Kada pogodite nekog od pozadi, povrede su dva puta vece", //5
- "Imate LW % nevidljivosti", //6
- "1/LW sanse da se respawn posle smrti", //7
- "Brzo ubijanje nozem", //8
- "Izgledate kao neprijatelj", //9
- "Test predmet, Ne sluzi nicemu :D", //10
- "Dupli skok", //11
- "Vase povrede su smanjene za 5. Imate 1/LW sanse da oslepite neprijatelja",
- "Instant kill sa AWP",
- "Za svaki kill dobijate 50hp",
- "Za svaki kill dobijate pun sarzer i 20hp",
- "Dobijate 10hp svakih 5 sec",
- "Imate 500 stita",
- "Dobijate +100hp svake runde, ali zato ste sporiji",
- "Koristite da regeneriste maximalni HP",
- "Nema trzanja puske kad pucate",
- "Zadajete protivnicima +10 vise stete",
- "Zadajete protivnicima +20 vise stete",
- "Smanjeno trazanje puske",
- "Ni jedan predmet nece uticati na vas",
- "Dobijate +50hp svake runde, ali zato ste sporiji",
- "Imate 1/LW sanse da izbegnete stetu",
- "Otporni ste na 3 metka u svakom krugu",
- "Pritisnite CRTL i SPACE da koristite jetpack, jetpack se obnavlja svake 4 sec"
- }
- new ID_igraca[33][35]
- new klasa_igraca[33]
- new level_igraca[33] = 1
- new iskustvo_igraca[33] = 1
- new nova_klasa_igraca[33]
- new iskustvo_levelu[33] = 75
- new poeni_igraca[33]
- new energija_igraca[33]
- new inteligencija_igraca[33]
- new snaga_igraca[33]
- new Float:smanjene_povrede_igraca[33]
- new kondicija_igraca[33]
- new maximalna_energija_igraca[33]
- new Float:brzina_igraca[33]
- new bool:igrac_resetuje[33]
- enum {
- NONE = 0,
- Snajperista,
- Marinac,
- SWAT,
- Terorista,
- Mitraljezac,
- Doktor,
- Vatrena_podrska,
- Miner,
- Demolitions,
- Rusher,
- Spijun,
- Pesadinac,
- Assassin
- }
- new const energija_klasa[] = { //Helti Klase
- 0, //NONE
- 120, //Snajperista
- 140, //Marinac
- 200, //SWAT
- 150, //Terorista
- 120, //Mitraljezac
- 110, //Dokror
- 100, //Vatrena Podrska
- 100, //Miner
- 110, //Demolitions
- 100, //Rusher
- 70, //Spijun
- 100, //Pesadinac
- 140 //Assassin
- }
- new const Float:brzina_klasa[] = { //Brzina Klase
- 0.0, //None
- 1.2, //Snajperista
- 1.35, //Marinac
- 0.8, //SWAT
- 0.8, //Terorista
- 0.8, //Mitraljezac
- 1.0, //Doktor
- 1.0, //Vatrena Podrska
- 1.0, //Miner
- 1.0, //Demolitions
- 1.3 , //Rusher
- 1.2, //Spijun
- 1.10, //Pesadinac
- 1.35 //Assassin
- }
- new const oklop_klase[] = { //Armor Klase
- 0, //None
- 100, //Snajperista
- 100, //Marinac
- 200, //SWAT
- 100, //Terorista
- 150, //Mitraljezac
- 100, //Dokrot
- 0, //Vatrena Podrska
- 100, //Miner
- 100, //Demolitions
- 0, //Rusher
- 0, //Spijun
- 100, //Pesadinac
- 0 //Assassin
- }
- new const naziv_klase[][] = {
- "Nema",
- "Snajperista",
- "Marinac",
- "S.W.A.T",
- "Terorista",
- "Mitraljezac",
- "Doktor",
- "Vatrena podrska",
- "Miner",
- "Demolitions",
- "Rusher",
- "Spijun",
- "Pesadinac",
- "Assassin"
- }
- new const opis_klase[][] = {
- "Nema",
- "Dobija: AWP i Scout; Helti: 120; Armor: 100; Brzina: 110%; Sposobnosti: Nema", //Snajperista
- "Dobija: Deagle; Helti: 140; Armor: 100; Brzina: 135%; Sposobnosti: Instant Kill Nozem", //Marinac
- "Dobija: M4A1; Helti: 200; Armor: 200; Brzina 80%; Sposobnosti: Nema", //S.W.A.T
- "Dobija: AK47; Helti: 150; Armor: 100; Brzina: 80%; Sposobnosti: Nema", //Terorista
- "Dobija: M249 (Rucni Top); Helti: 120, Armor: 150; Brzina: 80%; Sposobnosti: Otporan na Mine", //Mitraljezac
- "Dobija: UMP45; Helti: 110; Armor: 100; Brzina: 100%; Sposobnosti: 2X Medikita", //Doktor
- "Dobija: MP5; Helti: 100; Armor: 100; Brzina: 100%; Sposobnosti: 2X Rakete", //Vatrena Podrska
- "Dobija: P90; Helti 100; Armor: 100; Brzina: 100%; Sposobnosti: 3X Mine", //Miner
- "Dobija: Aug; Helti: 110; Armor: 100; Brzina: 100%; Sposobnosti: 3X Dinamita", //Demolitions
- "Dobija: M3 (Pumparica); Helti: 100; Armor: 0; Brzina: 135%; Sposobnosti: Nema", //Rusher
- "Dobija: Deagle; Helti: 70; Armor: 0; Brzina: 70%; Sposobnosti: Kamuflaza", //Spijun
- "Dobija: Famas; Helti: 100; Armor: 100; Brzina: 110%; Sposobnosti: Nema", //Pesadinac
- "Dobija: USP; Helti: 140; Armor: 0; Brzina: 135%; Sposobnosti: Nevidljiv dok drzi noz, Dupli Skok" //Assassin
- }
- new broj_medkit_igraca[33]
- new broj_raketa_igraca[33]
- new Float:prethodna_raketa_igraca[33]
- new broj_min_igraca[33]
- new broj_dinamita_igraca[33]
- new broj_skokova_igraca[33]
- new bool:freezetime = true
- public plugin_init()
- {
- register_plugin("COD:MW", "1.0", "QTM_Peyote")
- g_vault = nvault_open("CodMod")
- g_msgStatusIcon = get_user_msgid("StatusIcon")
- register_message(g_msgStatusIcon, "msgStatusIcon")
- register_think("MedKit","MedKitThink")
- RegisterHam(Ham_TakeDamage, "player", "TakeDamage")
- RegisterHam(Ham_Spawn, "player", "Pocetak", 1)
- RegisterHam(Ham_Touch, "armoury_entity", "DodirOruzija")
- RegisterHam(Ham_Touch, "weapon_shield", "DodirOruzija")
- RegisterHam(Ham_Touch, "weaponbox", "DodirOruzija")
- register_forward(FM_CmdStart, "CmdStart")
- register_forward(FM_EmitSound, "EmitSound")
- register_logevent("PocetakRunde", 2, "1=Round_Start")
- register_logevent("BombaPostavljena", 3, "2=Planted_The_Bomb")
- register_event("SendAudio", "BombaDeaktivirana", "a", "2&%!MRAD_BOMBDEF")
- register_event("BarTime", "PrebrojBombe", "be", "1=10", "1=5")
- register_event("DeathMsg", "Death", "ade")
- register_event("Damage", "Damage", "b", "2!=0")
- register_event("CurWeapon","CurWeapon","be", "1=1")
- register_event("HLTV", "novaRunda", "a", "1=0", "2=0")
- register_touch("Rocket", "*" , "DodirRakete")
- register_touch("Mine", "player", "DodirMine")
- register_cvar("cod_killxp", "35")
- register_cvar("cod_bombxp", "50")
- //p_LevelRatio = register_cvar("cod_levelratio", "75")
- //p_MaxLevel = register_cvar("cod_maxlevel", "200")
- register_clcmd("say /klasa", "IzaberiKlasu")
- register_clcmd("say /opis", "OpisKlase")
- register_clcmd("say /predmet", "OpisPredmeta")
- register_clcmd("say /item", "OpisPredmeta")
- register_clcmd("say /drop", "IzbaciPredmet")
- register_clcmd("say /izbaci", "IzbaciPredmet")
- register_clcmd("say /reset", "KomandaResetujPoene")
- register_clcmd("say /shop", "Shop")
- g_msg_screenfade = get_user_msgid("ScreenFade")
- SyncHudObj = CreateHudSyncObj()
- SyncHudObj2 = CreateHudSyncObj()
- SyncHudObj3 = CreateHudSyncObj()
- iskustvo_za_ubistvo = get_cvar_num("cod_killxp")
- iskustvo_za_c4 = get_cvar_num("cod_bombxp")
- set_task(30.0, "Pomoc")
- }
- public msgStatusIcon(msgid, msgdest, id)
- {
- static szIcon[8]
- get_msg_arg_string(2, szIcon, 7)
- if(equal(szIcon, "buyzone") && get_msg_arg_int(1))
- {
- set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
- return PLUGIN_HANDLED
- }
- return PLUGIN_CONTINUE
- }
- public plugin_precache()
- {
- sprite_white = precache_model("sprites/white.spr")
- sprite_blast = precache_model("sprites/dexplo.spr")
- precache_sound("mw/select.wav")
- precache_sound("mw/start.wav")
- precache_sound("mw/start2.wav")
- precache_sound("mw/levelup.wav")
- precache_model("models/cod_medkit.mdl")
- precache_model("models/cod_rpgrocket.mdl")
- precache_model("models/cod_mine.mdl")
- }
- public Shop(id)
- {
- if(!is_user_alive(id))
- {
- ColorChat(id, GREEN, "[Shop] ^1Moras biti ziv da bi kupovao")
- return PLUGIN_HANDLED
- }
- new menu = menu_create("Shop:", "Shop_Handle")
- menu_additem(menu, "Aspirin \r[Dodaje 50 HP] \yCena: \r1000$")
- menu_additem(menu, "Morfijum \r[Dodaje 100 HP] \yCena: \r3000$")
- menu_additem(menu, "RedBull \r[Veci Skok + Veca Brzina] \yCena: \r5000$")
- menu_additem(menu, "Slucajni Izbor \r[Predmet] \yCena: \r3000$")
- menu_additem(menu, "Slucajni Izbor \r[Iskustvo] \yCena: \r10000$")
- menu_setprop(menu, MPROP_EXITNAME, "Izlaz")
- menu_display(id, menu)
- return PLUGIN_CONTINUE
- }
- public Shop_Handle(id, menu, item)
- {
- client_cmd(id, "spk mw/select")
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0:
- {
- if(cs_get_user_money(id) < 1000)
- {
- ColorChat(id, GREEN, "[Shop] ^1Nemas dovoljno para")
- return PLUGIN_HANDLED
- }
- if(get_user_health(id) >= maximalna_energija_igraca[id])
- {
- ColorChat(id, GREEN, "[Shop] ^1Vec imate maximalnu energiju")
- return PLUGIN_HANDLED
- }
- else
- {
- cs_set_user_money(id, cs_get_user_money(id) - 1000)
- new ammount=50
- new nova_energija = (get_user_health(id) + ammount < maximalna_energija_igraca[id])? get_user_health(id) + ammount: maximalna_energija_igraca[id]
- set_user_health(id, nova_energija)
- ColorChat(id, GREEN, "[Shop] ^1kupio si ^3Aspirin")
- }
- }
- case 1:
- {
- if(cs_get_user_money(id) < 3000)
- {
- ColorChat(id, GREEN, "[Shop] ^1Nemas dovoljno para")
- return PLUGIN_HANDLED
- }
- if(get_user_health(id) >= maximalna_energija_igraca[id])
- {
- ColorChat(id, GREEN, "[Shop] ^1Vec imate maximalnu energiju")
- return PLUGIN_HANDLED
- }
- else
- {
- cs_set_user_money(id, cs_get_user_money(id) - 3000)
- new ammount=100
- new nova_energija = (get_user_health(id) + ammount < maximalna_energija_igraca[id])? get_user_health(id) + ammount: maximalna_energija_igraca[id]
- set_user_health(id, nova_energija)
- ColorChat(id, GREEN, "[Shop] ^1Kupio si^3 Morfijum")
- }
- }
- case 2:
- {
- if(cs_get_user_money(id) < 5000)
- {
- ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para")
- return PLUGIN_HANDLED
- }
- else
- {
- cs_set_user_money(id, cs_get_user_money(id) - 5000)
- set_user_gravity(id,get_user_gravity(id) - 0.3)
- set_user_maxspeed(id,get_user_maxspeed(id) + 10.0)
- ColorChat(id, GREEN, "[Shop]^1 Kupio si^3 RedBull")
- }
- }
- case 3:
- {
- if(cs_get_user_money(id) < 3000)
- {
- ColorChat(id, GREEN, "[Shop] ^1Nemas dovoljno para")
- return PLUGIN_HANDLED
- }
- else
- {
- cs_set_user_money(id, cs_get_user_money(id) - 3000)
- DajPredmet(id, random_num(1, sizeof naziv_predmeta - 1))
- }
- }
- case 4:
- {
- if(cs_get_user_money(id) < 10000)
- {
- ColorChat(id, GREEN, "[Shop] ^1Nemas dovoljno para")
- return PLUGIN_HANDLED
- }
- else
- {
- cs_set_user_money(id, cs_get_user_money(id) - 10000)
- }
- switch(random(5))
- {
- case 0:
- {
- iskustvo_igraca[id] += 20
- ColorChat(id, GREEN, "[Shop] ^1Dobio si^3 20 ^1Experience Poena")
- ProveriNivo(id)
- }
- case 1:
- {
- iskustvo_igraca[id] += 40
- ColorChat(id, GREEN, "[Shop] ^1Dobio si^3 40 ^1Experience Poena")
- ProveriNivo(id)
- }
- case 2:
- {
- iskustvo_igraca[id] += 60
- ColorChat(id, GREEN, "[Shop] ^1Dobio si^3 60 ^1Experience Poena")
- ProveriNivo(id)
- }
- case 3:
- {
- iskustvo_igraca[id] += 80
- ColorChat(id, GREEN, "[Shop] ^1Dobio si^3 80 ^1Experience Poena")
- ProveriNivo(id)
- }
- case 4:
- {
- iskustvo_igraca[id] += 100
- ColorChat(id, GREEN, "[Shop] ^1Dobio si^3 100 ^1Experience Poena")
- ProveriNivo(id)
- }
- }
- }
- }
- return PLUGIN_CONTINUE
- }
- public CmdStart(id, uc_handle)
- {
- if(!is_user_alive(id))
- {
- return FMRES_IGNORED
- }
- new button = get_uc(uc_handle, UC_Buttons)
- new oldbutton = get_user_oldbutton(id)
- new flags = get_entity_flags(id)
- if(informacije_predmet_igraca[id][0] == 11 || klasa_igraca[id] == Assassin)
- {
- if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && broj_skokova_igraca[id] > 0)
- {
- broj_skokova_igraca[id]--
- new Float:velocity[3]
- entity_get_vector(id,EV_VEC_velocity,velocity)
- velocity[2] = random_float(265.0,285.0)
- entity_set_vector(id,EV_VEC_velocity,velocity)
- }
- else if(flags & FL_ONGROUND)
- {
- broj_skokova_igraca[id] = 0
- if(informacije_predmet_igraca[id][0] == 11)
- {
- broj_skokova_igraca[id]++
- }
- if(klasa_igraca[id] == Assassin)
- {
- broj_skokova_igraca[id]++
- }
- }
- }
- if(button & IN_ATTACK)
- {
- new Float:punchangle[3]
- if(informacije_predmet_igraca[id][0] == 20)
- {
- entity_set_vector(id, EV_VEC_punchangle, punchangle)
- }
- if(informacije_predmet_igraca[id][0] == 23)
- {
- entity_get_vector(id, EV_VEC_punchangle, punchangle)
- for(new i=0; i<3;i++)
- {
- punchangle[i]*=0.9
- }
- entity_set_vector(id, EV_VEC_punchangle, punchangle)
- }
- }
- 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)
- {
- informacije_predmet_igraca[id][1] = floatround(get_gametime())
- new Float:velocity[3]
- VelocityByAim(id, 700, velocity)
- velocity[2] = random_float(265.0,285.0)
- entity_set_vector(id, EV_VEC_velocity, velocity)
- }
- return FMRES_IGNORED
- }
- public Pocetak(id)
- {
- if(!is_user_alive(id))
- {
- return PLUGIN_HANDLED
- }
- if(nova_klasa_igraca[id])
- {
- klasa_igraca[id] = nova_klasa_igraca[id]
- nova_klasa_igraca[id] = 0
- strip_user_weapons(id)
- give_item(id, "weapon_knife")
- switch(get_user_team(id))
- {
- case 1:
- {
- give_item(id, "weapon_glock18")
- }
- case 2:
- {
- give_item(id, "weapon_usp")
- }
- }
- set_user_rendering(id)
- UcitajPodatke(id, klasa_igraca[id])
- }
- if(!klasa_igraca[id])
- {
- IzaberiKlasu(id)
- return PLUGIN_CONTINUE
- }
- switch(klasa_igraca[id])
- {
- case Snajperista:
- {
- give_item(id, "weapon_awp")
- give_item(id, "weapon_scout")
- }
- case Marinac:
- {
- give_item(id, "weapon_deagle")
- }
- case SWAT:
- {
- give_item(id, "weapon_m4a1")
- }
- case Terorista:
- {
- give_item(id, "weapon_ak47")
- }
- case Mitraljezac:
- {
- give_item(id, "weapon_m249")
- }
- case Doktor:
- {
- give_item(id, "weapon_ump45")
- //broj_medkit_igraca[id] = 2
- }
- case Vatrena_podrska:
- {
- give_item(id, "weapon_mp5navy")
- broj_raketa_igraca[id] = 2
- }
- case Miner:
- {
- give_item(id, "weapon_p90")
- broj_min_igraca[id] = 3
- }
- case Demolitions:
- {
- give_item(id, "weapon_aug")
- broj_dinamita_igraca[id] = 1
- }
- case Rusher:
- {
- give_item(id, "weapon_m3")
- }
- case Spijun:
- {
- give_item(id, "weapon_deagle")
- PromeniModel(id, 0)
- }
- case Pesadinac:
- {
- give_item(id, "weapon_famas")
- }
- case Assassin:
- {
- give_item(id, "weapon_usp")
- }
- }
- if(igrac_resetuje[id])
- {
- ResetujPoene(id)
- igrac_resetuje[id] = false
- }
- if(poeni_igraca[id] > 0)
- {
- DodelaPoena(id)
- }
- if(informacije_predmet_igraca[id][0] == 9)
- {
- PromeniModel(id, 0)
- }
- if(informacije_predmet_igraca[id][0] == 1)
- {
- set_user_footsteps(id, 1)
- }
- else
- {
- set_user_footsteps(id, 0)
- }
- if(informacije_predmet_igraca[id][0] == 13)
- {
- give_item(id, "weapon_awp")
- }
- if(informacije_predmet_igraca[id][0] == 19)
- {
- informacije_predmet_igraca[id][1] = 1
- }
- if(informacije_predmet_igraca[id][0] == 27)
- {
- informacije_predmet_igraca[id][1] = 3
- }
- new weapons[32]
- new weaponsnum
- get_user_weapons(id, weapons, weaponsnum)
- for(new i = 0; i < weaponsnum; i ++)
- {
- if(is_user_alive(id))
- {
- if(maxAmmo[weapons[i]] > 0)
- {
- cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]])
- }
- }
- }
- smanjene_povrede_igraca[id] = (47.3057 * (1.0 - floatpower(2.7182, - 0.06798 * float(snaga_igraca[id]))) / 100)
- maximalna_energija_igraca[id] = energija_klasa[klasa_igraca[id]] + energija_igraca[id] * 2
- brzina_igraca[id] = STANDARDNA_BRZINA * brzina_klasa[klasa_igraca[id]] + floatround(kondicija_igraca[id] * 1.3)
- if(informacije_predmet_igraca[id][0] == 18)
- {
- maximalna_energija_igraca[id] += 100
- brzina_igraca[id] -= 0.4
- }
- if(informacije_predmet_igraca[id][0] == 25)
- {
- maximalna_energija_igraca[id] += 50
- brzina_igraca[id] -= 0.3
- }
- set_user_armor(id, oklop_klase[klasa_igraca[id]])
- set_user_health(id, maximalna_energija_igraca[id])
- if(informacije_predmet_igraca[id][0] == 17)
- {
- set_user_armor(id, 500)
- }
- return PLUGIN_CONTINUE
- }
- public PocetakRunde()
- {
- freezetime = false
- for(new id = 0; id <= 32; id ++)
- {
- if(!is_user_alive(id))
- {
- continue
- }
- set_task(0.1, "PostaviBrzinu", id + ZADATAK_POSTAVI_BRZINU)
- switch(get_user_team(id))
- {
- case 1:
- {
- client_cmd(id, "spk mw/start")
- }
- case 2:
- {
- client_cmd(id, "spk mw/start2")
- }
- }
- }
- }
- public novaRunda()
- {
- freezetime = true
- new iEnt = find_ent_by_class(-1, "Mine")
- while(iEnt > 0)
- {
- remove_entity(iEnt)
- iEnt = find_ent_by_class(iEnt, "Mine")
- }
- }
- public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
- {
- 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])
- {
- return HAM_IGNORED
- }
- new health = get_user_health(this)
- new weapon = get_user_weapon(idattacker)
- if(health < 2)
- {
- return HAM_IGNORED
- }
- if(informacije_predmet_igraca[this][0] == 27 && informacije_predmet_igraca[this][1]>0)
- {
- informacije_predmet_igraca[this][1]--
- return HAM_SUPERCEDE
- }
- if(snaga_igraca[this] > 0)
- {
- damage -= smanjene_povrede_igraca[this] * damage
- }
- if(informacije_predmet_igraca[this][0] == 2 || informacije_predmet_igraca[this][0] == 3)
- {
- damage -= (float(informacije_predmet_igraca[this][1])<damage)? float(informacije_predmet_igraca[this][1]): damage;
- }
- if(informacije_predmet_igraca[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
- {
- damage *= 2.0
- }
- if(informacije_predmet_igraca[idattacker][0] == 10)
- {
- //...
- }
- if(informacije_predmet_igraca[this][0] == 12)
- {
- damage -= (5.0 < damage)? 5.0: damage
- }
- if(weapon == CSW_AWP && informacije_predmet_igraca[idattacker][0] == 13)
- {
- damage = float(health)
- }
- if(informacije_predmet_igraca[idattacker][0] == 21)
- {
- damage += 10
- }
- if(informacije_predmet_igraca[idattacker][0] == 22)
- {
- damage += 20
- }
- if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
- {
- if((informacije_predmet_igraca[idattacker][0] == 9 && random_num(1, informacije_predmet_igraca[idattacker][1]) == 1))
- {
- damage = float(health)
- }
- }
- if(weapon == CSW_KNIFE)
- {
- if(informacije_predmet_igraca[this][0] == 4)
- {
- damage = damage * 1.4 + inteligencija_igraca[idattacker]
- }
- if(informacije_predmet_igraca[idattacker][0] == 8 || klasa_igraca[idattacker] == Marinac && !(get_user_button(idattacker) & IN_ATTACK))
- {
- damage = float(health)
- }
- }
- if(informacije_predmet_igraca[this][0] == 26 && random_num(1, informacije_predmet_igraca[this][1]) == 1)
- {
- SetHamParamEntity(3, this)
- SetHamParamEntity(1, idattacker)
- }
- SetHamParamFloat(4, damage)
- return HAM_IGNORED
- }
- public Damage(id)
- {
- new attacker = get_user_attacker(id)
- new damage = read_data(2)
- if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker || !klasa_igraca[attacker])
- {
- return PLUGIN_CONTINUE
- }
- if(informacije_predmet_igraca[attacker][0] == 12 && random_num(1, informacije_predmet_igraca[id][1]) == 1)
- {
- Display_Fade(id, 1 << 14, 1 << 14, 1 << 16, 255, 155, 50, 230)
- }
- if(get_user_team(id) != get_user_team(attacker))
- {
- while(damage > 20)
- {
- damage -= 20
- iskustvo_igraca[attacker] ++
- }
- }
- ProveriNivo(attacker)
- return PLUGIN_CONTINUE
- }
- public Death()
- {
- killovi[read_data(2)] = 0
- killovi[read_data(1)] ++
- new id = read_data(2)
- new attacker = read_data(1)
- if(!is_user_alive(attacker) || !is_user_connected(attacker))
- {
- return PLUGIN_CONTINUE
- }
- new weapon = get_user_weapon(attacker)
- new energija = get_user_health(attacker)
- if(get_user_team(id) != get_user_team(attacker) && klasa_igraca[attacker])
- {
- new novo_iskustvo = 0
- novo_iskustvo += iskustvo_za_ubistvo
- if(klasa_igraca[id] == Assassin && klasa_igraca[attacker] != Assassin)
- {
- novo_iskustvo += iskustvo_za_ubistvo * 2
- }
- if(level_igraca[id] > level_igraca[attacker])
- {
- novo_iskustvo += level_igraca[id] - level_igraca[attacker]
- }
- if(klasa_igraca[attacker] == Assassin || informacije_predmet_igraca[attacker][0] == 15 && maxClip[weapon] != -1)
- {
- new nova_energija = (energija + 20 < maximalna_energija_igraca[attacker])? energija + 20: maximalna_energija_igraca[attacker]
- set_user_clip(attacker, maxClip[weapon])
- set_user_health(attacker, nova_energija)
- }
- if(!informacije_predmet_igraca[attacker][0])
- {
- DajPredmet(attacker, random_num(1, sizeof naziv_predmeta-1))
- }
- if(informacije_predmet_igraca[attacker][0] == 14)
- {
- new nova_energija = (energija + 50 < maximalna_energija_igraca[attacker])? energija + 50: maximalna_energija_igraca[attacker]
- set_user_health(attacker, nova_energija)
- }
- set_hudmessage(0, 255, 0, 0.50, 0.33, 1, 6.0, 4.0)
- ShowSyncHudMsg(attacker, SyncHudObj2, "+%i", novo_iskustvo)
- iskustvo_igraca[attacker] += novo_iskustvo
- }
- ProveriNivo(attacker)
- if(informacije_predmet_igraca[id][0] == 7 && random_num(1, informacije_predmet_igraca[id][1]) == 1)
- {
- set_task(0.1, "Provera", id + ZADATAK_PROVERA)
- }
- return PLUGIN_CONTINUE;
- }
- public client_authorized(id)
- {
- //Resetuje Vestine
- klasa_igraca[id] = 0
- level_igraca[id] = 0
- iskustvo_igraca[id] = 0
- poeni_igraca[id] = 0
- energija_igraca[id] = 0
- inteligencija_igraca[id] = 0
- snaga_igraca[id] = 0
- kondicija_igraca[id] = 0
- maximalna_energija_igraca[id] = 0
- brzina_igraca[id] = 0.0
- get_user_authid(id, ID_igraca[id], 34)
- remove_task(id+ZADATAK_POKAZI_INFORMACIJE)
- remove_task(id+ZADATAK_POSTAVI_BRZINU)
- remove_task(id+ZADATAK_PROVERA)
- remove_task(id+ZADATAK_SANITARNA_OBUKA)
- set_task(3.0, "PokaziInformacije", id + ZADATAK_POKAZI_INFORMACIJE)
- //Resetuje Predmet
- Obrisipredmet(id)
- }
- public client_disconnect(id)
- {
- remove_task(id+ZADATAK_POKAZI_INFORMACIJE)
- remove_task(id+ZADATAK_POSTAVI_BRZINU)
- remove_task(id+ZADATAK_PROVERA)
- remove_task(id+ZADATAK_SANITARNA_OBUKA)
- SacuvajPodatke(id)
- Obrisipredmet(id)
- }
- public PrebrojBombe(id)
- {
- if(klasa_igraca[id])
- {
- deaktivirana = id
- }
- }
- public BombaPostavljena()
- {
- new Players[32], playerCount, id
- get_players(Players, playerCount, "aeh", "TERRORIST")
- if(get_playersnum() > 1)
- {
- iskustvo_igraca[postavljena] += iskustvo_za_c4
- for (new i = 0; i < playerCount; i ++)
- {
- id = Players[i]
- if(!klasa_igraca[id])
- {
- continue
- }
- if(id != postavljena)
- {
- iskustvo_igraca[id] += iskustvo_za_ubistvo
- ColorChat(id, GREEN, "[COD:MW] ^1Dobio si ^3%i ^1XP zato sto je tvoj tim postavio bombu.", iskustvo_za_ubistvo)
- }
- else
- {
- ColorChat(id, GREEN, "[COD:MW] ^1Dobio si ^3%i ^1XP zato sto si postavio bombu.", iskustvo_za_c4)
- }
- ProveriNivo(id)
- }
- }
- }
- public BombaDeaktivirana()
- {
- new Players[32], playerCount, id
- get_players(Players, playerCount, "aeh", "CT")
- iskustvo_igraca[deaktivirana] += iskustvo_za_c4
- for (new i = 0; i < playerCount; i ++)
- {
- id = Players[i]
- if(!klasa_igraca[id])
- {
- continue
- }
- if(id != deaktivirana)
- {
- iskustvo_igraca[id] += iskustvo_za_ubistvo
- ColorChat(id, GREEN, "[COD:MW] ^1Dobio si ^3%i ^1XP zato sto je tvoj tim deaktivirao bombu", iskustvo_za_ubistvo)
- }
- else
- {
- ColorChat(id, GREEN, "[COD:MW] ^1Dobio si ^3%i % ^1XP zato sto si deaktivirao bombu",iskustvo_za_c4)
- }
- ProveriNivo(id)
- }
- }
- public OpisKlase(id)
- {
- new menu = menu_create("Izaberi Klasu:", "OpisKlase_Handle")
- for(new i = 1; i < sizeof naziv_klase; i++)
- menu_additem(menu, naziv_klase[i])
- menu_setprop(menu, MPROP_EXITNAME, "Izlaz")
- menu_setprop(menu, MPROP_BACKNAME, "Prethodna strana")
- menu_setprop(menu, MPROP_NEXTNAME, "Sledeca strana")
- menu_display(id, menu)
- client_cmd(id, "spk mw/select")
- }
- public OpisKlase_Handle(id, menu, item)
- {
- client_cmd(id, "spk mw/select")
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_CONTINUE
- }
- ColorChat(id, GREEN, "[COD:MW] ^3%s: ^1%s", naziv_klase[item+1], opis_klase[item+1])
- menu_display(id, menu)
- return PLUGIN_CONTINUE
- }
- public IzaberiKlasu(id)
- {
- new menu = menu_create("Izaberi klasu:", "IzaberiKlasu_Handle")
- new klasa[50]
- for(new i = 1; i < sizeof naziv_klase; i ++)
- {
- UcitajPodatke(id, i)
- format(klasa, 49, "%s \yLevel: %i", naziv_klase[i], level_igraca[id])
- menu_additem(menu, klasa)
- }
- UcitajPodatke(id, klasa_igraca[id])
- menu_setprop(menu, MPROP_EXITNAME, "Izlaz")
- menu_setprop(menu, MPROP_BACKNAME, "Sledeca Strana")
- menu_setprop(menu, MPROP_NEXTNAME, "Predhodna Strana")
- menu_display(id, menu)
- client_cmd(id, "spk mw/select")
- }
- public IzaberiKlasu_Handle(id, menu, item)
- {
- client_cmd(id, "spk mw/select")
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_CONTINUE
- }
- item++
- if(item == klasa_igraca[id])
- {
- return PLUGIN_CONTINUE
- }
- if(item == Assassin && !(get_user_flags(id) & ADMIN_RCON))
- {
- ColorChat(id, GREEN, "[COD:MW] ^1Nemate dozvolu za Premium Klasu")
- IzaberiKlasu(id)
- return PLUGIN_CONTINUE
- }
- if(klasa_igraca[id])
- {
- nova_klasa_igraca[id] = item
- ColorChat(id, GREEN, "[COD:MW] ^1Klasa ce biti izmenjena u sledecoj rundi")
- }
- else
- {
- klasa_igraca[id] = item
- UcitajPodatke(id, klasa_igraca[id])
- Pocetak(id)
- }
- return PLUGIN_CONTINUE
- }
- public DodelaPoena(id)
- {
- new inteligencija[65]
- new energija[60]
- new snaga[60]
- new kondicija[60]
- new naslov[50]
- format(inteligencija, 64, "Inteligencija: \r%i \y[Povecava napad]", inteligencija_igraca[id])
- format(energija, 59, "Energija: \r%i \y[Povecaca energiju]", energija_igraca[id])
- format(snaga, 59, "Snaga: \r%i \y[Smanjuje povrede]", snaga_igraca[id])
- format(kondicija, 59, "Kondicija: \r%i \y[Povecava tempo trcanja]", kondicija_igraca[id])
- format(naslov, 49, "Preostalo ti je jos %i poena!", poeni_igraca[id])
- new menu = menu_create(naslov, "DodelaPoena_Handler")
- menu_additem(menu, inteligencija)
- menu_additem(menu, energija)
- menu_additem(menu, snaga)
- menu_additem(menu, kondicija)
- menu_display(id, menu)
- }
- public DodelaPoena_Handler(id, menu, item)
- {
- client_cmd(id, "spk mw/select")
- if(item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- switch(item)
- {
- case 0:
- {
- inteligencija_igraca[id]++
- }
- case 1:
- {
- energija_igraca[id]++
- }
- case 2:
- {
- snaga_igraca[id]++
- }
- case 3:
- {
- kondicija_igraca[id]++
- }
- }
- poeni_igraca[id]--
- if(poeni_igraca[id] > 0)
- {
- DodelaPoena(id)
- }
- return PLUGIN_CONTINUE
- }
- public ResetujPoene(id)
- {
- poeni_igraca[id] = level_igraca[id] * 2 - 2
- inteligencija_igraca[id] = 0
- energija_igraca[id] = 0
- kondicija_igraca[id] = 0
- snaga_igraca[id] = 0
- }
- public KomandaResetujPoene(id)
- {
- ColorChat(id, GREEN, "[COD:MW] ^1Vestine ce biti resetovane u sledecoj rundi")
- client_cmd(id, "spk mw/select")
- igrac_resetuje[id] = true
- }
- public SanitarnaObuka(id)
- {
- id -= ZADATAK_SANITARNA_OBUKA
- if(informacije_predmet_igraca[id][0] != 16)
- {
- return PLUGIN_CONTINUE
- }
- set_task(5.0, "SanitarnaObuka", id + ZADATAK_SANITARNA_OBUKA)
- if(!is_user_alive(id))
- {
- return PLUGIN_CONTINUE
- }
- new health = get_user_health(id)
- new new_health = (health + 10 < maximalna_energija_igraca[id])? health + 10:maximalna_energija_igraca[id]
- set_user_health(id, new_health)
- return PLUGIN_CONTINUE
- }
- public KreirajMedKit(id)
- {
- if (!broj_medkit_igraca[id])
- {
- client_print(id, print_center, "Imats samo 2 paketa za prvu pomoc u jednoj rundi!")
- return PLUGIN_CONTINUE
- }
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristis Paket za Prvu Pomoc, moras povecati inteligenciju")
- }
- broj_medkit_igraca[id]--
- new Float:origin[3]
- entity_get_vector(id, EV_VEC_origin, origin)
- new ent = create_entity("info_target")
- entity_set_string(ent, EV_SZ_classname, "MedKit")
- entity_set_edict(ent, EV_ENT_owner, id)
- entity_set_int(ent, EV_INT_solid, SOLID_NOT)
- entity_set_vector(ent, EV_VEC_origin, origin)
- entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1)
- entity_set_model(ent, "models/cod_medkit.mdl")
- set_rendering (ent, kRenderFxGlowShell, 255, 0, 0, kRenderFxNone, 255)
- drop_to_floor(ent)
- entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1)
- return PLUGIN_CONTINUE
- }
- public MedKitThink(ent)
- {
- new id = entity_get_edict(ent, EV_ENT_owner)
- new totem_dist = 300
- new totem_heal = 5 + floatround(inteligencija_igraca[id] * 0.5)
- if(entity_get_edict(ent, EV_ENT_euser2) == 1)
- {
- new Float:forigin[3], origin[3]
- entity_get_vector(ent, EV_VEC_origin, forigin)
- FVecIVec(forigin,origin)
- new entlist[33]
- new numfound = find_sphere_class(0, "player", totem_dist + 0.0, entlist, 32, forigin)
- for(new i = 0; i < numfound; i ++)
- {
- new pid = entlist[i]
- if (get_user_team(pid) != get_user_team(id))
- {
- continue
- }
- new energija = get_user_health(pid)
- new nova_energija = (energija+totem_heal<maximalna_energija_igraca[pid])?energija+totem_heal:maximalna_energija_igraca[pid]
- if(is_user_alive(pid))
- {
- set_user_health(pid, nova_energija)
- }
- }
- entity_set_edict(ent, EV_ENT_euser2, 0)
- entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5)
- return PLUGIN_CONTINUE
- }
- if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
- {
- remove_entity(ent)
- return PLUGIN_CONTINUE
- }
- if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
- {
- set_rendering(ent, kRenderFxNone, 255, 255, 255, kRenderTransAlpha, 100)
- }
- new Float:forigin[3], origin[3]
- entity_get_vector(ent, EV_VEC_origin, forigin)
- FVecIVec(forigin,origin)
- //Find people near and give them health
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY, origin)
- write_byte(TE_BEAMCYLINDER)
- write_coord(origin[0])
- write_coord(origin[1])
- write_coord(origin[2])
- write_coord(origin[0])
- write_coord(origin[1] + totem_dist)
- write_coord(origin[2] + totem_dist)
- write_short(sprite_white)
- write_byte(0) // startframe
- write_byte(0) // framerate
- write_byte(10) // life
- write_byte(10) // width
- write_byte(255) // noise
- write_byte(255) // r, g, b
- write_byte(100)// r, g, b
- write_byte(100) // r, g, b
- write_byte(128) // brightness
- write_byte(5) // speed
- message_end()
- entity_set_edict(ent, EV_ENT_euser2, 1)
- entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5)
- return PLUGIN_CONTINUE
- }
- public KreirajRakete(id)
- {
- if (!broj_raketa_igraca[id])
- {
- client_print(id, print_center, "Vec si iskoristio sve rakete!")
- return PLUGIN_CONTINUE
- }
- if(prethodna_raketa_igraca[id] + 2.0 > get_gametime())
- {
- client_print(id, print_center, "Mozes da koristis raketu za 2 sekunde!")
- return PLUGIN_CONTINUE
- }
- if (is_user_alive(id))
- {
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristis rakete, moras povecati inteligenciju!")
- }
- prethodna_raketa_igraca[id] = get_gametime()
- broj_raketa_igraca[id]--
- new Float: Origin[3], Float: vAngle[3], Float: Velocity[3]
- entity_get_vector(id, EV_VEC_v_angle, vAngle)
- entity_get_vector(id, EV_VEC_origin , Origin)
- new Ent = create_entity("info_target")
- entity_set_string(Ent, EV_SZ_classname, "Rocket")
- entity_set_model(Ent, "models/cod_rpgrocket.mdl")
- vAngle[0] *= -1.0
- entity_set_origin(Ent, Origin)
- entity_set_vector(Ent, EV_VEC_angles, vAngle)
- entity_set_int(Ent, EV_INT_effects, 2)
- entity_set_int(Ent, EV_INT_solid, SOLID_BBOX)
- entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY)
- entity_set_edict(Ent, EV_ENT_owner, id)
- VelocityByAim(id, 1000 , Velocity)
- entity_set_vector(Ent, EV_VEC_velocity ,Velocity)
- }
- return PLUGIN_CONTINUE
- }
- public KreirajDinamit(id)
- {
- if(!broj_dinamita_igraca[id])
- {
- client_print(id, print_center, "Vec si iskoristio sav dinamit!")
- return PLUGIN_CONTINUE
- }
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristis dinamit, moras povecati inteligenciju!")
- }
- broj_dinamita_igraca[id]--
- new Float:fOrigin[3], iOrigin[3]
- entity_get_vector( id, EV_VEC_origin, fOrigin)
- iOrigin[0] = floatround(fOrigin[0])
- iOrigin[1] = floatround(fOrigin[1])
- iOrigin[2] = floatround(fOrigin[2])
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin)
- write_byte(TE_EXPLOSION)
- write_coord(iOrigin[0])
- write_coord(iOrigin[1])
- write_coord(iOrigin[2])
- write_short(sprite_blast)
- write_byte(32)
- write_byte(20)
- write_byte(0)
- message_end()
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iOrigin)
- write_byte(TE_BEAMCYLINDER )
- write_coord(iOrigin[0])
- write_coord(iOrigin[1])
- write_coord(iOrigin[2])
- write_coord(iOrigin[0])
- write_coord(iOrigin[1] + 300)
- write_coord(iOrigin[2] + 300)
- write_short(sprite_white)
- write_byte(0) // startframe
- write_byte(0) // framerate
- write_byte(10) // life
- write_byte(10) // width
- write_byte(255) // noise
- write_byte(255) // r, g, b
- write_byte(100)// r, g, b
- write_byte(100) // r, g, b
- write_byte(128) // brightness
- write_byte(8) // speed
- message_end()
- new entlist[33];
- new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
- for (new i = 0; i < numfound; i ++)
- {
- new pid = entlist[i]
- if(!is_user_alive(pid) || get_user_team(id) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24)
- {
- continue
- }
- ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencija_igraca[id]), 1)
- }
- return PLUGIN_CONTINUE
- }
- public PostaviMine(id)
- {
- if(!broj_min_igraca[id])
- {
- client_print(id, print_center, "Vec si iskoristio sve mine!")
- return PLUGIN_CONTINUE
- }
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristis mine, moras povecati inteligenciju!")
- }
- broj_min_igraca[id]--
- new Float:origin[3]
- entity_get_vector(id, EV_VEC_origin, origin)
- new ent = create_entity("info_target")
- entity_set_string(ent ,EV_SZ_classname, "Mine")
- entity_set_edict(ent ,EV_ENT_owner, id)
- entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS)
- entity_set_origin(ent, origin)
- entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
- entity_set_model(ent, "models/cod_mine.mdl")
- entity_set_size(ent,Float:{ -16.0,-16.0,0.0 }, Float:{ 16.0,16.0,2.0 })
- drop_to_floor(ent)
- entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)
- set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50)
- return PLUGIN_CONTINUE
- }
- public DodirMine(ent, id)
- {
- new attacker = entity_get_edict(ent, EV_ENT_owner)
- if (get_user_team(attacker) != get_user_team(id))
- {
- new Float:fOrigin[3], iOrigin[3]
- entity_get_vector( ent, EV_VEC_origin, fOrigin)
- iOrigin[0] = floatround(fOrigin[0])
- iOrigin[1] = floatround(fOrigin[1])
- iOrigin[2] = floatround(fOrigin[2])
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin)
- write_byte(TE_EXPLOSION)
- write_coord(iOrigin[0])
- write_coord(iOrigin[1])
- write_coord(iOrigin[2])
- write_short(sprite_blast)
- write_byte(32) // scale
- write_byte(20) // framerate
- write_byte(0) // flags
- message_end()
- new entlist[33]
- new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32)
- for (new i=0; i < numfound; i++)
- {
- new pid = entlist[i]
- if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24 || klasa_igraca[id] == Mitraljezac)
- {
- continue
- }
- ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencija_igraca[attacker]), 1)
- }
- remove_entity(ent)
- }
- }
- public DodirRakete(ent)
- {
- if(!is_valid_ent(ent))
- {
- return
- }
- new attacker = entity_get_edict(ent, EV_ENT_owner)
- new Float:fOrigin[3], iOrigin[3]
- entity_get_vector( ent, EV_VEC_origin, fOrigin)
- iOrigin[0] = floatround(fOrigin[0])
- iOrigin[1] = floatround(fOrigin[1])
- iOrigin[2] = floatround(fOrigin[2])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY, iOrigin)
- write_byte(TE_EXPLOSION)
- write_coord(iOrigin[0])
- write_coord(iOrigin[1])
- write_coord(iOrigin[2])
- write_short(sprite_blast)
- write_byte(32) // scale
- write_byte(20) // framerate
- write_byte(0) // flags
- message_end()
- new entlist[33]
- new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32)
- for (new i = 0; i < numfound; i ++)
- {
- new pid = entlist[i]
- if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || informacije_predmet_igraca[pid][0] == 24)
- {
- continue
- }
- ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0 + float(inteligencija_igraca[attacker]), 1)
- }
- remove_entity(ent)
- }
- public CurWeapon(id)
- {
- if(freezetime || !klasa_igraca[id])
- {
- return PLUGIN_CONTINUE
- }
- new weapon = read_data(2)
- PostaviBrzinu(id)
- if(weapon == CSW_C4)
- {
- postavljena = id
- }
- if(klasa_igraca[id] == Assassin)
- {
- if(get_user_weapon(id) == CSW_KNIFE)
- {
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 0)
- }
- else
- {
- set_user_rendering(id)
- }
- }
- return PLUGIN_CONTINUE
- }
- public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
- {
- if(equal(szSound, "common/wpn_denyselect.wav"))
- {
- KoristiPredmet(id)
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public KoristiPredmet(id)
- {
- if(informacije_predmet_igraca[id][0] == 19 && informacije_predmet_igraca[id][1]>0)
- {
- set_user_health(id, maximalna_energija_igraca[id])
- informacije_predmet_igraca[id][1]--
- }
- if(broj_medkit_igraca[id] > 0)
- {
- KreirajMedKit(id)
- }
- if(broj_raketa_igraca[id] > 0)
- {
- KreirajRakete(id)
- }
- if(broj_min_igraca[id] > 0)
- {
- PostaviMine(id)
- }
- if(broj_dinamita_igraca[id] > 0)
- {
- KreirajDinamit(id)
- }
- return PLUGIN_HANDLED;
- }
- public SacuvajPodatke(id)
- {
- new vaultkey[64],vaultdata[256]
- format(vaultkey,63,"%s-%i-cod", ID_igraca[id], klasa_igraca[id])
- 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])
- nvault_set(g_vault,vaultkey,vaultdata)
- }
- public UcitajPodatke(id, klasa)
- {
- new vaultkey[64],vaultdata[256]
- format(vaultkey,63,"%s-%i-cod", ID_igraca[id], klasa)
- 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])
- nvault_get(g_vault,vaultkey,vaultdata,255)
- replace_all(vaultdata, 255, "#", " ")
- new iskustvoigraca[32], leveligraca[32], inteligencijaigraca[32], energijaigraca[32], snagacigraca[32], kondicijaigraca[32]
- parse(vaultdata, iskustvoigraca, 31, leveligraca, 31, inteligencijaigraca, 31, energijaigraca, 31, snagacigraca, 31, kondicijaigraca, 31)
- iskustvo_igraca[id] = str_to_num(iskustvoigraca)
- level_igraca[id] = str_to_num(leveligraca)>0?str_to_num(leveligraca):1
- inteligencija_igraca[id] = str_to_num(inteligencijaigraca)
- energija_igraca[id] = str_to_num(energijaigraca)
- snaga_igraca[id] = str_to_num(snagacigraca)
- kondicija_igraca[id] = str_to_num(kondicijaigraca)
- poeni_igraca[id] = (level_igraca[id] - 1) * 2 - inteligencija_igraca[id] - energija_igraca[id] - snaga_igraca[id] - kondicija_igraca[id]
- }
- public IzbaciPredmet(id)
- {
- if(informacije_predmet_igraca[id][0])
- {
- ColorChat(id, GREEN, "[COD:MW] ^1Bacio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]])
- Obrisipredmet(id);
- }
- else
- {
- ColorChat(id, GREEN, "[COD:MW] ^1Nemate nijedan predmet.", naziv_predmeta[informacije_predmet_igraca[id][0]])
- }
- }
- public Obrisipredmet(id)
- {
- informacije_predmet_igraca[id][0] = 0
- informacije_predmet_igraca[id][1] = 0
- if(is_user_alive(id))
- {
- set_user_footsteps(id, 0)
- }
- set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
- PromeniModel(id, 1)
- }
- public DajPredmet(id, predmet)
- {
- Obrisipredmet(id)
- informacije_predmet_igraca[id][0] = predmet
- ColorChat(id, GREEN, "[COD:MW] ^1Dobio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]])
- switch(predmet)
- {
- case 1:
- {
- set_user_footsteps(id, 1)
- }
- case 2:
- {
- informacije_predmet_igraca[id][1] = random_num(3,6)
- }
- case 3:
- {
- informacije_predmet_igraca[id][1] = random_num(6, 11)
- }
- case 5:
- {
- informacije_predmet_igraca[id][1] = random_num(6, 9)
- }
- case 6:
- {
- informacije_predmet_igraca[id][1] = random_num(100, 150)
- set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, informacije_predmet_igraca[id][1])
- }
- case 7:
- {
- informacije_predmet_igraca[id][1] = random_num(2, 4)
- }
- case 8:
- {
- if(klasa_igraca[id] == Marinac)
- {
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1))
- }
- }
- case 9:
- {
- informacije_predmet_igraca[id][1] = random_num(1, 3)
- PromeniModel(id, 0)
- give_item(id, "weapon_hegrenade")
- }
- case 10:
- {
- informacije_predmet_igraca[id][1] = random_num(4, 8)
- give_item(id, "weapon_hegrenade")
- }
- case 12:
- {
- informacije_predmet_igraca[id][1] = random_num(1, 4)
- }
- case 13:
- {
- give_item(id, "weapon_awp")
- }
- case 15:
- {
- if(klasa_igraca[id] == Assassin)
- {
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1))
- }
- }
- case 16:
- {
- set_task(5.0, "SanitarnaObuka", id + ZADATAK_SANITARNA_OBUKA)
- }
- case 19:
- {
- informacije_predmet_igraca[id][1] = 1
- }
- case 26:
- {
- informacije_predmet_igraca[id][1] = random_num(3, 6)
- }
- case 27:
- {
- informacije_predmet_igraca[id][1] = 3
- }
- }
- }
- public OpisPredmeta(id)
- {
- new opis_predmeta[128]
- new slucajne_vrednosti[3]
- num_to_str(informacije_predmet_igraca[id][1], slucajne_vrednosti, 2)
- format(opis_predmeta, 127, opis_predmet[informacije_predmet_igraca[id][0]])
- replace_all(opis_predmeta, 127, "LW", slucajne_vrednosti)
- ColorChat(id, GREEN, "Predmet: ^1%s.", naziv_predmeta[informacije_predmet_igraca[id][0]])
- ColorChat(id, GREEN, "Opis: ^1%s.", opis_predmeta)
- }
- public Proveri(id)
- {
- id -= ZADATAK_PROVERA
- ExecuteHamB(Ham_CS_RoundRespawn, id)
- }
- public ProveriNivo(id)
- {
- if(!is_user_connected(id))
- {
- return PLUGIN_HANDLED
- }
- new level_ratio = 75
- new max_level = 1000000
- //new level_ratio = get_pcvar_num(p_LevelRatio)
- //new max_level = get_pcvar_num(p_MaxLevel)
- while(iskustvo_igraca[id] >= iskustvo_levelu[id] && level_igraca[id] < max_level)
- {
- level_igraca[id]++
- poeni_igraca[id] = (level_igraca[id] - 1) * 2 - inteligencija_igraca[id] - energija_igraca[id] - snaga_igraca[id] - kondicija_igraca[id]
- set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 6.0, 5.0)
- ShowSyncHudMsg(id, SyncHudObj3,"Dobrodosao na %i Level!", level_igraca[id])
- client_cmd(id, "spk mw/levelup")
- iskustvo_levelu[id] = level_igraca[id] * (2 * level_ratio)
- }
- if(level_igraca[id] > max_level)
- {
- level_igraca[id] = max_level
- KomandaResetujPoene(id)
- }
- SacuvajPodatke(id)
- return PLUGIN_CONTINUE
- }
- public PokaziInformacije(id)
- {
- id -= ZADATAK_POKAZI_INFORMACIJE
- set_task(0.1, "PokaziInformacije", id + ZADATAK_POKAZI_INFORMACIJE)
- if(!is_user_alive(id))
- {
- new target = entity_get_int(id, EV_INT_iuser2)
- if(target == 0)
- {
- return PLUGIN_CONTINUE
- }
- set_hudmessage(255, 255, 255, -1.0, 0.0, 0, 0.0, 0.3, 0.0, 0.0, 2)
- 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])
- return PLUGIN_CONTINUE
- }
- set_hudmessage(255, 255, 0, -1.0, 0.0, 0, 0.0, 0.3, 0.0, 0.0)
- 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])
- return PLUGIN_CONTINUE
- }
- public PostaviBrzinu(id)
- {
- id -= id > 32? ZADATAK_POSTAVI_BRZINU: 0
- if(klasa_igraca[id])
- {
- set_user_maxspeed(id, brzina_igraca[id])
- }
- }
- public PromeniModel(id,reset)
- {
- if(id < 1 || id > 32 || !is_user_connected(id))
- {
- return PLUGIN_CONTINUE
- }
- if(reset)
- {
- cs_reset_user_model(id)
- }
- else
- {
- new num = random_num(0,3)
- switch(get_user_team(id))
- {
- case 1:
- {
- cs_set_user_model(id, Kamuflaza_CT[num])
- }
- case 2:
- {
- cs_set_user_model(id, Kamuflaza_T[num])
- }
- }
- }
- return PLUGIN_CONTINUE;
- }
- public Pomoc()
- {
- switch(random(8))
- {
- case 0:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da resetujes level-e, ^3say: /reset")
- }
- case 1:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da promenis klasu, ^3say: /klasa")
- }
- case 2:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da koristis predmete (mine, rakete), stisni ^3E")
- }
- case 3:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da izbacis predmet, ^3say: /izbaci")
- }
- case 4:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da vidis opis predmeta, ^3say: /predmet")
- }
- case 5:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da vidis opis klase, ^3say: /opis")
- }
- case 6:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da otvoris COD:MW Shop, ^3say: /shop")
- }
- case 7:
- {
- ColorChat(0, GREEN, "[COD:MW] ^1Da otvoris KillStreak menu, ^3say: /ks")
- }
- }
- set_task(30.0, "Pomoc")
- }
- public DodirOruzija(weapon,id)
- {
- new model[23]
- entity_get_string(weapon, EV_SZ_model, model, 22)
- if(!is_user_connected(id) || entity_get_edict(weapon, EV_ENT_owner) == id || equal(model, "models/w_backpack.mdl"))
- {
- return HAM_IGNORED
- }
- return HAM_SUPERCEDE
- }
- public plugin_end()
- {
- nvault_close(g_vault)
- }
- stock bool:UTIL_In_FOV(id, target)
- {
- if (Find_Angle(id, target, 9999.9) > 0.0)
- {
- return true
- }
- return false
- }
- stock Float:Find_Angle(Core,Target,Float:dist)
- {
- new Float:vec2LOS[2]
- new Float:flDot
- new Float:CoreOrigin[3]
- new Float:TargetOrigin[3]
- new Float:CoreAngles[3]
- pev(Core,pev_origin,CoreOrigin)
- pev(Target,pev_origin,TargetOrigin)
- if(get_distance_f(CoreOrigin,TargetOrigin) > dist)
- {
- return 0.0
- }
- pev(Core,pev_angles, CoreAngles);
- for(new i = 0; i < 2; i ++)
- {
- vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i]
- }
- new Float:veclength = Vec2DLength(vec2LOS)
- //Normalize V2LOS
- if(veclength <= 0.0)
- {
- vec2LOS[0] = 0.0
- vec2LOS[1] = 0.0
- }
- else
- {
- new Float:flLen = 1.0 / veclength
- vec2LOS[0] = vec2LOS[0] * flLen
- vec2LOS[1] = vec2LOS[1] * flLen
- }
- //Do a makevector to make v_forward right
- engfunc(EngFunc_MakeVectors,CoreAngles)
- new Float:v_forward[3]
- new Float:v_forward2D[2]
- get_global_vector(GL_v_forward, v_forward)
- v_forward2D[0] = v_forward[0]
- v_forward2D[1] = v_forward[1]
- flDot = vec2LOS[0] * v_forward2D[0]+vec2LOS[1] * v_forward2D[1]
- if (flDot > 0.5)
- {
- return flDot
- }
- return 0.0
- }
- stock Float:Vec2DLength(Float:Vec[2])
- {
- return floatsqroot(Vec[0] * Vec[0] + Vec[1] * Vec[1])
- }
- stock Display_Fade(id, duration, holdtime, fadetype, red, green, blue, alpha)
- {
- message_begin(MSG_ONE, g_msg_screenfade, { 0, 0, 0 }, id)
- write_short(duration) // Duration of fadeout
- write_short(holdtime) // Hold time of color
- write_short(fadetype) // Fade type
- write_byte(red) // Red
- write_byte(green) // Green
- write_byte(blue) // Blue
- write_byte(alpha) // Alpha
- message_end()
- }
- stock set_user_clip(id, ammo)
- {
- new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _)
- get_weaponname(weapon, weaponname, 31)
- while((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
- {
- if(entity_get_edict(weaponid, EV_ENT_owner) == id)
- {
- set_pdata_int(weaponid, 51, ammo, 4)
- return weaponid
- }
- }
- return 0
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement