Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Вывод HUD сообщения и проверка на флаги

[РЕШЕНО]
Статус пользователя Fraig
сообщение 1.7.2015, 19:12
Сообщение #1
Стаж: 14 лет

Сообщений: 93
Благодарностей: 7
Полезность: < 0

Сделал меню для своего сервера, но почему-то не правильно показывается hud (не показывает ник) и не работает проверка на флаги. Подскажите, пожалуйста, что не так. Код прилагаю.

Код
Код:
#include <amxmodx>

#define PLUGIN_NAME "AllMenu"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "Fraig"

new GlobalMenu

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

register_clcmd("say /menu", "AllMenu");

register_logevent("StartHUD", 2, "1=Round_Start")
}

public StartHUD(id)
{
new name[32]
get_user_name(id, name, 31)

set_hudmessage(0, 255, 0, 0.10, -1.0, 0, 6.0, 5.0)
show_hudmessage(id, "%s, для активации меню сервера^n введите в чате /menu", name)
}

public AllMenu(id)
{
GlobalMenu = menu_create("Меню", "func_menu");

if (get_user_flags(id) & (ADMIN_BAN | ADMIN_LEVEL_F))
{
menu_additem(GlobalMenu, "Меню оружия", "1")
menu_additem(GlobalMenu, "Обнулить счет", "2")
menu_additem(GlobalMenu, "Меню бонусов", "3")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Дать ответ пож. игроку", "4")
menu_additem(GlobalMenu, "Предупредить игрока", "5")
menu_additem(GlobalMenu, "Выкл. микрофон у игрока", "6")
menu_additem(GlobalMenu, "Кикнуть игрока", "7")
menu_additem(GlobalMenu, "Сделать скриншоты игроку", "8")


menu_setprop(GlobalMenu, MPROP_PERPAGE, 8)
menu_setprop(GlobalMenu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше" )
menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад" )
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

menu_additem(GlobalMenu, "Забанить игрока", "9")
menu_additem(GlobalMenu, "Досрочное голос. за карту", "10")
menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "11")
menu_additem(GlobalMenu, "Сменить карту", "12")
menu_additem(GlobalMenu, "Ударить/убить игрока", "13")
menu_additem(GlobalMenu, "Команда игрока", "14")
menu_additem(GlobalMenu, "Вкл. микрофон игроку", "15")
menu_additem(GlobalMenu, "Разбанить игрока", "16")
}
else if (get_user_flags(id) & ADMIN_BAN)
{
menu_additem(GlobalMenu, "Обнулить счет", "1")
menu_additem(GlobalMenu, "Меню бонусов", "2")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Дать ответ пож. игроку", "3")
menu_additem(GlobalMenu, "Предупредить игрока", "4")
menu_additem(GlobalMenu, "Выкл. микрофон у игрока", "5")
menu_additem(GlobalMenu, "Кикнуть игрока", "6")
menu_additem(GlobalMenu, "Сделать скриншоты игроку", "7")
menu_additem(GlobalMenu, "Забанить игрока", "8")

menu_setprop(GlobalMenu, MPROP_PERPAGE, 8)
menu_setprop(GlobalMenu, MPROP_EXIT, MEXIT_ALL)
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше" )
menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад" )
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

menu_additem(GlobalMenu, "Досрочное голос. за карту", "9")
menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "10")
menu_additem(GlobalMenu, "Сменить карту", "11")
menu_additem(GlobalMenu, "Ударить/убить игрока", "12")
menu_additem(GlobalMenu, "Команда игрока", "13")
menu_additem(GlobalMenu, "Вкл. микрофон игроку", "14")
menu_additem(GlobalMenu, "Разбанить игрока", "15")
}
else if (get_user_flags(id) & ADMIN_LEVEL_H)
{
menu_additem(GlobalMenu, "Меню оружия", "1")
menu_additem(GlobalMenu, "Обнулить счет", "2")
menu_additem(GlobalMenu, "Меню бонусов", "3")
menu_additem(GlobalMenu, "Пожаловаться на игрока", "4")
menu_additem(GlobalMenu, "Предупредить игрока", "5")
menu_additem(GlobalMenu, "Голосовать за бан игрока", "6")

menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")
}
else
{
menu_additem(GlobalMenu, "Обнулить счет", "1")
menu_additem(GlobalMenu, "Меню бонусов", "2")
menu_additem(GlobalMenu, "Пожаловаться на игрока", "3")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Контакты", "4")

menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")
}

menu_display(id, GlobalMenu)

}

public func_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)

return PLUGIN_HANDLED
}

new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)

new iKey = str_to_num(szData)

if (get_user_flags(id) & (ADMIN_BAN | ADMIN_LEVEL_F))
{
switch(iKey)
{
case 1: client_cmd(id,"say /vm")
case 2: client_cmd(id,"say /rs")
case 3: client_cmd(id,"say /anew")
case 4: client_cmd(id,"say /reply")
case 5: client_cmd(id,"say /warn")
case 6: client_cmd(id,"amx_mute2")
case 7: client_cmd(id,"amx_kickmenu")
case 8: client_cmd(id,"amx_ssmenu")
case 9: client_cmd(id,"fb_menu")
case 10: client_cmd(id,"dmap_rockthevote")
case 11: client_cmd(id,"amx_votemapmenu")
case 12: client_cmd(id,"amx_mapmenu")
case 13: client_cmd(id,"amx_slapmenu")
case 14: client_cmd(id,"amx_teammenu")
case 15: client_cmd(id,"amx_unmute_menu")
case 16: client_cmd(id,"amx_unban")
}
}
else if (get_user_flags(id) & ADMIN_BAN)
{
switch(iKey)
{
case 1: client_cmd(id,"say /rs")
case 2: client_cmd(id,"say /anew")
case 3: client_cmd(id,"say /reply")
case 4: client_cmd(id,"say /warn")
case 5: client_cmd(id,"amx_mute2")
case 6: client_cmd(id,"amx_kickmenu")
case 7: client_cmd(id,"amx_ssmenu")
case 8: client_cmd(id,"fb_menu")
case 9: client_cmd(id,"dmap_rockthevote")
case 10: client_cmd(id,"amx_votemapmenu")
case 11: client_cmd(id,"amx_mapmenu")
case 12: client_cmd(id,"amx_slapmenu")
case 13: client_cmd(id,"amx_teammenu")
case 14: client_cmd(id,"amx_unmute_menu")
case 15: client_cmd(id,"amx_unban")
}
}
else if (get_user_flags(id) & ADMIN_LEVEL_H)
{
switch(iKey)
{
case 1: client_cmd(id,"say /vm")
case 2: client_cmd(id,"say /rs")
case 3: client_cmd(id,"say /anew")
case 4: client_cmd(id,"say /support")
case 5: client_cmd(id,"say /warn")
case 6: client_cmd(id,"say /voteban")
}
}
else
{
switch(iKey)
{
case 1: client_cmd(id,"say /rs")
case 2: client_cmd(id,"say /anew")
case 3: client_cmd(id,"say /support")
case 4: client_cmd(id,"say /admins")
}
}

menu_destroy(menu)
return PLUGIN_HANDLED
}


Отредактировал: Fraig, - 1.7.2015, 19:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 1.7.2015, 19:18
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Код:
register_logevent("StartHUD", 2, "1=Round_Start")

public StartHUD(id)
{
...
get_user_name(id, name, 31)
...
}


и откуда-же тут ID игрока возьмется?
цикл по всем игрокам нужен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fraig
сообщение 1.7.2015, 19:29
Сообщение #3
Стаж: 14 лет

Сообщений: 93
Благодарностей: 7
Полезность: < 0

Legenda, я смотрел по этому примеру
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Get user name"
#define VERSION "1.0"
#define AUTHOR "Admin"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /name","user_name")
}
public user_name(id){

new player_name[32]
get_user_name(id, player_name, 31)

set_hudmessage(255, 0, 0, -1.0, 0.25, 0, 6.0, 12.0)
show_hudmessage(id, "You name is: %s",player_name)

}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 1.7.2015, 19:32
Сообщение #4


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

пример правильный
в этом примере
register_clcmd передает id игрока, выполнявшего команду
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fraig
сообщение 1.7.2015, 19:36
Сообщение #5
Стаж: 14 лет

Сообщений: 93
Благодарностей: 7
Полезность: < 0

Legenda, теперь понял, хотя тут ник можно и не использовать. А по поводу флагов случайно не знаете? И еще вопрос такой появился: в данном случае hud выводится, как только кончается mp_freezetime, а как сделать, чтобы hud появлялся в самом начале раунда? До того, как игроки смогут двигаться.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 1.7.2015, 19:40
Сообщение #6


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

нужно понимать разницу между двумя событиями

register_event("HLTV", "NewRound", "a", "1=0", "2=0")
это событие начало раунда
register_logevent("Startround", 2, "1=Round_Start")
событие старта раунда(игроки могут передвигаться), срабатывает после окончания freezetime

Цитата
А по поводу флагов случайно не знаете?

знаем
учите условные операции
найдите разницу между && и &, |
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fraig
сообщение 1.7.2015, 19:50
Сообщение #7
Стаж: 14 лет

Сообщений: 93
Благодарностей: 7
Полезность: < 0

Legenda, просто я сделал так, как подсказали мне в этой теме. Но почему-то даже при проверке одного флага else if (get_user_flags(id) & ADMIN_BAN) меню не выводится, работает только меню, где условие else. Может я с условиями что-то намудрил?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 1.7.2015, 20:09
Сообщение #8


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

много чего намудрил
например если работает условие
if (get_user_flags(id) & (ADMIN_BAN | ADMIN_LEVEL_F))
то
else if (get_user_flags(id) & ADMIN_BAN) работать не будет в любом случаи

первое условие исключает второе в любом случаи
Код
если (А = 1 или А = 2)
   то выполнить X
иначе если (А = 1)
   то выполнить Y
иначе





используй примерно так
Код:

new flags = get_user_flags(id);
if (flags & ADMIN_BAN || flags & ADMIN_LEVEL_F)
{
..............
menu_additem(GlobalMenu, "Меню оружия", "1")
..............
}
else if (flags & ADMIN_LEVEL_H)
{
..............
menu_additem(GlobalMenu, "Меню оружия", "1")
..............
}
else
{
..............
..............
..............
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fraig
сообщение 1.7.2015, 20:20
Сообщение #9
Стаж: 14 лет

Сообщений: 93
Благодарностей: 7
Полезность: < 0

Legenda,
Код
if (get_user_flags(id) & (ADMIN_BAN | ADMIN_LEVEL_F))


т.е. получается | - это ИЛИ?
А я думал, что это И. Смотрел эту статью, там в качестве ИЛИ было ||, в качестве И - &&, но так у меня возникала ошибка при компиляции.
Мне нужно проверять присутствуют ли оба флага.

Алгоритм примерно такой:
Код
Если есть флаг А и флаг B
    то выполнить ...
Иначе если есть флаг А
    то выполнить ...
Иначе если есть флаг B
    то выполнить ...
Иначе
    выполнить ...


Отредактировал: Fraig, - 1.7.2015, 20:23
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fraig
сообщение 2.7.2015, 0:40
Сообщение #10
Стаж: 14 лет

Сообщений: 93
Благодарностей: 7
Полезность: < 0

Разобрался.

Рабочий код
Код:
#include <amxmodx>

#define PLUGIN_NAME "AllMenu"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "Fraig"

new GlobalMenu

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

register_clcmd("say /menu", "AllMenu");

register_event("HLTV", "StartHUD", "a", "1=0", "2=0")
}

public StartHUD(id)
{
set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 5.0)
show_hudmessage(id, "Для активации меню сервера введите в чате /menu")
}

public AllMenu(id)
{


if ((get_user_flags(id) & ADMIN_BAN) && (get_user_flags(id) & ADMIN_LEVEL_F)){
GlobalMenu = menu_create("\yМеню \rVIP\y-\wАдминистратора\r", "func_menu");

menu_additem(GlobalMenu, "Меню оружия", "1")
menu_additem(GlobalMenu, "Обнулить счет", "2")
menu_additem(GlobalMenu, "Меню бонусов", "3")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "4")
menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5")
menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "6")
menu_additem(GlobalMenu, "\rКикнуть \wигрока", "7")
menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "8")
menu_additem(GlobalMenu, "\rЗабанить \wигрока", "9")
menu_additem(GlobalMenu, "Досрочное голос. за карту", "10")
menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "11")
menu_additem(GlobalMenu, "Сменить карту", "12")
menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "13")
menu_additem(GlobalMenu, "Команда игрока", "14")
menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "15")
menu_additem(GlobalMenu, "\yРазбанить \wигрока", "16")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

}else if (get_user_flags(id) & ADMIN_BAN){
GlobalMenu = menu_create("\yМеню \wАдминистратора\r", "func_menu");

menu_additem(GlobalMenu, "Обнулить счет", "1")
menu_additem(GlobalMenu, "Меню бонусов", "2")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "3")
menu_additem(GlobalMenu, "\rПредупредить игрока", "4")
menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "5")
menu_additem(GlobalMenu, "\rКикнуть \wигрока", "6")
menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "7")
menu_additem(GlobalMenu, "\rЗабанить \wигрока", "8")
menu_additem(GlobalMenu, "Досрочное голос. за карту", "9")
menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "10")
menu_additem(GlobalMenu, "Сменить карту", "11")
menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "12")
menu_additem(GlobalMenu, "Команда игрока", "13")
menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "14")
menu_additem(GlobalMenu, "\yРазбанить \wигрока", "15")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

}else if (get_user_flags(id) & ADMIN_LEVEL_H){
GlobalMenu = menu_create("\yМеню \rVIP\y-\wИгрока\r", "func_menu");

menu_additem(GlobalMenu, "Меню оружия", "1")
menu_additem(GlobalMenu, "Обнулить счет", "2")
menu_additem(GlobalMenu, "Меню бонусов", "3")
menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "4")
menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5")
menu_additem(GlobalMenu, "Голосовать за \rбан \wигрока", "6")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

}
else
{
GlobalMenu = menu_create("\yМеню \wИгрока \r", "func_menu");

menu_additem(GlobalMenu, "Обнулить счет", "1")
menu_additem(GlobalMenu, "Меню бонусов", "2")
menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "3")
menu_addblank(GlobalMenu, 1)
menu_additem(GlobalMenu, "\yКонтакты", "4")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")
}

menu_display(id, GlobalMenu)
}

public func_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)

return PLUGIN_HANDLED
}

new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)

new iKey = str_to_num(szData)

if ((get_user_flags(id) & ADMIN_BAN) && (get_user_flags(id) & ADMIN_LEVEL_F)){
switch(iKey)
{
case 1: client_cmd(id,"say /vm")
case 2: client_cmd(id,"say /rs")
case 3: client_cmd(id,"say /anew")
case 4: client_cmd(id,"say /reply")
case 5: client_cmd(id,"say /warn")
case 6: client_cmd(id,"amx_mute2")
case 7: client_cmd(id,"amx_kickmenu")
case 8: client_cmd(id,"amx_ssmenu")
case 9: client_cmd(id,"fb_menu")
case 10: client_cmd(id,"dmap_rockthevote")
case 11: client_cmd(id,"amx_votemapmenu")
case 12: client_cmd(id,"amx_mapmenu")
case 13: client_cmd(id,"amx_slapmenu")
case 14: client_cmd(id,"amx_teammenu")
case 15: client_cmd(id,"amx_unmute_menu")
case 16: client_cmd(id,"amx_unban")
}
}else if (get_user_flags(id) & ADMIN_BAN){
switch(iKey)
{
case 1: client_cmd(id,"say /rs")
case 2: client_cmd(id,"say /anew")
case 3: client_cmd(id,"say /reply")
case 4: client_cmd(id,"say /warn")
case 5: client_cmd(id,"amx_mute2")
case 6: client_cmd(id,"amx_kickmenu")
case 7: client_cmd(id,"amx_ssmenu")
case 8: client_cmd(id,"fb_menu")
case 9: client_cmd(id,"dmap_rockthevote")
case 10: client_cmd(id,"amx_votemapmenu")
case 11: client_cmd(id,"amx_mapmenu")
case 12: client_cmd(id,"amx_slapmenu")
case 13: client_cmd(id,"amx_teammenu")
case 14: client_cmd(id,"amx_unmute_menu")
case 15: client_cmd(id,"amx_unban")
}
}else if (get_user_flags(id) & ADMIN_LEVEL_H){
switch(iKey)
{
case 1: client_cmd(id,"say /vm")
case 2: client_cmd(id,"say /rs")
case 3: client_cmd(id,"say /anew")
case 4: client_cmd(id,"say /support")
case 5: client_cmd(id,"say /warn")
case 6: client_cmd(id,"say /voteban")
}
}
else{
switch(iKey)
{
case 1: client_cmd(id,"say /rs")
case 2: client_cmd(id,"say /anew")
case 3: client_cmd(id,"say /support")
case 4: client_cmd(id,"say /admins")
}
}

menu_destroy(menu)
return PLUGIN_HANDLED
}


Вот конечный вариант. Может кому пригодится, поэтому поменял флаги ADMIN_LEVEL_F (у меня на сервере исп. этот флаг) на ADMIN_LEVEL_H
Добавил активацию меню с помощью кнопки N
Код
Код:
#include <amxmodx>

#define PLUGIN_NAME "AllMenu"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "Fraig"

new GlobalMenu

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

register_clcmd("say /menu", "AllMenu");
register_clcmd("nightvision", "AllMenu");

register_event("HLTV", "StartHUD", "a", "1=0", "2=0")
}

public StartHUD(id)
{
set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 5.0)
show_hudmessage(id, "Для активации меню сервера введите в чате /menu или нажмите клавишу N")
}

public AllMenu(id)
{

new flags = get_user_flags(id);

if ((flags & ADMIN_BAN) && (flags & ADMIN_LEVEL_H)){
GlobalMenu = menu_create("\yМеню \rVIP\y-\wАдминистратора\r", "func_menu");

menu_additem(GlobalMenu, "Меню оружия", "1")
menu_additem(GlobalMenu, "Обнулить счет", "2")
menu_additem(GlobalMenu, "Меню бонусов", "3")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "4")
menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5")
menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "6")
menu_additem(GlobalMenu, "\rКикнуть \wигрока", "7")
menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "8")
menu_additem(GlobalMenu, "\rЗабанить \wигрока", "9")
menu_additem(GlobalMenu, "Досрочное голос. за карту", "10")
menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "11")
menu_additem(GlobalMenu, "Сменить карту", "12")
menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "13")
menu_additem(GlobalMenu, "Команда игрока", "14")
menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "15")
menu_additem(GlobalMenu, "\yРазбанить \wигрока", "16")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

}else if (flags & ADMIN_BAN){
GlobalMenu = menu_create("\yМеню \wАдминистратора\r", "func_menu");

menu_additem(GlobalMenu, "Обнулить счет", "1")
menu_additem(GlobalMenu, "Меню бонусов", "2")
menu_addblank(GlobalMenu, -1)
menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "3")
menu_additem(GlobalMenu, "\rПредупредить \wигрока", "4")
menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "5")
menu_additem(GlobalMenu, "\rКикнуть \wигрока", "6")
menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "7")
menu_additem(GlobalMenu, "\rЗабанить \wигрока", "8")
menu_additem(GlobalMenu, "Досрочное голос. за карту", "9")
menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "10")
menu_additem(GlobalMenu, "Сменить карту", "11")
menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "12")
menu_additem(GlobalMenu, "Команда игрока", "13")
menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "14")
menu_additem(GlobalMenu, "\yРазбанить \wигрока", "15")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

}else if (flags & ADMIN_LEVEL_H){
GlobalMenu = menu_create("\yМеню \rVIP\y-\wИгрока\r", "func_menu");

menu_additem(GlobalMenu, "Меню оружия", "1")
menu_additem(GlobalMenu, "Обнулить счет", "2")
menu_additem(GlobalMenu, "Меню бонусов", "3")
menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "4")
menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5")
menu_additem(GlobalMenu, "Голосовать за \rбан \wигрока", "6")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")

}
else
{
GlobalMenu = menu_create("\yМеню \wИгрока \r", "func_menu");

menu_additem(GlobalMenu, "Обнулить счет", "1")
menu_additem(GlobalMenu, "Меню бонусов", "2")
menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "3")
menu_addblank(GlobalMenu, 1)
menu_additem(GlobalMenu, "\yКонтакты", "4")

menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад")
menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше")
menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход")
}

menu_display(id, GlobalMenu)
}

public func_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)

return PLUGIN_HANDLED
}

new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)

new iKey = str_to_num(szData)
new flags = get_user_flags(id);

if ((flags & ADMIN_BAN) && (flags & ADMIN_LEVEL_H)){
switch(iKey)
{
case 1: client_cmd(id,"say /vm")
case 2: client_cmd(id,"say /rs")
case 3: client_cmd(id,"say /anew")
case 4: client_cmd(id,"say /reply")
case 5: client_cmd(id,"say /warn")
case 6: client_cmd(id,"amx_mute2")
case 7: client_cmd(id,"amx_kickmenu")
case 8: client_cmd(id,"amx_ssmenu")
case 9: client_cmd(id,"fb_menu")
case 10: client_cmd(id,"dmap_rockthevote")
case 11: client_cmd(id,"amx_votemapmenu")
case 12: client_cmd(id,"amx_mapmenu")
case 13: client_cmd(id,"amx_slapmenu")
case 14: client_cmd(id,"amx_teammenu")
case 15: client_cmd(id,"amx_unmute_menu")
case 16: client_cmd(id,"amx_unban")
}
}else if (flags & ADMIN_BAN){
switch(iKey)
{
case 1: client_cmd(id,"say /rs")
case 2: client_cmd(id,"say /anew")
case 3: client_cmd(id,"say /reply")
case 4: client_cmd(id,"say /warn")
case 5: client_cmd(id,"amx_mute2")
case 6: client_cmd(id,"amx_kickmenu")
case 7: client_cmd(id,"amx_ssmenu")
case 8: client_cmd(id,"fb_menu")
case 9: client_cmd(id,"dmap_rockthevote")
case 10: client_cmd(id,"amx_votemapmenu")
case 11: client_cmd(id,"amx_mapmenu")
case 12: client_cmd(id,"amx_slapmenu")
case 13: client_cmd(id,"amx_teammenu")
case 14: client_cmd(id,"amx_unmute_menu")
case 15: client_cmd(id,"amx_unban")
}
}else if (flags & ADMIN_LEVEL_H){
switch(iKey)
{
case 1: client_cmd(id,"say /vm")
case 2: client_cmd(id,"say /rs")
case 3: client_cmd(id,"say /anew")
case 4: client_cmd(id,"say /support")
case 5: client_cmd(id,"say /warn")
case 6: client_cmd(id,"say /voteban")
}
}
else{
switch(iKey)
{
case 1: client_cmd(id,"say /rs")
case 2: client_cmd(id,"say /anew")
case 3: client_cmd(id,"say /support")
case 4: client_cmd(id,"say /admins")
}
}

menu_destroy(menu)
return PLUGIN_HANDLED
}


Отредактировал: Fraig, - 2.7.2015, 10:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: