Вопрос по COLLISION_GROUP_DEBRIS

Тема в разделе "Программирование / Скриптинг", создана пользователем iamdss, 11 июл 2015.

  1. iamdss

    iamdss

    Сообщения:
    117
    Симпатии:
    0
    Пишу плагин для защиты игрока (HL2DM), если он не активен более 5 секунд (пишет в чат, голосует и т.п.). Постановку на защиту выполняю следующим кодом:

    Код:
    SetEntData(client, g_offsCollisionGroup, 1, 4, true);
    В принципе, всё работает, игроки могут проходить сквозь защищённых игроков, могут стрелять сквозь них. Но игрока под защитой всё ещё можно убить из гравигана, именно из него, швырнув в игрока что-нибудь. Вопрос - как быть?

    Код:
    COLLISION_GROUP_DEBRIS,				// Collides with nothing but world and static stuff
    Решено правильным подбором условий.

    Разве выкинутые гравиганом предметы считаются за статику?


    Добавлено через 13 минут
    И сразу спрошу ещё вот о чём. Логика плагина вертится в таймере с интервалом 0,1 сек, там же я определяю, защищён игрок или нет, таким кодом:

    Код:
    bool:IsProtected(client)
    {
    	if (IsClientInGame(client) && !IsFakeClient(client) && IsPlayerAlive(client))
    	{
    		new gValue = GetEntProp(client, Prop_Data, "m_takedamage", 1);
    		return gValue == 0;
    	} else return false;
    }
    Скажите, насколько ресурсоёмок данный код? И не будет ли более экономно взводить/сбрасывать флаг при постановке/снятии защиты, а определять уже по этому флагу? И может быть не стоит выделять память под переменную gValue?

    Добавлено через 1 час 23 минуты
    И ещё такой момент. Я перечитал темы

    http://hlmod.ru/forum/plaginy-dlya-sourcemod/2831-team-only-noblock-v2-0-a.html
    http://hlmod.ru/forum/zaprosy/17887-no-block-grenades.html

    с описанием проблем с физикой. В общем, у меня такая же проблема. Спустя приблизительно 2 часа после старта плагина начинает ломаться физика, сперва гранаты летят под пол, а потом вообще всё исчезает. Не подскажите, что было причиной слома физики в этих плагинах?


    Также решено рефакторингом.

    В силе только вопрос о функции bool:IsProtected.
     
    Последнее редактирование: 12 июл 2015