Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmodx>
- #include <amxmisc>
- #include <fun>
- #include <cstrike>
- #include <fakemeta>
- #include <engine>
- #include <hamsandwich>
- #include <nvault>
- #include <colorchat>
- #define PLUGIN "Call of Duty: MW Mod"
- #define VERSION "0.7.9 Beta"
- #define AUTHOR "QTM"
- #define STANDARDNA_brzina 250.0
- #define ZADATAK_POKAZI_INFORMACIJE 672
- #define ZADATAK_PROVERA 704
- #define ZADATAK_WYSZKOLENIE_SANITARNE 736
- #define ZADATAK_POKAZI_REKLAME 768
- #define ZADATAK_POSTAVI_brzinu 832
- #define FL_WATERJUMP (1<<11)
- #define FL_ONGROUND (1<<9)
- //#define BOTY 1
- new SyncHudObj;
- new SyncHudObj2;
- new SyncHudObj3;
- new g_msg_screenfade;
- new sprite_white;
- new sprite_blast;
- new g_vault;
- new iskustvo_za_ubistvo;
- new iskustvo_za_pare;
- new iskustvo_za_mnogopara;
- new iskustvo_za_tiket;
- new iskustvo_za_budale;
- new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
- new Ubrania_Terro[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
- "HE Expert", //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",
- "Smanjuje stetu za LW %",
- "Smanjuje stetu za LW %",
- "Brze ubijas nozem",
- "Kada pogodite nekog od pozadi, povrede su dva puta vece",
- "Imate LW % nevidljivosti",
- "1/LW sanse da se respawn posle smrti",
- "Brzo ubijanje nozem",
- "Imate 1/LW sanse da odmah ubijete sa HE. Takodje izgledate kao neprijatelj",
- "Instant kill sa granatom (HE). Zadajes LW % dodatne stete",
- "Dupli skok",
- "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];
- new nova_klasa_igraca[33];
- new const iskustvo_levelu[] = {0,35,140,315,560,875,1260,1715,2240,2835,3500,4235,5040,5915,6860,7875,8960,10115,11340,12635,14000,15435,16940,18515,20160,21875,23660,25515,27440,29435,31500,33635,35840,38115,40460,42875,45360,47915,50540,53235,56000,58835,61740,64715,67760,70875,
- 74060,77315,80640,84035,87500,91035,94640,98315,102060,105875,109760,113715,117740,121835,126000,130235,134540,138915,143360,147875,152460,157115,161840,166635,171500,176435,181440,186515,191660,196875,202160,207515,212940,218435,224000,229635,235340,241115,246960,252875,258860,
- 264915,271040,277235,283500,289835,296240,302715,309260,315875,322560,329315,336140,343035,350000,357035,364140,371315,378560,385875,393260,400715,408240,415835,423500,431235,439040,446915,454860,462875,470960,479115,487340,495635,504000,512435,520940,529515,538160,546875,555660,564515,573440,
- 582435,591500,600635,609840,619115,628460,637875,647360,656915,666540,676235,686000,695835,705740,715715,725760,735875,746060,756315,766640,777035,787500,798035,808640,819315,830060,840875,851760,862715,873740,884835,896000,907235,918540,929915,941360,952875,964460,976115,987840,999635,1011500,1023435,1035440,
- 1047515,1059660,1071875,1084160,1096515,1108940,1121435,1134000,1146635,1159340,1172115,1184960,1197875,1210860,1223915,1237040,1250235,1263500,1276835,1290240,1303715,1317260,1330875,1344560,1358315,1372140,1386035,1400000};
- 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 Float:armor_igraca[33];
- new bool:igrac_resetuje[33];
- enum { NONE = 0, Snajperista, Marinac, Pro_Strelac, Branilac, Doktor, Vatrena_podrska, Miner, Demolitions, Rusher, Rambo, Partizan, Spijun, Bombarder, Gunner, Pesadinac, Pobunjenik, Ninja, Juggernut};
- new const energija_klasa[] = { 0, 120, 140, 110, 120, 110, 100, 100, 110, 100, 130, 100, 70, 140, 125, 100, 125, 70, 150, 120, 100, 500};
- new const Float:brzina_klasa[] = {0.0, 1.2, 1.35, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0, 1.3 , 1.15, 1.1, 1.2, 0.9, 0.9, 1.35, 1.2, 1.5, 1.3, 1.0, 1.0, 0.7};
- new const oklop_klase[] = { 0, 100, 100, 100, 150, 100, 0, 100, 100, 0, 150, 0, 0, 150, 50, 0, 25, 0, 100, 100, 100, 500};
- new const naziv_klase[][] = {"Nema",
- "Snajperista",
- "Marinac",
- "Pro-Strelac",
- "Mitraljezac",
- "Doktor",
- "Vatrena podrska",
- "Miner",
- "Demolitions",
- "Rusher",
- "Rambo (Premium Klasa)",
- "Partizan",
- "Spijun",
- "Bombarder",
- "Gunner",
- "Pesadinac",
- "Pobunjenik",
- "Terorista",
- "FunJocke (Premium Klasa)"
- };
- new const opis_klase[][] = {"Nema",
- "Dobija AWP, Deagle i Scout, 120hp, i 1 / 3 sanse za instant ubistva nozem, 110% trcanje, 100 Oklop",
- "Dobija Deagle, 140hp, odma ubija nozem (desni taster misa), 135% trcanje, 100 Oklop",
- "Dobija AK47 i M4A1, 110hp, 80% trcanje, 100 Oklop",
- "Dobija M249(krmaca), 120hp, 80% trcanje, otporan na mine, ima sve bombe, 150 Oklop",
- "Dobija UMP45, 110hp, komplet za prvu pomoc, 100 Oklop",
- "Dobija MP5, 100hp, ima dva projektila",
- "Dobija P90, 100hp, 100 oklop, dobija 3 mine",
- "Dobija Aug 110hp, 100 oklop, ima sve bombe, dobija dinamit, koji ubija sve u krugu od 1m",
- "Dobija M3(pumparica), 100hp, 130% trcanje",
- "Dobija Famas, 130hp, 120% trcanje, za svako ubistvo + 20hp i pun sanzer, dupli skok",
- "Dobija P90 + FLASH, 100hp + manje je vidljiv",
- "Dobija Deagle, 70hp, kamuflaza (izgleda kao neprijatelj)",
- "Dobija M4a1 + Deagle + HE, 140hp + 150 oklop, ali je sporiji",
- "Dobija G3/SG-1, 125 hp, i ima 1 raketu",
- "Dobija Galil + p228, 100hp, + brzina",
- "Dobija SG552 + 1 minu + 1 HE, 100hp",
- "Dobija Elites(2 pistolja), 70hp, ali je super brz",
- "Dobija 380 HP, 0 armora usp i glok odmah ubije glokom"
- };
- 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(PLUGIN, VERSION, AUTHOR);
- g_vault = nvault_open("CodMod");
- register_think("MedKit","MedKitThink");
- register_message(get_user_msgid("Health"), "message_Health");
- 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_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", "20");
- 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");
- register_clcmd("say", "cmdCheckSay", -1);
- register_clcmd("fullupdate", "BlokirajKomande");
- register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_KICK, "<name> <level>");
- g_msg_screenfade = get_user_msgid("ScreenFade");
- SyncHudObj = CreateHudSyncObj();
- SyncHudObj2 = CreateHudSyncObj();
- SyncHudObj3 = CreateHudSyncObj();
- iskustvo_za_ubistvo = get_cvar_num("cod_killxp");
- iskustvo_za_pare = 50;
- iskustvo_za_mnogopara = 150;
- iskustvo_za_tiket = 100;
- iskustvo_za_budale = 1;
- set_task(30.0, "Pomoc");
- }
- public plugin_cfg()
- {
- server_cmd("sv_maxspeed 1600");
- }
- public plugin_precache()
- {
- new Entity = create_entity( "info_map_parameters" );
- DispatchKeyValue( Entity, "buying", "3" );
- DispatchSpawn( Entity );
- sprite_white = precache_model("sprites/white.spr") ;
- sprite_blast = precache_model("sprites/dexplo.spr");
- precache_sound("QTM_CodMod/select.wav");
- precache_sound("QTM_CodMod/start.wav");
- precache_sound("QTM_CodMod/start2.wav");
- precache_sound("QTM_CodMod/levelup.wav");
- precache_model("models/w_medkit.mdl");
- precache_model("models/rpgrocket.mdl");
- precache_model("models/mine.mdl");
- }
- public message_Health(msgid, dest, id)
- {
- if(!is_user_alive(id))
- return PLUGIN_CONTINUE;
- static hp;
- hp = get_msg_arg_int(1);
- if(hp > 255 && (hp % 256) == 0)
- set_msg_arg_int(1, ARG_BYTE, ++hp);
- return PLUGIN_CONTINUE;
- }
- public pfn_keyvalue( Entity )
- {
- new ClassName[ 20 ], Dummy[ 2 ];
- copy_keyvalue( ClassName, charsmax( ClassName ), Dummy, charsmax( Dummy ), Dummy, charsmax( Dummy ) );
- if( equal( ClassName, "info_map_parameters" ) )
- {
- remove_entity( Entity );
- return PLUGIN_HANDLED ;
- }
- return PLUGIN_CONTINUE;
- }
- public Shop(id)
- {
- new menu = menu_create("Shop:", "Shop_Handle");
- menu_additem(menu, "TwiX \r[Dodaje 20 HP] \yCena: \r1500$");
- menu_additem(menu, "Aspirin \r[Dodaje 50 HP] \yCena: \r3000$");
- menu_additem(menu, "Morfijum \r[Dodaje 100 HP] \yCena: \r5000$");
- menu_additem(menu, "RedBull \r[Veci Skok + Veca Brzina] \yCena: \r7500$");
- menu_additem(menu, "Lotto \r[Tiket za loto] \yCena: \r2000$");
- menu_additem(menu, "Iskustvo \r[Dodaje 50 EXP] \yCena: \r5000$");
- menu_additem(menu, "Super iskustvo \r[Dodaje 150 EXP] \yCena: \r10000$");
- menu_additem(menu, "Slucajni Izbor \r[Predmet] \yCena: \r3000$");
- menu_display(id, menu);
- }
- public Shop_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- menu_display(id, menu);
- new pare_igraca = cs_get_user_money(id);
- new hp = get_user_health(id);
- switch(item)
- {
- case 0:
- {
- new cena = 1500;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop] ^1Nemate dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- if(hp >= maximalna_energija_igraca[id])
- {
- ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- new ammount=20;
- new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
- set_user_health(id, nova_energija);
- ColorChat(id,GREEN,"[Shop] ^1Kupio si ^3TwiX");
- }
- case 1:
- {
- new cena = 3000;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- if(hp >= maximalna_energija_igraca[id])
- {
- ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- new ammount=50;
- new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
- set_user_health(id, nova_energija);
- ColorChat(id,GREEN,"[Shop] ^1kupio si ^3Aspirin");
- }
- case 2:
- {
- new cena = 5000;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- if(hp >= maximalna_energija_igraca[id])
- {
- ColorChat(id,GREEN,"[Shop] ^1Vec imate maximalnu energiju.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- new ammount=100;
- new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
- set_user_health(id, nova_energija);
- ColorChat(id,GREEN,"[Shop] ^1Kupio si^3 Morfijum");
- }
- case 3:
- {
- new cena = 7500;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- 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 4:
- {
- new pare_igraca = cs_get_user_money(id)
- new cena = 2000;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop] ^1Nemas dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- ColorChat(id,GREEN,"[Shop] ^1Kupio si tiket za Loto");
- ColorChat(id,GREEN,"[Shop] ^1Ucitavam brojeve...");
- new rand = random_num(0,12);
- switch(rand)
- {
- case 0:
- {
- ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 10$^1!")
- cs_set_user_money(id, pare_igraca + 10)
- }
- case 1:
- {
- ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 Redbull^1!")
- set_user_gravity(id,get_user_gravity(id) - 0.3);
- set_user_maxspeed(id,get_user_maxspeed(id) + 10.0);
- }
- case 2:
- {
- ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
- }
- case 3:
- {
- ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 300$^1!")
- cs_set_user_money(id, pare_igraca + 300)
- }
- case 4:
- {
- ColorChat(id,GREEN,"[Shop] ^1Dobio si^3 1000$^1!")
- cs_set_user_money(id, pare_igraca + 1000)
- }
- case 5:
- {
- ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
- }
- case 6:
- {
- ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
- }
- case 7:
- {
- ColorChat(id,GREEN,"[Shop] ^1Izgubio si^3 16000$^1!")
- cs_set_user_money(id, pare_igraca - 16000)
- }
- case 8:
- {
- ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
- }
- case 9:
- {
- ColorChat(id,GREEN,"[Shop]^1 Dobio si^3 150 EXP ^1!")
- iskustvo_igraca[id] += iskustvo_za_mnogopara;
- }
- case 10:
- {
- ColorChat(id,GREEN,"[Shop]^1 Dobio si^3 100 EXP^1!")
- iskustvo_igraca[id] += iskustvo_za_tiket;
- }
- case 11:
- {
- ColorChat(id,GREEN,"[Shop] ^1Nazalost nisi nista dobio!")
- }
- case 12:
- {
- ColorChat(id,GREEN,"[Shop]^1 Dobio si^3 1 EXP^1 !")
- iskustvo_igraca[id] += iskustvo_za_budale;
- }
- }
- ProveriNivo(id);
- return PLUGIN_CONTINUE;
- }
- case 5:
- {
- new cena = 5000;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- iskustvo_igraca[id] += iskustvo_za_pare;
- ColorChat(id,GREEN,"[Shop] ^1Kupio si ^3Iskustvo");
- ProveriNivo(id);
- }
- case 6:
- {
- new cena = 10000;
- if (pare_igraca<cena)
- {
- ColorChat(id,GREEN,"[Shop]^1 Nemas dovoljno para.");
- return PLUGIN_CONTINUE;
- }
- cs_set_user_money(id, pare_igraca-cena);
- iskustvo_igraca[id] += iskustvo_za_mnogopara;
- ColorChat(id,GREEN,"[Shop]^1Kupio si ^3Super Iskustvo");
- ProveriNivo(id);
- }
- case 7:
- {
- new cena = 3000;
- if (pare_igraca<cena)
- {
- ColorChat(id,RED,"[Shop]^1 Nemas dovoljno para!");
- return PLUGIN_HANDLED;
- }
- cs_set_user_money(id, pare_igraca-cena);
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- }
- 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] == Rambo)
- {
- 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] == Rambo)
- 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) || !is_user_connected(id))
- return PLUGIN_CONTINUE;
- 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");
- }
- 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");
- give_item(id, "weapon_deagle");
- }
- case Marinac:
- {
- give_item(id, "weapon_deagle");
- }
- case Pro_Strelac:
- {
- give_item(id, "weapon_m4a1");
- give_item(id, "weapon_ak47");
- }
- case Branilac:
- {
- give_item(id, "weapon_m249");
- give_item(id, "weapon_hegrenade");
- give_item(id, "weapon_flashbang");
- give_item(id, "weapon_smokegrenade");
- }
- 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");
- give_item(id, "weapon_hegrenade");
- give_item(id, "weapon_flashbang");
- give_item(id, "weapon_smokegrenade");
- broj_dinamita_igraca[id] = 1;
- }
- case Rusher:
- {
- give_item(id, "weapon_m3");
- }
- case Rambo:
- {
- give_item(id, "weapon_famas");
- }
- case Partizan:
- {
- give_item(id, "weapon_p90");
- give_item(id, "weapon_flashbang");
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
- }
- case Spijun:
- {
- give_item(id, "weapon_deagle");
- PromeniModel(id, 0);
- }
- case Bombarder:
- {
- give_item(id, "weapon_m4a1");
- give_item(id, "weapon_deagle");
- give_item(id, "weapon_hegrenade");
- }
- case Gunner:
- {
- give_item(id, "weapon_g3sg1");
- broj_raketa_igraca[id] = 1 ;
- }
- case Pesadinac:
- {
- give_item(id, "weapon_galil");
- give_item(id, "weapon_p228");
- }
- case Pobunjenik:
- {
- give_item(id, "weapon_sg552");
- give_item(id, "weapon_hegrenade");
- broj_min_igraca[id] = 1 ;
- }
- case Ninja:
- {
- give_item(id, "weapon_elite");
- }
- case Juggernut:
- {
- give_item(id, "weapon_ak47");
- broj_raketa_igraca[id] = 1;
- }
- }
- if(igrac_resetuje[id])
- {
- ResetujPoene(id);
- igrac_resetuje[id] = false;
- }
- if(poeni_igraca[id]>0)
- DodelaPoena(id);
- if(informacije_predmet_igraca[id][0] == 10 || informacije_predmet_igraca[id][0] == 9)
- give_item(id, "weapon_hegrenade");
- 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 QTM_CodMod/start");
- case 2: client_cmd(id, "spk QTM_CodMod/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)
- damage+=informacije_predmet_igraca[idattacker][1];
- 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) || informacije_predmet_igraca[idattacker][0] == 10)
- 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] == Snajperista && random(2) == 2) || 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()
- {
- 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] == Rambo && klasa_igraca[attacker] != Rambo)
- 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] == Rambo || 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 defined BOTY
- if(is_user_bot2(attacker) && random(9) == 0)
- IzbaciPredmet(id);
- #endif
- 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(255, 212, 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, "Proveri", 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_POKAZI_REKLAME);
- remove_task(id+ZADATAK_POSTAVI_brzinu);
- remove_task(id+ZADATAK_PROVERA);
- remove_task(id+ZADATAK_WYSZKOLENIE_SANITARNE);
- set_task(10.0, "PokaziReklame", id+ZADATAK_POKAZI_REKLAME);
- set_task(3.0, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
- //resetuje predmety
- Obrisipredmet(id);
- }
- public client_disconnect(id)
- {
- remove_task(id+ZADATAK_POKAZI_INFORMACIJE);
- remove_task(id+ZADATAK_POKAZI_REKLAME);
- remove_task(id+ZADATAK_POSTAVI_brzinu);
- remove_task(id+ZADATAK_PROVERA);
- remove_task(id+ZADATAK_WYSZKOLENIE_SANITARNE);
- SacuvajPodatke(id);
- Obrisipredmet(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 QTM_CodMod/select");
- }
- public OpisKlase_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- ColorChat(id, NORMAL, "^4[COD:MW] ^3%s: %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, "Prethodna strana");
- menu_setprop(menu, MPROP_NEXTNAME, "Sledeca strana");
- menu_display(id, menu);
- client_cmd(id, "spk QTM_CodMod/select");
- #if defined BOTY
- if(is_user_bot2(id))
- IzaberiKlasu_Handle(id, menu, random(sizeof naziv_klase-1));
- #endif
- }
- public IzaberiKlasu_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- item++;
- if(item == klasa_igraca[id])
- return PLUGIN_CONTINUE;
- if(item == Rambo && !(get_user_flags(id) & ADMIN_KICK))
- {
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(item == Juggernut && !(get_user_flags(id) & ADMIN_KICK))
- {
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Nemate dozvolu za Premium Klasu.");
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(klasa_igraca[id])
- {
- nova_klasa_igraca[id] = item;
- ColorChat(id, NORMAL, "^4[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 armor[60];
- new naslov[25];
- 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 hodanja)", kondicija_igraca[id]);
- format(armor, 59, "Armor: \r%i \y(Smanjiva stetu)", armor_igraca[id]);
- format(naslov, 24, "Dodeli poena(%i):", 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_additem(menu, armor);
- menu_display(id, menu);
- #if defined BOTY
- if(is_user_bot2(id))
- DodelaPoena_Handler(id, menu, random(4));
- #endif
- }
- public DodelaPoena_Handler(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- switch(item)
- {
- case 0:
- {
- if(inteligencija_igraca[id]<10000)
- inteligencija_igraca[id]++;
- else
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo inteligencije");
- }
- case 1:
- {
- if(energija_igraca[id]<10000)
- energija_igraca[id]++;
- else
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo energije");
- }
- case 2:
- {
- if(snaga_igraca[id]<10000)
- snaga_igraca[id]++;
- else
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo snage");
- }
- case 3:
- {
- if(kondicija_igraca[id]<10000)
- kondicija_igraca[id]++;
- else
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo kondicije");
- }
- case 4:
- {
- if(armor_igraca[id]<10000)
- armor_igraca[id]++;
- else
- ColorChat(id, NORMAL, "^4[COD:MW] ^1Dostigli ste maximalni nivo armora");
- }
- }
- 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, NORMAL, "^4[COD:MW] ^1Vestine ce biti resetovane u sledecoj rundi");
- client_cmd(id, "spk QTM_CodMod/select");
- igrac_resetuje[id] = true;
- }
- public WyszkolenieSanitarne(id)
- {
- id -= ZADATAK_WYSZKOLENIE_SANITARNE;
- if(informacije_predmet_igraca[id][0] != 16)
- return PLUGIN_CONTINUE;
- set_task(5.0, "WyszkolenieSanitarne", id+ZADATAK_WYSZKOLENIE_SANITARNE);
- 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, "Imate samo 2 paketa za prvu pomoc u jednoj rundi!");
- return PLUGIN_CONTINUE;
- }
- if(inteligencija_igraca[id] < 1)
- client_print(id, print_center, "Da koristite paket za prvu pomoc, morate 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/w_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 ste iskoristili sve rakete!");
- return PLUGIN_CONTINUE;
- }
- if(prethodna_raketa_igraca[id] + 2.0 > get_gametime())
- {
- client_print(id, print_center, "Mozate da koristite raketu za 2 sekunde!");
- return PLUGIN_CONTINUE;
- }
- if (is_user_alive(id))
- {
- if(inteligencija_igraca[id] < 1)
- client_print(id, print_center, "Da koristite rakete, morate 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/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 ste iskoristili sav dinamit!");
- return PLUGIN_CONTINUE;
- }
- if(inteligencija_igraca[id] < 1)
- client_print(id, print_center, "Da koristite dinamit, morate 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 ste iskoristili sve mine!");
- return PLUGIN_CONTINUE;
- }
- if(inteligencija_igraca[id] < 1)
- client_print(id, print_center, "Da koristite mine, morate 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/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] == Branilac)
- 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;
- PostaviBrzinu(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 cmdCheckSay(id)
- {
- static message[192]
- read_args(message, 191)
- if(contain(message, "%") != -1)
- {
- remove_quotes(message)
- }
- return PLUGIN_CONTINUE;
- }
- 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#%i", iskustvo_igraca[id], level_igraca[id], inteligencija_igraca[id], energija_igraca[id], snaga_igraca[id], kondicija_igraca[id], armor_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#%i", iskustvo_igraca[id], level_igraca[id], inteligencija_igraca[id], energija_igraca[id], snaga_igraca[id], kondicija_igraca[id], armor_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], armorigraca[32];
- parse(vaultdata, iskustvoigraca, 31, leveligraca, 31, inteligencijaigraca, 31, energijaigraca, 31, snagacigraca, 31, kondicijaigraca, 31, armorigraca, 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, NORMAL, "^4[COD:MW] ^1Bacio si ^3%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
- Obrisipredmet(id);
- }
- else
- ColorChat(id, NORMAL, "^4[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, NORMAL, "^4[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] == Rambo)
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- case 16:
- {
- set_task(5.0, "WyszkolenieSanitarne", id+ZADATAK_WYSZKOLENIE_SANITARNE);
- }
- 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, NORMAL, "^4Predmet: ^1%s.", naziv_predmeta[informacije_predmet_igraca[id][0]]);
- ColorChat(id, NORMAL, "^4Opis: ^1%s.", opis_predmeta);
- }
- public Proveri(id)
- {
- id-=ZADATAK_PROVERA;
- ExecuteHamB(Ham_CS_RoundRespawn, id);
- }
- public ProveriNivo(id)
- {
- if(level_igraca[id] < 201)
- {
- while(iskustvo_igraca[id] >= iskustvo_levelu[level_igraca[id]])
- {
- level_igraca[id]++;
- set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
- ShowSyncHudMsg(id, SyncHudObj3, "Dobrodosao na sledeci nivo!");
- client_cmd(id, "spk QTM_CodMod/levelup");
- }
- poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
- }
- SacuvajPodatke(id);
- }
- public PokaziInformacije(id)
- {
- id -= ZADATAK_POKAZI_INFORMACIJE;
- set_task(0.1, "PokaziInformacije", id+ZADATAK_POKAZI_INFORMACIJE);
- if(is_user_connected(id) && !is_user_alive(id))
- {
- new target = entity_get_int(id, EV_INT_iuser2);
- if(target == 0)
- return PLUGIN_CONTINUE;
- set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
- ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nIskustvo : %i / %i^nLevel : %i^nPredmet : %s", naziv_klase[klasa_igraca[target]], iskustvo_igraca[target], iskustvo_levelu[level_igraca[target]], level_igraca[target], naziv_predmeta[informacije_predmet_igraca[target][0]]);
- return PLUGIN_CONTINUE;
- }
- set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
- ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Iskustvo : %i / %i]^n[Level : %i]^n[Predmet : %s]", naziv_klase[klasa_igraca[id]], iskustvo_igraca[id], iskustvo_levelu[level_igraca[id]], level_igraca[id], naziv_predmeta[informacije_predmet_igraca[id][0]]);
- return PLUGIN_CONTINUE;
- }
- public PokaziReklame(id)
- {
- id-=ZADATAK_POKAZI_REKLAME;
- ColorChat(id, NORMAL, "^4[COD:MW] ^3Dobrodosli u COD:MW MOD by QTM_Peyote.");
- }
- public PostaviBrzinu(id)
- {
- id -= id>32? ZADATAK_POSTAVI_brzinu: 0;
- if(klasa_igraca[id])
- set_pev(id, pev_maxspeed, 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, Ubrania_CT[num]);
- case 2:cs_set_user_model(id, Ubrania_Terro[num]);
- }
- }
- return PLUGIN_CONTINUE;
- }
- public Pomoc()
- {
- switch(random(7))
- {
- case 0: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da resetujes level-e kucaj ^3/reset.");
- case 1: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da promenis klasu kucaj ^3/klasa.");
- case 2: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da koristis predmete(mine,rakete) stisni ^3E.");
- case 3: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da bi ste izbacili predmet kucajte ^3/izbaci.");
- case 4: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da bi ste videli opis predmeta kucajte ^3/predmet.");
- case 5: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da biste videli opis klase kucajte ^3/opis.");
- case 6: ColorChat(0, NORMAL, "^4[COD:MW] ^1Da otvorite COD Shop kucajte ^3/shop.");
- }
- set_task(36.0, "Pomoc");
- }
- public cmd_setlvl(id, level, cid)
- {
- if(!cmd_access(id,level,cid,3))
- return PLUGIN_HANDLED;
- new arg1[33];
- new arg2[6];
- read_argv(1, arg1, 32);
- read_argv(2, arg2, 5);
- new player = cmd_target(id, arg1);
- new value = str_to_num(arg2)-1;
- iskustvo_igraca[player] = iskustvo_levelu[value];
- level_igraca[player] = 0;
- ProveriNivo(player);
- return PLUGIN_HANDLED;
- }
- 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)
- return HAM_IGNORED;
- return HAM_SUPERCEDE;
- }
- public BlokirajKomande()
- {
- return PLUGIN_HANDLED;
- }
- 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;
- }
- #if defined BOTY
- public is_user_bot2(id)
- {
- new ping, loss
- get_user_ping(id, ping, loss)
- if(ping > 0 && loss > 0)
- return false
- return true
- }
- #endif
- 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