Andrey | Дата: Четверг, 13.09.2012, 13:25 | Сообщение # 1 |
- Сообщения: 64
- Награды: 1
- Замечания:
|
Здравствуйте, у меня на зомби сервере стоит плагин для сохранения аммо паков,но они очень часто пропадают...Автор плагина написал что они будут сохраняться как после смены карты, так и перезапуска сервера. Помогите найти причину пропажи, может в плагине есть какая то ошибка....Буду благодарен!
Code #include <amxmodx> #include <fakemeta> #include <zombieplague> #include <nvault>
#define PLUGIN "" #define VERSION "" #define AUTHOR ""
new g_save, g_ammo[33], g_ammo_can_save[33] new cvar_save_in
#define MAX_SAVE 999
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","event_deathmsg","a") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
cvar_save_in = register_cvar("zp_ammo_save_in", "0")
g_save = nvault_open("g_ammo_save") }
public zp_user_infected_post(id, infector) { if (g_ammo_can_save[infector]) Save_Ammo_date(infector) if (g_ammo_can_save[id]) Save_Ammo_date(id) }
public zp_extra_item_selected(id, itemid) { if (g_ammo_can_save[id]) Save_Ammo_date(id) }
public event_deathmsg() { new killer = read_data(1) new victim = read_data(2)
if (!killer && !victim) return PLUGIN_CONTINUE;
if (g_ammo_can_save[killer]) Save_Ammo_date(killer) if (g_ammo_can_save[victim]) Save_Ammo_date(victim)
return PLUGIN_CONTINUE; }
public fw_PlayerPreThink(id) { if (g_ammo_can_save[id]) { new ammo_packs = zp_get_user_ammo_packs(id) g_ammo[id] = ammo_packs }
return FMRES_IGNORED; }
public client_disconnect(id) { if(g_ammo_can_save[id]) Save_Ammo_date(id) }
public client_putinserver(id) set_task(2.0, "now_can_save", id)
public now_can_save(id) { Load_Ammo_date(id) set_task(0.5, "can_save_true", id) }
public can_save_true(id) g_ammo_can_save[id] = true
public Save_Ammo_date(id) { new vaultkey[64], vaultdata[256]
switch (get_pcvar_num(cvar_save_in)) { case 0: { new name[33]; get_user_name(id,name,32) format(vaultkey, 63, "%s-/", name) } case 1: { new player_ip[33] get_user_ip(id, player_ip, 32);
format(vaultkey, 63, "%s-/", player_ip) } case 2: { new AuthID[33]; get_user_authid(id, AuthID, 32); formatex(vaultkey, 64, "%s-/", AuthID); } }
format(vaultdata, 255, "%i#", g_ammo[id]) nvault_set(g_save, vaultkey, vaultdata) return PLUGIN_CONTINUE; }
public Load_Ammo_date(id) { new vaultkey[64], vaultdata[256]
switch (get_pcvar_num(cvar_save_in)) { case 0: { new name[33]; get_user_name(id,name,32) format(vaultkey, 63, "%s-/", name) } case 1: { new player_ip[33] get_user_ip(id, player_ip, 32);
format(vaultkey, 63, "%s-/", player_ip) } case 2: { new AuthID[33]; get_user_authid(id, AuthID, 32); formatex(vaultkey, 64, "%s-/", AuthID); } }
format(vaultdata, 255, "%i#", g_ammo[id]) nvault_get(g_save, vaultkey, vaultdata, 255) replace_all(vaultdata, 255, "#", " ") new playammo[32] parse(vaultdata, playammo, 31) g_ammo[id] = str_to_num(playammo) set_ammo(id) return PLUGIN_CONTINUE; }
public set_ammo(id) { if (g_ammo[id] > MAX_SAVE) { zp_set_user_ammo_packs(id, MAX_SAVE) g_ammo[id] = MAX_SAVE } else zp_set_user_ammo_packs(id, g_ammo[id]) client_print(id, print_chat, "Ваши кредиты : %d ", g_ammo[id]) }
Сообщение отредактировал Andrey - Четверг, 13.09.2012, 13:26 |
|
| |