Can someone help me ?
1 Attachment(s)
i have writen a code ,can record the player's ip ,
but when i open the vault file ,i saw some problem
please see the following photo and the code !!
can someone tell me what wrong?
thanks!!!
PHP Code:
#include <amxmodx> #include <amxmisc> #include <li_geoip> #include <nvault> #define PLUGIN_NAME "Ip Record" #define PLUGIN_VERSION "1.0" #define PLUGIN_AUTHOR "K.K.Lv" #define NVAULT new i_pShowip, iTimeS, iTimeM, iTimeH, iTimeD, iTimeMo new iTotaltime[33] new iLastip[33] new iUserlastip[33] public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) //------------------register client command-------------- register_clcmd("say", "say_handle") register_clcmd("say /ipmenu", "showmenu") register_clcmd("say_team /ipmenu", "showmenu") //------------------register Cvar------------------------ i_pShowip = register_cvar("amx_show_ip", "1") } public showmenu(id) { if (!get_pcvar_num(i_pShowip)) return PLUGIN_HANDLED if (!(get_user_flags(id) & ADMIN_RESERVATION)) { client_print(id, print_center, "Sorry, Your can't use this command.") return PLUGIN_HANDLED } new menu = menu_create("\rPlayer's IP Menu:", "menu_handler") new iPlayers[32], iNum, iPlayerid new iTempid[10], iName[32] get_players(iPlayers, iNum) for (new i; i < iNum; i++) { iPlayerid = iPlayers[i] get_user_name(iPlayerid, iName, charsmax(iName)) num_to_str(iPlayerid, iTempid, charsmax(iTempid)) menu_additem(menu, iName, iTempid, 0) } menu_display(id, menu, 0) return PLUGIN_CONTINUE } public menu_handler(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new iData[6], iName[64] new iAccess, iCallback menu_item_getinfo(menu, item, iAccess, iData, 5, iName, 63, iCallback) new tempid = str_to_num(iData) if(is_user_alive(tempid)) displayip(tempid, tempid) menu_destroy(menu) return PLUGIN_HANDLED } public displayip(id, dest) { new iLen, iUserip[16], iName[32], iCountry[40], iOldcountry[40], iArea[64], iOldarea[64], iMotd[2048] get_user_ip(id, iUserip, charsmax(iUserip), 1) geoip_info(iUserip, iCountry, iArea, charsmax(iCountry), charsmax(iArea)) iUserlastip[id] = loadip(id) ? iLastip[id]:iUserip[id] geoip_info(iUserlastip[id], iOldcountry, iOldarea, charsmax(iOldcountry), charsmax(iOldarea)) new iTime = get_user_time(id, 1) iTimeS = (iTime + iTotaltime[id])%60 iTimeM = ((iTime+iTotaltime[id])/60)%60 iTimeH = (((iTime+iTotaltime[id])/60)/60)%24 iTimeD = ((((iTime+iTotaltime[id])/60)/60)/24)%30 iTimeMo = ((((iTime+iTotaltime[id])/60)/60)/24)/30 iLen += copy(iMotd[iLen], 2047-iLen, "<meta charset=UTF-8><style>body{font-family:Arial,sans-serif;font-size:12px;color:#FFFFFF;background-color:#000000;margin-left:8px;margin-top:3px}.header{background-color:#9A9DA2;}.one{background-color:#565759;}.two{background-color:#3D3D3D;}") iLen += format(iMotd[iLen], 2047-iLen, "</style></head><body><table><tr><td colspan=2>%sCountry-Area-IP's Info--</td></tr>",(id==dest)?"your":"his") iLen += format(iMotd[iLen], 2047-iLen, "<tr class=^"one^"><td>The Last IP:</td><td>%s</td></tr><tr class=^"two^"><td>The Last Country:</td><td>%s</td></tr><tr class=^"one^"><td>The Last Area:</td><td>%s</td></tr><tr class=^"two^"><td>Your IP:</td><td>%s</td></tr><tr class=^"one^"><td>Country :</td><td>%s</td></tr><tr class=^"two^"><td>Area:</td><td>%s</td></tr><tr><td> </td><td> </td></tr>", iUserlastip[id], iOldcountry, iOldarea, iUserip, iCountry, iArea) iLen += format(iMotd[iLen], 2047-iLen, "<tr class=^"header^"><td colspan=2>The Player Time Statistical:</td></tr><tr class=^"one^"><td>Play Time:</td><td>%dH %dM %dS</td></tr><tr class=^"two^"><td>Total Time:</td><td>%dM %D %H %M %S</td></tr>", ((iTime/60)/60)%24, (iTime/60)%60, iTime%60, iTimeMo, iTimeD, iTimeH, iTimeM, iTimeS) copy(iMotd[iLen], 2047-iLen, "</table></body></html>") get_user_name(id, iName, 31) show_motd(dest, iMotd, iName) } #if defined NVAULT public client_disconnect(id) { iTotaltime[id] = iTotaltime[id] + get_user_time(id) savetime(id, iTotaltime[id]) new iUserip[16] get_user_ip(id, iUserip, 15, 1) iLastip[id] = iUserip[id] saveip(id, iLastip[id]) } #endif #if defined NVAULT public client_putinserver(id) { iTotaltime[id] = loadtime(id) iLastip[id] = loadip(id) } #endif #if defined NVAULT public savetime(index, playertime) { new nvault = nvault_open("total_time") if(nvault == -1) set_fail_state("nValut returned invalid handle") new iName[32] new vaultkey[64], vaultdata[64] get_user_name(index, iName, charsmax(iName)) format(vaultkey, 63, "%s", iName) format(vaultdata, 63, "%d", playertime) nvault_set(nvault, vaultkey, vaultdata) nvault_close(nvault) } #endif #if defined NVAULT public loadtime(index) { new nvault = nvault_open("total_time") new iName[32] new vaultkey[64], vaultdata[64] get_user_name(index, iName, charsmax(iName)) format(vaultkey, 63, "%s", iName) nvault_get(nvault, vaultkey, vaultdata, 63) nvault_close(nvault) return str_to_num(vaultdata) } #endif #if defined NVAULT public saveip(index, userip) { new nvault = nvault_open("user_ip") if (nvault == -1) set_fail_state("nValut returned invalid handle") new iName[32] new vaultkey[64], vaultdata[64] get_user_name(index, iName, charsmax(iName)) format(vaultkey, 63, "%s", iName) format(vaultdata, 63, "%s", userip) nvault_set(nvault, vaultkey, vaultdata) nvault_close(nvault) } #endif #if defined NVAULT public loadip(index) { new nvault = nvault_open("user_ip") new iName[32] new vaultkey[64], vaultdata[64] get_user_name(index, iName, charsmax(iName)) format(vaultkey, 63, "%s", iName) nvault_get(nvault, vaultkey, vaultdata, 63) nvault_close(nvault) return str_to_num(vaultdata) } #endif public say_handle(id) { new said[32] read_args(said, 31) if (equali(said, "^"showip^"") || equali(said, "^"/showip^"")) displayip(id, id) return PLUGIN_CONTINUE }
|