Меню когда админ умер[CS:GO].
|
|
«SeReGa»☆
|
Дата: Четверг, 18.12.2014, 22:59:23 | Сообщение # 16 |
|
Сообщений: 395
Репутация: 37 [ +/- ]
|
|
Цитата TEIN ( ) «SeReGa»☆ еще Цитата TEIN ( ) BarD А если еще..? TEIN Что - то задумал))
|
|
| |
andrey50390
|
Дата: Пятница, 19.12.2014, 17:06:31 | Сообщение # 17 |
|
Сообщений: 62
Репутация: 0 [ +/- ]
|
|
Как сделать чтобы только 1 раз в раунд было появление меню?
|
|
| |
volodya
|
Дата: Пятница, 19.12.2014, 18:21:50 | Сообщение # 18 |
|
Сообщений: 14
Репутация: 0 [ +/- ]
|
|
Наверно так Код #include <sourcemod> #include <cstrike>
new limit [MAXPLAYERS + 1];
public OnPluginStart() { HookEvent ("player_death",player_death); HookEvent ("round_start",round_start); }
public Action: round_start (Handle:event, const String:name[], bool:dontBroadcast) { for (new client = 1; client <= MaxClients; client++) { limit[client] = 0; } }
public player_death (Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId (GetEventInt (event, "userid")); if (IsClientInGame(client) && (GetUserFlagBits(client) && ADMFLAG_GENERIC)) { if (limit[client] == 1) { limit[client] ++; Menu (client); } } }
public Menu (client) { new Handle: menu = CreateMenu (cmd_menu); SetMenuTitle (menu,"Использовать возрождение?\n \n"); AddMenuItem (menu, "0", "Да"); AddMenuItem (menu, "1", "Нет"); DisplayMenu (menu, client, 0); }
public cmd_menu (Handle:menu, MenuAction:action, client, option) { if (action == MenuAction_Select) { if (option == 0) { CS_RespawnPlayer(client); } if (option == 1) { CloseHandle (menu); } } else if (action == MenuAction_End) { CloseHandle (menu); } }
Сообщение отредактировал volodya - Пятница, 19.12.2014, 19:08:37 |
|
| |
TEIN
|
Дата: Пятница, 19.12.2014, 18:48:39 | Сообщение # 19 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
«SeReGa»☆ На мой взгляд: (1) не нужно проверять каждый раз при смерти клиента на админа; (2) необходимо исключить конфликты с другими плагинами (проверки, таймеры (если нужны)) и т.д., если что-то еще надумаю - скажу; ну а если вводить доп. функции - вызвать меню, если вдруг админ передумал и захотел возродиться после того, как нажал "Нет"
volodya В событии старта раунда нет клиента, необходимо использовать цикл, аля: for (new i = 1; i <= MaxClients; i++) // Code...
|
|
| |
BarD
|
Дата: Суббота, 20.12.2014, 10:13:05 | Сообщение # 20 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
TEIN, Он может назвать переменную, как хочет. Как говорила моя учительница по физике: "Моя морковка. Хочу и кину." :) В данном случае он назвал свою переменную "client", в чем я не вижу ничего такого. Ты говоришь, что не надо проверять, админ ли игрок, при каждой его смерти. А если у него отберут админку, пока он жив и на сервере? В этом коде я не вижу никаких ошибок, как логических, так и синтаксических.
|
|
| |
TEIN
|
Дата: Суббота, 20.12.2014, 14:34:34 | Сообщение # 21 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
BarD Ты думаешь, что ты прав?)
Пятница, Вчера, 18:48:39 Сообщение отредактировал volodya - Пятница, 19.12.2014, 19:08:37
Делай выводы, на счет админа, СОВЕРШЕННО не нужно проверять каждый раз ПРИ СМЕРТИ, ведь можно проверить в том случае, если вдруг список администраторов обновился
|
|
| |
хвостег
|
Дата: Суббота, 20.12.2014, 17:44:33 | Сообщение # 22 |
|
Сообщений: 161
Репутация: 53 [ +/- ]
|
|
Цитата TEIN ( ) Делай выводы, на счет админа, СОВЕРШЕННО не нужно проверять каждый раз ПРИ СМЕРТИ, ведь можно проверить в том случае, если вдруг список администраторов обновился
Не вижу смысла делать подобный хук. Взять флаги клиента не составляет никакого труда. Побитово сверить темболее. Эта связка моментально работает и не несет никакой нагрузки. Зачем городить огород если и так все просто до безобразия?
Если ты любишь огороды, можешь хукать все что хочешь, создай кучу переменных, заноси туда индексы и сверяй, а я лучше проверю число по маске в событии смерти игрока.
volodya, (GetUserFlagBits(client) & ADMFLAG_GENERIC) - тут должен быть один амперсанд.
Сообщение отредактировал хвостег - Суббота, 20.12.2014, 17:46:52 |
|
| |
TEIN
|
Дата: Суббота, 20.12.2014, 17:55:34 | Сообщение # 23 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
хвостег Никто и не спорит, что код выполняется моментально, но приведу пример: зачем авторизовываться на сайте каждый раз при входе, если можно этого избежать, нажав кнопочку "Запомнить", думаю, тебе понятен ход моих мыслей?
|
|
| |
хвостег
|
Дата: Суббота, 20.12.2014, 18:14:59 | Сообщение # 24 |
|
Сообщений: 161
Репутация: 53 [ +/- ]
|
|
Сайт - огромный проект, который состоит из кучи различных модулей(зависит от функционала), зачем сравнивать подобное со скриптом в 30 строк. Ладно я еще пойму если у тебя какой либо мод для игры, в котором кода на 6к строк или более, там нужно придумывать различные системы идентификации пользователей, разделять игровые фреймы, чтобы не грузить сервер запросами и прочими хреновинами, но в данном случае я не вижу смысла городить подобный беспредел.
|
|
| |
TEIN
|
Дата: Суббота, 20.12.2014, 19:12:25 | Сообщение # 25 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
хвостег копейка рубль бережет
|
|
| |
BarD
|
Дата: Суббота, 20.12.2014, 19:33:50 | Сообщение # 26 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
TEIN, мы оба правы. Не будем ссориться, это нам обоим ни к чему.
|
|
| |
iEx
|
Дата: Суббота, 20.12.2014, 20:23:41 | Сообщение # 27 |
|
Сообщений: 304
Репутация: 23 [ +/- ]
|
|
Вы тут дебаты устроили прямо)
|
|
| |