Появление меню каждый раунд.
| |
andrey50390
|
Дата: Воскресенье, 07.12.2014, 17:31:03 | Сообщение # 1 |
|
Сообщений: 62
Репутация: 0 [ +/- ]
|
|
Помогите пожалуйста как сделать чтобы меню появлялось каждый раунд??? и ище при компиляции пишет ошибка в HookEvent("round_start", round_start); Сам код: #include <sourcemod> #include <sdktools>
new Handle:g_Menu;
public OnPluginStart() { g_Menu = CreateMenu(Select_Menu); SetMenuTitle(g_Menu,"Меню:\n \n"); AddMenuItem(g_Menu, "say !scout", "Скаут"); AddMenuItem(g_Menu, "say !shop", "Магазин"); AddMenuItem(g_Menu, "say !aflash", "Флешка[Админ]"); AddMenuItem(g_Menu, "say !ataser", "Шокер[Админ]"); AddMenuItem(g_Menu, "say !admins", "Список администраторов"); AddMenuItem(g_Menu, "say rank", "Статистика"); AddMenuItem(g_Menu, "say top", "ТОП игроков в ранге"); AddMenuItem(g_Menu, "say !res", "Вкл./выкл. Музыку в конце раунда"); HookEvent("round_start", round_start); }
public Action:round_start(client, args) { if (0 < client <= MaxClients) { DisplayMenu(g_Menu, client, 0); ClientCommand(client, "playgamesound sound/buttons/button3.wav"); } return Plugin_Handled; }
public Select_Menu(Handle:menu, MenuAction:action, client, item) { if (action != MenuAction_Select) return;
decl String:cmd[50]; if (!GetMenuItem(menu, item, cmd, 50)) return; FakeClientCommand(client, cmd); DisplayMenuAtItem(menu, client, GetMenuSelectionPosition(), 0); }
Сообщение отредактировал andrey50390 - Воскресенье, 07.12.2014, 17:32:54 |
|
| |
iEx
|
Дата: Воскресенье, 07.12.2014, 18:10:50 | Сообщение # 2 |
|
Сообщений: 304
Репутация: 23 [ +/- ]
|
|
Эвент это не действие игрока,это именно эвент Код public OnPluginStart() { HookEvent("round_start", round_start, EventHookMode_PostNoCopy); } public round_start(Handle:event, const String:name[], bool:silent) { ... }
Вообще лучше вызвать это меню как игрок спавнится... т.е: Код HookEvent("player_spawn", Event_Player_Spawn); // PlugStart, и public Action:Event_Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); DisplayMenu(g_Menu, client, 0); }
|
|
| |
pro-health
|
Дата: Воскресенье, 07.12.2014, 18:13:29 | Сообщение # 3 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
Такой вопрос, а чё за хрень? Я просто скопировал. Хотел подсказать. https://pp.vk.me/c625131/v625131398/10b5a/xjHod4HtSu4.jpg
|
|
| |
iEx
|
Дата: Воскресенье, 07.12.2014, 19:26:27 | Сообщение # 4 |
|
Сообщений: 304
Репутация: 23 [ +/- ]
|
|
Первую строчку прочитай, Он указывает эвент,а пишет потом что это пользовательская команда
|
|
| |
pro-health
|
Дата: Воскресенье, 07.12.2014, 19:34:04 | Сообщение # 5 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
А точно я чёт не заметил.
Добавлено (07.12.2014, 19:31:11) --------------------------------------------- И такой вопрос: Код public round_start(Handle:event, const String:name[], bool:silent) { ....... return Plugin_Handled; // Зачем? Он здесь? } Добавлено (07.12.2014, 19:34:04) --------------------------------------------- Ты не прав. Т.к а если ему надо что-бы меню было только тогда когда игрок появился в начале раунда. А заспавница можно и в конце... Цитата iEx ( ) Вообще лучше вызвать это меню как игрок спавнится... т.е: Код
HookEvent("player_spawn", Event_Player_Spawn); // PlugStart, и public Action:Event_Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); DisplayMenu(g_Menu, client, 0); }
Сообщение отредактировал pro-health - Воскресенье, 07.12.2014, 19:32:06 |
|
| |
andrey50390
|
Дата: Воскресенье, 07.12.2014, 19:40:48 | Сообщение # 6 |
|
Сообщений: 62
Репутация: 0 [ +/- ]
|
|
iEx спасибо все работает
|
|
| |
pro-health
|
Дата: Воскресенье, 07.12.2014, 19:44:31 | Сообщение # 7 |
|
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
А в чём тут проблема: Код public RegCom() { RegConsoleCmd("sm_scout", test); }
public test() {
}
Сообщение отредактировал pro-health - Воскресенье, 07.12.2014, 19:45:02 |
|
| |
andrey50390
|
Дата: Воскресенье, 07.12.2014, 20:12:54 | Сообщение # 8 |
|
Сообщений: 62
Репутация: 0 [ +/- ]
|
|
А как сделать чтобы меню убиралось через 10 секунд?
|
|
| |
iEx
|
Дата: Воскресенье, 07.12.2014, 22:02:43 | Сообщение # 9 |
|
Сообщений: 304
Репутация: 23 [ +/- ]
|
|
Pro-health Та же ошибка. Public Action:test(client,args) {
} Andrey, DisplayMenu(g_Menu, client, x); Где x - время(в секундах полагаю) 0 - бесконечность ._.
|
|
| |
andrey50390
|
Дата: Четверг, 11.12.2014, 14:31:56 | Сообщение # 10 |
|
Сообщений: 62
Репутация: 0 [ +/- ]
|
|
А как сделать чтобы некоторые функции высвечивались только админам? а игрокам было написано [Недоступно!]?
|
|
| |
dron216
|
Дата: Четверг, 11.12.2014, 20:26:30 | Сообщение # 11 |
|
Сообщений: 151
Репутация: 18 [ +/- ]
|
|
andrey50390, С командой: Код public OnPluginStart() { RegConsoleCmd("sm_test", test); }
public Action:test(client, args) { new AdminId:Test = GetUserAdmin(client); if (Test != INVALID_ADMIN_ID) { // Игрок админ } else { // Игрок не админ } }
С меню:
Код new AdminId:Test = GetUserAdmin(client); if (Test != INVALID_ADMIN_ID) { AddMenuItem(menu, "123", "Access Granted"); } else { AddMenuItem(menu, "321", "Access Denied"); }
Сообщение отредактировал dron216 - Четверг, 11.12.2014, 21:00:22 |
|
| |
|