Currently, it's not possible to easily alter the damage that any object taking.
It's possible to add a callback function from engine side, that can alter damage made on the object.
So something like this :
void HandleDamage(out TotalDamage damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
With all functions inside TotalDamage class, so we can get and set all damages in each zone name.
So we can easily, for example, alter every damage from PVP, we just need to check if the source is a player if it is, we set all damage to 0, so it's will not give any damage to the current player.