Commit Graph

952 Commits (ffi-server-rewrite)

Author SHA1 Message Date
David Cernat 5d9893ee92 [Client] Set actor killer correctly for spells that do damage over time
Additionally, clean up comments related to other code that sets actor killers.
6 years ago
David Cernat 995d20348f [General] Always use correct ranged weapon & ammo for ranged attack sync
Previously, the player's currently selected weapon was being used in ranged attacks as in the original melee-oriented attack sync, which meant that shooting one type of projectile and then equipping another while the old projectile was still in the air turned the old projectile into the new projectile upon impact.

Additionally, avoid running most of the code in MechanicsHelper::assignAttackTarget() for non-hitting melee and ranged attacks.
6 years ago
David Cernat 33a0886790 [Client] Fix synchronization of knockdown states 6 years ago
David Cernat 8012d0d7b7 [General] Include hit position in PlayerAttack and ActorAttack packets 6 years ago
David Cernat a083439139 Merge pull request #469 from davidcernat/master while resolving conflicts
# Conflicts:
#	apps/openmw/main.cpp
#	apps/openmw/mwbase/world.hpp
#	apps/openmw/mwdialogue/dialoguemanagerimp.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwscript/dialogueextensions.cpp
#	apps/openmw/mwworld/worldimp.hpp
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
Andrei Kortunov 23d917df9c Do not use magic numbers in capacity calculations 7 years ago
David Cernat 36ac2d9de4 [Client] Set packetOrigin for all ObjectList packets sent 7 years ago
David Cernat 21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
7 years ago
Andrei Kortunov 8281fd903f Set movement speed to 0 when unconscious (bug #4519) 7 years ago
David Cernat 18a2d238ab [Client] Don't pop up dialogue screen when an NPC activates another NPC 7 years ago
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.
7 years ago
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
7 years ago
Andrei Kortunov c77c50e92b Make Equip console command to bypass most of restrictions (bug #4460) 7 years ago
David Cernat 5043fb4246 [Client] Disable clientside disarming of traps 7 years ago
David Cernat f3892d697b [Client] Disable clientside locking and unlocking of objects 7 years ago
David Cernat c075496748 [General] Replace deathReason in death packets with a killer variable
Add serverside script functions for determining the killers of both players and actors.

Use unsigned ints for script functions returning an object or actor's refNumIndex or mpNum.

Remove updateDeadState() from LocalPlayer and make its code part of updateStatsDynamic() for simplicity.
7 years ago
David Cernat a236ffc4be Merge pull request #456 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	README.md
#	apps/openmw/mwgui/quickkeysmenu.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwmechanics/combat.cpp
7 years ago
Koncord fa2bf0663e [General] Simplify vectorContains 7 years ago
Capostrophic 6e9c08083d
Add missing empty attacker checks 7 years ago
Capostrophic bccba24c40 Make unarmed creature attacks not affect armor condition (fixes #2455) 7 years ago
David Cernat 9102df7fde [General] Make WorldCollisionOverride also work with specific refIds
For now, this only makes it possible to enforce collision for specific refIds for placed objects.
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
Andrei Kortunov 5fd3ec1035 Implement unlockable locks with 'lock 0' console command 7 years ago
Marc Zinnschlag a8ad530db9 Merged pull request #1749 7 years ago
Bret Curtis 3cc6da1db2
Update door.cpp
typo fix
7 years ago
Andrei Kortunov 2a65aaf5ab Forbid actors to use teleporting doors (bug #2562) 7 years ago
Andrei Kortunov 81b78a82e8 AI: try to open doors every AI_REACTION_TIME seconds (bug #4454) 7 years ago
Andrei Kortunov b0a140e714 Disable actor collision only after end of death animation 7 years ago
Andrei Kortunov 977a27ecb7 Do not clear corpses until end of death animation (bug #4307) 7 years ago
David Cernat 3efe05a88e [General] Implement WorldCollisionOverride packet 7 years ago
David Cernat 74c2a0b311
Merge pull request #438 from OpenMW/master
Add OpenMW commits up to 24 May 2018
7 years ago
Marc Zinnschlag 2f958881b7 Merged pull request #4413 7 years ago
David Cernat 296c69d788
Merge pull request #436 from OpenMW/master
Add OpenMW commits up to 22 May 2018
7 years ago
declan-millar b8df4b7c5a Tidy in-code comment 7 years ago
declan-millar 844aef85f3 Replace spelling: soulgem -> soul gem in code comment 7 years ago
declan-millar 9ed4f33048 Replace spelling: soulgem -> soul gem 7 years ago
declan-millar 028b528c0b Get soul magnitude before checking the rebalance setting 7 years ago
declan-millar 9346a552fa Use Rebalance soulgem values option to set soulgem value 7 years ago
declan-millar 78e79d5775 Add advanced option to Rebalance soulgem values to the launcher 7 years ago
declan-millar 4b1247597e Use soulgem value rebalance formula from morrowind code patch 7 years ago
David Cernat dc9a3bf73f
Merge pull request #429 from OpenMW/master
Add OpenMW commits up to 16 May 2018
7 years ago
Bret Curtis caf1760251
Merge pull request #1707 from akortunov/weaponreach
Display weapon reach on tooltips in feet
7 years ago
Andrei Kortunov 164e3d12fe Display weapon reach on tooltips in feet. 7 years ago
Capostrophic 1c9fba9a8c Fix jumping encumbrance calculation 7 years ago
David Cernat 78234f9071 [General] Rename Event into ObjectList & WorldObject into BaseObject 7 years ago
David Cernat 5458e09c8a
Merge pull request #420 from OpenMW/master
Add OpenMW commits up to 11 May 2018
7 years ago
Alf Henrik Sauge feeee50a88 Dropping a separate NPDTstruct12 object and instead use NPDTstruct52
NPDTstruct12 is now only used when loading and saving. Turning auto calc
on and off now no longer switches between to different set of values
7 years ago
David Cernat a86c68c5a1 [General] Add sync for ranged weapon & projectile strike enchantments 7 years ago
David Cernat 3f8d94b030 [General] Synchronize strike enchantments in combat 7 years ago