#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <engine>
#include <fakemeta>
#define IN_JUMP (1<<1)
new PlayerXP[33],PlayerLevel[33]
new XP_Jump,SaveXP
new g_vault
new g_floodtime[33]
new gold_scout[] = "models/ktxp/gold_scout.mdl"
new const LEVELS[6] = {
0,
1000,
3000,
7000,
15000,
99999
}
public plugin_precache()
{
precache_model(gold_scout)
}
public plugin_init()
{
register_plugin("KTXP", "1.0", "none")
SaveXP = register_cvar("SaveXP","1")
XP_Jump = register_cvar("XP_per_jump","1")
register_event("CurWeapon", "fegyo", "be", "1=1")
g_vault = nvault_open("ktxpmod")
register_clcmd("say /xp", "ShowChat")
register_clcmd("say_team /xp", "ShowChat")
}
public client_PreThink(id)
{
if(!g_floodtime[id])
{
if(get_user_button(id) & IN_JUMP)
{
PlayerXP[id] += get_pcvar_num(XP_Jump)
g_floodtime[id] = 1;
set_task(1.0, "floodtimer", id);
}
}
while(PlayerXP[id] >= LEVELS[PlayerLevel[id]])
{
client_print(id, print_chat, "[KTXP] Szintet leptel!", PlayerLevel[id])
PlayerLevel[id] += 1
}
}
public fegyo(id)
{
new weap = get_user_weapon(id)
if (PlayerLevel[id] >= 3 && 5 >= PlayerLevel[id] && weap == CSW_SCOUT)
{
set_pev(id, pev_viewmodel2, gold_scout)
}
}
public floodtimer(id)
{
g_floodtime[id] = 0;
}
public ShowChat(id)
{
client_print(id, print_chat, "Szinted: %i|XP-d: %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)
}
}
public SaveData(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%sKTXP3", name)
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%sKTXP3", name)
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
}