Подскажите плагин или квар убирающих особых зараженных во время танка.
Убрать особых зараженных во время танка
#1
Отправлено 18 Апрель 2017 - 21:41
#2
Отправлено 19 Апрель 2017 - 0:20
Подскажите плагин или квар убирающих особых зараженных во время танка.
Попробуй будет работать или нет так хз если честно:
#pragma semicolon 1 #include <sourcemod> #pragma newdecls required public void OnPluginStart() { HookEvent("tank_spawn", Event_tank_spawn); HookEvent("tank_killed", Event_tank_killed); } public void Event_tank_spawn(Event event, const char[] name, bool dontBroadcast) { CreateTimer(1.0, Timer_director_stop, GetClientOfUserId(GetEventInt(event, "userid")), TIMER_FLAG_NO_MAPCHANGE); } public void Event_tank_killed(Event event, const char[] name, bool dontBroadcast) { CreateTimer(1.0, Timer_director_start, GetClientOfUserId(GetEventInt(event, "userid")), TIMER_FLAG_NO_MAPCHANGE); } public Action Timer_director_stop(Handle timer) { for (int i = 1; i <= MaxClients; ++i) { if (IsClientInGame(i) && !IsFakeClient(i)) { int flag = GetCommandFlags("director_stop"); SetCommandFlags("director_stop", flag & ~FCVAR_CHEAT); FakeClientCommand(i, "director_stop"); break; } } return; } public Action Timer_director_start(Handle timer) { for (int i = 1; i <= MaxClients; ++i) { if (IsClientInGame(i) && !IsFakeClient(i)) { int flag = GetCommandFlags("director_start"); SetCommandFlags("director_start", flag & ~FCVAR_CHEAT); FakeClientCommand(i, "director_start"); break; } } return; }
Но если даже и будет работать, какие боссы есть на карте они останутся новые не появятся.
#3
Отправлено 19 Апрель 2017 - 15:05
Прикрепленные файлы
- Pringles это нравится
#4
Отправлено 19 Апрель 2017 - 19:25
Зачем дублировать ServerCommand?
ServerCommand("director_start"); ServerCommand("director_no_specials 1");
Проще:
ServerCommand("director_start;director_no_specials 1");
#5
Отправлено 08 Август 2019 - 16:21
Попробуй будет работать или нет так хз если честно:
#pragma semicolon 1 #include <sourcemod> #pragma newdecls required public void OnPluginStart() { HookEvent("tank_spawn", Event_tank_spawn); HookEvent("tank_killed", Event_tank_killed); } public void Event_tank_spawn(Event event, const char[] name, bool dontBroadcast) { CreateTimer(1.0, Timer_director_stop, GetClientOfUserId(GetEventInt(event, "userid")), TIMER_FLAG_NO_MAPCHANGE); } public void Event_tank_killed(Event event, const char[] name, bool dontBroadcast) { CreateTimer(1.0, Timer_director_start, GetClientOfUserId(GetEventInt(event, "userid")), TIMER_FLAG_NO_MAPCHANGE); } public Action Timer_director_stop(Handle timer) { for (int i = 1; i <= MaxClients; ++i) { if (IsClientInGame(i) && !IsFakeClient(i)) { int flag = GetCommandFlags("director_stop"); SetCommandFlags("director_stop", flag & ~FCVAR_CHEAT); FakeClientCommand(i, "director_stop"); break; } } return; } public Action Timer_director_start(Handle timer) { for (int i = 1; i <= MaxClients; ++i) { if (IsClientInGame(i) && !IsFakeClient(i)) { int flag = GetCommandFlags("director_start"); SetCommandFlags("director_start", flag & ~FCVAR_CHEAT); FakeClientCommand(i, "director_start"); break; } } return; }Но если даже и будет работать, какие боссы есть на карте они останутся новые не появятся.
А если вместо "director_stop" поставить l4d_ais_enabled 0 (из плагина l4d2_autoIS.smx) это может сработать?
#6
Отправлено 08 Август 2019 - 22:59
А если вместо "director_stop" поставить l4d_ais_enabled 0 (из плагина l4d2_autoIS.smx) это может сработать?
Нет, так как плагин ты возможно отключишь, но сама игра продолжит спавнить мобов.
Попробуй так, но судя по коду, плагин будет работать если в игре не больше 1 танка.
Сообщение отредактировал history_maker: 08 Август 2019 - 22:59
#7
Отправлено 08 Август 2019 - 23:24
Нет, так как плагин ты возможно отключишь, но сама игра продолжит спавнить мобов.
Попробуй так, но судя по коду, плагин будет работать если в игре не больше 1 танка.
Скрытый текстЕсли не поможет вообще, значит как я писал ранее, дело в аисе.
Да как Ты и говорил не сработало Эх так не хотелось переходить на infectedbots
#8
Отправлено 09 Август 2019 - 0:38
Да как Ты и говорил не сработало Эх так не хотелось переходить на infectedbots
Пробуй:
#9
Отправлено 09 Август 2019 - 1:04
Да как Ты и говорил не сработало Эх так не хотелось переходить на infectedbots
Не обязательно...
Вот StopMobRush, звёздочки замени на нужные числа особых после танка. И проверь внимательно, у тебя в плагине l4d(2!)_ais_*** или нет, если что, поправь во всех кварах.
#10
Отправлено 09 Август 2019 - 13:10
Это забавно всё выглядит. Но можно всё намного проще сделать. Без таймеров. Напрямую добавь в события и всё и используй ServerCommand для включение и выключение плагина. Также в плагине в кваре есть ли этот FCVAR_NOTIFY флаг если нету то добавь. Будет всё чётка работать, я так делаю.
В принципи можно, если так не пройдет. Можно постоянно кикать кто появится или очистить карту от за спавленных уже боссов.
#11
Отправлено 09 Август 2019 - 13:18
Ребят не получилось.
Сообщение отредактировал Pringles: 09 Август 2019 - 13:19
#12
Отправлено 09 Август 2019 - 15:12
Это забавно всё выглядит. Но можно всё намного проще сделать. Без таймеров. Напрямую добавь в события и всё и используй ServerCommand для включение и выключение плагина. Также в плагине в кваре есть ли этот FCVAR_NOTIFY флаг если нету то добавь. Будет всё чётка работать, я так делаю.
Можешь показать если не трудно
#13
Отправлено 09 Август 2019 - 15:50
Можешь показать если не трудно
Скинь для начало исходник плагина.
#14
Отправлено 09 Август 2019 - 17:12
Скинь для начало исходник плагина.
"stop_mobrush" или "l4d2_autoIS"
Сообщение отредактировал Pringles: 09 Август 2019 - 17:57
#15
Отправлено 09 Август 2019 - 19:25
Это забавно всё выглядит. Но можно всё намного проще сделать. Без таймеров. Напрямую добавь в события и всё и используй ServerCommand для включение и выключение плагина. Также в плагине в кваре есть ли этот FCVAR_NOTIFY флаг если нету то добавь. Будет всё чётка работать, я так делаю.
В принципи можно, если так не пройдет. Можно постоянно кикать кто появится или очистить карту от за спавленных уже боссов.
Такой способ имеешь ввиду(кик) ?
Сообщение отредактировал BloodyBlade: 09 Август 2019 - 19:32
#16
Отправлено 09 Август 2019 - 21:28
"stop_mobrush" или "l4d2_autoIS"
l4d2_autoIS . Смотри что я думаю на счет плагина. Ты понимаешь как бы раунд начинается, шестеренки начинают крутится? Даже если ты его выключишь, таймеры та уже запущены. Я не думаю что тебе это поможет. Плагин переписывать надо или кикать всех или ещё что-то другое придумывать.
Такой способ имеешь ввиду(кик) ?
Скрытый текст
Ну если это работает, почему бы и нет. Но я бы по другому написал.
#17
Отправлено 09 Август 2019 - 21:37
l4d2_autoIS . Смотри что я думаю на счет плагина. Ты понимаешь как бы раунд начинается, шестеренки начинают крутится? Даже если ты его выключишь, таймеры та уже запущены. Я не думаю что тебе это поможет. Плагин переписывать надо или кикать всех или ещё что-то другое придумывать.
Ну если это работает, почему бы и нет. Но я бы по другому написал.
Это работает. К тому же, в плагине MonsterBots, как раз этот метод используется...кикает всех боссов, кроме танка в конце раунда.
Думаю, можно просто добавить в событие отключения плагина убийство таймера. Вроде, при отключении плагина там UnHooks идут. Добавить ниже них убийство таймера и кик всех боссов, кроме танка.
Сообщение отредактировал BloodyBlade: 10 Август 2019 - 0:51
#18
Отправлено 09 Август 2019 - 22:24
l4d2_autoIS . Смотри что я думаю на счет плагина. Ты понимаешь как бы раунд начинается, шестеренки начинают крутится? Даже если ты его выключишь, таймеры та уже запущены. Я не думаю что тебе это поможет. Плагин переписывать надо или кикать всех или ещё что-то другое придумывать.
А так можно сделать? Что б кикало именно во время танка и без участия админа(что б в ручную не кикать через меню)?
#19
Отправлено 10 Август 2019 - 2:31
Это работает. К тому же, в плагине MonsterBots, как раз этот метод используется...кикает всех боссов, кроме танка в конце раунда.
Думаю, можно просто добавить в событие отключения плагина убийство таймера. Вроде, при отключении плагина там UnHooks идут. Добавить ниже них убийство таймера и кик всех боссов, кроме танка.
Ну так добавь, сделай доброе дело.
А так можно сделать?
Да запросто, даже мудрить нечего не надо. Там код выйдет три копейки.
#20
Отправлено 10 Август 2019 - 13:39
Вот пробуй, накидал.
#pragma semicolon 1 #include <sourcemod> #pragma newdecls required public void OnPluginStart() { HookEvent("player_spawn", eventPlayerSpawn, EventHookMode_Post); } public void eventPlayerSpawn(Event event, const char [] name, bool dontBroadcast) { static int sBoss; if((sBoss = GetClientOfUserId(event.GetInt("userid"))) && sBoss && IsClientInGame(sBoss) && IsGameL4DTank() > 0) if(IsGameL4DBoss(sBoss) == 1 || IsGameL4DBoss(sBoss) == 2 || IsGameL4DBoss(sBoss) == 3) KickClient(sBoss); } int IsGameL4DTank() { int count = 0; for (int i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && IsPlayerAlive(i) && IsGameL4DBoss(i) == 5) count++; } return count; } int IsGameL4DBoss(int i_client) { return GetEntProp(i_client, Prop_Send, "m_zombieClass"); }
Можно не кикать если что их а например убивать.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных