Player list

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

Player list

Post by morka »

Kaip atvaizduot serveryje esanciu zaideju sarasa menu formoje?

main menu

1. player
2. zero
3. jack
.....

Paspaudi 2 ir permeta varda i kintamaji.
Image

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Player list

Post by hleV »

Code: Select all

//    new iMenu = menu_create("Pavadinimas", "OnMenu");     new iPlayers[32], iCount;    get_players(iPlayers, iCount); // Galima flag'u dadet del HLTV, botu     for (new i, szName[32]; i < iCount; i++)    {        get_user_name(iPlayers[i], szName, charsmax(szName));        menu_additem(iMenu, szName);    }// public OnMenu(iClient, iMenu, iItem){    if (iItem == MENU_EXIT)    {        menu_destroy(iMenu);         return;    }     new iAccess, szName[32], iCallback;    menu_item_getinfo(iMenu, iItem, iAccess, szName, 0, szName, charsmax(szName), iCallback);     // szName[] dabar turi pasirinkto zaidejo varda. Galima gauti ID su get_user_index(szName)     menu_destroy(iMenu);}
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

morka
Gana aktyvus vartotojas
Posts: 292
Joined: 2011 Jan 08 00:21

Re: Player list

Post by morka »

Padariau taip ir nelabai veikia, prisijungia 2 zaidejai paspaudi ir nieko nevyksta. Su 1 zaideju viskas veikia.

Code: Select all

public player_list_menu(id){    new item[99]    formatex(item, charsmax(item), "%L", LANG_PLAYER, "TITLE_PLAYER_LIST");    new iMenu = menu_create(item, "player_list_menu_handler")        new iPlayers[32], iCount;    get_players(iPlayers, iCount); // Galima flag'u dadet del HLTV, botu        for (new i, szName[32]; i < iCount; i++)    {        get_user_name(iPlayers[i], szName, charsmax(szName));        menu_additem(iMenu, szName);        menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)        menu_display(id, iMenu, 0)    }} public player_list_menu_handler(id, iMenu, item){    if (item == MENU_EXIT)    {        menu_destroy(iMenu);        return;    }    new iAccess, szName[32], iCallback;    menu_item_getinfo(iMenu, item, iAccess, szName, 0, szName, charsmax(szName), iCallback);    copy(gName[id], charsmax(gName), szName);    transfer_menu(id)    menu_destroy(iMenu);}
Image

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Player list

Post by hleV »

Tuos menu_setprop() ir menu_display() dek už for() ciklo, o ne jame.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Player list

Post by newb »

Galima dar taip padaryt

Code: Select all

#include <amxmodx> new Players[32] public plugin_init() {    register_clcmd("say a", "Create_Menu")} public Create_Menu(id) {    new num, Menu = menu_create("\rPlayers:", "MainMenu_Handler")        get_players(Players, num)        for (new i, Name[33]; i < num; i++) {        get_user_name(Players[i], Name, charsmax(Name))                menu_additem(Menu, Name)    }        menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)    menu_display(id, Menu)      }  public MainMenu_Handler(id, Menu, item) {        if (item == MENU_EXIT) {        menu_destroy(Menu)        return    }        new Name[33]; get_user_name(Players[item], Name, charsmax(Name))    client_print(id, 3, "name %s", Name)        menu_destroy(Menu)}
Nors nezinau ar tai optimaliau ^_^

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Player list

Post by hleV »

Man visai patinka newb'o variantas. Vienmačio masyvo pagalba nereikia naudot nei menu_item_getinfo(), nei get_user_index(), nei num_to_str(). Manojo varianto pliusas, kad jei žaidėjas atsijungė (arba pasikeitė vardą :|), get_user_index() jo neras. Išsaugant žaidėjo ID, žaidėją rastų, bet nebūtų aišku ar tai tas pats žaidėjas (gal senas atsijungė ir prisijungė naujas, gavęs tą patį ID).
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests