Interrupts
Posted: Thu Feb 12, 2015 5:05 am
Finally figured out why some animations get stuck when interrupt is used.
When clients uses an ability, F_DO_ABILITY is sent. Original dyox code only reads first 23 bytes and ignore the rest. 24th byte has vital information, and that's CastSequence. Cast sequence must be sent in F_USE_ABILITY in the 18th byte. This way client knows which specific ability to affect. Client might have sent multiple abilities before server responded, so AbiliytID is not enough to identify which ability server is referring to, you also need sequence number that client assigns to each cast. (New CastSequence is generated each time hotbar is pressed, regardless if activity went off or on gcd).
25th byte through 29th byte is a clients current time. This important in calculating exact moment a projectile will collide (server needs to calculate damage at point of impact, not on initial cast).
When clients uses an ability, F_DO_ABILITY is sent. Original dyox code only reads first 23 bytes and ignore the rest. 24th byte has vital information, and that's CastSequence. Cast sequence must be sent in F_USE_ABILITY in the 18th byte. This way client knows which specific ability to affect. Client might have sent multiple abilities before server responded, so AbiliytID is not enough to identify which ability server is referring to, you also need sequence number that client assigns to each cast. (New CastSequence is generated each time hotbar is pressed, regardless if activity went off or on gcd).
25th byte through 29th byte is a clients current time. This important in calculating exact moment a projectile will collide (server needs to calculate damage at point of impact, not on initial cast).