←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

jak zrobic menu?

Zablokowany

amxxmaster - zdjęcie 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?:P poprostu zeby menu dalej bylo otwarte? a i jak zrobic zeby te menu bylo tylko dla admina z flaga ADMIN_IMMUNITY?
#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
Odpowiedz

  • +
  • -
sharkowy - zdjęcie 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:

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
Odpowiedz

amxxmaster - zdjęcie 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
Odpowiedz

  • +
  • -
Goliath - zdjęcie 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;
}
Odpowiedz

amxxmaster - zdjęcie amxxmaster 17.06.2011

a jak zrobic zeby te menu sie niezamykalo?
Odpowiedz

  • +
  • -
Goliath - zdjęcie Goliath 17.06.2011

Shark już ci napisał, co masz zrobić. BTW, po co dodajesz menu_destroy w każdym case? Masz, krócej:
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
Odpowiedz

amxxmaster - zdjęcie amxxmaster 18.06.2011

no a ja napisalem ze to nie dziala?:P 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.
Odpowiedz

  • +
  • -
Goliath - zdjęcie Goliath 18.06.2011

Wiem. Ta funkcja:
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.
Odpowiedz
Zablokowany