1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 02:19:55 +00:00
openmw-tes3mp/apps/openmw/mwmp
David Cernat af4fcb7261 [Client] Don't force skill update on cell change
Previously, an attempt by the server to simultaneously change a player's cell and skills (as you'd expect when a player file is loaded) led to:

1) The server sending the cell packet first and the skill packet afterwards

2) The player receiving the cell packet and sending their own skill packet as part of the client's forced skill update

3) The player receiving the skill packet from the server

4) The server receiving the skill packet from the player

The result was that, if the player then left the server without sending another skill packet, the server's memory retained the skills the player had sent instead of the skills it had sent to the player.

This is the first step in a solution to that situation and similar ones.

(cherry picked from commit cac4684986)

Note: In 0.6.x, this was only a problem if a player's cell was set by the server first and their skills were set next, i.e. this was not a problem in the default CoreScripts because the opposite order used there masked the problem. It was a more significant problem in 0.7 because all packets were queued for a player and sent in a specific hardcoded order.
2018-04-19 14:22:14 +03:00
..
GUI [Client] Clean up GUIChat slightly 2018-01-05 00:03:05 +02:00
processors [Client] Add setAttributes() and setSkills() methods to DedicatedPlayer 2018-04-13 16:59:48 +03:00
ActorList.cpp [Client] Make foreach style consistent with other 2017-06-27 22:27:02 +08:00
ActorList.hpp [General] Make most ActorPackets smaller by not including refIds in them 2017-05-27 16:59:23 +03:00
Cell.cpp [Client] Ignore cell changes that move actors to where they already are 2018-01-08 01:37:01 +02:00
Cell.hpp [Client] Fix warnings 2017-07-03 23:41:16 +08:00
CellController.cpp [Client] Remove redundant container methods from CellController 2018-04-01 07:11:43 +03:00
CellController.hpp [Client] Remove redundant container methods from CellController 2018-04-01 07:11:43 +03:00
DedicatedActor.cpp [Client] Ignore equipment items for DedicatedActors with count below 0 2018-01-27 18:08:45 +02:00
DedicatedActor.hpp [Client] Fix problems with NPC equipment sync 2017-06-09 04:58:56 +03:00
DedicatedPlayer.cpp [Client] Update DedicatedPlayer creature if displayCreatureName changes 2018-04-17 15:23:10 +03:00
DedicatedPlayer.hpp [Client] Update DedicatedPlayer creature if displayCreatureName changes 2018-04-17 15:23:10 +03:00
GUIController.cpp [Client] Split up creation of DedicatedPlayers into multiple methods 2018-04-08 10:56:33 +03:00
GUIController.hpp [Client] Unequip items if necessary when attr/skill modifier is set to 0 2018-01-26 00:45:39 +02:00
LocalActor.cpp [General] Rework container sync to prevent item duping 2018-03-26 19:27:36 +03:00
LocalActor.hpp [Client] Use update timer in mwmp::Cell instead of LocalActor 2017-06-10 03:29:51 +03:00
LocalPlayer.cpp [Client] Don't force skill update on cell change 2018-04-19 14:22:14 +03:00
LocalPlayer.hpp [General] Rework CharGen slightly for clarity purposes 2018-04-19 13:25:29 +03:00
Main.cpp [General] Rework CharGen slightly for clarity purposes 2018-04-19 13:25:29 +03:00
Main.hpp [Client] Convert MechanicsHelper to namespace 2017-06-27 16:43:53 +08:00
MechanicsHelper.cpp [General] Add isPlayer boolean to targets in packets 2018-04-05 12:48:53 +03:00
MechanicsHelper.hpp [Client] Add and use enchantmentType argument for unequipItemsByEffect() 2018-01-27 19:37:16 +02:00
Networking.cpp [Client] Use more descriptive message for version mismatch 2018-01-17 08:10:49 +02:00
Networking.hpp [Client] Replace usage of Networking::isDedicatedPlayer() 2017-04-18 18:07:39 +03:00
PlayerList.cpp [Client] Streamline creation of references for DedicatedPlayers 2018-04-08 15:02:43 +03:00
PlayerList.hpp [Client] Streamline creation of references for DedicatedPlayers 2018-04-08 15:02:43 +03:00
RecordHelper.cpp [General] Use RecordHelper methods to create and update DedicatedPlayers 2018-04-13 08:37:06 +03:00
RecordHelper.hpp [General] Use RecordHelper methods to create and update DedicatedPlayers 2018-04-13 08:37:06 +03:00
WorldEvent.cpp [General] Add isPlayer boolean to targets in packets 2018-04-05 12:48:53 +03:00
WorldEvent.hpp [Client] Make it possible to reply to requests about specific containers 2018-04-01 10:00:39 +03:00