nvault + menu
Stachuu :D ??
24.09.2011
siemka mam pytanie
załóżmy ze mamy przypisane do nazw graczy ich fragi w pliku nvalut
czy jest sposób aby dodać do menu (menu_additem) każdego gracza i po wybraniu go wyskoczyło by info ile on zdobył fragów ( pytanie czysto teoretyczne )
Edited by Stachu123, 24.09.2011 23:21.
załóżmy ze mamy przypisane do nazw graczy ich fragi w pliku nvalut
czy jest sposób aby dodać do menu (menu_additem) każdego gracza i po wybraniu go wyskoczyło by info ile on zdobył fragów ( pytanie czysto teoretyczne )
Edited by Stachu123, 24.09.2011 23:21.
mierzwi 25.09.2011
każdego gracza - czyli wszystkich online czy tych też offline? jak tych offline to nvault_util trzeba chyba użyć.
Whisper
25.09.2011
public PlayersMenu(id)
{
new menu = menu_create("\wWybierz gracza:", "PlayersMenuHandler");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public PlayersMenuHandler(id, PlayersMenu , item)
{
if( item == MENU_EXIT )
{
menu_destroy(PlayersMenu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(PlayersMenu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
ColorChat(id, GREEN, "Gracz %s posiada %d fragow.", szName, nazwa_twojej_tablicy[tempid]);
return PLUGIN_CONTINUE;
}
Edited by Whisper, 25.09.2011 13:26.
sebul
25.09.2011
Pytałeś czy jest sposób i że pytanie czysto teoretyczne, to odpowiedziałem. Następnym razem precyzuj bardziej pytania to uniknie się takich sytuacji. Są dwa sposoby, bo można przy wejściu gracza wczytać jego fragi z vault, a potem wszystko robić na zmiennej do której przypisało się ilość fragów, albo można za każdym razem wczytywać vault i zwracać ilość fragów poprzez return.Jest sposób, a chyba nawet dwa.
powiedział co wiedział
@up .
Stachuu :D ??
25.09.2011
@up sebul sory za niesprecyzowanie
Funfel napisał dobrze chodzi mi o wszystkie wpisy z pliku
Wersja whispera tyczy sie jedynie graczy online
//////////////////////////
Moze inaczej
Zakładamy ze w pliku valut mamy 100 wpisów graczy.
Teraz jak zrobić menu aby wyświetliło wszystkich graczy (100)
Funfel napisał dobrze chodzi mi o wszystkie wpisy z pliku
Wersja whispera tyczy sie jedynie graczy online
//////////////////////////
Moze inaczej
Zakładamy ze w pliku valut mamy 100 wpisów graczy.
Teraz jak zrobić menu aby wyświetliło wszystkich graczy (100)
mierzwi 25.09.2011
musisz użyć nvaut_util, wywnioskować z niej ile jest wszystkich wpisów i za pomocą arrayów musisz dodawać przez additem każdemu wpisowi. (posiadam taki kod + rozbudowanie po kliknięciu ale niestety nie mogę go udostępnić bo prywaciak)
Stachuu :D ??
25.09.2011
ok dzięki all juz mam tylko jeszcze jedno
do pliku danego pliku zapisuje
i przy wybieraniu w menu widać
1.nick_gracza1-GIL
2.nick_gracza2-GIL
etc.
da się jakoś usunąć "-GIL"
public menu(id) { new iVaultHandle = nvault_util_open( szTestVault ); new key[128] new MyMenu=menu_create("Info","info"); new iPos , szKey[ 32 ] , szVal[ 64 ] , iTimeStamp; new iCount = nvault_util_count (iVaultHandle) for ( new iCurrent = 1 , n=1; iCurrent <= iCount ; iCurrent++ ) { iPos = nvault_util_read( iVaultHandle , iPos , szKey , charsmax( szKey ) , szVal , charsmax( szVal ) , iTimeStamp ); formatex(key, 127, "%s",szKey); oddaj_id[n++] = iCurrent; menu_additem(MyMenu, key, _, _, _); } menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc") menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne") //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); menu_setprop(MyMenu,MPROP_PERPAGE,7) menu_display(id, MyMenu); }
do pliku danego pliku zapisuje
format(vaultkey,63,"%s-GIL",AuthID)
i przy wybieraniu w menu widać
1.nick_gracza1-GIL
2.nick_gracza2-GIL
etc.
da się jakoś usunąć "-GIL"
sebul
25.09.2011
for ( new iCurrent = 1 , n=1; iCurrent <= iCount ; iCurrent++ )
{
iPos = nvault_util_read( iVaultHandle , iPos , szKey , charsmax( szKey ) , szVal , charsmax( szVal ) , iTimeStamp );
formatex(key, 127, "%s",szKey);
replace_all(key, 127, "-GIL", "");
oddaj_id[n++] = iCurrent;
menu_additem(MyMenu, key, _, _, _);
}
Albo zamiast tego replace_all, to można też tak
key[strlen(key)-4] = 0;
też powinno działać.
I nie wiem, czy nie lepiej będzie jak plik vault będziesz wczytywał na początku mapy i dane zapisywał do dynamicznej, czy zwykłej tablicy.
Edited by sebul, 25.09.2011 20:08.
Adminek AMXX.PL 25.09.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: To zamykamy.
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: To zamykamy.
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL