PDA

View Full Version : recompense hp


Juuhz
12-14-2012, 12:14
Hello, I wanted to give a recompense hp, to players who reach level X

ex:

Level 15 = 2HP
Level 16 = 2HP

adding all the player would be with 104 hp


#include <amxmodx>
#include <amxmisc>
#include <nvault>

new const LEVELS[22] = {
100,
200,
400,
700,
1000,
1500,
2000,
3000,
3600,
4800,
6000,
8000,
10000,
15000,
20000,
25000,
45000,
55000,
80000,
100000,
150000,
200000
}

new PlayerXP[33],PlayerLevel[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault

public plugin_init()
{
register_plugin("Simple XP", "1.0", "Fxfighter")

register_event("DeathMsg", "eDeath", "a")

SaveXP = register_cvar("SaveXP","1")
XP_Kill=register_cvar("XP_per_kill", "20")
XP_Hs=register_cvar("XP_hs_bonus","20")
XP_Knife=register_cvar("XP_knife_bonus","30")
g_vault = nvault_open("simplexp-nvault")

register_clcmd("say /xp", "ShowHud")
}

public eDeath()
{
new attacker = read_data( 1 )
new victim = read_data( 2 )
new headshot = read_data( 3 )
new clip, ammo, weapon = get_user_weapon(attacker, clip, ammo)

if(attacker == victim)
{
return PLUGIN_HANDLED
}

PlayerXP[attacker] += get_pcvar_num(XP_Kill)

if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_Hs)

if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(XP_Knife)

while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
PlayerLevel[attacker] += 1
client_print(attacker, print_chat, "[Click #1] Parabens! Agora voce e Level %i %s!", PlayerLevel[attacker])
}

ShowHud(attacker)
SaveData(attacker)

return PLUGIN_HANDLED
}

public ShowHud(id)
{
set_hudmessage(random(256), random(256), random(256), 0.01, 0.18, 2, 6.0, 12.0, 0.05, 0.05, 2)
show_hudmessage(id, "Seu Level: %i^nSeu XP: %i",PlayerLevel[id],PlayerXP[id])
}

public client_connect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{

LoadData(id)
}
}

public client_disconnect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{

SaveData(id)
}
PlayerXP[id] = 0
PlayerLevel[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#%i#",PlayerXP[id],PlayerLevel[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#%i#",PlayerXP[id],PlayerLevel[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

replace_all(vaultdata, 255, "#", " ")

new playerxp[32], playerlevel[32]

parse(vaultdata, playerxp, 31, playerlevel, 31)

PlayerXP[id] = str_to_num(playerxp)
PlayerLevel[id] = str_to_num(playerlevel)

return PLUGIN_CONTINUE
}