Здравствуйте уважаемые пользователи Dev-CS
В данном разделе хочу продемонстрировать не большой пример алгоритма ветвления на PAWN.
Не большой код для примера
В основном надо обратить внимание на эту часть кода.
Давайте разберем эту часть кода детально.
При вызове меню через команду /menu сервер начинает выполнять функцию ClCmd_Menu и после нее идет конструкция if/else вот на ней мы и остановимся.
Т.е у нас идет проверка если(if) получить флаги пользователя(get_user_flags) с флагом (ADMIN_LEVEL_H), то открывается меню server_menu(id), а если функция if не прошла проверку, то идет к следующей функции else и будет это читаться полностью так:
если(if) получить флаги пользователя(get_user_flags) с флагом (ADMIN_LEVEL_H), то открывается меню, а если это не проходит проверку, то выводим сообщение.
Пример блок-схемой
В данном разделе хочу продемонстрировать не большой пример алгоритма ветвления на PAWN.
Не большой код для примера
C++:
#include <amxmodx>
public plugin_init()
{
register_plguin("Menu Server", "0.1", "By PyRoKiNeS")
register_clcmd("say /menu", "ClCmd_Menu", ADMIN_LEVEL_H)
}
public ClCmd_Menu(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
server_menu(id)
}
else
{
client_print_color(id, print_team_default, "^4[SERVER] ^3У вас нет доступа к этому меню")
}
}
server_menu(id)
{
new i_Menu = menu_create("\r[Server Menu] \wГлавное меню", "menu_server")
menu_additem(i_Menu, "Тест1", "1", ADMIN_LEVEL_H)
menu_additem(i_Menu, "Тест2", "2", ADMIN_LEVEL_H)
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
menu_display(id, i_Menu, 0)
}
public menu_server(id, menu, item)
{
if( item < 0 )
return PLUGIN_CONTINUE;
new cmd[3], access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new key = str_to_num(cmd)
switch (key)
{
case 1: {client_cmd(id, "amx_kickmenu")
}
case 2: {client_cmd(id, "amx_banmenu")
}
}
return PLUGIN_HANDLED;
}
C++:
public ClCmd_Menu(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
server_menu(id)
}
else
{
client_print_color(id, print_team_default, "^4[SERVER] ^3У вас нет доступа к этому меню")
}
}
При вызове меню через команду /menu сервер начинает выполнять функцию ClCmd_Menu и после нее идет конструкция if/else вот на ней мы и остановимся.
Т.е у нас идет проверка если(if) получить флаги пользователя(get_user_flags) с флагом (ADMIN_LEVEL_H), то открывается меню server_menu(id), а если функция if не прошла проверку, то идет к следующей функции else и будет это читаться полностью так:
если(if) получить флаги пользователя(get_user_flags) с флагом (ADMIN_LEVEL_H), то открывается меню, а если это не проходит проверку, то выводим сообщение.
Пример блок-схемой