soup420Mar 29, 2021 9:07 PMFinding: when network is cut off there are some weird interactions with skills and snapshots
When internet connection is cut briefly while a character is standing in Bennett heal, the heals don't tick while connection is cut but when connection is back it all ticks at once and heals the character even when they're over 70% hp.
In the video Hutao was healed to 35.7k/39.2k hp with 3.2k heal ticks, so the last 2 ticks healed her from 29.3k hp, which wouldn't have happened normally since 70% of Hutao's max hp is 27.4k
I'm not sure exactly how it works but my guess is that Bennett's ult ticks client side and "snapshots" the hp of the current character and confirms that Hutao is below 70%, and when network connection is resumed it sends the confirmation to the server which applies the heals.
Seeing this, I tried to apply it to some other skills and seeing how lag interacts with them.
I did 3 different tests here.
I put Hutao to a hp range where E would bring her below 50% hp. When connection is cut and Hutao uses E and Q and then connection is resumed, her Q deals 33.8k damage.
When I do the same thing without cutting connection, her E+Q at <50% deals 35.3k damage.
Her Q without E at <50% hp deals 25.6k damage.
E+Q damage at above 50% hp does 33.8k, which is same as when connection was cut.
So when connection was cut, the E should've brought Hutao to below 50% hp, but the damage didn't apply because there was no connection, and her Q damage was calculated client side and sent to the server when connection was resumed.
So from these tests it seems like skills that are dependent on player hp are snapshot client side and then sent to server.
If player hp is snapshot client side, then what about enemy hp? Diluc C1 increases his damage dealt by 15% to enemies above 50% hp.
In this test I got an enemy to barely above 50% hp, then I cut connection and hit the enemy with 3 Diluc E before resuming connection. If enemy hp was snapshot client side then all 3 of those hits should benefit from 15% extra damage because they seemingly landed on an enemy that was above half hp.
However I did the same test without cutting connection, and both scenarios gave exactly 4916, 3772 and 4978 damage for the 3 hits.
To make sure there wasn't anything weird going on with Diluc C1, I went back and confirmed that his third E hit deals 5725 damage, which is exactly 15% more than 4978.
So in the lag test, Diluc's E didn't benefit from 15% damage even though it seemed to land on an enemy that's above 50% hp. This suggests that interactions that are dependent on enemy hp aren't snapshot client side and are confirmed at the server side.
I'm not sure what to do with this information other than I found it pretty interesting. I've tried to test how some other skills interact with lag too.
I've tried to test whether buffs on the player run out when connection is cut, and they do still seem to run out after their duration ends even when the server can't confirm it.
Tried to test whether Ning can charge attack without consuming her star jades when connection is cut, but her charged attacks consume jades as normal.
Something weird I found though is that for most ultimates, if you cast them while connection is cut and then resume connection afterward, the ultimates will still do damage once the server can respond. However when Ning cast her ultimate it disappeared and didn't do anything. (IGNORE THIS THIS ISN'T TRUE)(edited)
Even though the ultimate hit the enemy on my screen, it didn't do any damage when I reconnected. I suspect this may be because projectiles need to communicate with the server to be able to seek enemies, so even though my screen played the projectile seeking animation, they weren't actually able to seek enemies without server connection.