Това е примерен код, който показва как се използва messagemode в комбинация с меню. Добавил съм коментари в кода, но ако имате въпроси, питайте
► Покажи скъсения текст
Код за потвърждение: Избери целия код
#include <amxmodx>
new Menu // глобална променлива за нашето меню
public plugin_init()
{
register_plugin("Menu with a custom reason", "1.0", "Dark")
// регистрираме командите, с които ще отваряме менюто
register_clcmd("say /menu", "ClientCommand_Menu")
register_clcmd("say_team /menu", "ClientCommand_Menu")
// това е командата, чрез която ще извадим написаното в messagemode
register_clcmd("reason", "Input_Reason") // обърнете внимание на reason (!)
// създаваме менюто
Menu = menu_create("Example Menu", "Menu_Handler")
menu_additem(Menu, "Reason Option")
}
public ClientCommand_Menu(id)
{
// показваме менюто при написване на командите
menu_display(id, Menu, 0)
}
public Menu_Handler(id, menu, item)
{
// какво да стане при натискане на опция 1 от менюто - да опция 1, не 0 (!)
if(item == 0)
{
// съответно използвалият опцията го изпращаме в messagemode
client_cmd(id, "messagemode reason") // обърнете внимание, че използваме reason (!)
}
}
public Input_Reason(id)
{
// създаваме променливи, с помощта на които четем написаното в messagemode
new Reason[128]
read_args(Reason, charsmax(Reason))
remove_quotes(Reason)
if(Reason[0]) // проверяваме дали е била въведена причина
{
// взимаме името на играча, който е използвал messagemode
new Name[32]
get_user_name(id, Name, charsmax(Name))
client_print(0, print_chat, "%s chose reason: %s", Name, Reason) // изкарваме съобщение в чата
}
}
► Покажи скъсения текст