[Cs:s] OnTakeDamage
Posted: Sun Sep 27, 2020 1:18 pm
Hi, i have small issue OnTakeDamage code
In my rpgmod player have m_iDamage and enemy have m_iDamageReduction, the damage doesn't work correctly.
Tested at enemy had 30% m_iDamageReduction and i had 80% m_iDamage, i made under 400 dmg which doesn't make any sense.
I should make over 500 - 600 dmg, but why it made under 400dmg at awp at hs shot.
Syntax: Select all
@EntityPreHook(EntityCondition.is_human_player, 'on_take_damage')
@EntityPreHook(EntityCondition.is_bot_player, 'on_take_damage')
def pre_damage(args):
index = index_from_pointer(args[0])
info = make_object(TakeDamageInfo, args[1])
chcc = C_CHANCE.get_float()
if info.attacker == info.inflictor:
_damage = info.damage
if info.type & 2:
try:
userid = rpglib.useridFromIndex(index)
except:
userid = None
if userid:
attacker = userid_from_inthandle(info.attacker)
attackerteam = rpglib.getTeam(attacker)
if attacker and attackerteam != rpglib.getTeam(userid):
if players[attacker]['m_iDamage']:
_damage += (_damage / 100.0) * players[attacker]['m_iDamage']
if players[attacker]['m_iCri']:
chcc = players[attacker]['m_iCri']
if random.randint(0, 100) <= chcc:
chcd = C_DMG.get_float()
if players[attacker]['critdamage']:
chcd = players[attacker]['critdamage']
_damage += (_damage / 100.0) * chcd
rpglib.playgamesound(attacker, 'weapons/fx/rics/ric%s.wav' % random.randint(1,4))
Delay(0, critical, (attacker,))
if players[userid]['m_iDamageReduction']:
_damage -= (_damage / 100.0) * players[userid]['m_iDamageReduction']
if players[attacker]['m_iLifesteal']:
_lifesteal = int((_damage / 100.0) * players[attacker]['m_iLifesteal'])
_current = rpglib.getHealth(attacker)
_max = players[attacker]['maxHealth']
if _current < _max:
_current += _lifesteal
if _current > _max:
_current = _max
rpglib.setHealth(attacker, _current)
if rpglib.isFrozen(userid):
_damage -= (_damage / 100.0) * 45
info.damage = _damage
In my rpgmod player have m_iDamage and enemy have m_iDamageReduction, the damage doesn't work correctly.
Tested at enemy had 30% m_iDamageReduction and i had 80% m_iDamage, i made under 400 dmg which doesn't make any sense.
I should make over 500 - 600 dmg, but why it made under 400dmg at awp at hs shot.