A wiec postanowilem napisac sobie plugin, a mianowicie XPMod. Ale gdy wgrałem go na serwer (HNS), to w ogóle nie działa. Do plugins.ini takze dodalem. Zobaczicie Kod:
#define MAXCLASSES 1
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new XP_kill, XP_hs, SaveXP
new g_vault
new const CLASSES[MAXCLASSES][] = {
"None"
}
new const LEVELS[20] =
{
0,
100,
200,
350,
400,
800,
1400,
2200,
3500,
5000,
7000,
9500,
12000,
15000,
19000,
24000,
30000,
40000,
52000,
80000
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","eDeath","a")
SaveXP = register_cvar("SaveXP","1")
XP_kill=register_cvar("Xp_per_kill","12")
XP_hs=register_cvar("XP_hs_bonus","5")
g_vault = nvault_open("animod")
register_clcmd("say /xp", "ShowHud")
register_clcmd("say_team /xp", "ShowHud")
}
public eDeath( )
{
new attacker = read_data( 1 );
new ivictim = read_data ( 2 );
new headshot = read_data( 3 )
if(PlayerClass[attacker] == 0)
  return PLUGIN_CONTINUE
 
new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
PlayerXP[attacker] += get_pcvar_num(XP_kill)
if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_hs)
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
if(PlayerClass[attacker] == 0) return PLUGIN_CONTINUE
  client_print(attacker, print_chat, "[JumpOne.pl] Gratulacje! Zdobyles poziom: %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
  PlayerLevel[attacker] +=1
ShowHud(attacker);
SaveData(attacker);
}
 
public ShowHud(id) {
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0);
show_hudmessage(id, "Poziom: %i^nDoswiadczenie: %i^nPostac: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[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) {
	    if(g_vault == INVALID_HANDLE)
			    return;
	    new AuthID[32]; get_user_authid(id, AuthID, 31);
	    new vaultkey[64], vaultdata[128];
	    format(vaultkey, 63, "%s-Mod", AuthID);
	    format(vaultdata, 127, "%i %i", PlayerXP[id], PlayerLevel[id]);
	    nvault_set(g_vault, vaultkey, vaultdata);
}
public LoadData(id) {
	    if(g_vault == INVALID_HANDLE)
			    return;
	    new AuthID[32]; get_user_authid(id, AuthID, 31);
	    new vaultkey[64], vaultdata[128];
	    format(vaultkey, 63, "%s-Mod", AuthID);
	    if(nvault_get(g_vault, vaultkey, vaultdata, 127)) {
			    new playerxp[11], playerlevel[11];
			    parse(vaultdata, playerxp, 10, playerlevel, 10);
			    PlayerXP[id] = str_to_num(playerxp);
			    PlayerLevel[id] = str_to_num(playerlevel);
	    }
}
Proszę o pomoc.
Użytkownik Towobars edytował ten post 02.12.2012 16:12


 
Dodatki SourceMod



	








