I'm fairly confident that melee attacks are handled server-side only. The client does not send regular attack-data to the server. It's the reason why we can attack moving mobs by walking ahead of them and looking in the same direction as them. Because the server thinks that you're in optimal melee range, so it commences an attack. If that was handled client-side, the client would have no reason to start an attack when you're in front of the mob. Also, if that was the case, it could be hacked to attack faster than you should under normal circumstances (think Attack-button).
The way I think it works is like this, all of this below is my opinion, and largely unverified, but supports the observations I make around FFXI enough to form a stable platform:
"Gear" data does not actually store any stats at all. Only the slot, charges, and job, race and level requirements are actually stored in an item, the rest is just text. The game isn't aware of the boni to attributes, it just displays the items in the appropriate slots, and changes the graphics to reflect that.
All the stats of the gear is handled server-side. The client only receives the attributes of the player from the server. This includes STR, DEX, VIT, INT, MND and CHR stats, the boni to those attributes (the green +X), HP, MP, TP, Attack, Defense, skills, elemental resistance and job levels. It uses that data to display the values on the screen, but doesn't actually calculate anything. Otherwise it would have to know the potency of a buff as well (like the potency of March, which depends on the BRD's skill). The only stat it uses to actually calculate anything is movement speed.
The gearchange is always handled server-side. The client can only send commands to change it, the server decides when it's actually being changed, or if it's changed at all. A player's stats are updated every time gear is changed, the stats are saved in the server's player profile. So as soon as the gear is changed, the new stats take effect. These are then (periodically) sent to the client, so it can display the new values. This does not happen with the gear change, but it certain intervals, which is why Attack and Defense values sometimes seem to update "delayed" from an actual gearchange.
This is how I see it, and it seems to coincide with what's going on in the game. The stuff about R0ing I'll have to try out by forcing a R0 and see what I can do, I can't speak to that yet.

Reply With Quote




