Plugin /menu
BaQStiC
02.10.2011
Witam. Chcialem zrob (przerobic) jeden plugin gdzie chcialbym aby w menu bylo pod menu. Chodzi mi o cos takiego ze:
1. Strefa Admina - Naciskam na jedynke i wtedy pokazuje sie drugie menu:
|
|
v
Zrob SS'y - Po nacisnieciu wyskakuje menu z amx_ssbanmenu
Zbanuj Gracza - Ponacisnieciu wyskakuje menu z amx_banmenu
2. Ranking
3. itd
Chodzi mi tylko o ta strukture tego menu w menu nie wiem jak to nazwac
1. Strefa Admina - Naciskam na jedynke i wtedy pokazuje sie drugie menu:
|
|
v
Zrob SS'y - Po nacisnieciu wyskakuje menu z amx_ssbanmenu
Zbanuj Gracza - Ponacisnieciu wyskakuje menu z amx_banmenu
2. Ranking
3. itd
Chodzi mi tylko o ta strukture tego menu w menu nie wiem jak to nazwac
mierzwi 02.10.2011
tam gdzie masz miejsce na kod od klawisza 1 wpisz np. pokaz_menu2(id) i w pokaz_menu2 zrób nowe menu
Edited by funfel, 02.10.2011 11:17.
Edited by funfel, 02.10.2011 11:17.
Enson
02.10.2011
Sprobuj w ten sposob
Edited by Enson, 02.10.2011 20:30.
#include <amxmod>
#include <amxmisc>
#define FLAG ADMIN_BAN
public plugin_init() {
register_plugin("a","b","c")
register_clcmd("say /menu","wyswietlanie")
}
public wyswietlanie(id)
{
new menu = menu_create("\yMenu:","wybor_menu1")
menu_additem(menu,"\rStrefa Admina","1",FLAG)
menu_additem(menu,"\wRanking","2",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
}
public wybor_menu1(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
new szCommand[6] , szName[64];
new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
new i = str_to_num(szCommand);
switch(i)
{
case 1 : {
set_task(0.1, "jeden", id);
}
case 2 : {
client_cmd(id, "say /rank")
}
}
}
public jeden(id)
{
new menu2 = menu_create("\yMenu:","wybor_menu2");
menu_additem(menu2,"\wZrob SS'y","1",0)
menu_additem(menu2,"\wZbanuj gracza","2",0)
menu_setprop(menu2,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu2,0)
}
public wybor_menu2(id,menu2,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu2);
}
new szCommand[6] , szName[64];
new access , callback;
menu_item_getinfo(menu2 , item , access , szCommand , 5 , szName , 63 , callback);
new j = str_to_num(szCommand);
switch(j)
{
case 1 : {
server_cmd("amx_ssbanmenu")
}
case 2 : {server_cmd("amx_banmenu")
}
}
}
Edited by Enson, 02.10.2011 20:30.
BaQStiC
02.10.2011
Dzizys... myslalem ze to bedzie mniej skomplikowane dla mnie... wybaczcie ale nie ogarniam...
@Up
Jak moge dodac do tego kodu kolejne przyciski?
@Up
Jak moge dodac do tego kodu kolejne przyciski?
Enson
03.10.2011
W tym kodzie co ci dalem masz cos takiego:
Na ten moment masz case na 2 klawisze te:
Zeby dodac 3 klawisz dajesz case 3 w ten sposob:
Jezeli 3 przycisk ma od razu cos robic a nie wywolywac kolejnego menu to robisz to w ten sposob jak ci napisalem wyzej a jezeli ma kolejne menu pokazywac po kliknieciu na 3 klawisz to musisz w case 3 dodac set_task tak jak w case 1. A pozniej taka jaka dasz nazwe do set_taska w klawiszu 3 robisz do tego public menu takie jak masz tu:
dodajesz nowy nowy klawisz w ten sposob:menu_additem(menu,"\rStrefa Admina","1",FLAG)
menu_additem(menu,"\wRanking","2",0)
Pozniej musisz w dalszej czesci kodu dodajesz case do tego 3 klawiszamenu_additem(menu,"\rStrefa Admina","1",FLAG)
menu_additem(menu,"\wRanking","2",0)
menu_additem(menu,"\wRanking","3",0)
Na ten moment masz case na 2 klawisze te:
case 1 : {
set_task(0.1, "jeden", id);
}
case 2 : {
client_cmd(id, "say /rank")
}
Zeby dodac 3 klawisz dajesz case 3 w ten sposob:
case 1 : {
set_task(0.1, "jeden", id);
}
case 2 : {
client_cmd(id, "say /rank")
}
case 3 : {
client_cmd(id, "say Siemka")
}
Jezeli 3 przycisk ma od razu cos robic a nie wywolywac kolejnego menu to robisz to w ten sposob jak ci napisalem wyzej a jezeli ma kolejne menu pokazywac po kliknieciu na 3 klawisz to musisz w case 3 dodac set_task tak jak w case 1. A pozniej taka jaka dasz nazwe do set_taska w klawiszu 3 robisz do tego public menu takie jak masz tu:
public jeden(id)
{
new menu2 = menu_create("\yMenu:","wybor_menu2");
menu_additem(menu2,"\wZrob SS'y","1",0)
menu_additem(menu2,"\wZbanuj gracza","2",0)
menu_setprop(menu2,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu2,0)
}
Misiaczek ;c
03.10.2011
nie łatwiej tak?
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
new const gNazwaPluginu[] = "Menu";
new const gWersjaPluginu[] = "0.1";
new const gAutorPluginu[] = "MisieQ";
#define MENU_GLOWNE 1
#define MENU_ADMIN 2
new menuselection[33];
#define FLAGA ADMIN_BAN
public plugin_init() {
register_plugin(gNazwaPluginu, gWersjaPluginu, gAutorPluginu);
register_clcmd("say /menu", "menuglowne", 0, "Pokazuje Menu");
register_clcmd("say_team /menu", "menuglowne", 0, "Pokazuje Menu");
}
public menuglowne(id)
{
new menu = menu_create("\rMenu Glowne", "menu_handler");
menu_additem(menu, "\rStrefa Admina", "0", FLAGA);
menu_additem(menu, "\wRanking", "1", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menuselection[id]=MENU_GLOWNE;
menu_display(id, menu, 0);
return PLUGIN_CONTINUE;
}
public menuadmina(id)
{
new menu = menu_create("\rMenu Admin", "menu_handler");
menu_additem(menu, "\wZrob SS'y", "0", FLAGA);
menu_additem(menu, "\wZbanuj Gracza", "1", FLAGA);
menu_additem(menu, "\wWstecz", "2", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menuselection[id]=MENU_ADMIN;
menu_display(id, menu, 0);
return PLUGIN_CONTINUE;
}
public menu_handler(id,menu,item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
else if (item == MENU_BACK)
{
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
if (!(get_user_flags(id) & access) && access)
return PLUGIN_HANDLED;
new key=str_to_num(data);
switch (menuselection[id])
{
case MENU_GLOWNE:
{
switch (key)
{
case 0: menuadmina(id);
case 1: client_cmd(id, "say /rank");
}
}
case MENU_ADMIN:
{
switch (key)
{
case 0: client_cmd(id, "amx_ssmenu")
case 1: client_cmd(id, "amx_banmenu")
case 2: menuglowne(id);
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}