1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 00:49:54 +00:00
openmw-tes3mp/apps/openmw/mwmechanics
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.
2018-07-30 10:56:26 +03:00
..
activespells.cpp [Client] Return 0 if effect not found 2018-07-03 03:43:38 +08:00
activespells.hpp [General] Send summon duration to server in ObjectSpawn packets 2018-07-01 00:43:29 +03:00
actor.cpp Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
actor.hpp Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
actors.cpp [General] Sync soul refIds for items and add related script functions 2018-07-26 22:37:04 +03:00
actors.hpp Merge pull request #457 from OpenMW/master while resolving conflicts 2018-07-14 03:57:05 +03:00
actorutil.cpp
actorutil.hpp
aiactivate.cpp [Client] Set packetOrigin for all ObjectList packets sent 2018-07-23 01:39:43 +03:00
aiactivate.hpp [Client] Allow AiActivate to be used with specific Ptrs, not just refIds 2018-07-10 08:21:24 +03:00
aiavoiddoor.cpp
aiavoiddoor.hpp
aibreathe.cpp Added AiBreathe package (feature #1374) 2017-07-25 10:58:04 +04:00
aibreathe.hpp Added AiBreathe package (feature #1374) 2017-07-25 10:58:04 +04:00
aicast.cpp Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
aicast.hpp Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
aicombat.cpp Merge pull request #457 from OpenMW/master while resolving conflicts 2018-07-14 03:57:05 +03:00
aicombat.hpp Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
aicombataction.cpp implement rateAmmo() function 2018-01-11 21:08:11 +04:00
aicombataction.hpp Combat AI: use WhenUsed enchantments 2017-08-05 12:18:38 +04:00
aiescort.cpp Store integer actor ID in AI packages (bug #4036) 2018-06-08 19:57:41 +04:00
aiescort.hpp Store integer actor ID in AI packages (bug #4036) 2018-06-08 19:57:41 +04:00
aiface.cpp
aiface.hpp
aifollow.cpp Merge pull request #457 from OpenMW/master while resolving conflicts 2018-07-14 03:57:05 +03:00
aifollow.hpp Merge pull request #457 from OpenMW/master while resolving conflicts 2018-07-14 03:57:05 +03:00
aipackage.cpp AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 2018-06-13 17:47:32 +04:00
aipackage.hpp Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
aipursue.cpp Merge pull request #456 from OpenMW/master while resolving conflicts 2018-07-04 01:52:29 +03:00
aipursue.hpp Store integer actor ID in AI packages (bug #4036) 2018-06-08 19:57:41 +04:00
aisequence.cpp Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
aisequence.hpp Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
aistate.hpp
aitravel.cpp AiTravel: store mHidden flag in savegame 2018-06-08 21:53:47 +04:00
aitravel.hpp Add mHidden field to AiTravel 2018-06-08 21:53:47 +04:00
aiwander.cpp Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
aiwander.hpp Refactor AiTemporaryStorage usage 2018-06-27 12:48:34 +04:00
alchemy.cpp [General] Implement RecordDynamic packet, part 1 2018-07-30 10:56:26 +03:00
alchemy.hpp
autocalcspell.cpp Move spell magicka cost calculation to standalone function 2017-07-24 21:11:59 +04:00
autocalcspell.hpp Show starting abilities, powers and spells in stat-review window (Fixes #2410) 2016-11-19 21:51:19 +01:00
character.cpp [General] Temporarily revert to original rotation animation sync 2018-07-21 19:27:36 +03:00
character.hpp Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
combat.cpp Merge pull request #456 from OpenMW/master while resolving conflicts 2018-07-04 01:52:29 +03:00
combat.hpp Fix some style issues flagged by cppcheck 2017-10-15 17:06:58 +02:00
coordinateconverter.cpp
coordinateconverter.hpp
creaturestats.cpp Merge pull request #460 from OpenMW/master 2018-07-21 05:59:57 +03:00
creaturestats.hpp [General] Synchronize summoned creatures 2017-05-30 10:11:01 +03:00
difficultyscaling.cpp [General] Repurpose GameConsole packet as GameSettings & add difficulty to it 2017-06-20 05:28:45 +03:00
difficultyscaling.hpp
disease.hpp
drawstate.hpp
enchanting.cpp [General] Implement RecordDynamic packet, part 1 2018-07-30 10:56:26 +03:00
enchanting.hpp Pass parameters by const reference 2017-04-20 23:47:03 +09:00
levelledlist.hpp
magiceffects.cpp
magiceffects.hpp
mechanicsmanagerimp.cpp Merge pull request #457 from OpenMW/master while resolving conflicts 2018-07-14 03:57:05 +03:00
mechanicsmanagerimp.hpp Merge pull request #457 from OpenMW/master while resolving conflicts 2018-07-14 03:57:05 +03:00
movement.hpp
npcstats.cpp [Client] Compare crimeTime and deathTime when NPCs forgive player crimes 2018-07-06 14:17:54 +03:00
npcstats.hpp [Client] Compare crimeTime and deathTime when NPCs forgive player crimes 2018-07-06 14:17:54 +03:00
objects.cpp More consistent wording of errors/warnings 2017-03-04 21:48:31 +01:00
objects.hpp
obstacle.cpp AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 2018-06-13 17:47:32 +04:00
obstacle.hpp AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 2018-06-13 17:47:32 +04:00
pathfinding.cpp [Fix] Some PVS-Studio and cppcheck fixes 2018-04-18 12:36:10 +00:00
pathfinding.hpp Move PathgridGraph out of CellStore 2017-11-27 21:20:31 +00:00
pathgrid.cpp http to https for supported urls (#1625) 2018-03-08 21:23:24 +01:00
pathgrid.hpp Move PathgridGraph out of CellStore 2017-11-27 21:20:31 +00:00
pickpocket.cpp
pickpocket.hpp
repair.cpp Added a special function for GUI sounds playing 2017-07-10 15:48:00 +04:00
repair.hpp
security.cpp [Client] Set packetOrigin for all ObjectList packets sent 2018-07-23 01:39:43 +03:00
security.hpp
spellcasting.cpp [Client] Set packetOrigin for all ObjectList packets sent 2018-07-23 01:39:43 +03:00
spellcasting.hpp Rework manual spellcasting (e.g. via scripts) 2018-07-12 16:24:25 +04:00
spellpriority.cpp Avoid fall-through in spell selection 2018-06-28 11:12:48 +04:00
spellpriority.hpp Split weapons and spells rating code from combat actions 2017-08-01 09:05:35 +04:00
spells.cpp
spells.hpp
stat.cpp Change bounds behavior of stat script commands 2017-03-22 15:17:44 +09:00
stat.hpp
steering.cpp
steering.hpp
summoning.cpp [Client] Set packetOrigin for all ObjectList packets sent 2018-07-23 01:39:43 +03:00
summoning.hpp Added a delay before summoned creature corpse despawning 2017-08-18 11:58:28 +04:00
trading.cpp Use relative stat difference for haggling 2018-06-08 19:00:45 +03:00
trading.hpp
weaponpriority.cpp implement rateAmmo() function 2018-01-11 21:08:11 +04:00
weaponpriority.hpp implement rateAmmo() function 2018-01-11 21:08:11 +04:00