Oh, typing fixed in quotations... You vile serpent, you.
The thing is, there is absolutely NO WAY to implement a DMC fix with PSO without self DMC. You can reduce the amount of self DMC you receive by not having a bad connection to the server and also playing with players who have a decent ping.
With games like PSU and PSO2, the server does all of the damage calculations and sends that information back to the client. (Which is why you see the damage numbers often later if you're lagging.)
With PSO, damage is calculated client side and then the monster's HP is sent to other players. (Terrible system.)
Since our DMC fix only accepts monster HP which is lower than previous HP, you can self DMC if you have a poor connection to the server and other players. An example of how self DMC can occur:
A) Player one reduces a monster's HP from 3000 to 2000 and sends an update that the monster's HP is now 2000.
B) Player two is attacking the monster but lags a bit and hasn't got the 2000 packet yet. He attacks the monster during this time, taking the monster to 2500 from 3000.
C) Player two gets the packet, finally, that the monster's HP is 2000 and the server disregards his previous attack, because his update came later after 2000. Thus, he does no damage to the monster.
There is pretty much no solution to this other than to code PSO to be completely server sided for combat and ain't nobody got time for that.
Since this has been taking up too much of my time and I'm tired of working on this fix with no true way to fix it, I think I'm just going to disable the DMC code completely when I get home. Permanently.
I'm done.