#include #include #include new g_szNickRankingu[16][32]; new g_szKlasaRankingu[16][32]; new g_iDoswiadczenieRankingu[16]; new g_szTop15Motd[2048]; public plugin_init() { register_plugin("COD: Top 15", "1.0", "donaciak.pl"); register_clcmd("say /codtop15", "cmd_PokazTop15"); register_clcmd("say /codtoplvl", "cmd_PokazTop15"); register_clcmd("say /toplvl", "cmd_PokazTop15"); register_event("ResetHUD", "cod_class_changed", "b"); WczytajTop15(); } public cod_class_changed(id) { new iRanking; new szNick[32], szKlasa[32], iExp; get_user_name(id, szNick, 31); cod_get_class_name(cod_get_user_class(id), szKlasa, 31); iExp = cod_get_user_xp(id); for(new i = 1; i <= 15; i++) { if(equal(szNick, g_szNickRankingu[i]) && equal(szKlasa, g_szKlasaRankingu[i])) { iRanking = i; break; } } for(new i = 1; i <= 15; i++) { if(iExp > g_iDoswiadczenieRankingu[i]) { new iVault = nvault_open("CodTop15"); new szKluczVault[4], szDaneVault[512]; if(iRanking == i) //nie zmienil rankingu { copy(g_szNickRankingu[i], 31, szNick); copy(g_szKlasaRankingu[i], 31, szKlasa); g_iDoswiadczenieRankingu[i] = iExp; num_to_str(i, szKluczVault, 3); formatex(szDaneVault, 511, "^"%s^" ^"%s^" %d %d", szNick, szKlasa, iExp, cod_get_user_level(id)); nvault_set(iVault, szKluczVault, szDaneVault); nvault_close(iVault); return; } if(iRanking < i) //wskoczyl wyzej rankingu { new iStart = iRanking-1; if(!iRanking) iStart = 14; for(new j = iStart; j >= i; j--) { num_to_str(j, szKluczVault, 3); if(!nvault_get(iVault, szKluczVault, szDaneVault, 255)) continue; num_to_str(j+1, szKluczVault, 3); nvault_set(iVault, szKluczVault, szDaneVault); copy(g_szNickRankingu[j+1], 31, g_szNickRankingu[j]); copy(g_szKlasaRankingu[j+1], 31, g_szKlasaRankingu[j]); g_iDoswiadczenieRankingu[j+1] = g_iDoswiadczenieRankingu[j]; } copy(g_szNickRankingu[i], 31, szNick); copy(g_szKlasaRankingu[i], 31, szKlasa); g_iDoswiadczenieRankingu[i] = iExp; num_to_str(i, szKluczVault, 3); formatex(szDaneVault, 511, "^"%s^" ^"%s^" %d %d", szNick, szKlasa, iExp, cod_get_user_level(id)); nvault_set(iVault, szKluczVault, szDaneVault); nvault_close(iVault); return; } } } } public cmd_PokazTop15(id) { if(get_user_flags(id) & ADMIN_IMMUNITY) show_motd(id, g_szTop15Motd, "Top 15 poziomow"); return PLUGIN_HANDLED; } stock WczytajTop15() { new iVault = nvault_open("CodTop15"); new szKluczVault[4], szDaneVault[512]; new szNick[32], szKlasa[32], szDoswiadczenie[16], szPoziom[4]; new iLen = formatex(g_szTop15Motd, 2047, "

#. NickKlasaPoziomDoswiadczenie"); for(new i = 1; i <= 15; i++) { num_to_str(i, szKluczVault, 3); if(!nvault_get(iVault, szKluczVault, szDaneVault, 511)) break; parse(szDaneVault, szNick, 31, szKlasa, 31, szDoswiadczenie, 15, szPoziom, 3); copy(g_szNickRankingu[i], 31, szNick); copy(g_szKlasaRankingu[i], 31, szKlasa); g_iDoswiadczenieRankingu[i] = str_to_num(szDoswiadczenie); switch(i) { case 1: iLen += formatex(g_szTop15Motd[iLen], 2047-iLen, "
%d. %s%s%sLv%s", i, szNick, szKlasa, szPoziom, szDoswiadczenie); case 2: iLen += formatex(g_szTop15Motd[iLen], 2047-iLen, "
%d. %s%s%sLv%s", i, szNick, szKlasa, szPoziom, szDoswiadczenie); case 3: iLen += formatex(g_szTop15Motd[iLen], 2047-iLen, "
%d. %s%s%sLv%s", i, szNick, szKlasa, szPoziom, szDoswiadczenie); default: iLen += formatex(g_szTop15Motd[iLen], 2047-iLen, "
%d. %s%s%sLv%s", i, szNick, szKlasa, szPoziom, szDoswiadczenie); } } iLen += formatex(g_szTop15Motd[iLen], 2047-iLen, "
Top 15 by donaciak.pl"); }