#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <nvault>
new bonus[33]
new bonus_head, bonus_other, Savebonus, g_vault
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define m_LastHitGroup 75
#define EXTRAOFFSET 5
enum (+= 100)
{
TASK_SHOWHUD
}
public plugin_init()
{
register_plugin("Bonus", "0.000002", "SGamer")
RegisterHam(Ham_Killed, "player", "Player_Killed")
Savebonus = register_cvar("Savebonus","1")
bonus_head = register_cvar("amx_bonus_bonus_in_head", "3")
bonus_other = register_cvar("amx_bonus_bonus", "1")
g_vault = nvault_open("bonus")
}
public plugin_natives()
{
register_native("get_user_bonus", "native_get_user_bonus", 1)
register_native("set_user_bonus", "native_set_user_bonus", 1)
}
public Player_Killed(victim, attacker, mda)
{
if(is_user_connected(attacker))
{
if(get_pdata_int(victim, m_LastHitGroup, EXTRAOFFSET) == HIT_HEAD)
bonus[attacker] += get_pcvar_num(bonus_head)
else
bonus[attacker] += get_pcvar_num(bonus_other)
}
}
public client_putinserver(id)
{
if(!is_user_bot(id))
{
set_task(0.4, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
}
public ShowHUD(taskid)
{
static red, green, blue
//id = ID_SHOWHUD
red = random_num(1, 255)
green = random_num(1, 255)
blue = random_num(1, 255)
if(is_user_alive(ID_SHOWHUD))
{
set_hudmessage(red, green, blue, 0.02, 0.5, 0, 6.0, 1.1, 0.0, 0.0)
show_hudmessage(ID_SHOWHUD, "[Бонусов: %d]", bonus[ID_SHOWHUD])
}
}
public native_get_user_bonus(id)
{
return bonus[id]
}
public native_set_user_bonus(id, amount)
{
bonus[id] = amount
}
public client_connect(id)
{
if(get_pcvar_num(Savebonus) == 1)
{
LoadData(id)
}
}
public client_disconnect(id)
{
if(get_pcvar_num(Savebonus) == 1)
remove_task(id+TASK_SHOWHUD)
{
SaveData(id)
}
bonus[id] = 0
}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod", AuthID)
format(vaultdata,255,"%i#", bonus[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod", AuthID)
format(vaultdata,255,"%i#", bonus[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
parse(vaultdata, bonus, 31)
bonus[id] = str_to_num(bonus)
return PLUGIN_CONTINUE
}