Hej siemanko, mam odczyt i zapis szlugow w nvault. Jak moge zrobic top 15 szlugow?
o tak ---V
1, Nick X szlugów
2, Nick X szlugów
3, Nick X szlugów
...
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Napisano 05.05.2020 19:05
Hej siemanko, mam odczyt i zapis szlugow w nvault. Jak moge zrobic top 15 szlugow?
o tak ---V
1, Nick X szlugów
2, Nick X szlugów
3, Nick X szlugów
...
Napisano 05.05.2020 20:06
Nikt ci raczej nie pomoże dałeś za mało informacji . Podaj pluginy , kody i zobczymy co da się zrobić haha
Napisano 05.05.2020 20:12
Masz racje
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <jailbreak>
new g_szNickGracza[33][32];
new g_iSzlugiGracza[33];
new g_iMsgStatusText;
new g_iIloscSlotow;
new g_iHud;
public plugin_init()
{
register_plugin("Szlugi", "1.0", "");
register_concmd("jailx_ustawszlugi", "cmd_UstawSzlugi", ADMIN_IMMUNITY, "<nick> <ile>");
register_concmd("jailx_dodajszlugi", "cmd_DodajSzlugi", ADMIN_IMMUNITY, "<nick> <ile>");
register_event("TextMsg", "ev_PoczatekGry", "a", "2&#Game_C")
register_event("ResetHUD", "ev_ResetHUD", "b");
register_event("DeathMsg", "ev_Smierc", "a");
g_iMsgStatusText = get_user_msgid("StatusText");
g_iIloscSlotow = get_maxplayers();
g_iHud = CreateHudSyncObj();
}
public plugin_natives() {
register_native("give_user_jbpack", "AddCoins", 1);
register_native("set_user_jbpack", "SetCoins", 1);
register_native("get_user_jbpack", "GetCoins", 1);
}
public client_authorized(id) {
get_user_name(id, g_szNickGracza[id], 31);
LoadCoins(id);
}
public client_disconnect(id) {
SaveCoins(id);
//remove_task(id);
}
public cmd_UstawSzlugi(id, iLevel, iCid)
{
if(!cmd_access(id, iLevel, iCid, 2))
return PLUGIN_HANDLED;
new szNick[32], szIle[8];
read_argv(1, szNick, 31);
read_argv(2, szIle, 8);
new iTarget = find_player("bhl", szNick);
if(!iTarget)
{
client_print(id, print_console, "*** Nie znaleziono gracza!");
return PLUGIN_HANDLED;
}
g_iSzlugiGracza[iTarget] = str_to_num(szIle);
StatusSzlugow(iTarget);
get_user_name(iTarget, szNick, 31);
client_print(id, print_console, "*** Ustawiono %s szlugow graczowi %s", szIle, szNick);
return PLUGIN_HANDLED;
}
public cmd_DodajSzlugi(id, iLevel, iCid) {
if(!cmd_access(id, iLevel, iCid, 2))
return PLUGIN_HANDLED;
new szNick[32], szIle[8];
read_argv(1, szNick, 31);
read_argv(2, szIle, 8);
new iTarget = find_player("bhl", szNick);
if(!iTarget) {
client_print(id, print_console, "*** Nie znaleziono gracza!");
return PLUGIN_HANDLED;
}
g_iSzlugiGracza[iTarget] += str_to_num(szIle);
StatusSzlugow(iTarget);
get_user_name(iTarget, szNick, 31);
client_print(id, print_console, "*** Dodano %s szlugow dla graczowi %s", szIle, szNick);
return PLUGIN_HANDLED;
}
public PokazSzlugi(id) {
if(!is_user_alive(id))
return;
StatusSzlugow(id);
}
public StatusSzlugow(id) {
if(g_iSzlugiGracza[id] > 100000) {
g_iSzlugiGracza[id] = 100000;
}
if(g_iSzlugiGracza[id] < 0) {
g_iSzlugiGracza[id] = 0;
}
new szHud[64];
formatex(szHud, 63, "Szlugi: %d", g_iSzlugiGracza[id]);
message_begin(MSG_ONE, g_iMsgStatusText, {0,0,0}, id);
write_byte(0);
write_string(szHud);
message_end();
}
public SetCoins(id, wartosc) {
g_iSzlugiGracza[id] = wartosc;
if(is_user_alive(id)) {
StatusSzlugow(id);
}
}
public GetCoins(id)
return g_iSzlugiGracza[id];
public AddCoins(id, iIle, szPowod[]) {
param_convert(3);
g_iSzlugiGracza[id] += iIle;
StatusSzlugow(id)
set_hudmessage(255, 255, 0, -1.0, 0.2, 1, 3.0, 3.0, 0.1, 0.2, -1);
ShowSyncHudMsg(id, g_iHud, "+%d SZLUGOW^n%s", iIle, szPowod);
}
public SaveCoins(id)
{
new szSzlugi[16], iVault = nvault_open("Szlugi_v2");
num_to_str(g_iSzlugiGracza[id], szSzlugi, 15);
nvault_set(iVault, g_szNickGracza[id], szSzlugi);
nvault_close(iVault);
}
public LoadCoins(id)
{
new iVault = nvault_open("Szlugi_v2");
g_iSzlugiGracza[id] = nvault_get(iVault, g_szNickGracza[id]);
nvault_close(iVault);
}
Użytkownik mlekovita edytował ten post 05.05.2020 20:15
Napisano 05.05.2020 20:22
public cmdShowTop15(id)
{
static Sort[33][2];
new players[32],num,count,index;
get_players(players,num);
for(new i = 0; i < num; i++)
{
index = players[i];
Sort[count][0] = index;
Sort[count][1] = g_iSzlugiGracza[index];
count++;
}
SortCustom2D(Sort,count,"CompareXp");
new motd[1501],iLen;
iLen = formatex(motd, sizeof motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"%s %-22.22s %3s^n", "#", "Nick", "Szlugi");
new y = clamp(count, 0, 15);
new name[32],kindex;
for(new x = 0; x < y; x++)
{
kindex = Sort[x][0];
get_user_name(kindex,name,sizeof name - 1);
iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"%d %-22.22s %d^n", x + 1, name, Sort[x][1]);
}
iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"</body></font></pre>");
show_motd(id,motd, "Top 15 Szlugi");
}
public CompareXp(elem1[], elem2[])
{
if(elem1[1] > elem2[1])
return -1;
else if(elem1[1] < elem2[1])
return 1;
return 0;
}
Nietestowane.
Napisano 05.05.2020 20:36
Chciałbym aby to była topka ogólna a nie z graczy online. Ale dzięki za chęci ![]()
Napisano 06.05.2020 12:55
Znalazłem takie coś. Pomógłby ktoś przerobić to pod szlugi?
https://amxx.pl/topi...kszym-poziomie/
0 użytkowników, 0 gości, 0 anonimowych