Mam problem z Top 15. Sam problem to wyswietlanie danych.Czyli imię gracza jest, ale nie ma znaczenia level`a.
Kod poniżej:
Spoiler
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <nvault_util> #define PLUGIN "PL" #define VERSION "1.0" #define AUTHOR "RoCk-MaN" new g_vault, level[32], exp[32]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /top", "cmd_top"); register_event("DeathMsg", "DeathMsg", "a") g_vault = nvault_open( "rock_top" ); register_clcmd("say /test", "test"); } public test(id) { level[id] = 90; exp[id] = 5000; } public DeathMsg() { new killer = read_data(1); new victim = read_data(2); if( !is_user_connected(killer) || !is_user_connected(victim) || killer == victim) return PLUGIN_HANDLED; exp[killer]++; return PLUGIN_CONTINUE; } public cmd_top(id) { if(g_vault == INVALID_HANDLE) set_fail_state("nVault returned invalid handle") enum _:VaultData { VD_Key[33], VD_Value, VD_szName[33] }; new Vault2 = nvault_util_open("rock_top") new iSize = nvault_util_count(Vault2) new Array:entries = ArrayCreate(VaultData); new sizeEntries new data[VaultData], value[256], data2[VaultData] for(new i = 0, pos, timestamp; i < iSize; i++) { pos = nvault_util_read(Vault2, pos, data[VD_Key], charsmax(data[VD_Key]), value, charsmax(value), timestamp); formatex(data[VD_szName], charsmax(data[VD_szName]), "%s", data[VD_Key]) nvault_get(g_vault, data[VD_szName], data[VD_szName], charsmax(data[VD_szName])) data[VD_Value] = str_to_num(value); if(sizeEntries == 0) { ArrayPushArray(entries, data); sizeEntries++; continue; } else { for(timestamp = 0; timestamp <= sizeEntries; timestamp++) { if(timestamp == sizeEntries) { if(sizeEntries < id) { ArrayPushArray(entries, data); sizeEntries++; } break; } ArrayGetArray(entries, timestamp, data2); if(data[VD_Value] >= data2[VD_Value]) { ArrayInsertArrayBefore(entries, timestamp, data); if(sizeEntries < id) { sizeEntries++; } else { ArrayDeleteItem(entries, sizeEntries); } break; } } } } new iLen new g_szTopMotd[1024]; new len = charsmax(g_szTopMotd) iLen = formatex(g_szTopMotd, len, "<STYLE>body{background:#212121;color:#d1d1d1;font-family:Arial}table{width:100%%;font-size:28px}</STYLE><table cellpadding=1 cellspacing=1 border=0>") iLen += formatex(g_szTopMotd[iLen], len - iLen, "<tr bgcolor=#333333><th width=1%%><align=left font color=white> %s <th width=5%%> %-22.22s <th width=5%%> %s", "#", "Player Name", "LeveL") new i for(i = 0; i < sizeEntries; i++) { ArrayGetArray(entries, i, data); data[VD_Key][32] = 0; data[VD_szName][32] = 0 replace_all(data[VD_szName], charsmax(data[VD_szName]), "<", "<") replace_all(data[VD_szName], charsmax(data[VD_szName]), ">", ">") iLen += formatex(g_szTopMotd[iLen], len - iLen, "<tr align=left%s><td align=left><font color=white> %d. <td> %-22.22s <td> %d", " bgcolor=#2b5b95", (i+1), data[VD_szName], data[VD_Value]) } ArrayDestroy(entries); iLen += formatex(g_szTopMotd[iLen], len - iLen, "</table></body>") show_motd( id, g_szTopMotd, "Top Points" ) } public client_putinserver(id) { LoadTop(id); level[id] = 5; } public client_disconnect(id) { SaveTop(id); } stock SaveTop(id) { if(g_vault == INVALID_HANDLE) set_fail_state("nVault returned invalid handle") new szAuthId[35]; get_user_authid(id, szAuthId, charsmax(szAuthId)) new szName[32]; get_user_name(id, szName, 31) new szData[256]; formatex(szData, charsmax(szData), "%i %i", level[id], exp[id]); nvault_remove(g_vault, szAuthId) nvault_set(g_vault, szAuthId, szData) format(szAuthId, charsmax(szAuthId), "%s", szAuthId) nvault_remove(g_vault, szAuthId) nvault_set(g_vault, szAuthId, szName) } stock LoadTop(id) { if(g_vault == INVALID_HANDLE) set_fail_state("nVault returned invalid handle") new szSavedName[32] new szName[32]; get_user_name(id, szName, charsmax(szName)) new szAuthId[33]; get_user_authid(id, szAuthId, charsmax(szAuthId)) new szData[256], iTimeStamp if( !nvault_lookup(g_vault, szAuthId, szData, charsmax(szData), iTimeStamp) ) { nvault_set(g_vault, szAuthId, "0") format(szAuthId, charsmax(szAuthId), "%s", szAuthId) nvault_set(g_vault, szAuthId, szName) return 0 } ParseLoadData(id, szData); format(szAuthId, charsmax(szAuthId), "%s", szAuthId) nvault_get(g_vault, szAuthId, szSavedName) if(!equal(szName, szSavedName)) { nvault_remove(g_vault, szAuthId) nvault_set(g_vault, szAuthId, szName) } return 0 } ParseLoadData(id, szData[256]) { static szNum[11]; strbreak(szData, szNum, charsmax(szNum), szData, charsmax(szData)); level[id] = str_to_num(szNum); strbreak(szData, szNum, charsmax(szNum), szData, charsmax(szData)); exp[id] = str_to_num(szNum); }