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
}
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
}