Commit Graph

98 Commits (341ca691fc8a465a81b48d7953fc800a887b46fd)

Author SHA1 Message Date
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 bf0a42fdad [General] Implement ActorSpellsActive packet, part 1
The packet can now set the active spells of DedicatedActors.
4 years ago
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
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 297a254210 [General] Rename unused ScriptMemberFloat packet to ObjectMiscellaneous 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
David Cernat abd18745df [General] Include ScriptLocalFloat as part of ClientScriptLocal 5 years ago
David Cernat 4841c1ad4c [General] Rename ScriptLocalShort into 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 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 2973cc4f4d [General] Implement OnObjectHit packet, part 1
ObjectHit is now sent when an NPC hits a non-actor object.
5 years ago
David Cernat 0e0ac7a60f [Server] Add OnConsoleCommand event and associated script function 5 years ago
David Cernat d163f1b6da [General] Turn WorldKillCount into a Worldstate packet
Rename the old WorldKillCount that was a Player packet into PlayerPlaceholder. Rename the unused CellCreate that was a Worldstate packet into WorldKillCount. On the server, move kill count-related script functions from QuestFunctions to WorldstateFunctions.
5 years ago
okdshin c15b3377da [General] Add PicoSHA2 hash generator to extern 5 years ago
David Cernat 9350e1d484 [General] Split up Attack packets into Attack and Cast ones
Create an entirely new PlayerCast packet for that purpose, but rename the already existing but unused ActorInteraction into ActorCast.
5 years ago
David Cernat 6322ae081d [Server] Add extern to folders used to search for include files 6 years ago
Koncord c2230a8a21 [Server] Add MP flag to the server if enabled 6 years ago
Koncord 55cea491ca [Server] Introduce MS VC++ 2017 support 6 years ago
Koncord b83e4056a8 [Server] Remove CallFF dependency as it not fully supported by Windows and MacOS 6 years ago
David Cernat 8df08c7d10 [General] Implement PlayerItemUse packet
Players can no longer unilaterally use items on themselves in their inventory. When they try to use an item, they send a PlayerItemUse packet to the server with the item's details. A serverside script can then check the item and either send the packet back to make the item use go through or drop it.
6 years ago
David Cernat b57807407a [General] Implement RecordDynamic packet, part 1
Spell, potion, enchantment, creature, NPC, armor, book, clothing, miscellaneous and weapon record data can now be sent in a RecordDynamic packet. Additionally, the packets include data related to associated magical effects (for spells, potions and enchantments), data related to default inventory contents (for creatures and NPCs) and data related to body parts affected (for armor and clothing).

The server now has associated script functions for setting most of the details of the above, with the main exception being individual creature and NPC stats.

Records can either be created entirely from scratch or can use an existing record (set via the baseId variable) as a starting point for their values. In the latter case, only the values that are specifically set override the starting values. Creature and NPC records also have an inventoryBaseId that can be used on top of the baseId to base their inventories on another existing record.

The client's RecordHelper class has been heavily expanded to allow for the above mentioned functionality.

When players create spells, potions and enchantments as part of regular gameplay, they send RecordDynamic packets that provide the server with the complete details of the records that should be created. When they create enchantments, they also provide the server with armor, book, clothing and weapon records corresponding to the items they've enchanted.

This functionality added by this packet was originally supposed to be exclusive to the rewrite, but I've gone ahead and tried to provide it for the pre-rewrite in a way that can mostly be reused for the rewrite.
7 years ago
David Cernat 0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 7 years ago
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.
7 years ago
David Cernat 81b160cae8 [General] Add placeholder for ObjectActivate packet 7 years ago
David Cernat 61da0d2475 [General] Turn PlayerInteraction into PlayerInput 7 years ago
David Cernat 837c5369c0 [Server] Add OnActorAI event and remove autosync for ActorAI packets 7 years ago
David Cernat 141e404ed9 [Server] Move server administration functions to ServerFunctions class 7 years ago
Koncord 470ea50b54 [General] Use LuaJit instead default Lua 7 years ago
Koncord 62877f38b7 [General] Remove Terra support
Use LuaJIT instead.
7 years ago
Koncord 685a80887b Remove Pawn support 7 years ago
David Cernat 7ffdb18bf9 [General] Implement ActorDeath packet, part 1
ActorDeath packets are sent for dead actors before their StatsDynamic packets. They contain the actor's deathReason in a manner similar to that of PlayerDeath packets.

A future commit will replace the deathReason with a variable named killer which will be an mwmp::Target.
7 years ago
David Cernat 72862dc255 [General] Turn PlayerMap into WorldMap, now a Worldstate packet 7 years ago
David Cernat 0be6de6607 [General] Turn RecordDynamic into a Worldstate packet 7 years ago
David Cernat 43a944ddaf [General] Add and implement new Worldstate packet type 7 years ago
David Cernat e8b22a2e5e [Server] Use correct source group for ObjectProcessors 7 years ago
David Cernat 049d0d9ba7 [General] Fix remaining references to world packets/events 7 years ago
David Cernat 02d8e08c58 [Server] Rename WorldProcessor into ObjectProcessor 7 years ago
David Cernat bef36f77ca [Server] Create WorldstateFunctions and move GameTime functions there 7 years ago
David Cernat d4f7936a76 [Server] Rename WorldFunctions into ObjectFunctions 7 years ago
David Cernat 76e7392a84 [Server] Create ShapeshiftFunctions and move relevant functions there 7 years ago
David Cernat 02af7f6ba1 [General] Add placeholders for new packet types 7 years ago
David Cernat 50d5fffb7f [General] Add and implement PlayerQuickKeys packet 7 years ago
David Cernat 43a3daf0aa [General] Add & implement PlayerShapeshift packet for werewolf states 8 years ago
David Cernat 3280f0c5ee [General] Implement PlayerJail packet
Rework server's DeathFunctions into MechanicsFunctions

Remove connection between PlayerResurrect and jailing
8 years ago
David Cernat 3529f9b090 [General] Add placeholders for PlayerJail, ObjectState & ConsoleCommand 8 years ago
Koncord 768790e9b4 [Server] Move Base processors and Initializer to processors subdirectory 8 years ago
Koncord 15a197cb9a [Server] Temporarily disable CallFF for ARM 8 years ago
Koncord 1c09e0c255 [Server] Add CallFF dependency 8 years ago
David Cernat 813a3c89c4 [General] Implement PlayerBook packet to track skill books read 8 years ago