You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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.
7 years ago
..
activespells.cpp [Client] Return 0 if effect not found 7 years ago
activespells.hpp [General] Send summon duration to server in ObjectSpawn packets 7 years ago
actor.cpp Refactor AiTemporaryStorage usage 7 years ago
actor.hpp Refactor AiTemporaryStorage usage 7 years ago
actors.cpp [General] Sync soul refIds for items and add related script functions 7 years ago
actors.hpp Merge pull request #457 from OpenMW/master while resolving conflicts 7 years ago
actorutil.cpp
actorutil.hpp
aiactivate.cpp [Client] Set packetOrigin for all ObjectList packets sent 7 years ago
aiactivate.hpp [Client] Allow AiActivate to be used with specific Ptrs, not just refIds 7 years ago
aiavoiddoor.cpp
aiavoiddoor.hpp
aibreathe.cpp Added AiBreathe package (feature #1374) 8 years ago
aibreathe.hpp Added AiBreathe package (feature #1374) 8 years ago
aicast.cpp Rework manual spellcasting (e.g. via scripts) 7 years ago
aicast.hpp Rework manual spellcasting (e.g. via scripts) 7 years ago
aicombat.cpp Merge pull request #457 from OpenMW/master while resolving conflicts 7 years ago
aicombat.hpp Refactor AiTemporaryStorage usage 7 years ago
aicombataction.cpp implement rateAmmo() function 7 years ago
aicombataction.hpp Combat AI: use WhenUsed enchantments 8 years ago
aiescort.cpp Store integer actor ID in AI packages (bug #4036) 7 years ago
aiescort.hpp Store integer actor ID in AI packages (bug #4036) 7 years ago
aiface.cpp
aiface.hpp
aifollow.cpp Merge pull request #457 from OpenMW/master while resolving conflicts 7 years ago
aifollow.hpp Merge pull request #457 from OpenMW/master while resolving conflicts 7 years ago
aipackage.cpp AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 7 years ago
aipackage.hpp Rework manual spellcasting (e.g. via scripts) 7 years ago
aipursue.cpp Merge pull request #456 from OpenMW/master while resolving conflicts 7 years ago
aipursue.hpp Store integer actor ID in AI packages (bug #4036) 7 years ago
aisequence.cpp Rework manual spellcasting (e.g. via scripts) 7 years ago
aisequence.hpp Refactor AiTemporaryStorage usage 7 years ago
aistate.hpp
aitravel.cpp AiTravel: store mHidden flag in savegame 7 years ago
aitravel.hpp Add mHidden field to AiTravel 7 years ago
aiwander.cpp Refactor AiTemporaryStorage usage 7 years ago
aiwander.hpp Refactor AiTemporaryStorage usage 7 years ago
alchemy.cpp [General] Implement RecordDynamic packet, part 1 7 years ago
alchemy.hpp
autocalcspell.cpp Move spell magicka cost calculation to standalone function 8 years ago
autocalcspell.hpp Show starting abilities, powers and spells in stat-review window (Fixes #2410) 8 years ago
character.cpp [General] Temporarily revert to original rotation animation sync 7 years ago
character.hpp Rework manual spellcasting (e.g. via scripts) 7 years ago
combat.cpp Merge pull request #456 from OpenMW/master while resolving conflicts 7 years ago
combat.hpp Fix some style issues flagged by cppcheck 7 years ago
coordinateconverter.cpp
coordinateconverter.hpp
creaturestats.cpp Merge pull request #460 from OpenMW/master 7 years ago
creaturestats.hpp [General] Synchronize summoned creatures 8 years ago
difficultyscaling.cpp [General] Repurpose GameConsole packet as GameSettings & add difficulty to it 8 years ago
difficultyscaling.hpp
disease.hpp
drawstate.hpp
enchanting.cpp [General] Implement RecordDynamic packet, part 1 7 years ago
enchanting.hpp Pass parameters by const reference 8 years ago
levelledlist.hpp
magiceffects.cpp
magiceffects.hpp
mechanicsmanagerimp.cpp Merge pull request #457 from OpenMW/master while resolving conflicts 7 years ago
mechanicsmanagerimp.hpp Merge pull request #457 from OpenMW/master while resolving conflicts 7 years ago
movement.hpp
npcstats.cpp [Client] Compare crimeTime and deathTime when NPCs forgive player crimes 7 years ago
npcstats.hpp [Client] Compare crimeTime and deathTime when NPCs forgive player crimes 7 years ago
objects.cpp More consistent wording of errors/warnings 8 years ago
objects.hpp
obstacle.cpp AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 7 years ago
obstacle.hpp AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 7 years ago
pathfinding.cpp [Fix] Some PVS-Studio and cppcheck fixes 7 years ago
pathfinding.hpp Move PathgridGraph out of CellStore 7 years ago
pathgrid.cpp http to https for supported urls (#1625) 7 years ago
pathgrid.hpp Move PathgridGraph out of CellStore 7 years ago
pickpocket.cpp
pickpocket.hpp
repair.cpp Added a special function for GUI sounds playing 8 years ago
repair.hpp
security.cpp [Client] Set packetOrigin for all ObjectList packets sent 7 years ago
security.hpp
spellcasting.cpp [Client] Set packetOrigin for all ObjectList packets sent 7 years ago
spellcasting.hpp Rework manual spellcasting (e.g. via scripts) 7 years ago
spellpriority.cpp Avoid fall-through in spell selection 7 years ago
spellpriority.hpp Split weapons and spells rating code from combat actions 8 years ago
spells.cpp
spells.hpp
stat.cpp Change bounds behavior of stat script commands 8 years ago
stat.hpp
steering.cpp
steering.hpp
summoning.cpp [Client] Set packetOrigin for all ObjectList packets sent 7 years ago
summoning.hpp Added a delay before summoned creature corpse despawning 7 years ago
trading.cpp Use relative stat difference for haggling 7 years ago
trading.hpp
weaponpriority.cpp implement rateAmmo() function 7 years ago
weaponpriority.hpp implement rateAmmo() function 7 years ago