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