#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][] =
{
"",
"\yGránátok \d[\rHE,FE,SM\d] \d|\r%d\d| \yPont",
"\yNagyobb Sebesség \d|\r%d\d| \yPont",
"\yÚjraéledés \d[\rHalottak használhatják!\d] \d|\r%d\d| \yPont",
"\ySurf Felszerelés \d[\rShotGun,Gránátok,Deagle\d \d|\r%d\d| \yPont",
"\yLáthatatlanság \d(\r1 kör\d] \d|\r%d\d| \yPont",
"\y+500 HP \d|\r%d\d| \yPont",
"\y1 találat = 1 ölés \d[\r1 kör\d] \d|\r%d\d| \yPont",
"\yHalhatatlanság \d[\r1 kör\d] \d|\r%d\d| \yPont",
"\y16000$ \d|\r%d\d| \yPont",
"\yTE Magozó \d|\r%d\d| \yPont",
"\yCT Magozó \d|\r%d\d| \yPont",
"\yAWP \d|\r%d\d| \yPont"
};
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,"[Surf Pontrendszer] ^3.: ^4BOOOM HEADSHOOT! ^3:. ^4Ez megért^1 %d ^4pontot!", get_pcvar_num(killhsp))
}
else
{
pontok[attacker] += get_pcvar_num(killp)
ColorChat(attacker, GREEN,"[Surf Pontrendszer]^1 %d ^4pont az ölésért!", 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),"\rJust Surf Pontrendszer bolt! \d[\yCfg: Danii\d]" )
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, "[Surf Pontrendszer]^1 Megkaptad a ^4GRÁNÁTOKAT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
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, "[Surf Pontrendszer]^1 A sebességed ^4GYORSÍTVA ^1lett!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
case 3:
{
if (pontok[id] >= ar[key] && !elo)
{
pontok[id] -= ar[key]
ExecuteHamB(Ham_CS_RoundRespawn, id)
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Újraéledtél!")
}
else if(elo)
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Élok ^4NEM ^1használhatják!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
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, "[Surf Pontrendszer]^1 Megkaptad a ^4SURF FELSZERELÉST!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
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, "[Surf Pontrendszer]^1 Megkaptad a ^4LÁTHATATLANSÁGOT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
case 6:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
set_user_health(id, get_user_health(id)+500)
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Megkaptad az ^4ÉLETET!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
case 7:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
activ_onehit[id] = true
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Megkaptad az ^4EGY LÖVÉSBOL ÖLÉST!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
case 8:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
activ_halhatatlan[id] = true
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Megkaptad a ^4HALHATATLANSÁGOT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
case 9:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
cs_set_user_money(id, 16000)
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Megkaptad a ^4PÉNZT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
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, "[Surf Pontrendszer]^1 Megkaptad a ^4MAGOZÓT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
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, "[Surf Pontrendszer]^1 Megkaptad a ^4MAGOZÓT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
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, "[Surf Pontrendszer]^1 Megkaptad az ^4AWPT!")
}
else
{
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 Sajnos, ^4nincs elég ^1pontod!")
}
}
}
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("\yJust Surf Pontrendszer! - Kinek akarsz pontot adni?! \d[ \y10 Pont \d]", "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, "[Surf Pontrendszer]^1 Sajnos ^4nincs jogod használni ^1ezt 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);
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 %d ^4pont jár mert itt vagy már^1 5 ^4perce!", penz)
pontok[id] += penz;
}
public ajandek_2(id)
{
new penz = get_pcvar_num(ajandek2);
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 %d ^4pont jár mert itt vagy már^1 10 ^4perce!", penz)
pontok[id] += penz;
}
public ajandek_3(id)
{
new penz = get_pcvar_num(ajandek3);
ColorChat(id, GREEN, "[Surf Pontrendszer]^1 %d ^4pont jár mert itt vagy már^1 30 ^4perce!", penz)
pontok[id] += penz;
}
public hud()
{
admin = 0;
new players[32], pnum, tempid
get_players(players, pnum, "c")
new jatekosok = get_playersnum()
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(random(255),random(255), random(255), 0.02, 0.2, 0, 1.0, 3.0);
ShowSyncHudMsg(tempid, SyncHudObj, "[Pontod: %d]^n[Jelenlévo Adminok: %d]^n[Jatekosok: %d]",pontok[tempid],admin,jatekosok)
}
}