Commit Graph

25 Commits (master)

Author SHA1 Message Date
David Cernat 3f3fe66fde [General] Track casters of spells in SpellsActive packets
Also simplify sending of SpellsActive packets slightly.
4 years ago
David Cernat 294f64d12d [General] Track timestamps for spells in SpellsActive packets
This makes it possible to remove a specific effect in effect stacks by checking its timestamp.
4 years ago
David Cernat 767287ae51 [General] Track stacking spells in SpellsActive packets 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 cd444f8707 [Client] Send actor equipment after Container packet causes autoEquip
Previously, a Container packet with a SET action for an actor would clear their entire InventoryStore, also clearing all of their equipment slots. The actor's authority would then autoEquip new equipment for the actor, but that new equipment would not actually get sent to the other players. As a result, they would see the actor fighting with hand-to-hand attacks, while also not actually wearing anything despite being rendered as wearing the same clothes and armor as before.

This commit makes the actor's authority resend the actor's equipment as soon as the Container packet has caused the autoEquip to happen.
5 years ago
David Cernat a383b7b612 [General] Include death animations in ActorDeath packets 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 433a69a588 [Client] Send all data for newly initialized LocalActors at least once 6 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 312fc84a6f [Client] Use update timer in mwmp::Cell instead of LocalActor 8 years ago
David Cernat 4f273932af [General] Implement sending and reading of ActorEquipment packets 8 years ago
David Cernat ef12a37d59 [Client] Send ActorPosition packets based on a timeout 8 years ago
David Cernat ea7c3f2dc7 [Client] Make tes3mp combat code work with Creatures, not just NPCs 8 years ago
David Cernat 871d8c8308 [Client] Send and read ActorCellChange packets 8 years ago
David Cernat 2e8714afaa [Client] Rethink and restructure tes3mp combat code so it works for NPCs 8 years ago
David Cernat f0f0b2dcc9 [General] Send and read ActorSpeech packets 8 years ago
David Cernat 1fb11dafef [General] Send and read ActorStatsDynamic packets 8 years ago
David Cernat 2872675f5e [General] Send and read ActorAnimPlay packets 8 years ago
David Cernat e7960eee76 [General] Rename DrawState packets into AnimFlags ones for clarity 8 years ago
David Cernat d2fe777f89 [General] Send and read ActorDrawState packets 8 years ago
David Cernat d14102716d [Client] Retool LocalActors and DedicatedActors for ActorPosition packet 8 years ago
David Cernat d3f3fb5d05 [Client] Correctly implement movement animation sync for NPCs 8 years ago
David Cernat d829d219c3 [General] Add (very) partial animation sync for NPCs 8 years ago
David Cernat 0d766a7a04 [Client] Add and use mwmp::Cell class 8 years ago
David Cernat d24cde16dd [General] Add simple BaseActor and LocalActor classes 8 years ago