diff --git a/src/client/game_event.qc b/src/client/game_event.qc index 81017c8..3b0b39c 100644 --- a/src/client/game_event.qc +++ b/src/client/game_event.qc @@ -38,13 +38,18 @@ ClientGame_EventParse(float fHeader) vSparkAngle[2] = readcoord(); FX_Spark(vSparkPos, vSparkAngle); }break; - case EV_GIBHUMAN:{ + case EV_GIBHUMAN: vector vGibPos; vGibPos[0] = readcoord(); vGibPos[1] = readcoord(); vGibPos[2] = readcoord(); - FX_GibHuman(vGibPos); - }break; + vector vDir; + vDir[0] = readcoord(); + vDir[1] = readcoord(); + vDir[2] = readcoord(); + float flForce = readfloat(); + FX_GibHuman(vGibPos, vDir, flForce); + break; case EV_BLOOD:{ vector vBloodPos; vector vBloodColor; diff --git a/src/server/gamerules_multiplayer.qc b/src/server/gamerules_multiplayer.qc index 52abecd..a52124e 100644 --- a/src/server/gamerules_multiplayer.qc +++ b/src/server/gamerules_multiplayer.qc @@ -260,7 +260,7 @@ TSMultiplayerRules::PlayerDeath(base_player pp) /* either gib, or make a corpse */ if (pl.health < -50) { - FX_GibHuman(pl.origin); + FX_GibHuman(pl.origin, vectoangles(pl.origin - g_dmg_eAttacker.origin), g_dmg_iDamage * 2.0f); } else { /* Let's handle corpses on the clientside */ entity corpse = spawn(); diff --git a/src/server/gamerules_singleplayer.qc b/src/server/gamerules_singleplayer.qc index 9ff52c3..0b5c918 100644 --- a/src/server/gamerules_singleplayer.qc +++ b/src/server/gamerules_singleplayer.qc @@ -45,7 +45,7 @@ TSSingleplayerRules::PlayerDeath(base_player pp) } if (pp.health < -50) { - FX_GibHuman(pp.origin); + FX_GibHuman(pl.origin, vectoangles(pl.origin - g_dmg_eAttacker.origin), g_dmg_iDamage * 2.0f); } /* Let's handle corpses on the clientside */