Засичане на щети в гръб

В този раздел можете да намерите полезни кодове и уроци свързани с PAWN скриптинга.
Аватар
WaLkZ
Извън линия
Администратор
Администратор
Мнения: 799
Регистриран на: 05 Окт 2016, 21:13
Местоположение: Варна
Се отблагодари: 75 пъти
Получена благодарност: 227 пъти
Обратна връзка:

Засичане на щети в гръб

Мнение от WaLkZ » 11 Фев 2017, 16:43

Източник

Автор:
  • KORD_12.7
Описание:
С кода по-долу може да се засече нанасяните щети в гърба на играч и да се направи някакво действие. Примерно да се блокират.
HIT_BACK не е имплементирана, като останалите - HIT_HEAD, HIT_CHEST и т.н.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>

public plugin_init()
{
    RegisterHam(Ham_TakeDamage, "player", "Player_TakeDamage")
}

public Player_TakeDamage(iVictim, iInflictor, iAttacker, Float: flDamage, const bitsDamageType)
{
    if (!is_user_connected(iAttacker) || !is_user_connected(iInflictor))
    {
        return HAM_IGNORED
    }
    
    new Float: vecSrc[3];
    new Float: vecAngles[3];
    new Float: vecForward[3];
    new Float: vecAttackDir[3];
        
    GetCenter(iVictim, vecSrc);
    GetCenter(iInflictor, vecAttackDir);
        
    xs_vec_sub(vecAttackDir, vecSrc, vecAttackDir);
    xs_vec_normalize(vecAttackDir, vecAttackDir);
        
    pev(iVictim, pev_angles, vecAngles);
    engfunc(EngFunc_MakeVectors, vecAngles);
        
    global_get(glb_v_forward, vecForward);
    xs_vec_mul_scalar(vecAttackDir, -1.0, vecAttackDir);
        
    if (xs_vec_dot(vecForward, vecAttackDir) > 0.3 )
    {
        // HIT_BACK
        
        //return HAM_SUPERCEDE //if you want to block the damage
    }
    
    return HAM_IGNORED

}
GetCenter(const iEntity, Float: vecSrc[3])
{
    new Float: vecAbsMax[3];
    new Float: vecAbsMin[3];
    
    pev(iEntity, pev_absmax, vecAbsMax);
    pev(iEntity, pev_absmin, vecAbsMin);
    
    xs_vec_add(vecAbsMax, vecAbsMin, vecSrc);
    xs_vec_mul_scalar(vecSrc, 0.5, vecSrc);
} 
hit_back.sma
(1.26 KiB) Свалено 151 пъти
hit_back.sma
(1.26 KiB) Свалено 151 пъти

Обратно към “Полезни кодове/уроци”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта