David Cernat
3f3fe66fde
[General] Track casters of spells in SpellsActive packets
...
Also simplify sending of SpellsActive packets slightly.
2021-07-21 18:14:31 +02:00
David Cernat
fe4a761ffe
[General] Implement game setting records for RecordDynamic packets
...
Remove unused placeholder for variants from RecordDynamic.
2021-07-18 11:36:07 +02:00
David Cernat
3222afc8b7
[General] Implement PlayerCooldowns packet
...
Although this packet may be used for other kinds of cooldowns in the future, it currently only handles cooldowns for magical powers.
2021-07-10 22:15:19 +02:00
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.
2021-07-04 12:54:11 +02:00
David Cernat
767287ae51
[General] Track stacking spells in SpellsActive packets
2021-06-10 13:27:52 +02:00
David Cernat
4acf9e289b
[General] Move active spell structs from BasePlayer to BaseStructs
2021-04-16 15:19:21 +02:00
David Cernat
1a4b817b31
[General] Rework ObjectDialogueChoice for multilingual compatibility
...
Use a different system for sending and applying ObjectDialogueChoice packets.
2020-12-13 08:09:14 +02:00
David Cernat
5e6218ad6d
[General] Modernize handling of client script local variables in packets
...
Disable placeholder handling of client script member variables.
2020-06-06 13:58:51 +02:00
David Cernat
8db396d10a
[General] Distinguish between shorts & longs in ClientScriptGlobal
...
Adjust ClientScriptLocal so it refers to its previously handled integers as shorts.
2020-02-17 18:19:03 +02:00
David Cernat
abd18745df
[General] Include ScriptLocalFloat as part of ClientScriptLocal
2020-02-10 07:58:35 +02:00
David Cernat
e6c626f127
[General] Move handling of client globals to ClientScriptGlobal packet
...
ClientScriptGlobal is a new Worldstate packet that handles short, long and float values for global variables in clientside scripts.
Previously, short values were handled by the ScriptGlobalShort packet, while a partially implemented ScriptGlobalFloat packet also existed, but both of those packets were Object packets because they were added near the end of 2016 when only Player and Object packets existed (with the latter actually being called WorldEvent packets at the time). Both ScriptGlobalShort and ScriptGlobalFloat have now been removed.
The serverside script functions previously used to interact with ScriptGlobalShort have, however, been kept so they can be adjusted to work with local variables in clientside scripts instead in a future commit.
2020-01-04 09:56:37 +02:00
David Cernat
c18aab5357
[General] Use default values of 0 for Attack floats in BaseStructs
2019-12-19 13:51:10 +02:00
David Cernat
868ad2b78f
[General] Use default value of false for Attack booleans in BaseStructs
2019-12-19 13:38:05 +02:00
David Cernat
9b8818687d
[General] Add mDeathAnimationFinished to mwmp::SimpleCreatureStats
2019-12-06 20:59:43 +02:00
David Cernat
140c1c9c12
[General] Use hard synchronization for melee attack animations
...
Previously, each client chose its own attack animations for DedicatedPlayers and DedicatedActors based on the direction they were walking in, which however led to desyncs for players with "Always Use Best Attack" enabled and for creatures which pick their attack animations randomly.
2019-11-29 10:39:57 +02:00
David Cernat
0d51eb5b23
[General] Use unsigned ints for refNums & mpNums in packets
2019-09-19 08:44:33 +03:00
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.
2019-08-25 09:35:23 +03:00
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.
2018-09-23 02:30:31 +03:00
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.
2018-09-18 01:13:48 +03:00
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.
2018-09-11 11:56:45 +03:00
David Cernat
8012d0d7b7
[General] Include hit position in PlayerAttack and ActorAttack packets
2018-09-08 05:29:49 +03:00
David Cernat
d93b67ef21
[General] Sync soul refIds for items and add related script functions
2018-07-26 22:37:04 +03:00
David Cernat
a4b588d1b5
[General] Add optional timestamps to journal entries in PlayerJournal
2018-07-26 04:36:12 +03:00
David Cernat
3165c84db4
[General] Rework PACKET_ORIGIN enum
...
Additionally, comment out reading of originClientScript in ObjectPacket for now.
2018-07-22 22:43:40 +03:00
David Cernat
3dc2d1b214
[General] Add packetOrigin and originClientScript to ObjectList packets
...
Additionally, add script functions for getting the packetOrigin and originClientScript of received ObjectList packets.
2018-07-22 18:38:05 +03:00
David Cernat
cb6c37a26d
[General] Replace doubles with floats in BaseStructs and BaseWorldstate
2018-07-22 14:20:20 +03:00
David Cernat
20e0100706
[General] Rework Attack packets and add synchronization for item magic
2018-07-21 14:41:27 +03:00
David Cernat
09da24f1ea
[General] Rename all instances of refNumIndex into refNum
...
This creates symmetry with mpNum and should cause less confusion in the future.
2018-07-13 04:12:03 +03:00
David Cernat
f02492a593
[General] Temporarily include target names in mwmp::Target
...
These will be removed once the server can get the names matching refIds by reading content files.
2018-07-05 19:40:28 +03:00
David Cernat
5af1150ab2
[General] Turn GameTime into a Worldstate packet
2018-05-21 07:14:08 +03:00
David Cernat
34be9383e5
[General] Add isPlayer boolean to targets in packets
2018-04-05 12:48:53 +03:00
David Cernat
a86c68c5a1
[General] Add sync for ranged weapon & projectile strike enchantments
2018-04-03 14:12:27 +03:00
David Cernat
3f8d94b030
[General] Synchronize strike enchantments in combat
2018-04-03 10:27:02 +03:00
David Cernat
9935f56d46
[General] Use doubles instead of ints for enchantmentCharge
...
Additionally, include enchantmentCharges for items in PlayerEquipment packets.
2018-01-17 08:10:49 +02:00
David Cernat
993081ba1e
[General] Add enchantmentCharge to worldObjects and items
2017-12-23 13:16:38 +02:00
David Cernat
4db64e1721
[Client] Synchronize spellcasting for non-bipedal creatures
2017-07-28 20:49:26 +03:00
David Cernat
4f273932af
[General] Implement sending and reading of ActorEquipment packets
2017-05-26 04:37:49 +03:00
David Cernat
cc559cf8e2
[General] Don't send packets for dead LocalActors, to fix Position spam
2017-05-09 02:47:29 +03:00
David Cernat
e8e0090b9b
[General] Use new SimpleCreatureStats struct in BaseActor
2017-04-30 18:44:59 +03:00
David Cernat
f2e8e14665
[General] Add shouldSend boolean to mwmp::Attack
2017-04-19 16:43:58 +03:00
David Cernat
b1a394cd02
[General] Change chars into bools in mwmp::Attack for clarity
2017-04-17 19:54:31 +03:00
David Cernat
a650683bae
[General] Add and use Target struct in mwmp::Attack
2017-04-17 18:31:39 +03:00
David Cernat
9882ceedf3
[General] Remove attackerGuid from mwmp::Attack because it is redundant
2017-04-17 18:03:33 +03:00
David Cernat
caf5428532
[General] Rename mwmp::Attack vars in preparation for Actor support
2017-04-17 17:24:11 +03:00
David Cernat
2397afc6ce
[General] Move mwmp::Attack to BaseStructs
2017-04-17 15:12:11 +03:00
David Cernat
10ad5b2a99
[General] Remove BaseActor's AnimStates that are no longer needed
2017-04-13 13:06:09 +03:00
David Cernat
7700b82952
[General] Clean up BaseEvent and BaseStructs
2017-04-10 16:33:07 +03:00
David Cernat
d3f3fb5d05
[Client] Correctly implement movement animation sync for NPCs
2017-04-08 08:59:21 +03:00