Revise PVP Block and Hit Recovery handling #7097
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an effort to combat desync in player vs player interactions. In vanilla, damage is sent via network message by the attacker, but blocking and hit recovery are handled client sided, leading to desync. This ensures that when the attacker successfully hits (or I guess starts the sequence of events that leads to damage/blocking/hit recovery), only then will PvP based hit recovery and blocking take place. Additionally, this also fixes the issue caused by unsynced RNG, where the result of a block calculation will be different per client. The attacker will perform the calculation, and the defender will receive the result of that calculation and be forced to block accordingly.
I have also cleaned up
Plr2PlrMHit()
andPlrHitPlr()
during my effort to avoid any bugs during this implementation.