From 690d390e794158cdf7ba0153c169dd18dedd2d95 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sun, 2 Aug 2020 11:40:41 +0200 Subject: [PATCH] Counter-Strike: Added various pain animations to hostage_entity and proper pain and death penalties. --- src/server/cstrike/hostage_entity.cpp | 41 +++++++++++++++++++++------ 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/src/server/cstrike/hostage_entity.cpp b/src/server/cstrike/hostage_entity.cpp index 0643bea6..b789b9af 100644 --- a/src/server/cstrike/hostage_entity.cpp +++ b/src/server/cstrike/hostage_entity.cpp @@ -131,18 +131,32 @@ hostage_entity::PlayerUse(void) void hostage_entity::Pain(int iHitBody) { - WarnAllies(); - - if (m_flAnimTime > time) { - return; + switch (iHitBody) { + case BODY_HEAD: + case BODY_DEFAULT: + case BODY_CHEST: + case BODY_STOMACH: + AnimPlay(HOSA_PAIN); + break; + case BODY_ARMLEFT: + AnimPlay(HOSA_PAINLEFT); + break; + case BODY_ARMRIGHT: + AnimPlay(HOSA_PAINRIGHT); + break; + case BODY_LEGLEFT: + AnimPlay(HOSA_PAINLEGLEFT); + break; + case BODY_LEGRIGHT: + AnimPlay(HOSA_PAINLEGRIGHT); + break; } - if (random() < 0.25f) { + /* penalties */ + if (g_dmg_eAttacker.classname != "player") return; - } - SetFrame(HOSA_FLINCH); - m_flAnimTime = time + 0.25f; + Money_AddMoney(g_dmg_eAttacker, -(g_dmg_iDamage * 25)); } void @@ -156,6 +170,17 @@ hostage_entity::Death(int iHitBody) /* now mark our state as 'dead' */ CBaseNPC::Death(iHitBody); + + /* penalties */ + if (g_dmg_eAttacker.classname != "player") + return; + + if (g_dmg_iDamage >= 100) + Money_AddMoney(g_dmg_eAttacker, -2500); + else + Money_AddMoney(g_dmg_eAttacker, -500); + + Radio_BroadcastMessage(RADIO_HOSDOWN); } void