#include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <fun>
    #include <fakemeta>
    #include <hamsandwich>
    #include <nvault>
    #include <colorchat>
 
    #define PLUGIN "Pontrendszer"
    #define VERSION "1.1"
    #define AUTHOR "crazy"
 
    #define DROG_SEBESSEG 800.0
 
    new g_vault
    new pontok[33]
    new name[33][32]
    new admin
    new killp, killhsp
    new ajandek1, ajandek2, ajandek3
    new SyncHudObj
    enum shopitems
    {
    GRANATPACK,
    SEBESSEG,
    UJRAELEDES,
    SURFPACK,
    LATHATATLAN,
    OTSZAZHP,
    ONEHIT,
    HALHATATLAN,
    FULLPENZ,
    MAGOZOTE,
    MAGOZOCT,
    AWP
    };
    new cvar_bolt[shopitems]
 
    new bool:activ_sebesseg[33]
    new bool:activ_lathatatlan[33]
    new bool:activ_onehit[33]
    new bool:activ_halhatatlan[33]
 
    #define MAX_SHOP_ITEM 12
    new const shop_item_names[MAX_SHOP_ITEM+1][] =
    {
    "",
    "\yGranatok \w(HE,FE,SM) \r|%d| Pont",
    "\yNagyobb Sebesseg \r|%d| Pont",
    "\yUjraeledes \w(Halottak hasznalhatjak!) \r|%d| Pont",
    "\ySurf Felszereles \w(ShotGun,Granatok,Deagle) \r|%d| Pont",
    "\yLathatatlansag \w(1 kor) \r|%d| Pont",
    "\y+500 HP \r|%d| Pont",
    "\y1 hit = 1 kill \w(1 kor) \r|%d| Pont",
    "\yHalhatatlansag \w(1 kor) \r|%d| Pont",
    "\y16000$ \r|%d| Pont",
    "\yTE Magozo \r|%d| Pont",
    "\yCT Magozo \r|%d| Pont",
    "\yAWP \r|%d| Pont"
    };
    public plugin_init() {
 
    register_plugin(PLUGIN, VERSION, AUTHOR)
    set_task(2.9, "hud", 0, _, _, "b")
 
    killp = register_cvar("pont_kill", "2")
    killhsp = register_cvar("pont_killhs", "3")
 
    ajandek1 = register_cvar("pont_ajandek1", "5")
    ajandek2 = register_cvar("pont_ajandek2", "10")
    ajandek3 = register_cvar("pont_ajandek3", "30")
 
    register_clcmd("team_say /adas", "adas")
    register_clcmd("say /adas", "adas")
    register_clcmd("pont_adas", "adas")
 
    register_clcmd("team_say /shop", "Shop")
    register_clcmd("say /shop", "Shop")
 
    register_clcmd("team_say /bolt", "Shop")
    register_clcmd("say /bolt", "Shop")
 
    cvar_bolt[GRANATPACK] = register_cvar("bolt_1", "20")
    cvar_bolt[SEBESSEG] = register_cvar("bolt_2", "45")
    cvar_bolt[UJRAELEDES] = register_cvar("bolt_3", "80")
    cvar_bolt[SURFPACK] = register_cvar("bolt_4", "65")
    cvar_bolt[LATHATATLAN] = register_cvar("bolt_5", "500")
    cvar_bolt[OTSZAZHP] = register_cvar("bolt_6", "360")
    cvar_bolt[ONEHIT] = register_cvar("bolt_7", "450")
    cvar_bolt[HALHATATLAN] = register_cvar("bolt_8", "750")
    cvar_bolt[FULLPENZ] = register_cvar("bolt_9", "50")
    cvar_bolt[MAGOZOTE] = register_cvar("bolt_10", "680")
    cvar_bolt[MAGOZOCT] = register_cvar("bolt_11", "680")
    cvar_bolt[AWP] = register_cvar("bolt_12", "200")
 
    g_vault = nvault_open("PontRendszer");
 
    RegisterHam(Ham_Killed, "player", "fw_player_killed", 1)
    RegisterHam(Ham_TakeDamage, "player", "fw_player_damage", 0)
    RegisterHam(Ham_Spawn, "player", "fw_player_spawn", 0)
    RegisterHam(Ham_Spawn, "player", "fw_player_spawn_post", 1)
    register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
    SyncHudObj = CreateHudSyncObj()
    new itemszam = (_:shopitems)
    if(MAX_SHOP_ITEM != itemszam)
    {
    set_fail_state("Valamit elrontottal. A shopitems tombben es a shop_item_names tombben nem ugyanannyi elem van")
    }
    }
    public fw_player_killed(victim, attacker, shouldgib)
    {
    if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim)
    return PLUGIN_CONTINUE;
 
    if(get_pdata_int(victim, 75) == HIT_HEAD)
    {
    pontok[attacker] += get_pcvar_num(killhsp)
    ColorChat(attacker, GREEN,"[Pontrendszer] .: BOOOM HEADSHOOT! :. Ez megert ^x03 %d pontot!", get_pcvar_num(killhsp))
    }
    else
    {
    pontok[attacker] += get_pcvar_num(killp)
    ColorChat(attacker, GREEN,"[Pontrendszer] ^x03 %d pont az olesert!", get_pcvar_num(killp))
    }
    return PLUGIN_CONTINUE
    }
    public fw_player_damage(victim, inflictor, attacker, Float:damage, damage_type)
    {
    if(activ_onehit[attacker])
    {
    SetHamParamFloat(4, float(get_user_health(victim)+1))
    }
    if(activ_halhatatlan[victim])
    {
    return HAM_SUPERCEDE
    }
    return HAM_IGNORED
    }
    public fw_player_spawn(id)
    {
    activ_halhatatlan[id] = false
    activ_onehit[id] = false
    activ_sebesseg[id] = false
    }
    public fw_player_spawn_post(id)
    {
    if(activ_lathatatlan[id])
    {
    set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
    activ_lathatatlan[id] = false
    }
    }
    public Event_Change_Weapon(id)
    {
    if(activ_sebesseg[id])
    {
    set_user_maxspeed(id, DROG_SEBESSEG)
    }
    return PLUGIN_CONTINUE
    }
    public Shop(id)//IGEN EZ ITT A MENU
    {
    static Item[64]
 
    formatex(Item, charsmax(Item),"\r[Pontrendszer Bolt]" )
    new Menu = menu_create(Item, "Shoph")
 
    new szTempid[10]
 
    for(new i = 1; i<sizeof(shop_item_names); i++)
    {
    num_to_str(i, szTempid, 9)
    formatex(Item, charsmax(Item),shop_item_names[i], get_pcvar_num(cvar_bolt[shopitems:(i-1)]))
    menu_additem(Menu, Item, szTempid)
    }
    menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, Menu)
 
    return PLUGIN_HANDLED
    }
    public Shoph(id, menu, item)
    {
    if( item == MENU_EXIT )
    {
    menu_destroy(menu)
    return PLUGIN_HANDLED
    }
    new data[6], iName[64]
    new access, callback
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
 
    new key = str_to_num(data)
    new elo = is_user_alive(id)
    new ar[_:shopitems+1]
    for(new i=1; i<_:shopitems+1; i++)
    {
    ar[i] = get_pcvar_num(cvar_bolt[shopitems:(i-1)])
    }
 
    switch(key)
    {
    case 1:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    give_item(id, "weapon_flashbang")
    give_item(id, "weapon_hegrenade")
    give_item(id, "weapon_smokegrenade")
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a granatokat!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 2:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    set_user_maxspeed(id, DROG_SEBESSEG)
    activ_sebesseg[id] = true
    ColorChat(id, GREEN, "[Pontrendszer] A sebesseged gyorsitva lett!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod!")
    }
    }
    case 3:
    {
    if (pontok[id] >= ar[key] && !elo)
    {
    pontok[id] -= ar[key]
    ExecuteHamB(Ham_CS_RoundRespawn, id)
    ColorChat(id, GREEN, "[Pontrendszer] Ujraeledtel!")
    }
    else if(elo)
    {
    ColorChat(id, GREEN, "[Pontrendszer] Elok nem hasznalhatjak!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 4:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key];
    cs_set_weapon_ammo( give_item( id, "weapon_m3" ), 8 )
    give_item(id, "weapon_hegrenade")
    give_item(id, "weapon_flashbang")
    give_item(id, "weapon_flashbang")
 
    give_item(id, "weapon_knife")
    give_item(id, "weapon_deagle")
    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a Surf Felszerelest!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 5:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    activ_lathatatlan[id] = true
    set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a lathatatlansagot!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 6:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    set_user_health(id, get_user_health(id)+500)
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad az eletet!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 7:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    activ_onehit[id] = true
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad az egy lovesbol olest!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 8:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    activ_halhatatlan[id] = true
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a halhatatlansagot!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 9:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    cs_set_user_money(id, 16000)
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a penzt!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 10:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key]
    give_item(id, "weapon_g3sg1")
    cs_set_user_bpammo(id, CSW_G3SG1, 90)
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a magozot!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 11:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key];
    give_item(id, "weapon_sg550")
    cs_set_user_bpammo(id, CSW_SG550, 90)
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad a magozot!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    case 12:
    {
    if (pontok[id] >= ar[key] && elo)
    {
    pontok[id] -= ar[key];
    give_item(id, "weapon_awp");
    cs_set_user_bpammo(id, CSW_AWP, 30);
    ColorChat(id, GREEN, "[Pontrendszer] Megkaptad az awpt!")
    }
    else
    {
    ColorChat(id, GREEN, "[Pontrendszer] Sajnos,nincs eleg pontod")
    }
    }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
    }
 
    public mentes(id)
    {
    new vaultkey[64],vaultdata[256]
 
    format(vaultkey,63,"%s-PONTOK", name[id])
    format(vaultdata,255,"%d", pontok[id])
 
    nvault_set(g_vault,vaultkey,vaultdata)
    return PLUGIN_CONTINUE
    }
    public betoltes(id)
    {
    new vaultkey[64],vaultdata[256]
 
    format(vaultkey,63,"%s-PONTOK", name[id])
 
    nvault_get(g_vault,vaultkey,vaultdata,255)
 
    pontok[id] = str_to_num(vaultdata)
    return PLUGIN_CONTINUE;
    }
    public client_disconnect(id)
    {
    mentes(id);
    remove_task(id);
    pontok[id] = 0;
    activ_halhatatlan[id] = false
    activ_lathatatlan[id] = false
    activ_onehit[id] = false
    activ_sebesseg[id] = false
    }
 
    public client_connect(id)
    {
    get_user_name(id, name[id], 31)
    betoltes(id);
    set_task(300.0, "ajandek_1",id)
    set_task(900.0, "ajandek_2",id)
    set_task(1800.0, "ajandek_3",id)
    }
    public adas(id)
    {
    if (get_user_flags(id) & ADMIN_KICK)
    {
    new menu = menu_create("\y [Pontrendszer] \rKinek akarsz pontot adni?! \y(10p)", "menu_handler")
    new players[32], pnum, tempid
    new szName[32], szTempid[10]
    get_players(players, pnum)
    for( new i; i<pnum; i++ )
    {
    tempid = players[i];
    get_user_name(tempid, szName, charsmax(szName))
    num_to_str(tempid, szTempid, charsmax(szTempid))
    menu_additem(menu, szName, szTempid, 0)
 
    }
    menu_display(id, menu, 0)
    }
    else
    {
    ColorChat(id, GREEN, "Sajnos nincs jogod hasznalni ezt a parancsot!")
 
    }
    }
    public menu_handler(id, menu, item)
    {
    if( item == MENU_EXIT )
    {
    menu_destroy(menu);
    return PLUGIN_HANDLED;
    }
 
    new data[6], szName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
 
    new tempid = str_to_num(data);
 
    if( is_user_alive(tempid) )
    {
    pontok[tempid] += 10
    }
    client_cmd(id,"pont_adas")
    menu_destroy(menu);
    return PLUGIN_HANDLED;
    }
    public ajandek_1(id)
    {
    new penz = get_pcvar_num(ajandek1);
    client_print(id, print_chat, "[Pontrendszer] %d pont jar mert itt vagy mar 5 perce!", penz)
    pontok[id] += penz;
    }
    public ajandek_2(id)
    {
    new penz = get_pcvar_num(ajandek2);
    client_print(id, print_chat, "[Pontrendszer] %d pont jar mert itt vagy mar 10 perce!", penz)
    pontok[id] += penz;
    }
    public ajandek_3(id)
    {
    new penz = get_pcvar_num(ajandek3);
    client_print(id, print_chat, "[Pontrendszer] %d pont jar mert itt vagy mar 30 perce!", penz)
    pontok[id] += penz;
    }
 
    public hud()
    {
    admin = 0;
    new players[32], pnum, tempid
    get_players(players, pnum, "c")
 
    for( new i; i<pnum; i++ )
    {
    tempid = players[i]
    if(get_user_flags(tempid) & ADMIN_KICK)	
    {
    admin++;
    }
 
    }
    for( new i; i<pnum; i++ )
    {
    tempid = players[i]
    set_hudmessage(0, 170, 255, 0.02, 0.2, 0, 1.0, 3.0);
    ShowSyncHudMsg(tempid, SyncHudObj, "[Pont: %d]^n[Jelenlevo Adminok: %d]",pontok[tempid],admin)
    }