Commit Graph

67 Commits (a0e89208a0b301666b626a51cdae30e552e50537)

Author SHA1 Message Date
David Cernat f100a660d4 [General] Fix ranged attack sync when using last throwing weapon or ammo 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 b5f46ada73 [General] Synchronize projectile speed for ranged attacks
This is done by including the final attackStrength used for ranged attacks in packets and then applying it in WeaponAnimation::releaseArrow() on other clients.
6 years ago
David Cernat fcd31bf4a6 [General] Fix problems with the synchronization of ranged attacks
Projectile hits now send Attack packets with RANGED attacks, and their success or failure is now synchronized.

Strike enchantments no longer require a valid victim to be synchronized.

Additional debug messages have been added for attacks.
6 years ago
David Cernat 8012d0d7b7 [General] Include hit position in PlayerAttack and ActorAttack packets 6 years ago
David Cernat ea8a41160c [General] Make ActorAttack packet consistent with PlayerAttack
Additionally, fix a typo in PlayerAttack where a boolean argument was outside of the parentheses it should have been in.
7 years ago
David Cernat 20e0100706 [General] Rework Attack packets and add synchronization for item magic 7 years ago
David Cernat 528bd26a3b [General] Allow followers to follow non-authority players through cells 7 years ago
David Cernat 09da24f1ea [General] Rename all instances of refNumIndex into refNum
This creates symmetry with mpNum and should cause less confusion in the future.
7 years ago
David Cernat bff6e9e235 [General] Implement ActorAI packet, part 5
Allow repetition for AiWander package to be turned on and off.
7 years ago
David Cernat 00c13ae96c [General] Implement ActorAI packet, part 4
The server can now make actors activate players and objects, at least in theory. In practice, OpenMW''s AiActivate package needs to be worked so it allows specific objects as targets instead of just refIds.
7 years ago
David Cernat 0e13207afe [General] Implement ActorAI packet, part 3
The server can now cancel actor AI, make actors travel to a location, make actors wander, and make actors get escorted by a player or another actor.
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
Koncord 23684489da [General] Fix clang-tidy warning
Converting integer literal to bool, use bool literal instead
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 77389538e8 [General] Implement ActorAI packet, part 1
The server can now make actors become followers of players or other actors.
7 years ago
David Cernat b9520c11da [General] Rework PlayerEquipment packets so they are of minimal size
Moreover, rename BaseNetCreature's equipedItems into equipmentItems.

(cherry picked from commit d1ad0c91f8)
7 years ago
David Cernat 34be9383e5 [General] Add isPlayer boolean to targets in packets 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
David Cernat 02af7f6ba1 [General] Add placeholders for new packet types 7 years ago
David Cernat 993081ba1e [General] Add enchantmentCharge to worldObjects and items 7 years ago
David Cernat 605b06c303 [General] Find actor speech captions instead of sending them in packets 7 years ago
David Cernat 4db64e1721 [Client] Synchronize spellcasting for non-bipedal creatures 8 years ago
David Cernat ee5c9b65c5 [General] When changing region, send new region name in PlayerCellChange 8 years ago
David Cernat 34378fbb4f [General] Make coding style consistent 8 years ago
David Cernat a84cf7c191 [General] Fix packet validation for ActorPackets sent by server scripts
This allows Lua scripts to send actor data again, which hadn't been possible anymore after 2ed1bfe
8 years ago
Koncord 2ed1bfe427 [General] Simplify ActorPackets 8 years ago
Koncord 556bf18535 [General] Minor improvements for player packets
Add compression, remove useless loop iterations
8 years ago
David Cernat d0a0b6ffa4 [General] Add basic integrity checks to all Actor and World packets 8 years ago
David Cernat 068a45be87 [General] Synchronize player & NPC rotation animations 8 years ago
David Cernat 4e5c8873e0 [General] Use ObjectSpawn instead of ObjectPlace for actors 8 years ago
David Cernat c211d53190 [General] Use only direction.pos in ActorPosition, as advised by Koncord 8 years ago
David Cernat 27148ce9eb [General] Add placeholders for 12 new packets, to be implemented soon
Additionally, make it slightly clearer who created which previously existing packets.
8 years ago
Koncord f7473e3379 [General] Fix copy-posty bug 8 years ago
David Cernat 9fe5b4a305 [General] Remove debug line from ActorAnimFlags 8 years ago
Koncord 8478fed98a [General] Simplify Actor packets. 8 years ago
Koncord f6fba70a4e [General] Use compression for Position packets 8 years ago
David Cernat 73b9683182 [General] Make most ActorPackets smaller by not including refIds in them 8 years ago
David Cernat 311ce4119d [General] Fix logic issues related to ActorEquipment 8 years ago
David Cernat 4f273932af [General] Implement sending and reading of ActorEquipment packets 8 years ago
David Cernat 7ec431ce3d [General] Make packet style more consistent 8 years ago
Koncord 956b573323 [General] Use different ordering channels for packets 8 years ago
David Cernat ad388c7e12 [General] Add placeholders for ActorEquipment & PlayerFaction packets
Also reorder packets and packet processors.
8 years ago
David Cernat f527fe9ebe [General] Add basic integrity check to reading of ActorList packets
Additionally, add newlines to files missing them.
8 years ago
David Cernat 60cf623455 [Client] Make DedicatedActors transition into LocalActors when eligible 8 years ago
David Cernat 63dd2d9246 [General] Remove code related to ActorAuthority packets that is not used 8 years ago
David Cernat 1a699329e5 [General] Set new BaseActor booleans in corresponding packets 8 years ago
David Cernat e8e0090b9b [General] Use new SimpleCreatureStats struct in BaseActor 8 years ago
David Cernat f4c3a28141 [General] Finalize ActorCellChange packet structure 8 years ago