diff --git a/packetdefinitions/replica/components/BaseCombatAI.structs b/packetdefinitions/replica/components/BaseCombatAI.structs new file mode 100644 index 0000000..d4b3a07 --- /dev/null +++ b/packetdefinitions/replica/components/BaseCombatAI.structs @@ -0,0 +1,5 @@ +Component 60 - BaseCombatAI (tested using LOT 6366) +Index 1 ($+824290): +[L:BIT1] - flag + [L:4] - ??? + [L:8] - ??? diff --git a/packetdefinitions/replica/components/Bouncer.structs b/packetdefinitions/replica/components/Bouncer.structs new file mode 100644 index 0000000..3db3d77 --- /dev/null +++ b/packetdefinitions/replica/components/Bouncer.structs @@ -0,0 +1,4 @@ +Component 6 - Bouncer (tested using LOT 14366) +Index 1 ($+7D6620): +[L:BIT1] - flag + [L:BIT1] - ??? diff --git a/packetdefinitions/replica/components/Character.structs b/packetdefinitions/replica/components/Character.structs new file mode 100644 index 0000000..a5a6a76 --- /dev/null +++ b/packetdefinitions/replica/components/Character.structs @@ -0,0 +1,87 @@ + +Index 24: +[L:BIT1] - flag + [L:BIT1] - flag + [L:8] - ??? + [L:1] - ??? + +Index 25-26: missing + +Index 27: +[L:BIT1] - flag + [L:4] - ??? + +Index 28: +[L:BIT1] - flag + [L:BIT1] - ??? + [L:BIT1] - ??? + +Index 29: +[EVAL:creation] - ... + [L:BIT1] - flag + [L:8] - ???, could be "co" from xml data + [L:BIT1] - flag + [L:8] - ??? + [L:BIT1] - flag + [L:8] - ??? + [L:BIT1] - flag + [L:8] - ??? + [L:4] - hair color ("hc" from xml data), u32 + [L:4] - hair style ("hs" from xml data), u32 + [L:4] - ???, could be "hd" or "hdc" from xml data, u32 + [L:4] - shirt color ("t" from xml data), u32 + [L:4] - pants color ("l" from xml data), u32 + [L:4] - ???, could be "cd" from xml data, u32 + [L:4] - ???, could be "hdc" or "hd" from xml data, u32 + [L:4] - eyebrows style ("es" from xml data), u32 + [L:4] - eyes style ("ess" from xml data), u32 + [L:4] - mouth style ("ms" from xml data), u32 + [L:8] - accountID (in xml data and chardata packet), u64 + [L:8] - "llog" from xml data, u64 + [L:8] - ???, could be a couple of things from the xml data (since its 0 in the packet), u64 + [L:8] - lego score (from xml data), u64 + [L:BIT1] - flag that sets free2play mode for player (1 means player is free2play) + [L:8] - Total Amount of Currency Collected, u64 + [L:8] - Number of Bricks Collected, u64 + [L:8] - Number of smashables smashed, u64 + [L:8] - Number of Quick Builds Completed, u64 + [L:8] - Number of enemies smashed, u64 + [L:8] - Number of Rockets used, u64 + [L:8] - Number of missions completed, u64 + [L:8] - Number of Pets tamed, u64 + [L:8] - Number of Imagination power-ups collected, u64 + [L:8] - Number of Life Power-Ups Collected, u64 + [L:8] - Number of Armor power-ups collected, u64 + [L:8] - Total Distance Traveled (in meters), u64 + [L:8] - Number of times smashed, u64 + [L:8] - Total damage taken, u64 + [L:8] - Total damage Healed, u64 + [L:8] - Total Armor Repaired, u64 + [L:8] - Total Imagination Restored, u64 + [L:8] - Total Imagination used, u64 + [L:8] - Total Distance Driven (in meters), u64 + [L:8] - Total Time Airborne in a Race Car (in seconds), u64 + [L:8] - Number of Racing Imagination power-ups collected, u64 + [L:8] - Number of Racing Imagination Crates Smashed, u64 + [L:8] - Number of Times Race Car Boost Activated, u64 + [L:8] - Number of Wrecks in a Race Car, u64 + [L:8] - Number of Racing Smashables smashed, u64 + [L:8] - Number of Races finished, u64 + [L:8] - Number of 1st Place Race Finishes, u64 + [L:BIT1] - ???, originally a [L:BIT2], simplified for parsing + [L:BIT1] - ???, originally a [L:BIT2], simplified for parsing + [L:2] - count of characters + [L:2] - ???, seems to be a string in text lego data format, sample "1:9746;1:9747;1:9748;", wchar +[L:BIT1] - flag, assert == True + [L:BIT1] - flag?, assert == False + [L:BIT1] - ???, assert == False + [L:1] - ???, assert == 0 + [L:BIT1] - ???, assert == False + [L:1] - ???, assert == 0 +[L:BIT1] - flag, assert == True + [L:4] - ??? +[L:BIT1] - flag (this and below was in a separate function in the code), assert == True + [L:8] - ??? + [L:1] - ??? (count for next struct?) + [L:BIT1] - ??? + [L:4] - ??? diff --git a/packetdefinitions/replica/components/ControllablePhysics.structs b/packetdefinitions/replica/components/ControllablePhysics.structs new file mode 100644 index 0000000..c8ed496 --- /dev/null +++ b/packetdefinitions/replica/components/ControllablePhysics.structs @@ -0,0 +1,52 @@ +[EVAL:creation] - ... + [L:BIT1] - flag + [L:4] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - flag + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? +[L:BIT1] - flag + [L:4] - ???, could be a float, float + [L:4] - ???, could be a float, float +[L:BIT1] - flag + [L:4] - ??? + [L:BIT1] - ??? +[L:BIT1] - flag + [L:BIT1] - flag + [L:4] - ??? + [L:BIT1] - ??? +[L:BIT1] - flag + [L:4] - pos x, float + [L:4] - pos y, float + [L:4] - pos z, float + [L:4] - rotation x, float + [L:4] - rotation y, float + [L:4] - rotation z, float + [L:4] - rotation w, float + [L:BIT1] - is on ground, bool + [L:BIT1] - ??? + [L:BIT1] - flag + [L:4] - velocity x, float + [L:4] - velocity y, float + [L:4] - velocity z, float + [L:BIT1] - flag + [L:4] - angular velocity x, float + [L:4] - angular velocity y, float + [L:4] - angular velocity z, float + [L:BIT1] - flag + [L:8] - ??? + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:BIT1] - flag + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [EVAL:not creation] + [L:BIT1] - flag? diff --git a/packetdefinitions/replica/components/Destructible.structs b/packetdefinitions/replica/components/Destructible.structs new file mode 100644 index 0000000..01500e6 --- /dev/null +++ b/packetdefinitions/replica/components/Destructible.structs @@ -0,0 +1,77 @@ +Index 22: +[EVAL:creation] - ... + [L:BIT1] - flag, expect == False + [L:4] - ??? (seems to be a a count for following?) + [L:4] - ??? + [L:BIT1] - flag + [L:4] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + trigger=[L:BIT1] - ???, seems to trigger L:8 below? + [L:BIT1] - ??? + [EVAL:trigger] - seems to trigger this + [L:8] - ??? + [L:4] - ??? + [L:BIT1] - flag, expect == False + [L:4] - ??? (seems to be a a count for following?) + [L:4] - ??? + [L:BIT1] - flag + [L:4] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + [L:BIT1] - ??? + trigger=[L:BIT1] - ???, seems to trigger L:8 below? + [L:BIT1] - ??? + [EVAL:trigger] - seems to trigger this + [L:8] - ??? + [L:4] - ??? + +Index 23: +[EVAL:creation] - ... + [L:BIT1] - flag + [L:4] - ???, assert == 0 + [L:4] - ???, assert == 0 + [L:4] - ??? + [L:4] - ??? + [L:4] - ???, assert == 0 + [L:4] - ???, assert == 0 + [L:4] - ???, assert == 0 + [L:4] - ???, assert == 0 + [L:4] - ??? +[L:BIT1] - flag + [L:4] - ??? + maxhealth=[L:4] - ???, has same number as max health struct, float, assert % 1 == 0 + [L:4] - ??? + maxarmor=[L:4] - ???, has same number as max armor struct, float, assert % 1 == 0 + [L:4] - ???, assert == 0 + maximag=[L:4] - ???, has same number as max imagination, float, assert % 1 == 0 + [L:4] - ???, assert == 0 + [L:BIT1] - ??? + [L:BIT1] - ???, assert == False + [L:BIT1] - ???, assert == False + [L:4] - max health, float, assert == maxhealth + [L:4] - max armor, float, assert == maxarmor + [L:4] - max imagination, float, assert == maximag + [L:4] - ??? (count for next struct?) + [L:4] - faction id? (at least something with factions) + trigger=[L:BIT1] - flag + [EVAL:creation] + [L:BIT1] - flag, assert == False + [L:BIT1] - flag, assert == False + [EVAL:trigger] + [L:BIT1] - ???, assert == False + [L:BIT1] - flag + [L:4] - ??? +[L:BIT1] - flag + [L:BIT1] - ??? \ No newline at end of file diff --git a/packetdefinitions/replica/components/Index36.structs b/packetdefinitions/replica/components/Index36.structs new file mode 100644 index 0000000..4a67702 --- /dev/null +++ b/packetdefinitions/replica/components/Index36.structs @@ -0,0 +1,3 @@ +Index 36: +[L:BIT1] - flag, assert == True + [L:8] - ??? \ No newline at end of file diff --git a/packetdefinitions/replica/components/Inventory.structs b/packetdefinitions/replica/components/Inventory.structs new file mode 100644 index 0000000..cec1936 --- /dev/null +++ b/packetdefinitions/replica/components/Inventory.structs @@ -0,0 +1,20 @@ + +Index 30: +[L:BIT1] - flag + [L:4] - # of items equipped, u32, assert > -1 and < 9 + [L:8] - objectID of item, s64 + [L:4] - LOT of item, s32 + [L:BIT1] - flag + [L:8] - ??? + [L:BIT1] - flag + [L:4] - ???, assert == 1 + [L:BIT1] - flag + [L:2] - slot in inventory + [L:BIT1] - flag + [L:4] - ???, expect == 4 + [L:BIT1] - flag + [L:4] - length of following structure + [L:1] - compressed data + [L:BIT1] - ??? (perhaps a flag that specifies if the item gets loaded or if data needs to be retrieved from the cdclient database?), expect == True +[L:BIT1] - flag, assert == True + [L:4] - ???, assert == 0 \ No newline at end of file diff --git a/packetdefinitions/replica/components/Item.structs b/packetdefinitions/replica/components/Item.structs new file mode 100644 index 0000000..ae5ca54 --- /dev/null +++ b/packetdefinitions/replica/components/Item.structs @@ -0,0 +1,10 @@ +Component 11 - Item (tested using LOT 16380) +Index 1 ($+81B2D0): +[L:BIT1] - flag + [L:8] - ??? + [L:4] - ??? + [L:BIT1] - flag, assert == False + not sure about this + [L:4] - ??? + [L:1] - ??? + diff --git a/packetdefinitions/replica/components/Pet.structs b/packetdefinitions/replica/components/Pet.structs new file mode 100644 index 0000000..6cfd74c --- /dev/null +++ b/packetdefinitions/replica/components/Pet.structs @@ -0,0 +1,15 @@ +Component 26 - Pet (tested using LOT 3995) +Index 1 ($+8D1270): +[L:BIT1] - flag + [L:4] - ??? + [L:4] - ??? + [L:BIT1] - flag + [L:8] - ??? + [L:BIT1] - flag + [L:8] - ??? + [L:BIT1] - flag + [L:4] - ??? + [L:1] - length + [L:2] - ??? + [L:1] - length + [L:2] - ??? diff --git a/packetdefinitions/replica/components/PhantomPhysics.structs b/packetdefinitions/replica/components/PhantomPhysics.structs new file mode 100644 index 0000000..1e088e3 --- /dev/null +++ b/packetdefinitions/replica/components/PhantomPhysics.structs @@ -0,0 +1,21 @@ +Component 40 - PhantomPhysics (tested using LOT 4940) +Index 1 ($+834DB0): +[L:BIT1] - flag + [L:4] - position x, float + [L:4] - position y, float + [L:4] - position z, float + [L:4] - rotation x, float + [L:4] - rotation y, float + [L:4] - rotation z, float + [L:4] - rotation w, float +[L:BIT1] - flag, assert == True + [L:BIT1] - flag, expect == False + [L:4] - ??? + [L:4] - ???, float + [L:BIT1] - flag + [L:4] - ??? + [L:4] - ??? + [L:BIT1] - flag + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float \ No newline at end of file diff --git a/packetdefinitions/replica/components/Render.structs b/packetdefinitions/replica/components/Render.structs new file mode 100644 index 0000000..72089dd --- /dev/null +++ b/packetdefinitions/replica/components/Render.structs @@ -0,0 +1,10 @@ +Index 32: +[EVAL:creation] + [L:4] - number of BehaviorEffects? (see BehaviorEffect table in cdclient), if this is -1 the client logs "Bad FX Unserialize", expect != -1 + [L:1] - effectID string length (# of letters), u8 + [L:1] - char, char + [L:4] - effectID, i32 + [L:1] - effectType, string length (# of letters), u8 + [L:2] - wchar, wchar + [L:4] - ???, float + [L:8] - ??? \ No newline at end of file diff --git a/packetdefinitions/replica/components/Script.structs b/packetdefinitions/replica/components/Script.structs new file mode 100644 index 0000000..f0e8385 --- /dev/null +++ b/packetdefinitions/replica/components/Script.structs @@ -0,0 +1,6 @@ +Component 5 - Script (tested using LOT 3495) +Index 1 ($+87CDF0): +[EVAL:creation] + [L:BIT1] - flag + [L:4] - size of following struct + [L:1] - compressed data, x bytes according to prev struct, u8 diff --git a/packetdefinitions/replica/components/ScriptedActivity.structs b/packetdefinitions/replica/components/ScriptedActivity.structs new file mode 100644 index 0000000..0e5f60b --- /dev/null +++ b/packetdefinitions/replica/components/ScriptedActivity.structs @@ -0,0 +1,16 @@ +Component 39 - ScriptedActivity (tested using LOT 11165) +Index 1 ($+9002B0): +[L:BIT1] - flag + [L:4] - length + [L:8] - ??? + constant size 10 loop + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float diff --git a/packetdefinitions/replica/components/SimplePhysics.structs b/packetdefinitions/replica/components/SimplePhysics.structs new file mode 100644 index 0000000..7b5caa7 --- /dev/null +++ b/packetdefinitions/replica/components/SimplePhysics.structs @@ -0,0 +1,22 @@ +Component 3 - SimplePhysics (tested using LOT 7701) +Index 1 ($+7E4B00): +[EVAL:creation] - ... + [L:BIT1] - ??? + [L:4] - ???, float +[L:BIT1] - flag + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float + [L:4] - ???, float +[L:BIT1] - flag + [L:4] - ???, assert == 5 +[L:BIT1] - flag + [L:4] - position x, float + [L:4] - position y, float + [L:4] - position z, float + [L:4] - rotation x, float + [L:4] - rotation y, float + [L:4] - rotation z, float + [L:4] - rotation w, float diff --git a/packetdefinitions/replica/components/Skill.structs b/packetdefinitions/replica/components/Skill.structs new file mode 100644 index 0000000..afd524c --- /dev/null +++ b/packetdefinitions/replica/components/Skill.structs @@ -0,0 +1,22 @@ +Index 31: +// component_type 9? +// Seems to be related to BehaviorTemplate +[EVAL:creation] - ... + [L:BIT1] - flag + [L:4] - count for following structs + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? + [L:4] - ??? + [L:4] - count for following structs + [L:4] - ??? + [L:4] - ???, seems to be something in BehaviorTemplate? + [L:4] - ??? + [L:4] - ???, expect == 18 + [L:8] - ??? + [L:8] - ??? + [L:8] - ???, expect == 0 + [L:BIT1] - ???, assert == False + [L:4] - ???, expect == 0 + [L:4] - ???, expect == 0 + [L:4] - ???, expect == 0 diff --git a/packetdefinitions/replica/components/Switch.structs b/packetdefinitions/replica/components/Switch.structs new file mode 100644 index 0000000..dcb12be --- /dev/null +++ b/packetdefinitions/replica/components/Switch.structs @@ -0,0 +1,3 @@ +Component 49 - Switch (tested using LOT 16143) +Index 1 ($+80EBF0): +[L:BIT1] - since this is a switch it's likely it's the switch state (on/off) diff --git a/packetdefinitions/replica/components/Vendor.structs b/packetdefinitions/replica/components/Vendor.structs new file mode 100644 index 0000000..fc8dd7e --- /dev/null +++ b/packetdefinitions/replica/components/Vendor.structs @@ -0,0 +1,5 @@ +Component 16 - Vendor (tested using LOT 8212) +Index 1 ($+7E1CB0): +[L:BIT1] - flag + [L:BIT1] - ??? + [L:BIT1] - ??? diff --git a/packetdefinitions/replica/creation_header.structs b/packetdefinitions/replica/creation_header.structs new file mode 100644 index 0000000..7628f68 --- /dev/null +++ b/packetdefinitions/replica/creation_header.structs @@ -0,0 +1,22 @@ +[L:1] - Replica packet ID, assert == 0x24 +[L:BIT1] - Whether NetworkID is there, assert == 1 + [L:2] - NetworkID, u16 +objectID=[L:8] - objectID, s64 +[L:4] - LOT, s32 +[L:1] - length, u8 + [L:2] - name, wchar +[L:4] - time_since_created_on_server? +[L:BIT1] - flag, expect == False + [L:4] - size of following struct + [L:1] - compressed data, x bytes according to prev struct, u8 +[L:BIT1] - trigger_id, expect == False +[L:BIT1] - flag + [L:8] - SpawnerID, s64 +[L:BIT1] - flag + [L:4] - spawner_node_id, expect == 0 +[L:BIT1] - flag + [L:4] - ???, float +[L:BIT1] - flag, assert == False + [L:1] - objectWorldState? +[L:BIT1] - flag, assert == False + [L:1] - ??? \ No newline at end of file diff --git a/packetdefinitions/replica/serialization_header.structs b/packetdefinitions/replica/serialization_header.structs new file mode 100644 index 0000000..3041702 --- /dev/null +++ b/packetdefinitions/replica/serialization_header.structs @@ -0,0 +1,7 @@ +[L:BIT1] - flag + [L:BIT1] - flag, expect == False + [L:8] - ??? + [L:BIT1] - ??? + [L:BIT1] - flag, expect == False + [L:2] - ??? (if > 0 read next block n times?) + [L:8] - ???