2009-05-27, 10:24 PM
If there's a disparity between your client's and server's simulations, the most likely thing to happen is a disconnect. Simulations do not occur simultaneously, and the server is the first thing to process a dispel effect.
So say Papulatus decides to dispel you while you're using Hurricane. The server makes a note of this at time = 0 milliseconds (arbitrarily assigned for the purposes of this discussion). The server then sends packets telling the client that the character has been dispelled. This takes roughly in the neighborhood of 70 milliseconds or something. At time = 70 milliseconds, your client receives those packets, and will now show your character being dispelled. If you happen to unleash an arrow during that time frame and hit a monster, the server decides that you've desynched and automatically disconnects you, since the client thinks Papulatus got hit for damage at the last moment while the server thinks the character doesn't have a weapon anymore.
But wait! Desynchs like these happen all the time! For example, in a storm of stars hitting Rellik, the bowmaster of CWK, Rellik decides to use his massive stun attack. There's a very likely chance that a desynch will happen amongst one of the NLs. So in order to prevent sore hearts and flaring tempers, the server has a list of exceptions and just tells everyone else that the player(s) actually just "missed" instead or something. Apparently, the MW thing isn't in the list of exceptions.
So say Papulatus decides to dispel you while you're using Hurricane. The server makes a note of this at time = 0 milliseconds (arbitrarily assigned for the purposes of this discussion). The server then sends packets telling the client that the character has been dispelled. This takes roughly in the neighborhood of 70 milliseconds or something. At time = 70 milliseconds, your client receives those packets, and will now show your character being dispelled. If you happen to unleash an arrow during that time frame and hit a monster, the server decides that you've desynched and automatically disconnects you, since the client thinks Papulatus got hit for damage at the last moment while the server thinks the character doesn't have a weapon anymore.
But wait! Desynchs like these happen all the time! For example, in a storm of stars hitting Rellik, the bowmaster of CWK, Rellik decides to use his massive stun attack. There's a very likely chance that a desynch will happen amongst one of the NLs. So in order to prevent sore hearts and flaring tempers, the server has a list of exceptions and just tells everyone else that the player(s) actually just "missed" instead or something. Apparently, the MW thing isn't in the list of exceptions.

