jak zrobic menu?
amxxmaster 17.06.2011
mam takie menu i sobie je przerabiam i mam pytanko jak ktos wybierze 1 (/sell) to da sie zrobic zeby niezamykalo menu? poprostu zeby menu dalej bylo otwarte? a i jak zrobic zeby te menu bylo tylko dla admina z flaga ADMIN_IMMUNITY?
Użytkownik amxxmaster edytował ten post 17.06.2011 11:53
#include <amxmodx> #include <amxmisc> #define PLUGIN "menu" #define VERSION "1.0" #define AUTHOR "LucKy_skiLL" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /menu", "menu") } public menu(id) { new menu = menu_create("\rWybierz", "wybieranie") menu_additem(menu, "\wSprzedaj bron", "1", 0) menu_additem(menu, "\wPrzelej kase", "2", 0) menu_additem(menu, "\wKup RedBull", "3", 0) menu_additem(menu, "\wMenu admina", "4", ADMIN_IMMUNITY) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) } public wybieranie(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1:{ client_cmd(id,"say /sell") menu_destroy(menu) return PLUGIN_HANDLED } case 2:{ client_cmd(id,"say /zasady") menu_destroy(menu) return PLUGIN_HANDLED } case 3:{ client_cmd(id,"say /redbull") menu_destroy(menu) return PLUGIN_HANDLED } case 4:{ client_cmd(id,"amxmodmenu") menu_destroy(menu) return PLUGIN_HANDLED } } menu_destroy(menu) return PLUGIN_HANDLED }
Użytkownik amxxmaster edytował ten post 17.06.2011 11:53
sharkowy
17.06.2011
Żeby było tylko dla admina, to dodajesz sobie warunek if(get_user_flags(id) & ADMIN_IMMUNITY)) a żeby nie zamykało się menu zamiast:
Pewnie zapytasz gdzie ten warunek dać..
Użytkownik RPK. Shark edytował ten post 17.06.2011 12:00
menu_destroy(menu)na samym końcu daj:
menu(id)
Pewnie zapytasz gdzie ten warunek dać..
public menu(id)
{
if(get_user_flags(id) & ADMIN_IMMUNITY))
new menu = menu_create("\rWybierz", "wybieranie")
menu_additem(menu, "\wSprzedaj bron", "1", 0)
menu_additem(menu, "\wPrzelej kase", "2", 0)
menu_additem(menu, "\wKup RedBull", "3", 0)
menu_additem(menu, "\wMenu admina", "4", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
Użytkownik RPK. Shark edytował ten post 17.06.2011 12:00
amxxmaster 17.06.2011
Error: Invalid expression, assumed zero on line 166 Warning: Expression has no effect on line 166 1 Error.
Wyskoczyl taki error przy tym immunity a przy tym drugim tez error
Użytkownik amxxmaster edytował ten post 17.06.2011 12:09
Goliath
17.06.2011
public menu(id)
{
if(!(get_user_flags(id) & ADMIN_IMMUNITY))
return PLUGIN_CONTINUE;
new menu = menu_create("\rWybierz", "wybieranie")
menu_additem(menu, "\wSprzedaj bron", "1", 0)
menu_additem(menu, "\wPrzelej kase", "2", 0)
menu_additem(menu, "\wKup RedBull", "3", 0)
menu_additem(menu, "\wMenu admina", "4", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
return PLUGIN_HANDLED;
}
Goliath
17.06.2011
Shark już ci napisał, co masz zrobić. BTW, po co dodajesz menu_destroy w każdym case? Masz, krócej:
Użytkownik Goliath edytował ten post 17.06.2011 15:07
public wybieranie(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1: client_cmd(id,"say /sell") ;
case 2: client_cmd(id,"say /zasady");
case 3: client_cmd(id,"say /redbull");
case 4:
{
menu_destroy(menu);
client_cmd(id,"amxmodmenu");
return PLUGIN_HANDLED;
}
}
menu(id);
return PLUGIN_HANDLED;
}
Użytkownik Goliath edytował ten post 17.06.2011 15:07
amxxmaster 18.06.2011
no a ja napisalem ze to nie dziala? i to co dales tez niedziala
Error: Invalid function call, not a valid address on line 245 Warning: Expression has no effect on line 245 Error: Expected token: ";", but found ")" on line 245 Error: Invalid expression, assumed zero on line 245 Error: Too many error messages on one line on line 245 Compilation aborted. 4 Errors.
Goliath
18.06.2011
Wiem. Ta funkcja:
Nie może nazywać się tak samo jak zmienna odpowiadająca za menu. Zmień nazwę tego publica oraz linijkę menu(id) w publicu wybieranie.
public menu(id)
{
if(!(get_user_flags(id) & ADMIN_IMMUNITY))
return PLUGIN_CONTINUE;
new menu = menu_create("\rWybierz", "wybieranie")
menu_additem(menu, "\wSprzedaj bron", "1", 0)
menu_additem(menu, "\wPrzelej kase", "2", 0)
menu_additem(menu, "\wKup RedBull", "3", 0)
menu_additem(menu, "\wMenu admina", "4", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
return PLUGIN_HANDLED;
}
Nie może nazywać się tak samo jak zmienna odpowiadająca za menu. Zmień nazwę tego publica oraz linijkę menu(id) w publicu wybieranie.