Commit graph

16252 commits

Author SHA1 Message Date
David Cernat
8c0b75d9f4 [Client] Limit PlayerEquipment packets sent by recharging enchantments 2018-07-22 15:30:40 +03:00
David Cernat
18f8725d33 [Client] Remove tab character that somehow made its way into a comment 2018-07-22 10:29:14 +03:00
David Cernat
038757b91a [General] Temporarily revert to original rotation animation sync
I originally added rotation animation sync as part of commit 068a45be87. Unfortunately, it meant the PlayerPosition packets were now twice as large as they had been before, which was less than ideal for such a frequently sent packet, which is why Koncord switched to a more optimized approach in commits 5f30dfd5db and d67db1a9bd.

Recently, there have since been some rotation animation problems in OpenMW, which have broken the way Koncord's approach looks. My original approach still looks somewhat okay, so I'm switching back to it until we can figure out how to reuse it under the current circumstances.
2018-07-21 19:27:36 +03:00
David Cernat
3944c8aec6 [Client] Ignore WorldRegionAuthority packets that have an empty region 2018-07-21 18:28:31 +03:00
David Cernat
99e64bdcd7 [Client] Remove unused localWeather variable from Worldstate 2018-07-21 16:25:49 +03:00
David Cernat
cd1fc590a7 [Client] Differentiate itemPtr from actor Ptr in DedicatedPlayer method
This fixes a mistake from 8f7da49152
2018-07-21 16:14:07 +03:00
David Cernat
5466092582 [Client] Reduce log level for actor cell changes 2018-07-21 14:41:48 +03:00
David Cernat
20e0100706 [General] Rework Attack packets and add synchronization for item magic 2018-07-21 14:41:27 +03:00
David Cernat
0f0e8b7c08 [Client] Adjust log levels used for weather and global map 2018-07-21 12:08:31 +03:00
David Cernat
f1315ef30d [Cllient] Differentiate itemPtr from actor Ptr in DedicatedActor methods
2427a4f877 mistakenly used the variable name "ptr" for both the actor and the items in that actor's inventory.
2018-07-21 10:16:51 +03:00
David Cernat
b6324e3532 [Client] Clean up debug for spell usage 2018-07-21 09:41:36 +03:00
David Cernat
826e64b40e [Server] Rename isPlayerExists() into doesPlayerExist() 2018-07-21 07:34:45 +03:00
David Cernat
21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
2018-07-21 05:59:57 +03:00
David Cernat
6c50d4199b Merge branch '0.7.0' of https://github.com/TES3MP/openmw-tes3mp into 0.7.0 2018-07-21 05:21:44 +03:00
David Cernat
421d0e7a99 [Client] Make forceWeather false by default for client-sent weather 2018-07-21 05:21:26 +03:00
David Cernat
892d71ce71 [General] Reimplement weather synchronization to allow soft transitions
Although weather sync was added by Koncord to the rewrite in fd721143e2 in a way that used surprisingly few lines of code, it relied on the server requesting weather states every second from authority players and sending them to non-authority players, while also allowing only very sudden weather transitions across regions, i.e. if there was one player in the Ascadian Isles who had stormy weather, and another player with clear weather in the Bitter Coast Region walked across to the Ascadian Isles, that player was instantly made to have stormy weather with no kind of transition at all.

My approach solves both of those problems. It solves the packet spam by only sending weather updates to the server when weather changes happen or when there are new arrivals to a weather authority's region, and it allows for both sudden weather transitions when players teleport to a region and for soft, gradual transitions when players walk across to a region. It is inspired by my previous actor sync, and uses a WorldRegionAuthority packet to set players as region authorities in a similar way to how ActorAuthority sets players as cell AI authorities. Weather changes are created only by the region authority for a given region, and weather packets are also only sent by that authority.

However, it should be noted that gradual weather transitions are used by default in this implementation. To use sudden weather transitions, the serverside Lua scripts need to forward WorldWeather packets with the forceWeather boolean set to true. That is, however, already handled by our default Lua scripts in situations where it makes sense.
2018-07-21 05:20:26 +03:00
Andrei Kortunov
8281fd903f Set movement speed to 0 when unconscious (bug #4519) 2018-07-19 20:17:32 +04:00
David Cernat
b6db570d9c [Client] Display uniqueIndexes in a less confusing way in console 2018-07-19 11:57:06 +03:00
Andrei Kortunov
5c16ce1d36 Sort icons in the DataDisplayDelegate 2018-07-17 22:49:51 +04:00
Marc Zinnschlag
78a2725169 Merged pull request #1806 2018-07-17 12:42:41 +02:00
Marc Zinnschlag
326a3e61f4 Merged pull request #1807 2018-07-17 12:42:12 +02:00
Andrei Kortunov
38fa4e0a8a Do not play un-equipping animation when we switch to hand-to-hand 2018-07-17 14:10:04 +04:00
David Cernat
9823a77bf2 [General] Turn PlayerRegionAuthority into WorldRegionAuthority
WorldRegionAuthority is a Worldstate packet.
2018-07-17 09:21:13 +03:00
Koncord
2e227c7af5 [Server] Do not allow to connect with an empty plugin list 2018-07-17 01:08:23 +08:00
Koncord
b5c957c473 [Server] Move PreInit code to preInit method 2018-07-17 00:58:37 +08:00
Koncord
1a9bf253f6 [Server] Simplify getPlayer methods, add isPlayerExists method 2018-07-17 00:29:45 +08:00
Andrei Kortunov
edd5769022 Show magic items count in spells window (feature #4509) 2018-07-16 14:11:03 +04:00
Andrei Kortunov
30716344f2 Fix possible division by zero in the fatigue calculation (bug #4510) 2018-07-16 13:24:12 +04:00
David Cernat
d5d3c0937f [Client] Adjust log level for actor transfers in CellStore 2018-07-16 03:53:09 +03:00
David Cernat
35fdb833df [Client] Verify integrity of credits file 2018-07-16 03:25:01 +03:00
David Cernat
72d286473b [General] Move credits integrity error message to new ErrorMessages file
Additionally, use correct log level for credit integrity message on server.
2018-07-16 03:21:14 +03:00
David Cernat
0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 2018-07-16 02:20:43 +03:00
David Cernat
646111d998 [General] Use correct credits checksum and move it to Version.hpp 2018-07-16 01:05:56 +03:00
David Cernat
0f36c3ea24 [Server] Verify integrity of credits file 2018-07-15 22:50:16 +03:00
Andrei Kortunov
6ddf6eb885 Use editor markers for lights and creatures levelled lists 2018-07-15 17:25:18 +04:00
David Cernat
4ac371d292 [Server] Delete duplicate WorldKillCount processor with old filename 2018-07-15 05:49:19 +03:00
David Cernat
3649cf553f [General] Rename PlayerKillCount into WorldKillCount
This should clarify the real meaning of the packet and its associated event.

The event itself has been renamed from OnPlayerKillCount to OnWorldKillCount.
2018-07-15 05:34:59 +03:00
David Cernat
18a2d238ab [Client] Don't pop up dialogue screen when an NPC activates another NPC 2018-07-15 04:36:42 +03:00
David Cernat
4ef2aff11e [Client] Remove "Not implemented" message when activating other player
Serverside scripts can now make lots of different things happen as the result of such activation, which is why the message was no longer current.
2018-07-15 04:16:40 +03:00
David Cernat
f13705e8be [Client] Improve debug for ObjectActivate and ConsoleCommand 2018-07-15 04:09:19 +03:00
David Cernat
6ebe09375f [General] Implement ObjectActivate packet & associated script functions 2018-07-15 03:16:04 +03:00
David Cernat
81b160cae8 [General] Add placeholder for ObjectActivate packet 2018-07-15 01:08:31 +03:00
David Cernat
61da0d2475 [General] Turn PlayerInteraction into PlayerInput 2018-07-15 00:36:07 +03:00
David Cernat
32b6134fad [General] Add placeholder for CellReplace packet 2018-07-15 00:17:13 +03:00
David Cernat
a471f5e452 [General] Turn CellCreate into a Worldstate packet 2018-07-14 23:51:49 +03:00
David Cernat
6cb5ac6e63 Merge pull request #457 from OpenMW/master while resolving conflicts
Conflicts:
	CMakeLists.txt
	apps/openmw/engine.cpp
	apps/openmw/main.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwmechanics/character.cpp
	components/CMakeLists.txt
2018-07-14 03:57:05 +03:00
David Cernat
6d43c8d63d [Client] Send ActorAI with combat when an NPC's fight is set to 100 2018-07-14 02:55:38 +03:00
David Cernat
743933134d [Client] Simplify sending of ActorAI packets for uninitialized actors 2018-07-14 01:00:27 +03:00
David Cernat
5f4ec1331f [Client] Send ActorAI packet when combat is started via a client script 2018-07-14 00:07:15 +03:00
David Cernat
cc9e294cc0 [Client] Send ActorAI packet for new cell after being followed to it 2018-07-13 22:34:36 +03:00