diff --git a/examples/capture_parser.rs b/examples/capture_parser.rs index a4baa60..47ce7c1 100644 --- a/examples/capture_parser.rs +++ b/examples/capture_parser.rs @@ -96,14 +96,12 @@ fn parse(path: &Path) -> Res { packet_count += 1 } else if file.name().contains("[53-04-") && !file.name().contains("[53-04-00-16]") - && !file.name().contains("[30-00]") && !file.name().contains("[e6-00]") && !file.name().contains("[6b-03]") && !file.name().contains("[16-04]") && !file.name().contains("[49-04]") && !file.name().contains("[ad-04]") && !file.name().contains("[1c-05]") - && !file.name().contains("[48]") && !file.name().contains("[230]") && !file.name().contains("[875]") && !file.name().contains("[1046]") diff --git a/src/world/gm/server/mod.rs b/src/world/gm/server/mod.rs index 8c56f7c..2985abf 100644 --- a/src/world/gm/server/mod.rs +++ b/src/world/gm/server/mod.rs @@ -5,7 +5,8 @@ use lu_packets_derive::{GameMessage, GmParam, VariantTests}; use crate::common::{ObjId, OBJID_EMPTY}; -use super::super::{Lot, LOT_NULL, Quaternion, Vector3}; +use crate::world::{Lot, LOT_NULL, Quaternion, Vector3}; +use crate::world::amf3::Amf3; use super::{EquipInventory, GmString, GmWString, InventoryType, KillType, UnEquipInventory, MissionState, PetNotificationType, MoveItemInInventory, MoveInventoryBatch, SetIgnoreProjectileCollision}; #[derive(Debug, Deserialize, PartialEq, Serialize)] @@ -19,6 +20,7 @@ pub struct SubjectGameMessage { pub enum GameMessage { RequestDie(RequestDie) = 38, PlayEmote(PlayEmote) = 41, + ControlBehaviors(ControlBehaviors) = 48, StartSkill(StartSkill) = 119, CasterDead(CasterDead) = 120, VerifyAck(VerifyAck) = 121, @@ -154,6 +156,12 @@ pub struct PlayEmote { pub target_id: ObjId, } +#[derive(Debug, GameMessage, PartialEq)] +pub struct ControlBehaviors { + pub args: Amf3, + pub command: GmString, +} + #[derive(Debug, GameMessage, PartialEq)] pub struct StartSkill { #[default(false)] diff --git a/src/world/gm/server/tests/ControlBehaviors.bin b/src/world/gm/server/tests/ControlBehaviors.bin new file mode 100644 index 0000000..42d7966 Binary files /dev/null and b/src/world/gm/server/tests/ControlBehaviors.bin differ diff --git a/src/world/gm/server/tests/ControlBehaviors.rs b/src/world/gm/server/tests/ControlBehaviors.rs new file mode 100644 index 0000000..d6a0337 --- /dev/null +++ b/src/world/gm/server/tests/ControlBehaviors.rs @@ -0,0 +1,8 @@ +GameMessage::ControlBehaviors( + ControlBehaviors { + args: amf3! { + "enabled": false, + }, + command: lu!(b"toggleExecutionUpdates"), + }, +)