1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 19:19:55 +00:00
Commit graph

1063 commits

Author SHA1 Message Date
David Cernat
a6dd76776f [Client] Include refId in ObjectList's object searches 2022-03-22 11:07:46 +02:00
David Cernat
cc8c222d18 [General] Combine CellStore's exact object searches 2022-03-22 10:42:19 +02:00
David Cernat
a95099cd03 [Client] Use item model's items for Container packet sent from Take All
Previously, a Container packet sent when using the Take All button included all the items in the container, not just all the items in the container window seen on the client. This was a problem when stealing from actors, as the container window does not give access to all of their items.
2022-02-28 18:20:47 +02:00
David Cernat
abdaedd752 [Client] Rely on untranslated topics in ObjectDialogueChoice packets
Previously, when using the Russian edition, all dialogue topics were translated into English before being sent to the server in an ObjectDialogueChoice packet and were then translated back into Russian when received again by the client. However, there were situations where different topics in English corresponded to the same Russian word, e.g. "chores" and "duties" were both translated as "задания", which led to the incorrect topic being used on the client in the end.

This commit makes it so that users of the Russian edition send ObjectDialogueChoice packets where the topicId variable contains both the untranslated topic and the translated one, delimited by a | character, with the client simply using the former when receiving the packet again.

This is a hotfix instead of the proper fix, as the proper fix would use different variables for the two versions of the topic and thus require the structure of the ObjectDialogueChoice packet to change.
2022-02-16 22:19:58 +02:00
David Cernat
f2d95dc84d [Client] Make ActiveSpells::removeSpellByTimestamp() return a boolean
Add logging to LocalPlayer::removeSpellsActive() to track when a player's active spell hasn't been removed due to an invalid timestamp.
2022-02-12 14:00:47 +02:00
David Cernat
4aa947ff4b [Client] Prevent player from auto-equipping items taken from containers 2022-02-10 23:10:11 +02:00
David Cernat
1cb10cd1f2 [Client] Use new exact search with ObjectActivate & ObjectDialogueChoice 2021-12-09 15:29:58 +02:00
David Cernat
dbae0bddc2 [Client] Only play sounds from active cells when receiving ObjectSound 2021-10-21 19:20:02 +02:00
David Cernat
538ccf15cf [Client] Use higher interpolation distance for DedicatedPlayers
This makes up for the laggier-looking jumps since the changes to OpenMW's physics system.
2021-10-17 20:14:21 +02:00
David Cernat
efc0b88058 [Client] Don't reload Ptr for DedicatedActor after adding active spells
This prevents non-continuous spell GFX from immediately vanishing.
2021-10-16 02:00:05 +02:00
David Cernat
3e582199fb [Client] Add createSpellGfx() method to MechanicsHelper
Use it to create spell GFX when adding active spells to dedicated players and actors.
2021-10-16 01:35:30 +02:00
David Cernat
7f017217c7 [Client] Fix position sync for falling actors 2021-10-15 17:11:03 +02:00
David Cernat
fb49b62753 [Client] Fix crash when receiving ActiveSpells for uninitialized players 2021-10-12 03:51:14 +02:00
David Cernat
e6a1f0889f [Client] Add isStackingSpell() method to MechanicsHelper 2021-10-12 01:26:12 +02:00
David Cernat
f03a87df3c [Client] Remove previous placeholders for tracking ActiveSpells actors 2021-10-12 01:20:38 +02:00
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.
2021-10-09 18:11:57 +02:00
David Cernat
06451c13d5 [Client] Update 3rd person model of local player when setting character 2021-10-01 03:27:40 +02:00
David Cernat
7393e3def6 [General] Add and use getShortDescription() for ESM::Cell
ESM::Cell's getDescription() method was modified by aa5161f99e despite being used heavily by TES3MP. All instances of it in the TES3MP code have now been changed into the newly added getShortDescription() that is identical to the previous getDescription().
2021-09-17 19:14:55 +02:00
David Cernat
2f98f31af2 [General] Use model variable already included in PlayerBaseInfo packets
The variable has been included since TES3MP's earliest proof of concept, but never used for anything. It is now possible to get and set it, due to semi-popular demand.
2021-09-02 15:44:11 +02:00
David Cernat
3f3fe66fde [General] Track casters of spells in SpellsActive packets
Also simplify sending of SpellsActive packets slightly.
2021-07-21 18:14:31 +02:00
David Cernat
4492a7a768 [Client] Add MechanicsHelper method to get actorId of an mwmp::Target
Also clean up MechanicsHelper::getPlayerPtr() slightly.
2021-07-21 14:57:55 +02:00
David Cernat
9817d3a563 [Client] Add method to PlayerList for getting players by their actorId 2021-07-20 03:22:16 +02:00
David Cernat
fe4a761ffe [General] Implement game setting records for RecordDynamic packets
Remove unused placeholder for variants from RecordDynamic.
2021-07-18 11:36:07 +02:00
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.
2021-07-10 22:15:19 +02:00
David Cernat
a4b180f65a [Client] Don't send SpellsActive packets for spells received from server 2021-07-06 17:22:19 +02:00
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.
2021-07-04 12:54:11 +02:00
David Cernat
767287ae51 [General] Track stacking spells in SpellsActive packets 2021-06-10 13:27:52 +02:00
David Cernat
da16c211a4 [Client] Make potion effects work with SpellsActive packets, part 2 2021-06-06 20:18:44 +02:00
David Cernat
5a852fe6db [Client] Fix warnings related to declarations 2021-06-04 01:22:13 +02:00
David Cernat
86630b048f [General] Add creature attack values to RecordDynamic packets 2021-05-28 19:35:05 +02:00
David Cernat
44d037c078 [General] Add creature soul values to RecordDynamic packets 2021-05-25 13:55:12 +02:00
David Cernat
8c7b07b9c8 [Client] Make potion effects work with SpellsActive packets 2021-05-23 01:49:37 +02:00
David Cernat
7a6dfc61ec Add OpenMW commits up to 21 May 2021
# Conflicts:
#   CMakeLists.txt
#   apps/openmw/mwscript/interpretercontext.cpp
#   components/CMakeLists.txt
2021-05-21 16:00:09 +02:00
David Cernat
1f3a17eff7 [Client] Remove pointless declaration of DedicatedPlayer as struct
This seems to have been a typo left over from Koncord's early work on the project.
2021-05-07 18:40:11 +02:00
David Cernat
e00ee1425a [Client] Reload DedicatedActor ptrs when setting their active spells
This makes the spells' visual effects appear correctly.
2021-05-07 18:15:39 +02:00
David Cernat
bf0a42fdad [General] Implement ActorSpellsActive packet, part 1
The packet can now set the active spells of DedicatedActors.
2021-04-20 03:25:14 +02:00
David Cernat
a7f517507c [Client] Handle reenabling of harvested objects via Container packet
It is no longer necessary to send ObjectState packets when harvesting objects, as the Container packet will handle the refreshing of those objects' animations instead.
2021-04-06 13:22:17 +02:00
David Cernat
0137772e64 [Client] Log PlayerCellChange packets about the local player 2021-03-25 03:39:13 +02:00
David Cernat
b3c40913f6 [Client] Remove 'using namespace std' from multiplayer-related code
This brings TES3MP in line with https://gitlab.com/OpenMW/openmw/-/merge_requests/664
2021-03-20 23:21:40 +02:00
David Cernat
eefa94db12 [Client] Allow ClientScriptGlobal to create new global variables 2021-01-26 01:07:35 +02:00
David Cernat
0eb01591e8 [Client] Move overrideRecord() method for Sound records to right spot 2021-01-17 16:04:12 +02:00
David Cernat
def981694d [Client] Use correct function for setting global floats from packets 2021-01-09 15:07:55 +02:00
David Cernat
db32f7f9f8 [Client] Use ObjectDialogueChoice for highlighted topics in dialogue
The packet is now sent not just for items in the list on the right of the dialogue screen, but also for the clickable topics in the dialogue text itself.
2020-12-17 03:12:01 +02:00
David Cernat
1a4b817b31 [General] Rework ObjectDialogueChoice for multilingual compatibility
Use a different system for sending and applying ObjectDialogueChoice packets.
2020-12-13 08:09:14 +02:00
David Cernat
5d7ca14e7e [Client] Set DedicatedPlayer's anim flags when its Ptr is enabled 2020-11-23 16:27:41 +02:00
David Cernat
58c04530e7 [General] Implement PlayerSpellsActive packet, part 2
The packet can now set the active spells of DedicatedPlayers.
2020-11-17 13:00:02 +02:00
David Cernat
30b179c2dd [Client] Add die() method to DedicatedPlayer 2020-11-15 01:30:13 +02:00
David Cernat
ae0e4a929f [Client] Add die() method to LocalPlayer 2020-11-15 01:02:58 +02:00
David Cernat
cd835104b7 [Client] Add resurrect() method to DedicatedPlayer 2020-11-15 00:44:10 +02:00
David Cernat
1083fa5196 [Client] Reorder DedicatedPlayer's functions 2020-11-14 23:02:30 +02:00