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












