TakeDamage.

Сообщения
893
Реакции
149
Помог
25 раз(а)
Здравствуйте.
Есть проверка:
C++:
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage_Pre", false);
...
public CBasePlayer_TakeDamage_Pre(VictimId, Inflictor, AttackerId, Float: flDamage, iBitDmgType)
{
    if(!is_user_connected(VictimId) || VictimId == AttackerId)
    {
        return HC_CONTINUE;
    }
}
Теперь вопрос, имеет ли смысл проверять тип урона? К примеру, блокировать урон от падения жертвы:
C++:
if(iBitDmgType & DMG_FALL)
{
    return HC_SUPERCEDE;
}
Если выше стоит проверка:
C++:
VictimId == AttackerId
По факту она должна проверить, если жертва = атакеру, то игнорим код?
 
Сообщения
272
Реакции
282
Помог
2 раз(а)
Пожалуйста, засунь в свой хук и чекни...
Код:
server_print("attacker: %d, victim: %d", attacker, victim)
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
Сообщения
855
Реакции
532
Помог
13 раз(а)
это универсальная проверка
не только от падения. но и от ситуаций, где владелец не должен наносить урон себе
в ZP различное разрывное и т.п.

Как сказал скрептор выше , используй принты
В любой непонятной ситуации - принтуй!
 

hajimura

Е777КХ05
Сообщения
290
Реакции
228
Помог
6 раз(а)
Теперь вопрос, имеет ли смысл проверять тип
В случае падения с высоты инфликтором будет worldspawn, так что проверки типа инфликтор == плеер – мимо. Для игнорирования урона при падении с высоты нужна проверка на тип урона
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу