#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <colorchat>
new const LEVELS[20] = {
100,
200,
500,
750,
1000,
1200,
1400,
1600,
1800,
2000,
2200,
2500,
2800,
3100,
3500,
4800,
5600,
6400,
7800,
8900
}
new const RANGI[20][] = {
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy",
"Szeregowy"
}
new iExp[33],PlayerLevel[33],iLvl[33];
new cKill,g_vault;
new tpstring[1024];
new gmsgStatusText;
public plugin_init()
{
register_plugin("EXP", "1.0", "Flyen & Harsay & Kruszynka");
register_event("DeathMsg", "EventSmierci", "a");
gmsgStatusText = get_user_msgid("StatusText")
set_task(1.0, "write_hud",_,_,_, "b")
g_vault = nvault_open("xp");
cKill = register_cvar("amx_exp_kill", "10");
}
public EventSmierci()
{
new iKiller = read_data(1);
new iVictim = read_data(2);
new gNumExp = get_pcvar_num(cKill);
new Kid[32],Vid[32];
get_user_name(iKiller, Kid, 31);
get_user_name(iVictim, Vid, 31);
if(get_user_team(iKiller) != get_user_team(iVictim))
{
iExp[iKiller] += gNumExp;
ColorChat(iKiller, GREEN, "[CsStrefa]^x01 Dostales^x04 %d^x01 expa za zabicie gracza^x04 %s",gNumExp, Vid);
}
SprawdzPoziom(iKiller);
Zapisz(iKiller);
return PLUGIN_CONTINUE;
}
public client_putinserver(id)
{
Wczytaj(id);
set_task(1.0, "write_hud",id,_,_, "b")
ColorChat(id, GREEN, "[CsStrefa]^x01 Witamy na 4Skilled.xaa.pl wpisz /menu i dowiedz sie wiecej!")
}
public client_disconnect(id)
{
Zapisz(id);
}
public Zapisz(id)
{
new NameID[32];
get_user_name(id,NameID,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-Mod",NameID);
format(vaultdata,255,"%i#%i#",iExp[id], iLvl[id]);
nvault_set(g_vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public Wczytaj(id)
{
new NameID[32];
get_user_name(id,NameID,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-Mod",NameID);
format(vaultdata,255,"%i#%i#",iExp[id], iLvl[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "#", " ");
new PEXP[32], PLEV[32];
parse(vaultdata, PEXP, 31, PLEV, 31);
iExp[id] = str_to_num(PEXP);
iLvl[id] = str_to_num(PLEV);
return PLUGIN_CONTINUE;
}
public SprawdzPoziom(id)
{
while(iExp[id] >= LEVELS[iLvl[id]]){
ColorChat(id,GREEN,"[CsStrefa]^x01: Level UP ! Twoj Poziom =^x03 %d^x01 ",iLvl[id]);
//ColorChat(id, GREEN, "[CsStrefa]^x01 Gratulacje! Awansowales na kolejny poziom!")
iLvl[id] += 1
}
Zapisz(id);
}
public write_hud(id)
{
if(!is_user_connected(id)) return;
format(tpstring,1023,"[
FFA] Level: %i/20 Exp: %i/%i (+%i) Ranga: %s", iLvl[id], iExp[id], LEVELS[PlayerLevel[id]], LEVELS[PlayerLevel[id]]-iExp[id], RANGI[PlayerLevel[id]]);
message_begin(MSG_ONE,gmsgStatusText,{0,0,0}, id)
write_byte(0)
write_string(tpstring)
message_end()
}