#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <nvault>
 
 
#define PLUGIN "CoD:Mw [NEW]"
#define VERSION "1.0"
#define AUTHOR "K.O "
 
#define STANDARD_FAST 250.0
 
#define TASK_SHOW_INFORMATION 672
#define TASK_RAISE 704
#define TASK_TRAINING_SANITARY 736
#define TASK_SHOW_ADVERTISEMENT 768
#define TASK_SET_FAST 832
 
//#define BOT 1
 
 
 
new SyncHudObj;
new SyncHudObj2;
new SyncHudObj3;
new g_msg_screenfade;
 
new sprite_white;
new sprite_blast;
new oddaj_id[33]
new g_vault;
 
new podkladajacy;
new disarming;
 
new experience_for_murder;
new experience_for_bomb;
 
new Clothing_CT[4][]={"sas","gsg9","urban","gign"};
new Clothing_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 information_item_player[33][2];
new const names_objects[][] = 
{
    "Nincs", 
    "Tamado Csizmak", //1
    "Dupla Melleny", //2
    "Megerositett melleny", //3
    "Veteran Kes", //4
    "Meglepetes Tamadas", //5
    "Nindzsa Kopeny", //6 
    "Ujraeledo", //7
    "Kommando Kes", //8
    "Ke'm szemuveg",
    "Titokzatos Granat",
    "Nindzsa Lab", //11
    "Titokzatos Katona", //12
    "AWP mesterlovesz",//13
    "Adrenalin",//14
    "Rambo",//15
    "Egeszseges Edzes",//16
    "NASA Melleny",//17
    "Edzett Veteran",//18
    "Elsosegely csomag",//19
    "NO Recoil",//20
    "Titan Toltenyek",//21
    "Ezres Toltenyek",//22
    "1/2No Recoil",//23
    "SWAT",//24
    "Edzett Ujonc",//25
    "Relective Fegyverzet",//26
    "Jet Modul"
 
};
 
new const descriptions_objects[][] = {"Egy ellenseg megolese utan kapsz targyat!", 
    "Halk Futas", 
    "Csokkenti a becsapodo sebzeseket",
    "Csokkenti a becsapodo sebzeseket", 
    "Sokkal erosebb szuras kessel",
    "A hatulrol eltalalt ellenfel, 2x nagyobb sebzest kap az atlagtol", 
    "Reszben lathatatlanna tesz teged",
    "1/3 esely az ujraeledesre ha megolnek",
    "Azonnali oles a kessel",
    "1/3 eselyt kapsz hogy granattal azonnali halalt okozz.",
    "Azonnali oles HE granattal",
    "2x tudsz ugrani a levegoben",
    "A seruleseid csokkennek 1/3-hoz. 1/3-hoz eselyed van arra, hogy megvakitsd az ellenseget",
    "Azonnali oles AWP-vel",
    "Minden Frag utan, kapsz +50 HP-t",
    "Minden Frag utan, full tarat es +20 HP-t kapsz",
    "Visszakapsz 10 HP-t 3 masodpercenkent",
    "+500 Armor",
    "Kapsz minden korben 100 HP-t, viszont lassaban futsz",
    "Nyomj E betut HP tolteshez",
    "No recoil",
    "+15 Sebzes",
    "+25 Sebzes",
    "1/2 No recoil",
    "A targyak nem hatraltatnak teged.",
    "Minden korben +50 HP-t kapsz és lassabban futsz",
    "1/3 eselyed arra hogy visszaveri a ka'rod",
    "Immunis leszel minden egyes korben 3 golyora",
    "Nyomj CTRL-t és SPACE-t a modul hasznalatahoz, 4 masodpercenkent toltodik ujra a modul"
};
 
new g_szName[33][34];
new class_player[33];
new level_player[33] = 1;
new experience_player[33];
new bool:dostal_przedmiot[33]
new nowa_class_player[33];
 
new const experience_level[] = 
{
    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,
   36956,37258,38170,38476,39246,39711,40179,40336,40652,41288,
   41448,41931,42255,42418,43074,43404,44234,44902,45406,45913,
   46253,47279,48311,49003,49873,50223,50399,50576,51466,52540,
   52900,53624,54534,55449,56553,57108,57666,57853,58605,59550,
   60310,60883,62035,63000,63970,64165,65341,65735,66329,67125,
   68125,69331,69937,70343,70955,71160,71984,72812,73020,73438,
   73648,73859,74919,75771,77055,77485,78565,79867,80085,80742,
   80962,82067,82511,82957,83405,84080,84758,85212,86124,87040,
   87960,89346,90042,90974,92378,93083,94027,94975,95213,95452,
   96892,98097,99307,100279,101743,102233,103217,104205,104949,105198,
   105948,107454,108210,108969,109223,110753,111777,113319,113835,114612,
   114872,115133,116443,117758,118022,119612,120410,120944,121748,122017,
   122287,123100,124732,125005,125553,127203,128307,128584,128862,129978,
   130258,131944,133636,134202,134486,135911,137055,138490,139066,140222,
   141092,142256,143716,144302,145478,146953,148433,149918,150812,151709,
   152309,152911,154421,155936,156544,158374,159904,161746,162362,162980,
   163910,165465,167025,167651,169221,170796,172060,172694,173648,175243,
   175563,177168,179100,180069,180393,182018,182996,184304,184632,184961,
   185621,187276,188272,188938,190274,191949,192957,194979,196331,198026,
   199726,200067,200751,201780,203156,203846,204538,206620,208012,210106,
   210456,211158,211862,213274,215398,217528,218952,220737,222885,224321,
   225041,225402,226488,228666,229758,231948,233778,235246,235982,237827,
   238197,239681,241169,243407,244903,246778,248658,250920,252054,252433,
   253573,255859,257387,258153,259305,261615,262773,264321,265485,266652,
   268212,269385,271737,272523,273705,275285,276077,277268,279656,281651,
   282451,284857,286465,287674,289694,290099,292129,292536,293352,295806,
   297856,298267,298679,300331,301159,301574,303654,306156,308246,310341,
   311181,313286,315818,317510,320054,322179,323883,325591,326875,328162,
   329022,330746,332474,332907,334209,335079,336823,339445,339883,342078,
   342958,345163,347815,350473,352249,354919,357595,359383,360279,362973,
   364773,367479,368383,371101,372917,374282,375194,377022,378854,380690,
   383450,383911,384835,387150,389006,391796,392262,393663,394131,396476,
   398826,401652,402124,402597,404967,406867,409723,410677,411155,412592
};
 
new punkty_player[33];
new zdrowie_player[33];
new inteligencja_player[33];
new wytrzymalosc_player[33];
new Float:redukcja_obrazen_player[33];
new kondycja_player[33];
new maksymalne_zdrowie_player[33];
new Float:fast_player[33];
 
new bool:gracz_resetuje[33];
 
enum { NONE = 0, Sniper, Commando, Sharpshooter, Protector, Medic, FireSupport, Sapper, Demolitions, Rusher, Rambo};
new const zdrowie_klasy[] = { 0, 120, 130, 110, 250, 150, 100, 100, 130, 100};
new const Float:fast_klasy[] = {0.0, 1.2, 1.35, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0, 1.45};
new const pancerz_klasy[] = { 0, 100, 100, 100, 200, 100, 0, 100, 100, 0};
new const names_klas[][] = {"Nincs",
    "Mesterlovesz",
    "Kommando",
    "Tuzer",
    "Rambo Papa",
    "Gyogyasz",
    "Raketas ocsi",
    "Akna Gep",
    "Dinamitos ocskos",
    "Speedes",
    "True"
};
 
new const descriptions_klas[][] = {"Nincs",
    "Felszereles: AWP, Deagle & Scout, 120hp. 1/3-hoz eselyed kessel valo azonnali olesre. 110 Gyorsasag, 100 Amor.",
    "Felszereles: Deagle, 130hp. Azonnali kes oles (csak jobb egergomb), 135 Gyorsasag, 100 Armor",
    "Felszereles: AK47, M4A1 & 110hp. 80 Gyorsasag, 100 Armor",
    "Felszereles: M249, 250hp & Osszes granat, Immunis az aknara, 200 Armor",
    "Felszereles: UMP45, 150hp. Elsosegely csomag, 100 Armor",
    "Felszereles: MP5, 100 hp, 2 raketa, Extra talalati pontok / talalat",
    "Felszereles: P90, 100hp, Kapsz 3 aknat, 100 Armor",
    "Felszereles: AUG, 130 hp, Osszes granat, Dinamitot kapsz ami teruleti karokat okoz, 100 Armor",
    "Felszereles: M3, 100 hp, 145 Gyorsasag",
    "Felszereles: Famas, 130 hp, 120 Gyorsasag, 20 HP / oles, 2 ugras, 100 Armor",
    "Felszereles: Famas, m3, p228 "
};
 
new ilosc_apteczek_player[33];
new ilosc_rakiet_player[33];
new Float:poprzednia_rakieta_player[33];
new ilosc_min_player[33];
new ilosc_dynamitow_player[33];
new ilosc_skokow_player[33];
 
new bool:freezetime = true;
 
public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
 
    g_vault = nvault_open("CodMod");
 
    register_think("FirstAidKit","FirstAidKitThink");
 
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
    RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
 
 
    register_forward(FM_CmdStart, "CmdStart");
    register_forward(FM_EmitSound, "EmitSound");
 
    register_logevent("PoczatekRundy", 2, "1=Round_Start"); 
    register_logevent("BombaPodlozona", 3, "2=Planted_The_Bomb");
 
    register_event("SendAudio", "BombaRozbrojona", "a", "2&%!MRAD_BOMBDEF");
    register_event("BarTime", "RozbrajaBomb", "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", "NowaRunda", "a", "1=0", "2=0");
 
    register_touch("Rocket", "*" , "DotykRakiety");
    register_touch("Mine", "player",  "DotykMiny");
 
    register_cvar("cod_killxp", "10");
    register_cvar("cod_bombxp", "30");
 
    register_clcmd("say /osztaly", "WybierzKlase");
    register_clcmd("say /fegyo", "WybierzKlase");
    register_clcmd("say /osztalyinfo", "DescriptionKlasy");
    register_clcmd("say /targy", "DescriptionItem");
    register_clcmd("say /dobas", "WyrzucPrzedmiot");
    register_clcmd("say /nullazas", "KomendaResetujPunkty");
    register_clcmd("say /ujra", "KomendaResetujPunkty");
    register_clcmd("say /help", "userhelp", 0, " - Help Motd ");
    register_clcmd("say /save","ZapiszDane")
    register_clcmd("say /adas", "OddajPrzedmiot")
    register_clcmd("fullupdate", "CommandBlock");
    register_clcmd("cl_autobuy", "CommandBlock");
    register_clcmd("cl_rebuy", "CommandBlock");
    register_clcmd("cl_setautobuy","CommandBlock");
    register_clcmd("rebuy", "CommandBlock");
    register_clcmd("autobuy", "CommandBlock");
    register_clcmd("glock", "CommandBlock");
    register_clcmd("usp", "CommandBlock");
    register_clcmd("p228", "CommandBlock");
    register_clcmd("deagle", "CommandBlock");
    register_clcmd("elites", "CommandBlock");
    register_clcmd("fn57", "CommandBlock");
    register_clcmd("m3", "CommandBlock");
    register_clcmd("autoshotgun", "CommandBlock");
    register_clcmd("mac10", "CommandBlock");
    register_clcmd("tmp", "CommandBlock");
    register_clcmd("mp5", "CommandBlock");
    register_clcmd("ump45", "CommandBlock");
    register_clcmd("p90", "CommandBlock");
    register_clcmd("galil", "CommandBlock");
    register_clcmd("ak47", "CommandBlock");
    register_clcmd("scout", "CommandBlock");
    register_clcmd("sg552", "CommandBlock");
    register_clcmd("awp", "CommandBlock");
    register_clcmd("g3sg1", "CommandBlock");
    register_clcmd("famas", "CommandBlock");
    register_clcmd("m4a1", "CommandBlock");
    register_clcmd("bullpup", "CommandBlock");
    register_clcmd("sg550", "CommandBlock");
    register_clcmd("m249", "CommandBlock");
    register_clcmd("shield", "CommandBlock");
    register_clcmd("hegren", "CommandBlock");
    register_clcmd("sgren", "CommandBlock");
    register_clcmd("flash", "CommandBlock");
    register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_BAN, "<name> <level>");
 
    g_msg_screenfade = get_user_msgid("ScreenFade");
    SyncHudObj = CreateHudSyncObj();
    SyncHudObj2 = CreateHudSyncObj();
    SyncHudObj3 = CreateHudSyncObj();
    experience_for_murder = get_cvar_num("cod_killxp");
    experience_for_bomb = get_cvar_num("cod_bombxp");
 
    set_task(60.0, "Pomoc");
}
 
public plugin_cfg() 
{    
    server_cmd("sv_maxspeed 1600");
}
 
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/w_medkit.mdl");
    precache_model("models/rpgrocket.mdl");
    precache_model("models/mine.mdl");
}
 
 
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(information_item_player[id][0] == 11 || class_player[id] == Rambo)
    {
        if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && ilosc_skokow_player[id] > 0)
        {
            ilosc_skokow_player[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)
        {    
            ilosc_skokow_player[id] = 0;
            if(information_item_player[id][0] == 11)
                ilosc_skokow_player[id]++;
            if(class_player[id] == Rambo)
                ilosc_skokow_player[id]++;
        }
    }
 
    if(button & IN_ATTACK)
    {
        new Float:punchangle[3];
 
        if(information_item_player[id][0] == 20)
            entity_set_vector(id, EV_VEC_punchangle, punchangle);
        if(information_item_player[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(information_item_player[id][0] == 28 && button & IN_JUMP && button & IN_DUCK && flags & FL_ONGROUND && get_gametime() > information_item_player[id][1]+4.0)
    {
        information_item_player[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 Odrodzenie(id)
{
    if(!is_user_alive(id) || !is_user_connected(id))
        return PLUGIN_CONTINUE;
 
    if(nowa_class_player[id])
    {
        class_player[id] = nowa_class_player[id];
        nowa_class_player[id] = 0;
        strip_user_weapons(id);
        give_item(id, "weapon_knife");
        switch(get_user_team(id))
        {
            case 1: give_item(id, "weapon_hegrenade");
            case 2: give_item(id, "weapon_hegrenade");
        }
        WczytajDane(id, class_player[id]);
    }
 
    if(!class_player[id])
    {
        WybierzKlase(id);
        return PLUGIN_CONTINUE;
    }
 
    switch(class_player[id])
    {
        case Sniper:
        {
            give_item(id, "weapon_awp");
            give_item(id, "weapon_deagle");
        }
        case Commando:
        {
            give_item(id, "weapon_deagle");
            give_item(id, "weapon_hegrenade");
        }
        case Sharpshooter:
        {
            give_item(id, "weapon_m4a1");
            give_item(id, "weapon_ak47");
        }
        case Protector:
        {
            give_item(id, "weapon_m249");
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");                
            give_item(id, "weapon_smokegrenade");
        }
        case Medic:
        {
            give_item(id, "weapon_ump45");
            ilosc_apteczek_player[id] = 3;
        }    
        case FireSupport:
        {
            give_item(id, "weapon_mp5navy");
            ilosc_rakiet_player[id] = 3;
        }
        case Sapper:
        {
            give_item(id, "weapon_p90");
            ilosc_min_player[id] = 3;
        }
        case Demolitions:
        {
            give_item(id, "weapon_aug");
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");
            give_item(id, "weapon_smokegrenade");
            ilosc_dynamitow_player[id] = 1;
        }
        case Rusher:
        {
            give_item(id, "weapon_m3");
        }
        case Rambo:
        {
            give_item(id, "weapon_famas");
        }
    }
 
    if(gracz_resetuje[id])
    {
        ResetujPunkty(id);
        gracz_resetuje[id] = false;
    }
 
    if(punkty_player[id]>0)
        PrzydzielPunkty(id);
 
    if(information_item_player[id][0] == 10 || information_item_player[id][0] == 9)
        give_item(id, "weapon_hegrenade");
 
    if(information_item_player[id][0] == 9)
        ZmienUbranie(id, 0);
 
    if(information_item_player[id][0] == 1)
        set_user_footsteps(id, 1);
    else
        set_user_footsteps(id, 0);
 
    if(information_item_player[id][0] == 13)
        give_item(id, "weapon_awp");
 
    if(information_item_player[id][0] == 19)
        information_item_player[id][1] = 1;
 
    if(information_item_player[id][0] == 27)
        information_item_player[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]]);
 
    redukcja_obrazen_player[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(wytrzymalosc_player[id])))/100);
    maksymalne_zdrowie_player[id] = zdrowie_klasy[class_player[id]]+zdrowie_player[id]*2;
    fast_player[id] = STANDARD_FAST*fast_klasy[class_player[id]]+floatround(kondycja_player[id]*1.3);
 
    if(information_item_player[id][0] == 18)
    {
        maksymalne_zdrowie_player[id] += 100;
        fast_player[id] -= 0.4;
    }
 
    if(information_item_player[id][0] == 25)
    {
        maksymalne_zdrowie_player[id] += 50;
        fast_player[id] -= 0.3;
    }
 
    set_user_armor(id, pancerz_klasy[class_player[id]]);
    set_user_health(id, maksymalne_zdrowie_player[id]);
    if(information_item_player[id][0] == 17)
        set_user_armor(id, 500);
 
    return PLUGIN_CONTINUE;
}
 
public PoczatekRundy()    
{
    freezetime = false;
    for(new id=0;id<=32;id++)
    {
        if(!is_user_alive(id))
            continue;
 
        set_task(0.1, "SetFast", id+TASK_SET_FAST);
 
        switch(get_user_team(id))
        {
            case 1: client_cmd(id, "spk MW/start");
            case 2: client_cmd(id, "spk MW/start2");
        }
    }
}
 
public NowaRunda()
{
    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) || information_item_player[this][0] == 24 || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !class_player[idattacker])
        return HAM_IGNORED;
 
    new health = get_user_health(this);
    new weapon = get_user_weapon(idattacker);
 
    if(health < 2)
        return HAM_IGNORED;
 
    if(information_item_player[this][0] == 27 && information_item_player[this][1]>0)
    {
        information_item_player[this][1]--;
        return HAM_SUPERCEDE;
    }
 
    if(wytrzymalosc_player[this]>0)
        damage -= redukcja_obrazen_player[this]*damage;
 
    if(information_item_player[this][0] == 2 || information_item_player[this][0] == 3)
        damage-=(float(information_item_player[this][1])<damage)? float(information_item_player[this][1]): damage;
 
    if(information_item_player[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
        damage*=2.0;
 
    if(information_item_player[idattacker][0] == 10)
        damage+=information_item_player[idattacker][1];
 
    if(information_item_player[this][0] == 12)
        damage-=(5.0<damage)? 5.0: damage;
 
    if(weapon == CSW_AWP && information_item_player[idattacker][0] == 13)
        damage=float(health);
 
    if(information_item_player[idattacker][0] == 21)
        damage+=15;
 
    if(information_item_player[idattacker][0] == 22)
        damage+=25;
 
    if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
    {
        if((information_item_player[idattacker][0] == 9 && random_num(1, information_item_player[idattacker][1]) == 1) || information_item_player[idattacker][0] == 10)
            damage = float(health);    
    }
 
    if(weapon == CSW_KNIFE)
    {
        if(information_item_player[this][0] == 4)
            damage=damage*1.4+inteligencja_player[idattacker];
        if(information_item_player[idattacker][0] == 8 || (class_player[idattacker] == Sniper && random(2) == 2) || class_player[idattacker] == Commando && !(get_user_button(idattacker) & IN_ATTACK))
            damage = float(health);
    }
 
    if(information_item_player[this][0] == 26 && random_num(1, information_item_player[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 || !class_player[attacker])
        return PLUGIN_CONTINUE;
 
    if(information_item_player[attacker][0] == 12 && random_num(1, information_item_player[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;
            experience_player[attacker]++;
        }
    }
    SprawdzLevel(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 zdrowie = get_user_health(attacker);
 
    if(get_user_team(id) != get_user_team(attacker) && class_player[attacker])
    {
        new nowe_experience = 0;
 
        nowe_experience += experience_for_murder;
 
        if(class_player[id] == Rambo && class_player[attacker] != Rambo)
            nowe_experience += experience_for_murder*2;
 
        if(level_player[id] > level_player[attacker])
            nowe_experience += level_player[id] - level_player[attacker];
 
        if(class_player[attacker] == Rambo || information_item_player[attacker][0] == 15 && maxClip[weapon] != -1)
        {
 
            new nowe_zdrowie = (zdrowie+20<maksymalne_zdrowie_player[attacker])? zdrowie+20: maksymalne_zdrowie_player[attacker];
            set_user_clip(attacker, maxClip[weapon]);
            set_user_health(attacker, nowe_zdrowie);
        }
#if defined BOT
        if(is_user_bot2(attacker) && random(9) == 0)
            WyrzucPrzedmiot(id);
#endif
        if(!information_item_player[attacker][0])
            DajPrzedmiot(attacker, random_num(1, sizeof names_objects-1));
 
        if(information_item_player[attacker][0] == 14)
        {
            new nowe_zdrowie = (zdrowie+50<maksymalne_zdrowie_player[attacker])? zdrowie+50: maksymalne_zdrowie_player[attacker];
            set_user_health(attacker, nowe_zdrowie);
        }
 
        set_hudmessage(255, 212, 0, 0.50, 0.33, 1, 6.0, 4.0);
        ShowSyncHudMsg(attacker, SyncHudObj2, "+%i", nowe_experience);
 
        experience_player[attacker] += nowe_experience;
    }
 
    SprawdzLevel(attacker);
 
    if(information_item_player[id][0] == 7 && random_num(1, information_item_player[id][1]) == 1)
        set_task(0.1, "Raise", id+TASK_RAISE);
 
    return PLUGIN_CONTINUE;
}
 
public client_connect(id)
{
    //resetuje umiejetnosci
    class_player[id] = 0;
    level_player[id] = 0;
    experience_player[id] = 0;
    punkty_player[id] = 0;
    zdrowie_player[id] = 0;
    inteligencja_player[id] = 0;
    wytrzymalosc_player[id] = 0;
    kondycja_player[id] = 0;
    maksymalne_zdrowie_player[id] = 0;
    fast_player[id] = 0.0;
 
         get_user_name(id, g_szName[id], charsmax(g_szName[] ));
 
    remove_task(id+TASK_SHOW_INFORMATION);
    remove_task(id+TASK_SHOW_ADVERTISEMENT);    
    remove_task(id+TASK_SET_FAST);
    remove_task(id+TASK_RAISE);
    remove_task(id+TASK_TRAINING_SANITARY);
 
    set_task(10.0, "ShowAdvertisement", id+TASK_SHOW_ADVERTISEMENT);
    set_task(3.0, "ShowInformation", id+TASK_SHOW_INFORMATION);
 
    //resetuje przedmioty
    UsunPrzedmiot(id);
}
 
public client_disconnect(id)
{
    remove_task(id+TASK_SHOW_INFORMATION);
    remove_task(id+TASK_SHOW_ADVERTISEMENT);    
    remove_task(id+TASK_SET_FAST);
    remove_task(id+TASK_RAISE);
    remove_task(id+TASK_TRAINING_SANITARY);
 
    ZapiszDane(id);
    UsunPrzedmiot(id);
}
 
public RozbrajaBomb(id)
    if(class_player[id])
        disarming = id;
 
public BombaPodlozona()
{
    new Players[32], playerCount, id;
    get_players(Players, playerCount, "aeh", "TERRORIST");
 
    if(get_playersnum() > 1)
    {
        experience_player[podkladajacy] += experience_for_bomb;
        for (new i=0; i<playerCount; i++) 
        {
            id = Players[i];
            if(!class_player[id])
                continue;
 
            if(id != podkladajacy)
            {
                experience_player[id] += experience_for_murder;
                client_print(id, print_chat, "[CoD:MW] Kaptal **%i** EXP-et a bomba lerakasaert.", experience_for_murder);
            }
            else
            {
                client_print(id, print_chat, "[CoD:MW] Kaptal **%i** EXP-et a bomba lerakasaert.", experience_for_bomb);
            }
            SprawdzLevel(id);
        }
    }
}
 
public BombaRozbrojona()
{
    new Players[32], playerCount, id;
    get_players(Players, playerCount, "aeh", "CT");
 
    experience_player[disarming] += experience_for_bomb;
    for (new i=0; i<playerCount; i++) 
    {
        id = Players[i];
        if(!class_player[id])
            continue;
        if(id != disarming)
        {
            experience_player[id]+= experience_for_murder;
            client_print(id, print_chat, "[CoD:MW] Kaptal **%i** EXP-et a bomba hatastalanitasaert.", experience_for_murder);
        }
        else
            client_print(id, print_chat, "[CoD:MW] Kaptal **%i** EXP-et a bomba hatastalanitasaert.",experience_for_bomb);
        SprawdzLevel(id);
    }
}
 
public DescriptionKlasy(id)
{
    new menu = menu_create("Valassz Osztalyt:", "DescriptionKlasy_Handle");
    for(new i=1; i<sizeof names_klas; i++)
        menu_additem(menu, names_klas[i]);
    menu_setprop(menu, MPROP_EXITNAME, "[CoD:MW]Kilepes");
    menu_setprop(menu, MPROP_BACKNAME, "[CoD:MW]Elozo Oldal");
    menu_setprop(menu, MPROP_NEXTNAME, "[CoD:MW]Kovetkezo Oldal");
    menu_display(id, menu);
 
    client_cmd(id, "spk MW/select");
}
 
public DescriptionKlasy_Handle(id, menu, item)
{
    client_cmd(id, "spk MW/select");
 
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    client_print(id, print_chat, "[CoD:MW] %s: %s", names_klas[item+1], descriptions_klas[item+1]);
    menu_display(id, menu);
 
    return PLUGIN_CONTINUE;
}
 
public WybierzKlase(id)
{
    new menu = menu_create("Valassz osztalyt:", "WybierzKlase_Handle");
    new class[50];
    for(new i=1; i<sizeof names_klas; i++)
    {
        WczytajDane(id, i);
        format(class, 49, "%s \ySzint: %i", names_klas[i], level_player[id]);
        menu_additem(menu, class);
    }
 
    WczytajDane(id, class_player[id]);
 
    menu_setprop(menu, MPROP_EXITNAME, "[CoD:MW]Kilepes");
    menu_setprop(menu, MPROP_BACKNAME, "[CoD:MW]Elozo oldal");
    menu_setprop(menu, MPROP_NEXTNAME, "[CoD:MW]Kovetkezo oldal");
    menu_display(id, menu);
 
    client_cmd(id, "spk MW/select");
#if defined BOT
    if(is_user_bot2(id))
        WybierzKlase_Handle(id, menu, random(sizeof names_klas-1));
#endif
}
 
public WybierzKlase_Handle(id, menu, item)
{
    client_cmd(id, "spk MW/select");
 
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }    
 
    item++;
 
    if(item == class_player[id])
        return PLUGIN_CONTINUE;
 
    if(class_player[id])
    {
        nowa_class_player[id] = item;
        client_print(id, print_chat, "[CoD:MW] Az osztalyod a kovetkezo korben megvaltozik.");
    }
    else
    {
        class_player[id] = item;
        WczytajDane(id, class_player[id]);
        Odrodzenie(id);
    }
    return PLUGIN_CONTINUE;
}
 
public PrzydzielPunkty(id)
{
    new inteligencja[65];
    new zdrowie[60];
    new wytrzymalosc[60];
    new kondycja[60];
    new tytul[25];
    format(inteligencja, 64, "Intelligencia: \r%i \y(Noveli a Targyak Sebzeset)", inteligencja_player[id]);
    format(zdrowie, 59, "Elet: \r%i \y(Noveli az Eleted)", zdrowie_player[id]);
    format(wytrzymalosc, 59, "Ugyesseg: \r%i \y(Csokkenti a Kapott Sebzest)", wytrzymalosc_player[id]);
    format(kondycja, 59, "Kondicio: \r%i \y(Noveli a Sebesseged)", kondycja_player[id]);
    format(tytul, 24, "Eloszthato Pontok(%i):", punkty_player[id]);
    new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
    menu_additem(menu, inteligencja);
    menu_additem(menu, zdrowie);
    menu_additem(menu, wytrzymalosc);
    menu_additem(menu, kondycja);
    menu_display(id, menu);
#if defined BOT
    if(is_user_bot2(id))
        PrzydzielPunkty_Handler(id, menu, random(4));
#endif
}
 
public PrzydzielPunkty_Handler(id, menu, item)
{
    client_cmd(id, "spk MW/select");
 
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
 
    switch(item) 
    { 
        case 0: 
        {    
            if(inteligencja_player[id]<100)
                inteligencja_player[id]++;
            else 
                client_print(id, print_chat, "[CoD:MW] Maximum Intelligencia Szint");
 
        }
        case 1: 
        {    
            if(zdrowie_player[id]<100)
                zdrowie_player[id]++;
            else 
                client_print(id, print_chat, "[CoD:MW] Maximum Ero Szint");
        }
        case 2: 
        {    
            if(wytrzymalosc_player[id]<100)
                wytrzymalosc_player[id]++;
            else 
                client_print(id, print_chat, "[CoD:MW] Maximum Ugyesseg Szint");
 
        }
        case 3: 
        {    
            if(kondycja_player[id]<100)
                kondycja_player[id]++;
            else 
                client_print(id, print_chat, "[CoD:MW] Maximum Kondicio Szint");
        }
    }
 
    punkty_player[id]--;
 
    if(punkty_player[id]>0)
        PrzydzielPunkty(id);
 
    return PLUGIN_CONTINUE;
}
 
public ResetujPunkty(id)
{    
    punkty_player[id] = level_player[id]*2-2;
    inteligencja_player[id] = 0;
    zdrowie_player[id] = 0;
    kondycja_player[id] = 0;
    wytrzymalosc_player[id] = 0;
}
 
public KomendaResetujPunkty(id)
{    
    client_print(id, print_chat, "[CoD:MW] Kepessegek nullazva lesznek kovi korben.");
    client_cmd(id, "spk MW/select");
    gracz_resetuje[id] = true;
}
 
public TrainingSanitary(id)
{
    id -= TASK_TRAINING_SANITARY;
    if(information_item_player[id][0] != 16)
        return PLUGIN_CONTINUE;
    set_task(3.0, "TrainingSanitary", id+TASK_TRAINING_SANITARY);
    if(!is_user_alive(id))
        return PLUGIN_CONTINUE;
    new health = get_user_health(id);
    new new_health = (health+10<maksymalne_zdrowie_player[id])?health+10:maksymalne_zdrowie_player[id];
    set_user_health(id, new_health);
    return PLUGIN_CONTINUE;
}
 
public StworzApteczke(id)
{
    if (!ilosc_apteczek_player[id])
    {
        client_print(id, print_center, "[CoD:MW]Koronkent csak 3 csomagot kapsz!");
        return PLUGIN_CONTINUE;
    }
 
    if(inteligencja_player[id] < 1)
        client_print(id, print_center, "[CoD:MW]Ha erosebb hatasu Elsosegely Csomagot szeretnel, noveld az Intelligenciad!");
 
    ilosc_apteczek_player[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, "FirstAidKit");
    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 FirstAirKitThink(ent)
{
    new id = entity_get_edict(ent, EV_ENT_owner);
    new totem_dist = 300;
    new totem_heal = 5+floatround(inteligencja_player[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 zdrowie = get_user_health(pid);
            new nowe_zdrowie = (zdrowie+totem_heal<maksymalne_zdrowie_player[pid])?zdrowie+totem_heal:maksymalne_zdrowie_player[pid];
            if (is_user_alive(pid)) set_user_health(pid, nowe_zdrowie);        
        }
 
        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 StworzRakiete(id)
{
    if (!ilosc_rakiet_player[id])
    {
        client_print(id, print_center, "[CoD:MW]Elhasznaltad az osszes raketad!");
        return PLUGIN_CONTINUE;
    }
 
    if(poprzednia_rakieta_player[id] + 2.0 > get_gametime())
    {
        client_print(id, print_center, "[CoD:MW]Csak 2 masodpercenkent tudod hasznalni a raketakat!");
        return PLUGIN_CONTINUE;
    }
 
    if (is_user_alive(id))
    {    
        if(inteligencja_player[id] < 1)
            client_print(id, print_center, "[CoD:MW]Erosebb hatasu raketakert, fejleszd az Intelligenciad!");
 
        poprzednia_rakieta_player[id] = get_gametime();
        ilosc_rakiet_player[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 PolozDynamit(id)
{
    if(!ilosc_dynamitow_player[id])
    {
        client_print(id, print_center, "[CoD:MW]Elhasznaltad a dynamitodat!");
        return PLUGIN_CONTINUE;
    }
 
    if(inteligencja_player[id] < 1)
        client_print(id, print_center, "[CoD:MW]Erosebb hatasu dinamitert, fejleszd az Intelligenciad!");
 
    ilosc_dynamitow_player[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) || information_item_player[pid][0] == 24)
            continue;
        ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencja_player[id]) , 1);
    }
    return PLUGIN_CONTINUE;
}
 
public PostawMine(id)
{
    if (!ilosc_min_player[id])
    {
        client_print(id, print_center, "[CoD:MW]Elhasznaltad az osszes aknad!");
        return PLUGIN_CONTINUE;
    }
 
    if(inteligencja_player[id] < 1)
        client_print(id, print_center, "[CoD:MW]Erosebb hatasu aknakert, fejleszd az Intelligenciad!");
 
    ilosc_min_player[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,20)    ;
 
 
    return PLUGIN_CONTINUE;
}
 
public DotykMiny(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) || information_item_player[pid][0] == 24 || class_player[id] == Protector)
                continue;
 
            ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencja_player[attacker]) , 1);
        }
        remove_entity(ent);
    }
}
 
public DotykRakiety(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) || information_item_player[pid][0] == 24)
            continue;
        ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0+float(inteligencja_player[attacker]) , 1);
    }
    remove_entity(ent);
}    
 
public CurWeapon(id)
{
    if(freezetime || !class_player[id])
        return PLUGIN_CONTINUE;
 
    new weapon = read_data(2);
 
    SetFast(id);
 
    if(weapon == CSW_C4)
        podkladajacy = id;
    return PLUGIN_CONTINUE;
}
 
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch ) 
{
    if(equal(szSound, "common/wpn_denyselect.wav"))
    {
        UzyjItem(id);
        return FMRES_SUPERCEDE;
    }
 
    return FMRES_IGNORED;
}
 
public UzyjItem(id)
{
    if(information_item_player[id][0] == 19 && information_item_player[id][1]>0) 
    {
        set_user_health(id, maksymalne_zdrowie_player[id]);
        information_item_player[id][1]--;
    }
 
    if(ilosc_apteczek_player[id]>0)
        StworzApteczke(id);
    if(ilosc_rakiet_player[id]>0)
        StworzRakiete(id);
    if(ilosc_min_player[id]>0)
        PostawMine(id);
    if(ilosc_dynamitow_player[id]>0)
        PolozDynamit(id);
 
    return PLUGIN_HANDLED;
}
 
public ZapiszDane(id)
{
    new vaultkey[64],vaultdata[256];
    format(vaultkey,63,"%s-%i-cod", g_szName[id], class_player[id]);
    format(vaultdata,255,"%i#%i#%i#%i#%i#%i", experience_player[id], level_player[id], inteligencja_player[id], zdrowie_player[id], wytrzymalosc_player[id], kondycja_player[id]);
    nvault_set(g_vault,vaultkey,vaultdata);
}
 
public WczytajDane(id, class)
{
    new vaultkey[64],vaultdata[256];
    format(vaultkey,63,"%s-%i-cod", g_szName[id], class);
    format(vaultdata,255,"%i#%i#%i#%i#%i#%i", experience_player[id], level_player[id], inteligencja_player[id], zdrowie_player[id], wytrzymalosc_player[id], kondycja_player[id]);
    nvault_get(g_vault,vaultkey,vaultdata,255);
 
    replace_all(vaultdata, 255, "#", " ");
 
    new experienceplayer[32], levelplayer[32], inteligencjaplayer[32], silaplayer[32], zrecznoscplayer[32], zwinnoscplayer[32];
 
    parse(vaultdata, experienceplayer, 31, levelplayer, 31, inteligencjaplayer, 31, silaplayer, 31, zrecznoscplayer, 31, zwinnoscplayer, 31);
 
    experience_player[id] = str_to_num(experienceplayer);
    level_player[id] = str_to_num(levelplayer)>0?str_to_num(levelplayer):1;
    inteligencja_player[id] = str_to_num(inteligencjaplayer);
    zdrowie_player[id] = str_to_num(silaplayer);
    wytrzymalosc_player[id] = str_to_num(zrecznoscplayer);
    kondycja_player[id] = str_to_num(zwinnoscplayer);
    punkty_player[id] = (level_player[id]-1)*2-inteligencja_player[id]-zdrowie_player[id]-wytrzymalosc_player[id]-kondycja_player[id];
} 
 
public WyrzucPrzedmiot(id)
{
    if(information_item_player[id][0])
    {
        client_print(id, print_chat, "[VeGzeT!] Eldobva: %s.", names_objects[information_item_player[id][0]]);
        UsunPrzedmiot(id);
    }
    else
        client_print(id, print_chat, "[VeGzeT!|] Nincs targyad amit eldobhatnal.", names_objects[information_item_player[id][0]]);
}
 
public UsunPrzedmiot(id)
{
    information_item_player[id][0] = 0;
    information_item_player[id][1] = 0;
    if(is_user_alive(id))
        set_user_footsteps(id, 0);
    set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
    ZmienUbranie(id, 1);
}
 
public DajPrzedmiot(id, przedmiot)
{
    UsunPrzedmiot(id);
    information_item_player[id][0] = przedmiot;
    client_print(id, print_chat, "[CoD:MW] Kaptal: %s.", names_objects[information_item_player[id][0]]);    
 
    switch(przedmiot)
    {
        case 1:
        {
            set_user_footsteps(id, 1);
        }
        case 2:
        {
            information_item_player[id][1] = random_num(3,6);
        }
        case 3:
        {
            information_item_player[id][1] = random_num(6, 11);
        }
        case 5:
        {
            information_item_player[id][1] = random_num(6, 9);
        }
        case 6:
        {
            information_item_player[id][1] = random_num(100, 150);
            set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 40);
        }
        case 7:
        {
            information_item_player[id][1] = random_num(2, 4);
        }
        case 8:
        {
            if(class_player[id] == Commando)
                DajPrzedmiot(id, random_num(1, sizeof names_objects-1));
        }
        case 9:
        {
            information_item_player[id][1] = random_num(1, 3);
            ZmienUbranie(id, 0);
            give_item(id, "weapon_hegrenade");
        }
        case 10:
        {
            information_item_player[id][1] = random_num(4, 98);
            give_item(id, "weapon_hegrenade");
        }
        case 12:
        {
            information_item_player[id][1] = random_num(1, 99);
        }
        case 13:
        {
            give_item(id, "weapon_awp");
        }
        case 15:
        {
            if(class_player[id] == Rambo)
                DajPrzedmiot(id, random_num(1, sizeof names_objects-1));
        }
        case 16:
        {
            set_task(5.0, "TrainingSanitary", id+TASK_TRAINING_SANITARY);
        }
        case 19:
        {
            information_item_player[id][1] = 1;
        }
        case 26:
        {
            information_item_player[id][1] = random_num(3, 6);
        }
        case 27:
        {
            information_item_player[id][1] = 3;
        }
    }
}
 
public DescriptionItem(id)
{
    new description_item[128];
    new losowa_wartosc[3];
    num_to_str(information_item_player[id][1], losowa_wartosc, 2);
    format(description_item, 127, descriptions_objects[information_item_player[id][0]]);
    replace_all(description_item, 127, "LW", losowa_wartosc);
 
    client_print(id, print_chat, "Targy: %s.", names_objects[information_item_player[id][0]]);
    client_print(id, print_chat, "Leiras: %s.", description_item);
}
 
public Raise(id)
{
    id-=TASK_RAISE;
    ExecuteHamB(Ham_CS_RoundRespawn, id);
}
 
public SprawdzLevel(id)
{    
    if(level_player[id] < 201)
    {
        while(experience_player[id] >= experience_level[level_player[id]])
        {
            level_player[id]++;
            set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
            ShowSyncHudMsg(id, SyncHudObj3, "Gratulalunk szintet leptel!");
            client_cmd(id, "spk MW/levelup");
        }
 
        punkty_player[id] = (level_player[id]-1)*2-inteligencja_player[id]-zdrowie_player[id]-wytrzymalosc_player[id]-kondycja_player[id];
    }
    ZapiszDane(id);
}
 
public ShowInformation(id) 
{
    id -= TASK_SHOW_INFORMATION;
 
    set_task(0.1, "ShowInformation", id+TASK_SHOW_INFORMATION);
 
    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, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
        ShowSyncHudMsg(id, SyncHudObj, "[Osztaly : %s]^n[Exp : %i / %i]^n[Szint : %i]^n[Targy : %s]", names_klas[class_player[target]], experience_player[target], experience_level[level_player[target]], level_player[target], names_objects[information_item_player[target][0]]);
 
        return PLUGIN_CONTINUE;
    }
    set_hudmessage(0, 241, 230, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
    ShowSyncHudMsg(id, SyncHudObj, "[Osztaly : %s]^n[Exp : %i / %i]^n[Szint : %i]^n[Targy : %s]", names_klas[class_player[id]], experience_player[id], experience_level[level_player[id]], level_player[id], names_objects[information_item_player[id][0]]);
    return PLUGIN_CONTINUE;
}  
 
public ShowAdvertisement(id)
{
    id-=TASK_SHOW_ADVERTISEMENT;
    client_print(id, print_chat, "[CoD:MW] Udvozollek a COD:MW vilagaban ,Jo szorakoza'st!");
}
 
public SetFast(id)
{
    id -= id>32? TASK_SET_FAST: 0;
 
    if(class_player[id])
        set_user_maxspeed(id, fast_player[id]);
}
 
public ZmienUbranie(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, Clothing_CT[num]);
            case 2:cs_set_user_model(id, Clothing_Terro[num]);
        }
    }
 
    return PLUGIN_CONTINUE;
}
 
public Pomoc()
{
    switch(random(3))
    {
        case 0: client_print(0, print_chat, "[CoD:MW] A szerveren CoD:MW [New] fut");
        case 1: client_print(0, print_chat, "[CoD:MW] A modot keszitete BY: K.O");
        case 2: client_print(0, print_chat, "[CoD:MW] A buggert ban jar!");
    }
    set_task(60.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;
 
    experience_player[player] = experience_level[value];
    level_player[player] = 0;
    SprawdzLevel(player);
    return PLUGIN_HANDLED;
}
 
public CommandBlock()
    return PLUGIN_HANDLED;
 
stock bool:UTIL_In_FOV(id,target)
{
    if (Find_Angle(id,target,9999.9) > 0.0)
        return true;
 
    return false;
}
#if defined BOT
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;
}
public userhelp(id)
{
    //create info/help.txt in your mod folder and put your info there as you add in motd  
    show_motd(id, "help.txt", "Help Motd")
}
public OddajPrzedmiot(id)
{
	new menu = menu_create("Oddaj przedmiot", "OddajPrzedmiot_Handle");
	new cb = menu_makecallback("OddajPrzedmiot_Callback");
	new numer_przedmiotu;
	for(new i=0; i<=32; i++)
	{
		if(!is_user_connected(i))
			continue;
		oddaj_id[numer_przedmiotu++] = i;
		menu_additem(menu, experience_player[i], "0", 0, cb);
	}
	menu_display(id, menu);
}
public OddajPrzedmiot_Handle(id, menu, item)
{
	if(item < 1 || item > 32) return PLUGIN_CONTINUE;
 
	if(!is_user_connected(oddaj_id[item]))
	{
		client_print(id, print_chat, "Ez nem az en napom-pom-pom-pom-pom-pom-pom-Yeah-Yeah.....");
		return PLUGIN_CONTINUE;
	}
	if(dostal_przedmiot[id])
	{
		client_print(id, print_chat, "Kovetkez'o' Korben Aktivalodik a kivalasztot targy");
		return PLUGIN_CONTINUE;
	}
	if(!information_item_player[id][0])
	{
		client_print(id, print_chat, "Nincs iljen cuc.");
		return PLUGIN_CONTINUE;
	}
	if(information_item_player[oddaj_id[item]][0])
	{
		client_print(id, print_chat, "Szep Valasztas Ifjonc.");
		return PLUGIN_CONTINUE;
	}
	dostal_przedmiot[oddaj_id[item]] = true;
	DajPrzedmiot(oddaj_id[item], information_item_player[id][0]);
	information_item_player[oddaj_id[item]][1] = information_item_player[id][1];
	client_print(id, print_chat, "Eldoptada targyad:  %s .",class_player[information_item_player[id][0]] , g_szName[oddaj_id[item]]);
	client_print(oddaj_id[item], print_chat, "Dobio si %s od igraca %s.",class_player[information_item_player[id][0]] , g_szName[id]);
	UsunPrzedmiot22(id);
	return PLUGIN_CONTINUE;
}
public UsunPrzedmiot22(id)
{
	information_item_player[id][0] = 0
	information_item_player[id][1] = 0
 
	if(is_user_alive(id))
	{
		set_user_footsteps(id, 0)
 
		if(!information_item_player[id][0] && class_player[id] != Rambo)
		{
			set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 255);
		}
 
		ZmienUbranie(id, 1)
	}
}