rendered paste bodyIndex: src/p_interaction.cpp===================================================================--- src/p_interaction.cpp (revision 2920)+++ src/p_interaction.cpp (working copy)@@ -1094,7 +1094,20 @@ ================== */ +// [TIHan/Spleen] Factor for damage dealt to players by monsters.+CUSTOM_CVAR (Float, sv_coop_damagefactor, 1.0f, CVAR_SERVERINFO|CVAR_ARCHIVE)+{+ if (self <= 0)+ self = 1.0f;+} +// [TIHan/Spleen] Apply factor for damage dealt to players by monsters.+void ApplyCoopDamagefactor(int &damage, AActor *source)+{+ if ((sv_coop_damagefactor != 1.0f) && (source != NULL) && (source->flags3 & MF3_ISMONSTER))+ damage = int(damage * sv_coop_damagefactor);+}+ void P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage, FName mod, int flags) { unsigned ang;@@ -1353,6 +1366,9 @@ lOldTargetHealth = target->health; if (player) {+ // [TIHan/Spleen] Apply factor for damage dealt to players by monsters.+ ApplyCoopDamagefactor(damage, source);+ if ((target->flags2 & MF2_INVULNERABLE) && damage < 1000000) { // player is invulnerable, so don't hurt him return;@@ -1803,6 +1819,10 @@ { // Try to use some inventory health P_AutoUseHealth (player, damage - player->health+1); }++ // [TIHan/Spleen] Apply factor for damage dealt to players by monsters.+ ApplyCoopDamagefactor(damage, source);+ player->health -= damage; // mirror mobj health here for Dave if (player->health < 50 && !deathmatch) {