1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-24 00:23:51 +00:00
Commit graph

1068 commits

Author SHA1 Message Date
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
David Cernat
ec2e51825e [Client] Set DedicatedPlayer's dynamic stats when its Ptr is enabled
Previously, players often started out in knockout animations when their Ptrs were first enabled because their fatigue started out at 0 and only updated itself afterwards.
2020-11-11 15:13:14 +02:00
David Cernat
4389d4417a [Client] Add setStatsDynamic() method to DedicatedPlayer 2020-11-11 14:55:55 +02:00
David Cernat
7f435ceeac Add OpenMW commits up to 1 Nov 2020
# Conflicts:
#   CMakeLists.txt
#   apps/openmw/main.cpp
#   apps/openmw/mwclass/container.hpp
#   apps/openmw/mwclass/creature.hpp
#   apps/openmw/mwclass/npc.hpp
#   apps/openmw/mwdialogue/dialoguemanagerimp.hpp
#   apps/openmw/mwdialogue/journalimp.hpp
#   apps/openmw/mwgui/container.cpp
#   apps/openmw/mwgui/dialogue.hpp
#   apps/openmw/mwgui/mainmenu.cpp
#   apps/openmw/mwgui/windowmanagerimp.hpp
#   apps/openmw/mwmechanics/aiactivate.hpp
#   apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
#   apps/openmw/mwscript/containerextensions.cpp
#   apps/openmw/mwscript/interpretercontext.hpp
#   components/CMakeLists.txt
2020-11-01 23:17:59 +02:00
David Cernat
9dcb0f4c32 [General] Implement ObjectDialogueChoice packet 2020-10-26 19:48:40 +02:00
David Cernat
a6e825bbeb [Client] Fix logging for Container packets with REQUEST action 2020-10-16 18:42:12 +02:00
David Cernat
68837aaf4a Add OpenMW commits up to 15 Oct 2020
# Conflicts:
#   .travis.yml
#   CI/before_script.linux.sh
#   CMakeLists.txt
#   apps/openmw/mwgui/containeritemmodel.cpp
#   apps/openmw/mwgui/tradewindow.cpp
#   apps/openmw/mwphysics/actor.cpp
#   apps/openmw/mwworld/actionteleport.cpp
#   apps/openmw/mwworld/containerstore.cpp
2020-10-15 19:51:39 +02:00
David Cernat
0eedf8fd9f Add OpenMW commits up to 30 Sep 2020
# Conflicts:
#   apps/openmw/mwmechanics/aicombat.cpp
#   apps/openmw/mwmechanics/character.cpp
#   apps/openmw/mwmechanics/summoning.cpp
#   components/CMakeLists.txt
2020-09-30 13:32:15 +02:00
David Cernat
f568220abc [Client] Initialize DedicatedPlayers in placeholder interior cell 2020-08-27 20:05:27 +02:00
David Cernat
9c7f5410a5 [Client] Add exception handling to CellController::isSameCell() 2020-08-27 16:31:29 +02:00
David Cernat
89da1f39fb [Client] Implement stable cell resets 2020-08-16 23:56:01 +02:00
David Cernat
741553dc00 [Client] Fix spacing for sound records in mwmp::Worldstate 2020-08-11 18:33:12 +02:00
David Cernat
fc26e9bbc1 [Client] Remove urm's broken (by his own admission) cell reset attempt 2020-08-11 16:12:49 +02:00
David Cernat
c6852f49ba [Client] Add another validity check to CellController::updateLocal() 2020-08-11 12:57:09 +02:00
David Cernat
e4529af0a7 [Client] Make cell record overrides for current cell more stable 2020-08-11 12:33:03 +02:00
David Cernat
9a83108fe5 [Client] Add uninitializeCell() method to CellController 2020-08-11 04:15:12 +02:00
David Cernat
bcb7568ac6 [Client] Add cellStore validity check to CellController::updateLocal() 2020-08-06 19:17:02 +02:00
David Cernat
94dc6f422a [Client] Use temporary holding interior when changing current cell record 2020-08-06 16:25:12 +02:00
David Cernat
63480a0012 [Client] Use DetourNavigator for local actors, working around c1ebd9474b 2020-07-26 17:58:59 +02:00
David Cernat
58d8367cb0 [Client] Handle input from server-sent custom messageboxes less hackily 2020-07-18 01:36:13 +02:00
David Cernat
d3f23220de [Client] Only require cellStore for ConsoleCommand packets with objects 2020-07-13 13:04:02 +02:00
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.
2020-07-10 02:09:11 +02:00
David Cernat
5eb7eb8d88 Add OpenMW commits up to 4 Jul 2020
# Conflicts:
#	.travis.yml
#	CI/before_script.linux.sh
#	apps/openmw/engine.cpp
#	apps/openmw/mwbase/windowmanager.hpp
#	apps/openmw/mwgui/charactercreation.cpp
#	apps/openmw/mwgui/windowmanagerimp.hpp
#	apps/openmw/mwmechanics/character.cpp
2020-07-04 16:50:54 +03:00
David Cernat
9f2408473f [Client] Update setting of time via WorldTime packets
The setting of time-related values was previously handled directly in OpenMW's World class. It is now handled in OpenMW's DateTimeManager class instead when the variable names passed to World's setGlobalInt() and setGlobalFloat() are time-related.
2020-06-15 09:51:53 +03:00
David Cernat
e5b1843089 Add OpenMW commits up to 11 Jun 2020
# Conflicts:
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwgui/jailscreen.cpp
#	apps/openmw/mwmechanics/activespells.cpp
#	apps/openmw/mwmechanics/aiactivate.cpp
#	apps/openmw/mwmechanics/aiactivate.hpp
#	apps/openmw/mwmechanics/creaturestats.cpp
#	apps/openmw/mwscript/aiextensions.cpp
#	apps/openmw/mwscript/statsextensions.cpp
#	apps/openmw/mwworld/worldimp.cpp
#	apps/openmw/mwworld/worldimp.hpp
2020-06-11 13:21:58 +03:00
David Cernat
b527ca7e5d [Client] Fix initialization of ptrCellStore in object processors 2020-06-06 23:11:16 +03:00
David Cernat
62df188fd4 Add OpenMW commits up to 16 May 2020
# Conflicts:
#	CI/before_script.linux.sh
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwinput/inputmanagerimp.cpp
#	apps/openmw/mwscript/globalscripts.cpp
#	apps/openmw/mwscript/interpretercontext.cpp
#	apps/openmw/mwworld/cellstore.cpp
#	apps/openmw/mwworld/cellstore.hpp
#	apps/openmw/mwworld/worldimp.cpp
#	apps/openmw/mwworld/worldimp.hpp
#	components/interpreter/context.hpp
2020-06-06 22:38:28 +03:00
David Cernat
5e6218ad6d [General] Modernize handling of client script local variables in packets
Disable placeholder handling of client script member variables.
2020-06-06 13:58:51 +02:00
David Cernat
c99e20e3b4 [Client] Equip items silently for newly met dedicated players/actors 2020-05-25 21:50:19 +03:00
David Cernat
ea57aaef34 [Client] Fix compilation error on Linux regarding Timestamp constructor 2020-05-20 09:38:14 +03:00
David Cernat
3c51f1c23a [General] Include last gold restock time in ObjectMiscellaneous packets 2020-05-16 19:10:11 +03:00
David Cernat
23ff7b9610 [General] Synchronize gold pools for traders via ObjectMiscellaneous 2020-05-16 02:51:11 +03:00
David Cernat
297a254210 [General] Rename unused ScriptMemberFloat packet to ObjectMiscellaneous 2020-05-15 13:29:30 +03:00
David Cernat
dc0ce09ab6 [Client] Replace unused method in GUIController with getChatEditState() 2020-05-11 01:54:07 +03:00
David Cernat
053a5a6258 Add OpenMW commits up to 9 May 2020
# Conflicts:
#	apps/openmw/mwmechanics/spellcasting.cpp
#	apps/openmw/mwscript/aiextensions.cpp
2020-05-09 15:17:04 +03:00
David Cernat
f8c557fbc0 [General] Read and use weapon quantity in RecordDynamic packets 2020-04-19 23:17:09 +03:00
David Cernat
001d63b59b [Client] Keep extra item data when adding items to player via Take All 2020-04-17 20:01:28 +03:00
David Cernat
509f03ca52 [General] Use flags instead of autoCalc for enchantment dynamic records
This brings the handling of dynamic records in multiplayer up-to-date with ad333e88fe
2020-04-14 02:15:24 +03:00
David Cernat
25a632c650 Add OpenMW commits up to 13 Apr 2020
# Conflicts:
#	CMakeLists.txt
#	README.md
#	apps/openmw/engine.cpp
#	apps/openmw/mwclass/creaturelevlist.cpp
#	apps/openmw/mwgui/quickkeysmenu.cpp
2020-04-13 19:53:42 +03:00
David Cernat
907c5fc6de Merge branch '0.7.1-summons-ordering' into 0.7.1 2020-03-22 17:29:01 +02:00
uramer
ee84868b7d [Client] Fix double summoning magical effects 2020-03-20 22:28:00 +01:00
uramer
f46f028754 [General] Sound custom records 2020-03-15 19:17:00 +01:00
uramer
3476bd7d04 [Client] Play sounds at fixed position if the object is in current cell 2020-03-01 14:22:00 +01:00
David Cernat
06a3604f9e Merge remote-tracking branch 'uramer/0.7.1-game-settings' into 0.7.1 2020-03-01 01:58:01 +02:00
David Cernat
27d35d73a2 [General] Implement OnObjectSound packet
Many interactions between players and objects now have their sounds sent to other players.
2020-02-29 18:15:41 +02:00
David Cernat
4b69d1cc51 [Client] Play sound for object placements where droppedByPlayer is true 2020-02-29 18:12:46 +02:00
uramer
bb8182663f [General] Set any settings from the Game category with the GAME_SETTINGS packet 2020-02-28 00:40:00 +01:00
David Cernat
8b2bf941cd [Client] Only play trap disarm sounds when the server approves disarming 2020-02-26 22:24:58 +02:00
David Cernat
9d3afc019a [Client] Add logging for items added to & removed from player by server
Additionally, adjust comment related to potion creation to mention sending of stored item removals.
2020-02-25 09:53:42 +02:00
David Cernat
dae805dbc1 [Client] Avoid PlayerInventory packet spam when creating many potions 2020-02-25 07:45:06 +02:00
David Cernat
31c0f5c976 [Client] Use clearer boolean name for checks regarding inventory sending 2020-02-22 23:59:42 +02:00
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.
2020-02-22 21:21:30 +02:00
David Cernat
cf453092ce Merge remote-tracking branch 'Veenkar/0.7.1-fix-533' into 0.7.1 2020-02-21 21:24:01 +02:00
David Cernat
ab794f0068 [General] Add handling of longs to ClientScriptLocal
Use better wording in comments related to ClientScriptLocal and ClientScriptGlobal.
2020-02-18 02:02:31 +02:00
David Cernat
8db396d10a [General] Distinguish between shorts & longs in ClientScriptGlobal
Adjust ClientScriptLocal so it refers to its previously handled integers as shorts.
2020-02-17 18:19:03 +02:00
Michal Marchewka
44c13154ff [Client] Fix #533. LocalPlayer.cpp joins neccessary faction only. 2020-02-16 10:47:13 +01:00
David Cernat
a4b10c75e1 [Client] Remove unneccessary addConsoleCommandObject() from ObjectList 2020-02-15 10:24:05 +02:00
David Cernat
643c979d31 [Client] Use getBaseObjectFromPtr() whenever possible in ObjectList 2020-02-15 10:00:23 +02:00
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
2020-02-11 15:41:38 +02:00
David Cernat
abd18745df [General] Include ScriptLocalFloat as part of ClientScriptLocal 2020-02-10 07:58:35 +02:00
David Cernat
b97fa7553c [Client] Remove variable redeclarations 2020-02-08 15:08:07 +02:00
David Cernat
4841c1ad4c [General] Rename ScriptLocalShort into ClientScriptLocal 2020-02-05 17:41:48 +02:00
David Cernat
271dc3df87 [General] Rename unused ObjectCollision into ObjectSound 2020-01-26 13:30:28 +02:00
David Cernat
038c5b8231 [Client] Rename ObjectList's addObject() into addBaseObject() 2020-01-23 16:40:04 +02:00
David Cernat
296c04af71 [Client] Combine ObjectList's getBaseObject() and getObjectFromPtr() 2020-01-23 16:18:49 +02:00
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.
2020-01-23 12:50:34 +02:00
David Cernat
59a38164ea [Client] Add generic objects to ObjectList using addObjectGeneric() 2020-01-23 09:03:40 +02:00
David Cernat
989188c171 [Client] Remove ObjectList's confusing addObjectDelete() function 2020-01-22 14:35:51 +02:00
David Cernat
32b5529e18 [Client] Use check with clearer logic in ObjectList::editContainers() 2020-01-16 14:02:27 +02:00
David Cernat
d2ba4a12d9 [Client] Simplify container sending with new addContainerItem() methods 2020-01-16 14:00:30 +02:00
David Cernat
51f0acbaf5 [Client] Improve logging for Container packets 2020-01-16 10:32:48 +02:00
David Cernat
b0b51dc4d5 [Client] Don't print sending of console command packets 2020-01-16 09:15:53 +02:00
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.
2020-01-04 09:56:37 +02:00
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.
2019-12-13 14:00:51 +02:00
David Cernat
96049befe9 [Client] Add and use getObjectFromPtr() method in ObjectList 2019-12-13 13:07:21 +02:00
David Cernat
2973cc4f4d [General] Implement OnObjectHit packet, part 1
ObjectHit is now sent when an NPC hits a non-actor object.
2019-12-08 16:14:01 +02:00
David Cernat
eeb77f80d2 [Client] Send ConsoleCommand packets when console is used 2019-12-07 10:11:45 +02:00
David Cernat
4b27f8986b [Client] Synchronize positions for actors during death animations
This needs some improvements, because:

1) Sometimes the cell authority sends the death animation too late and a different one gets played on the other clients
2) There is probably a simpler check that can be done for position changes during a death animation.
2019-12-06 21:04:42 +02:00
David Cernat
7dd03798e7 [Client] Don't update already initialized but deleted LocalActors 2019-12-06 16:12:29 +02:00
David Cernat
2af811be40 [Client] Use proper log message when receiving ActorDeath packets 2019-12-06 12:43:41 +02:00
David Cernat
1950748dae [Client] Always use autoEquip on newly initialized LocalActors
Previously, it was possible for a Container packet to clear all equipment slots for an actor without the actor's authority then sending an equipment packet to correct that, due to packet loss or sudden disconnection, leading to actors not wearing any equipment as soon as they acquired a new authority.

This ensures that newly initialized LocalActors will now autoEquip.
2019-12-06 12:21:30 +02:00
David Cernat
cd444f8707 [Client] Send actor equipment after Container packet causes autoEquip
Previously, a Container packet with a SET action for an actor would clear their entire InventoryStore, also clearing all of their equipment slots. The actor's authority would then autoEquip new equipment for the actor, but that new equipment would not actually get sent to the other players. As a result, they would see the actor fighting with hand-to-hand attacks, while also not actually wearing anything despite being rendered as wearing the same clothes and armor as before.

This commit makes the actor's authority resend the actor's equipment as soon as the Container packet has caused the autoEquip to happen.
2019-12-06 11:40:07 +02:00
David Cernat
f43ba7fba2 [Client] Don't initialize disabled or deleted actors as LocalActors 2019-12-05 20:27:48 +02:00
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.
2019-12-05 19:15:11 +02:00
David Cernat
a383b7b612 [General] Include death animations in ActorDeath packets 2019-12-05 13:27:55 +02:00
David Cernat
ecf00af548 [General] Implement WorldDestinationOverride packet, part 1
Destinations for doors with cell transitions are now overridden.
2019-12-04 16:43:56 +02:00
David Cernat
154a9ce5a6 [General] Fix declarations hiding class members, part 2 2019-12-04 10:17:33 +02:00
David Cernat
270867a397 [Client] Ensure mwmp::Main is initialized before GUIController cleanup
Previously, certain errors early in the program's execution – such as an attempt to use two different packet processors for the same packet ID – would not be displayed because of a crash when attempting to get an uninitialized mwmp::Main in the Engine's destructor.
2019-12-04 08:39:33 +02:00
David Cernat
5b4db83d61 [Client] Once again allow beds to be used even if waiting is disallowed
This had been broken by rest-related commits in OpenMW.
2019-12-03 23:55:55 +02:00
David Cernat
c4950f1beb [Client] Implement PlayerTeam packet, part 2
When determining actors siding with someone, also check the team members of DedicatedPlayers, not just those of the LocalPlayer.

Don't set players as each other's hitAttemptActor if they are team members.

Don't run startCombat() for DedicatedPlayers who get attacked.
2019-12-03 22:40:02 +02:00
David Cernat
3a52f7dcf5 [Client] Add isTeamMember() method to MechanicsHelper 2019-12-03 17:04:49 +02:00
David Cernat
68f524b822 [Client] Use more succinct methods for PlayerPtr in MechanicsHelper 2019-12-03 14:12:40 +02:00
David Cernat
21c8821d05 [General] Ignore carriage returns in resources/version file 2019-12-03 13:21:10 +02:00
David Cernat
5ca2c83b02 [Client] Fix additional resurrection problems caused by 6450d84473 2019-12-03 11:42:56 +02:00
David Cernat
eeb3e4f938 [Client] Reset friendly hits when summoning a creature 2019-12-02 23:29:36 +02:00
David Cernat
753e310dd4 [General] Implement PlayerTeam packet 2019-12-02 19:08:03 +02:00