hostage_nodamage

hostage_nodamage 2024-02-08

khood

Участник
Сообщения
214
Реакции
51
  • Автор ресурса
  • #1
khood добавил(а) новый ресурс:

hostage_nodamage - Делает заложников неуязвимыми

Делает заложников неуязвимыми к повреждениям. Автоматически находит всех заложников на карте и устанавливает для них параметр m_takedamage в 0 при старте раунда.

Узнать больше об этом ресурсе...
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
Я бы сделал чуть иначе:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_functions>
#include <sdktools_gamerules>

public Plugin myinfo =
{
    name = "hostage_nodamage",
    author = "[ Khood ] [ DISCORD: serafimhl ]"
}

public void OnMapStart()
{
    static bool hooked;
    if(hooked == !!GameRules_GetProp("m_bMapHasRescueZone", 1))    // проверяем требуется ли переключить режим отлова события
        return;

    if((hooked ^= true))
        HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);    // нам информация по событию не требуется
    else UnhookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
}

public void Event_RoundStart(Event event, const char[] name, bool dontBroadcast)
{
    int ent = MaxClients+1;    // для чего начинать с сервера и игроков, если можно не начинать?
    while((ent = FindEntityByClassname(ent, "hostage_entity")) != -1) SetEntProp(ent, Prop_Data, "m_takedamage", 0, 1);
}
 
Сверху Снизу