Commit Graph

289 Commits (aa35f0946fbd42fb03ec8a3686793fce5a94ab6f)

Author SHA1 Message Date
David Cernat 3e81371e53 [General] Fix jump synchronization for players
This had been broken by fr3dz10's physics rewrites from the earlier part of the year that made it so dedicated players were always regarded by the movement solver as being on the ground.
3 years ago
David Cernat 3f3fe66fde [General] Track casters of spells in SpellsActive packets
Also simplify sending of SpellsActive packets slightly.
4 years ago
David Cernat fe4a761ffe [General] Implement game setting records for RecordDynamic packets
Remove unused placeholder for variants from RecordDynamic.
4 years ago
David Cernat 3222afc8b7 [General] Implement PlayerCooldowns packet
Although this packet may be used for other kinds of cooldowns in the future, it currently only handles cooldowns for magical powers.
4 years ago
David Cernat 294f64d12d [General] Track timestamps for spells in SpellsActive packets
This makes it possible to remove a specific effect in effect stacks by checking its timestamp.
4 years ago
David Cernat 767287ae51 [General] Track stacking spells in SpellsActive packets 4 years ago
David Cernat 44d037c078 [General] Add creature soul values to RecordDynamic packets 4 years ago
David Cernat bf0a42fdad [General] Implement ActorSpellsActive packet, part 1
The packet can now set the active spells of DedicatedActors.
4 years ago
David Cernat 4acf9e289b [General] Move active spell structs from BasePlayer to BaseStructs 4 years ago
David Cernat 1a4b817b31 [General] Rework ObjectDialogueChoice for multilingual compatibility
Use a different system for sending and applying ObjectDialogueChoice packets.
4 years ago
David Cernat a43ba35790 [General] Add placeholder for Variant records in RecordDynamic packet
Fix spacing and sorting for Sound custom records.
4 years ago
David Cernat 9dcb0f4c32 [General] Implement ObjectDialogueChoice packet 4 years ago
David Cernat c56cd7c221 [General] Implement PlayerSpellsActive packet, part 1
Additions and removals of the local player's active spells can now be saved to and loaded from the server.
5 years ago
David Cernat 5e6218ad6d [General] Modernize handling of client script local variables in packets
Disable placeholder handling of client script member variables.
5 years ago
David Cernat 3c51f1c23a [General] Include last gold restock time in ObjectMiscellaneous packets 5 years ago
David Cernat 23ff7b9610 [General] Synchronize gold pools for traders via ObjectMiscellaneous 5 years ago
David Cernat f8c557fbc0 [General] Read and use weapon quantity in RecordDynamic packets 5 years ago
uramer f46f028754 [General] Sound custom records 5 years ago
David Cernat 06a3604f9e Merge remote-tracking branch 'uramer/0.7.1-game-settings' into 0.7.1 5 years ago
David Cernat 27d35d73a2 [General] Implement OnObjectSound packet
Many interactions between players and objects now have their sounds sent to other players.
5 years ago
uramer bb8182663f [General] Set any settings from the Game category with the GAME_SETTINGS packet 5 years ago
David Cernat e78503d5f3 [General] Include potion quantity in RecordDynamic packets
Don't spam the server with one RecordDynamic packet per potion created when brewing multiple potions at once. Instead, send a single RecordDynamic packet with the potion quantity included in it.

Add serverside script functions for getting the potion quantity.
5 years ago
David Cernat 8db396d10a [General] Distinguish between shorts & longs in ClientScriptGlobal
Adjust ClientScriptLocal so it refers to its previously handled integers as shorts.
5 years ago
David Cernat a13cef9913 Merge branch '0.7.0reset' of https://github.com/uramer/openmw into 0.7.1
# Conflicts:
#	apps/openmw-mp/Script/Functions/Worldstate.cpp
#	apps/openmw-mp/Script/Functions/Worldstate.hpp
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwmp/CellController.cpp
#	apps/openmw/mwworld/cellstore.cpp
#	apps/openmw/mwworld/worldimp.cpp
#	apps/openmw/mwworld/worldimp.hpp
5 years ago
David Cernat 491ccf21c5 Merge branch '0.7.1-build-fixes' into 0.7.1
# Conflicts:
#	components/CMakeLists.txt
5 years ago
David Cernat abd18745df [General] Include ScriptLocalFloat as part of ClientScriptLocal 5 years ago
David Cernat 975797c09b [General] Implement ObjectRestock packet
Restocking object containers via trading now requires the server to send back an ObjectRestock packet before it can happen.

The unused packet ID ID_SCRIPT_GLOBAL_FLOAT has been replaced with ID_OBJECT_RESTOCK.
5 years ago
David Cernat 8e5859b466 [General] Add RESTOCK to enum of Container subactions 5 years ago
Koncord b9da843196
Add forgotten stdexcept include 5 years ago
David Cernat e6c626f127 [General] Move handling of client globals to ClientScriptGlobal packet
ClientScriptGlobal is a new Worldstate packet that handles short, long and float values for global variables in clientside scripts.

Previously, short values were handled by the ScriptGlobalShort packet, while a partially implemented ScriptGlobalFloat packet also existed, but both of those packets were Object packets because they were added near the end of 2016 when only Player and Object packets existed (with the latter actually being called WorldEvent packets at the time). Both ScriptGlobalShort and ScriptGlobalFloat have now been removed.

The serverside script functions previously used to interact with ScriptGlobalShort have, however, been kept so they can be adjusted to work with local variables in clientside scripts instead in a future commit.
5 years ago
David Cernat c18aab5357 [General] Use default values of 0 for Attack floats in BaseStructs 5 years ago
David Cernat 868ad2b78f [General] Use default value of false for Attack booleans in BaseStructs 5 years ago
David Cernat bc093c8596 [General] Implement OnObjectHit packet, part 2
ObjectHit is now also sent when local actors succeed or fail in hitting other actors with melee attacks, with the packet including the success state of their attack.

It is also sent when creatures hit a non-actor object.
5 years ago
David Cernat e98e57c797 [General] Reorder enums alphabetically in RECORD_TYPE 5 years ago
David Cernat 2973cc4f4d [General] Implement OnObjectHit packet, part 1
ObjectHit is now sent when an NPC hits a non-actor object.
5 years ago
David Cernat 9b8818687d [General] Add mDeathAnimationFinished to mwmp::SimpleCreatureStats 5 years ago
David Cernat 980edac942 [General] Rename PlayerTeam into PlayerAlly
Considering that you can be allies with someone without being allied to their allies, changing the name makes the system more intuitive.
5 years ago
David Cernat a383b7b612 [General] Include death animations in ActorDeath packets 5 years ago
David Cernat ecf00af548 [General] Implement WorldDestinationOverride packet, part 1
Destinations for doors with cell transitions are now overridden.
5 years ago
David Cernat 753e310dd4 [General] Implement PlayerTeam packet 5 years ago
David Cernat 138aef37fe [General] Remove unused variable movementAnim from BasePlayer 5 years ago
David Cernat 446c22723e [General] Set default values for some variables in BasePlayer 5 years ago
David Cernat 1283d5d487 [General] Synchronize TCL state for players
Additionally, only purge temporary levitation effect for DedicatedPlayers if one has been added.
5 years ago
David Cernat d78bdefc01 [General] Include effect and spell ID for summons in ObjectSpawn packets 5 years ago
David Cernat 23d410f473 [General] Implement body part records for RecordDynamic packet 5 years ago
David Cernat b3747839c0 [General] Add hasRace to record overrides in RecordsDynamic packet 5 years ago
David Cernat 16662d772b [General] Synchronize death animations for players 5 years ago
David Cernat 140c1c9c12 [General] Use hard synchronization for melee attack animations
Previously, each client chose its own attack animations for DedicatedPlayers and DedicatedActors based on the direction they were walking in, which however led to desyncs for players with "Always Use Best Attack" enabled and for creatures which pick their attack animations randomly.
5 years ago
David Cernat 8f7a267129 [General] Add scale and bloodType to creature records in RecordDynamic 5 years ago
David Cernat afb9bd7eb5 [General] Implement script records for RecordDynamic packets 5 years ago