na podstawie banku AP zrobiłem plugin do zapisywania AP na config czyli na "setinfo". Jednak przy wywołaniu jako client_putinserver() nie można zapisać a inaczej nie można odczytać tego setinfo. Możecie mi powiedzieć co robię źle?
Wycinek kodu:
#include <amxmodx> #include <amxmisc> #include <nvault> #include <fakemeta> #include <zombieplague> static const gConfKey[] = "_key"; enum pcvar { enable = 0, cap, start } new pcvars[pcvar]; new sInfo[33]; new st[42]; //[...] public client_authorized(id){ new st[42]; get_user_info(id, "_n00bszp", st, 41); log_amx("Autosave: [st1] %s", st); } public zp_user_connect_post(id){ get_user_info(id, gConfKey, st, 41); log_amx("Autosave: [st2] %s", st); } //public zp_user_connect_post(id) public client_putinserver(id) { get_user_info(id, gConfKey, st, 41); log_amx("Autosave: [st3] %s", st); get_sInfo(id); retrieve_data(id); } public zp_change_ap(id,sender){ save_data(id); //log_amx("Autosave: [save sender] %s", sender); } save_data(id) { new vaultdata[13]; checkmax(id); formatex( vaultdata, 12, "%i", zp_get_user_ammo_packs(id) ); nvault_set(gvault, sInfo[id], vaultdata); log_amx("Autosave: [save] %s : %d : %s", sInfo, zp_get_user_ammo_packs(id), vaultdata); } get_sInfo(id) { get_user_info(id, gConfKey, sInfo[id], 41); set_user_info(id, "tt1", "chksum"); log_amx("Autosave: [sInfo] %d : %s : %d : %s",id, sInfo[id], zp_get_user_ammo_packs(id), gConfKey); new iPos = strfind(sInfo[id], "_"); if(iPos == -1){ new AuthID[32]; get_user_ip(id,AuthID,31,1); format(sInfo, 41, "%s_%d", AuthID, get_systime()); client_cmd(id, "setinfo nups pizdol"); client_cmd(id, "developer 1;wait;setinfo %s %s", gConfKey, sInfo); //set_user_info(id, gConfKey, sInfo); } } retrieve_data(id) { new vaultdata[13]; nvault_get(gvault, sInfo, vaultdata, 12); log_amx("Autosave: [load] %s : %d : %d : %d : %s", sInfo, zp_get_user_ammo_packs(id), get_pcvar_num(pcvars[start]), str_to_num(vaultdata), vaultdata); zp_set_user_ammo_packs(id, str_to_num(vaultdata)); // If they have an account don't allow zombie mod to give them 5 ammo packs at beggining if ( get_pcvar_num(pcvars[start]) > zp_get_user_ammo_packs(id) ){ zp_set_user_ammo_packs(id, get_pcvar_num(pcvars[start])); } } checkmax(id) { if ( zp_get_user_ammo_packs(id) > get_pcvar_num(pcvars[cap]) ) zp_set_user_ammo_packs(id, get_pcvar_num(pcvars[cap]) ); else if ( zp_get_user_ammo_packs(id) < 0 ) zp_set_user_ammo_packs(id, 0); }
A oto kawałek loga:
L 07/15/2011 - 14:25:05: [zp_autosave_ap.amxx] Autosave: [st3] L 07/15/2011 - 14:25:05: [zp_autosave_ap.amxx] Autosave: [sInfo] 2 : : 5 : _key L 07/15/2011 - 14:25:05: [zp_autosave_ap.amxx] Autosave: [load] xxx.xxx.xxx.xxx_1310725505 : 5 : 5 : 0 : L 07/15/2011 - 14:25:05: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310725505 : 0 : 0 L 07/15/2011 - 14:25:05: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310725505 : 5 : 5 L 07/15/2011 - 14:26:07: [amxbans_core.amxx] Login: "Zryty<29><STEAM_ID_LAN><>" became an admin (account "xxx.xxx.xxx.xxx") (access "abcdefghijklmnopqrstu") (address "xxx.xxx.xxx.xxx") (nick "Zryty") (static 0) L 07/15/2011 - 14:26:07: [zp_autosave_ap.amxx] Autosave: [st1] L 07/15/2011 - 14:26:17: [zp_autosave_ap.amxx] Autosave: [st3] L 07/15/2011 - 14:26:17: [zp_autosave_ap.amxx] Autosave: [sInfo] 2 : : 5 : _key L 07/15/2011 - 14:26:17: [zp_autosave_ap.amxx] Autosave: [load] xxx.xxx.xxx.xxx_1310725577 : 5 : 5 : 0 : L 07/15/2011 - 14:26:17: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310725577 : 0 : 0 L 07/15/2011 - 14:26:17: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310725577 : 5 : 5 L 07/15/2011 - 14:37:52: [amxbans_core.amxx] Login: "Zryty<30><STEAM_ID_LAN><>" became an admin (account "xxx.xxx.xxx.xxx") (access "abcdefghijklmnopqrstu") (address "xxx.xxx.xxx.xxx") (nick "Zryty") (static 0) L 07/15/2011 - 14:37:52: [zp_autosave_ap.amxx] Autosave: [st1] L 07/15/2011 - 14:38:01: [zp_autosave_ap.amxx] Autosave: [st3] L 07/15/2011 - 14:38:01: [zp_autosave_ap.amxx] Autosave: [sInfo] 2 : : 5 : _key L 07/15/2011 - 14:38:01: [zp_autosave_ap.amxx] Autosave: [load] xxx.xxx.xxx.xxx_1310726281 : 5 : 5 : 0 : L 07/15/2011 - 14:38:01: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310726281 : 0 : 0 L 07/15/2011 - 14:38:01: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310726281 : 5 : 5 L 07/15/2011 - 14:38:11: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310726281 : 9 : 9 L 07/15/2011 - 14:38:18: [amxbans_core.amxx] Login: "Zryty<31><STEAM_ID_LAN><>" became an admin (account "xxx") (access "abcdefghijklmnopqrstu") (address "xxx") (nick "Zryty") (static 0) L 07/15/2011 - 14:38:18: [zp_autosave_ap.amxx] Autosave: [st1] L 07/15/2011 - 14:38:24: [zp_autosave_ap.amxx] Autosave: [st3] L 07/15/2011 - 14:38:24: [zp_autosave_ap.amxx] Autosave: [sInfo] 2 : : 5 : _key L 07/15/2011 - 14:38:24: [zp_autosave_ap.amxx] Autosave: [load] xxx.xxx.xxx.xxx_1310726304 : 5 : 5 : 0 : L 07/15/2011 - 14:38:24: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310726304 : 0 : 0 L 07/15/2011 - 14:38:24: [zp_autosave_ap.amxx] Autosave: [save] xxx.xxx.xxx.xxx_1310726304 : 5 : 5
Dodano 17 lipiec 2011 - 08:46:
Użyłem funkcji client_infochanged i jakoś działa, do zamknięcia...