←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] jak ponownie pokazac menu (ol...

Locked

  • +
  • -
Żuk's Photo Żuk 12.01.2012

Siema, robie menu starym stylem i gdy wybieram 1,2,3 itd. to menu zawsze się zamyka. Jak zrobić, żeby ono się pojawiało ponownie ? Klikne 1. i menu zostaje dalej na ekranie.
Próbowałem użyć:
  menu_display(id,gMenu);

w moich case, ale to nic nie dało (w nowym stylu działało bez problemu).


Budowa mojego menu:

new gMenu;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

gMenu = register_menuid( "Menu" );
register_clcmd("xxtestxx","menuss",ADMIN_MENU);
register_menucmd( gMenu, 1023, "menu_shop" );
}

public menuss(id)
{


new szBuffer[ 512 ];
new iLen;

iLen = formatex( szBuffer, charsmax( szBuffer ), "\yBB Admin Menu^n^n");
iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r1. \wkup1^n");
iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r2. \wkup2 ^n");
iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r3. \wRespawn^n");



iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r0. \wWyjscie ");

new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3| 1<<4| 1<<5 |1<<6 | 1<<7 | 1<<9);
show_menu( id, keys, szBuffer );

return PLUGIN_CONTINUE;

}

public menu_shop( id, key )
{




switch( key )
{
case 0:
{

menu_display(id, gMenu); // tutaj nic sie nie dzieje a powinno wyswietlic sie to samo menu


}
case 1:
{
}
}
}

Edited by Żuk, 12.01.2012 00:25.
Quote

  • +
  • -
LucKy_skiLL's Photo LucKy_skiLL 12.01.2012

W case dodaj


menu_destroy(gMenu);

sebul (12.01.2012 00:48):
To nie jest nowe menu.
Quote

  • +
  • -
sebul's Photo sebul 12.01.2012

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("xxtestxx","menuss",ADMIN_MENU);
register_menucmd( register_menuid( "Menu" ), 1023, "menu_shop" );
}

public menuss(id)
{
new szBuffer[ 512 ], iLen;

iLen = formatex( szBuffer, charsmax( szBuffer ), "\yBB Admin Menu^n^n");
iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r1. \wkup1^n");
iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r2. \wkup2 ^n");
iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r3. \wRespawn^n");

iLen += formatex( szBuffer[ iLen ], charsmax( szBuffer ) - iLen, "\r0. \wWyjscie ");

new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3| 1<<4| 1<<5 |1<<6 | 1<<7 | 1<<9);
show_menu( id, keys, szBuffer, -1, "Menu" ); // lepiej dodawac takze dwa ostatnie parametry, bo przy wiekszej ilosci takich menu, moga wystepowac problemy

return PLUGIN_CONTINUE;
}

public menu_shop( id, key )
{
switch( key )
{
case 0:
{
menuss(id); // pokaze sie "BB Admin Menu"
}
case 1:
{
}
}

return PLUGIN_HANDLED;
}
Quote

  • +
  • -
Żuk's Photo Żuk 12.01.2012

Poleciały plusiki. Żeby nie zakładać nowego tematu zapytam jeszcze tutaj:
jeśli chce, aby po wejściu do menu wyświetlało tam graczy, którzy są na serwerze to mogę zrobić to w taki sposób jak w nowym stylu menu, czy tutaj można, lub trzeba zrobić to w inny sposób ?
Quote

  • +
  • -
sebul's Photo sebul 12.01.2012

Na pewno nie zrobisz tego w taki sam sposób jak w nowym menu, na forum gdzieś był kod, jak się robi takie menu (starym stylem) z graczami. Do takich rzeczy, lepszy jest chyba nowy styl menu, bo nie trzeba się bawić w robienie nowych stron.
Quote

  • +
  • -
Lelek's Photo Lelek 12.01.2012

/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Lelek"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /gracze", "menu_gracze");
// Add your code here...
}
public menu_gracze(id)
{
new gracze[32], pnum
get_players(gracze, pnum, "ach");
new key[128], info[8], name[32];

new menu = menu_create("Lista graczy:", "menu_graczy_handler")

for(new i = 0; i < pnum; i++)
{
new id = gracze[i];
get_user_name(gracze[i], name, 31);

formatex(info, 7, "%d", id);
formatex(key, 127, "%s", name);
menu_additem(menu, key, info);

}
menu_display(id, menu)
return PLUGIN_HANDLED;

}
public menu_gracze_handler(id, menu, item)
{
new access, info[8], name[32], callback;
menu_item_getinfo(menu, item, access, info, 7, name, 31, callback);
menu_destroy(menu)

new komu = str_to_num(info);

if(item != MENU_EXIT && item != MENU_BACK && item != MENU_MORE)
{
//Tutaj wstawiasz kod np jezeli chcesz dac komus hp to z biblioteki fun set_user_health(komu, 100);
client_print(komu, print_chat, "Otrzymales wiadomosc");
}

}


Przykładowe menu, nie testowałem mogą być błędy.
Quote

  • +
  • -
sebul's Photo sebul 12.01.2012

Tak będzie dobrze, do tego zmienna key może przydać się, jak tylko chcemy coś jeszcze do nicku dodać, inaczej wystarczy od razu name do menu dać
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Lelek"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /gracze", "menu_gracze");
// Add your code here...
}
public menu_gracze(id)
{
new gracze[32], pnum
get_players(gracze, pnum, "ach");
new info[8], name[48], pid;

new menu = menu_create("Lista graczy:", "menu_graczy_handler")

for(new i = 0; i < pnum; i++)
{
pid = gracze[i];
get_user_name(pid, name, 47);

num_to_str(pid, info, 7);
menu_additem(menu, name, info);
}
menu_display(id, menu)
return PLUGIN_HANDLED;

}
public menu_graczy_handler(id, menu, item)
{
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new access, info[8], name[32], callback;
menu_item_getinfo(menu, item, access, info, 7, name, 31, callback);

new komu = str_to_num(info);

//Tutaj wstawiasz kod np jezeli chcesz dac komus hp to z biblioteki fun set_user_health(komu, 100);
client_print(komu, print_chat, "Otrzymales wiadomosc");

menu_destroy(menu);
return PLUGIN_HANDLED;
}

ale autor pytał o stary styl menu.
Quote

  • +
  • -
Żuk's Photo Żuk 12.01.2012

Ok, dzięki. W takim razie ten nowy styl też się nada, pokombinuje coś i uda mi się może skleić menu graczy z nowego stylu, ze starym :) lecą plusy, temat można zamknąć.
Quote

  • +
  • -
sharkowy's Photo sharkowy 12.01.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Posted Image raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked