- Add Mahjong packets (0xDA) with 18 sub-commands (6 outgoing, 12 incoming) - Add Bulletin Board incoming packets (0x71) with 4 sub-commands - Add Corpse Equipment packet (0x89) - Convert 0x6F Secure Trade to variants (Cancel, Toggle Accept, Update Gold) - Convert 0xB8 Profile Request to variants (Display, Edit) - Convert 0xAD Unicode Speech to variants with encoded keyword documentation - Move 0xD7 base packet from player.json to encoded.json for consistency - Fix dropdown arrow positioning in HTML template - Fix packet sorting for embedded subIds (0xBF/0x22 format) - Add reflexive relationships between related packets - Update 0x3C container content with corpse usage notes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
987 lines
No EOL
54 KiB
JSON
987 lines
No EOL
54 KiB
JSON
{
|
|
"category": "Player",
|
|
"packets": [
|
|
{
|
|
"id": "0x01",
|
|
"name": "Disconnect",
|
|
"description": "Client sends disconnect notification.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 5,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x01",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Minus One",
|
|
"type": "int",
|
|
"size": 4,
|
|
"value": "0xFFFFFFFF",
|
|
"description": "Always -1"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 317
|
|
}
|
|
},
|
|
{
|
|
"id": "0x05",
|
|
"name": "Attack Request",
|
|
"description": "Client requests to attack a mobile.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 5,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x05",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Target Serial",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"description": "Serial of mobile to attack"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 69
|
|
}
|
|
},
|
|
{
|
|
"id": "0x12",
|
|
"name": "Text Command",
|
|
"description": "Client sends text-based commands for skills, spells, virtues, etc.",
|
|
"direction": "incoming",
|
|
"isDynamic": true,
|
|
"size": "var",
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x12",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Length",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Packet length"
|
|
},
|
|
{
|
|
"name": "Command Type",
|
|
"type": "enum",
|
|
"enumType": "sequential",
|
|
"size": 1,
|
|
"description": "Type of text command",
|
|
"values": [
|
|
{
|
|
"value": "0x24",
|
|
"name": "Use Skill",
|
|
"description": "Use a skill by ID"
|
|
},
|
|
{
|
|
"value": "0x27",
|
|
"name": "Cast Spell From Book",
|
|
"description": "Cast spell from spellbook"
|
|
},
|
|
{
|
|
"value": "0x2F",
|
|
"name": "Old Scroll Click",
|
|
"description": "Old scroll double-click"
|
|
},
|
|
{
|
|
"value": "0x43",
|
|
"name": "Open Spellbook",
|
|
"description": "Open spellbook of type"
|
|
},
|
|
{
|
|
"value": "0x56",
|
|
"name": "Cast Spell Macro",
|
|
"description": "Cast spell from macro"
|
|
},
|
|
{
|
|
"value": "0x58",
|
|
"name": "Open Door",
|
|
"description": "Open door macro"
|
|
},
|
|
{
|
|
"value": "0xC7",
|
|
"name": "Animate",
|
|
"description": "Play animation"
|
|
},
|
|
{
|
|
"value": "0xF4",
|
|
"name": "Invoke Virtue",
|
|
"description": "Invoke virtue from macro"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Command",
|
|
"type": "ascii-t",
|
|
"description": "Command-specific text (skill ID, spell ID, etc.)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 119
|
|
}
|
|
},
|
|
{
|
|
"id": "0x22",
|
|
"name": "Resynchronize",
|
|
"description": "Client requests full world state resync.",
|
|
"direction": "incoming",
|
|
"noMerge": true,
|
|
"isDynamic": false,
|
|
"size": 3,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x22",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Padding",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Unused padding"
|
|
}
|
|
],
|
|
"notes": "Not related to outgoing 0x22 (Movement Acknowledgment) despite sharing the same packet ID.",
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 349
|
|
}
|
|
},
|
|
{
|
|
"id": "0x2C",
|
|
"name": "Death Status Response",
|
|
"description": "Client acknowledges death status packet. Currently ignored by server.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 2,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x2C",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Unknown",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Unknown"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 58
|
|
}
|
|
},
|
|
{
|
|
"id": "0x34",
|
|
"name": "Mobile Query",
|
|
"description": "Client queries information about a mobile (stats or skills).",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 10,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x34",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Pattern",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"value": "0xEDEDEDED",
|
|
"description": "Fixed pattern"
|
|
},
|
|
{
|
|
"name": "Query Type",
|
|
"type": "enum",
|
|
"enumType": "sequential",
|
|
"size": 1,
|
|
"description": "Type of query",
|
|
"values": [
|
|
{
|
|
"value": "0x04",
|
|
"name": "Stats",
|
|
"description": "Request mobile stats"
|
|
},
|
|
{
|
|
"value": "0x05",
|
|
"name": "Skills",
|
|
"description": "Request mobile skills"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Mobile Serial",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"description": "Serial of mobile to query"
|
|
}
|
|
],
|
|
"related": [
|
|
{
|
|
"id": "0x11",
|
|
"relationship": "response",
|
|
"note": "Mobile Status packet sent in response to stats query"
|
|
},
|
|
{
|
|
"id": "0x3A",
|
|
"relationship": "response",
|
|
"note": "Skills Update sent in response to skills query"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 376
|
|
}
|
|
},
|
|
{
|
|
"id": "0x3A",
|
|
"name": "Change Skill Lock",
|
|
"description": "Client changes the lock state of a skill.",
|
|
"direction": "incoming",
|
|
"isDynamic": true,
|
|
"size": "var",
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x3A",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Length",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Packet length"
|
|
},
|
|
{
|
|
"name": "Skill Index",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Skill index to change"
|
|
},
|
|
{
|
|
"name": "Lock State",
|
|
"type": "enum",
|
|
"enumType": "sequential",
|
|
"size": 1,
|
|
"description": "New lock state",
|
|
"values": [
|
|
{
|
|
"value": 0,
|
|
"name": "Up",
|
|
"description": "Skill gains enabled"
|
|
},
|
|
{
|
|
"value": 1,
|
|
"name": "Down",
|
|
"description": "Skill decreases enabled"
|
|
},
|
|
{
|
|
"value": 2,
|
|
"name": "Locked",
|
|
"description": "Skill locked at current value"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 331
|
|
}
|
|
},
|
|
{
|
|
"id": "0x72",
|
|
"name": "Set War Mode",
|
|
"description": "Client toggles war/peace mode.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 5,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x72",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Warmode",
|
|
"type": "bool",
|
|
"size": 1,
|
|
"description": "True = war mode, False = peace mode"
|
|
},
|
|
{
|
|
"name": "Padding",
|
|
"type": "byte",
|
|
"size": 3,
|
|
"description": "Unused padding (0x00, 0x32, 0x00)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 343
|
|
}
|
|
},
|
|
{
|
|
"id": "0x73",
|
|
"name": "Ping Request",
|
|
"description": "Client sends ping for latency measurement.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 2,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x73",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Sequence",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Ping sequence number"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 366
|
|
}
|
|
},
|
|
{
|
|
"id": "0x7D",
|
|
"name": "Menu Response",
|
|
"description": "Client responds to a displayed item menu.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 13,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x7D",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Serial",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"description": "Menu dialog serial"
|
|
},
|
|
{
|
|
"name": "Menu ID",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Menu ID (unused in implementation)"
|
|
},
|
|
{
|
|
"name": "Index",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Selected item index (1-based, 0 = cancel)"
|
|
},
|
|
{
|
|
"name": "Item ID",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Item graphic ID of selection"
|
|
},
|
|
{
|
|
"name": "Hue",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Hue of selection"
|
|
}
|
|
],
|
|
"related": [
|
|
{
|
|
"id": "0x7C",
|
|
"relationship": "request",
|
|
"note": "Display Item List Menu packet"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 287
|
|
}
|
|
},
|
|
{
|
|
"id": "0x95",
|
|
"name": "Hue Picker Response",
|
|
"description": "Client responds to a hue picker dialog.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 9,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x95",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Serial",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"description": "Hue picker serial"
|
|
},
|
|
{
|
|
"name": "Item ID",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Item ID (unused)"
|
|
},
|
|
{
|
|
"name": "Hue",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Selected hue (masked with 0x3FFF)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 86
|
|
}
|
|
},
|
|
{
|
|
"id": "0x9A",
|
|
"name": "ASCII Prompt Response",
|
|
"description": "Client responds to an ASCII text prompt.",
|
|
"direction": "incoming",
|
|
"isDynamic": true,
|
|
"size": "var",
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x9A",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Length",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Packet length"
|
|
},
|
|
{
|
|
"name": "Serial",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"description": "Prompt serial"
|
|
},
|
|
{
|
|
"name": "Prompt ID",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Prompt ID"
|
|
},
|
|
{
|
|
"name": "Type",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Response type: 0 = cancel, other = submit"
|
|
},
|
|
{
|
|
"name": "Text",
|
|
"type": "ascii-t",
|
|
"description": "Response text (max 128 chars)"
|
|
}
|
|
],
|
|
"related": [
|
|
{
|
|
"id": "0xC2",
|
|
"relationship": "request",
|
|
"note": "Prompt packet that triggered this response"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 214
|
|
}
|
|
},
|
|
{
|
|
"id": "0x9B",
|
|
"name": "Help Request",
|
|
"description": "Client requests help/GM assistance.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 258,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x9B",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Data",
|
|
"type": "byte[]",
|
|
"size": 257,
|
|
"description": "Help request data (format TBD)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 338
|
|
}
|
|
},
|
|
{
|
|
"id": "0xA4",
|
|
"name": "System Info",
|
|
"description": "Client sends system/hardware information.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 149,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xA4",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Unknown1",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Unknown2",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Unknown3",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "String1",
|
|
"type": "ascii",
|
|
"size": 32,
|
|
"description": "System string 1"
|
|
},
|
|
{
|
|
"name": "String2",
|
|
"type": "ascii",
|
|
"size": 32,
|
|
"description": "System string 2"
|
|
},
|
|
{
|
|
"name": "String3",
|
|
"type": "ascii",
|
|
"size": 32,
|
|
"description": "System string 3"
|
|
},
|
|
{
|
|
"name": "String4",
|
|
"type": "ascii",
|
|
"size": 32,
|
|
"description": "System string 4"
|
|
},
|
|
{
|
|
"name": "Unknown4",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Unknown5",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Unknown6",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Unknown7",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Unknown8",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Unknown"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 103
|
|
}
|
|
},
|
|
{
|
|
"id": "0xA7",
|
|
"name": "Request Scroll Window",
|
|
"description": "Client requests a tips/scroll window.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 4,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xA7",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Last Tip",
|
|
"type": "short",
|
|
"size": 2,
|
|
"description": "Last tip ID viewed"
|
|
},
|
|
{
|
|
"name": "Type",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Scroll type"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 63
|
|
}
|
|
},
|
|
{
|
|
"id": "0xC2",
|
|
"name": "Unicode Prompt Response",
|
|
"description": "Client responds to a Unicode text prompt.",
|
|
"direction": "incoming",
|
|
"isDynamic": true,
|
|
"size": "var",
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xC2",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Length",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Packet length"
|
|
},
|
|
{
|
|
"name": "Serial",
|
|
"type": "uint",
|
|
"size": 4,
|
|
"description": "Prompt serial"
|
|
},
|
|
{
|
|
"name": "Prompt ID",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Prompt ID"
|
|
},
|
|
{
|
|
"name": "Type",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Response type: 0 = cancel, other = submit"
|
|
},
|
|
{
|
|
"name": "Language",
|
|
"type": "ascii",
|
|
"size": 4,
|
|
"description": "Language code (e.g., \u0027ENU\u0027)"
|
|
},
|
|
{
|
|
"name": "Text",
|
|
"type": "utf16le-t",
|
|
"description": "Response text (max 128 chars)"
|
|
}
|
|
],
|
|
"related": [
|
|
{
|
|
"id": "0xC2",
|
|
"direction": "outgoing",
|
|
"relationship": "request",
|
|
"note": "Prompt packet that triggered this response"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 250
|
|
}
|
|
},
|
|
{
|
|
"id": "0xC8",
|
|
"name": "Set Update Range",
|
|
"description": "Client requests to change update range. Server ignores and sends back fixed range.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 2,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xC8",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Range",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Requested update range (ignored)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 371
|
|
}
|
|
},
|
|
{
|
|
"id": "0xD0",
|
|
"name": "Configuration File",
|
|
"description": "Client sends configuration data. Currently ignored by server.",
|
|
"direction": "incoming",
|
|
"isDynamic": true,
|
|
"size": "var",
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xD0",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Length",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Packet length"
|
|
},
|
|
{
|
|
"name": "Data",
|
|
"type": "byte[]",
|
|
"description": "Configuration data (ignored)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 322
|
|
}
|
|
},
|
|
{
|
|
"id": "0xD1",
|
|
"name": "Logout Request",
|
|
"description": "Client requests to logout.",
|
|
"direction": "incoming",
|
|
"isDynamic": false,
|
|
"size": 2,
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xD1",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Unknown",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Unknown (typically 0x01)"
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 326
|
|
}
|
|
},
|
|
{
|
|
"id": "0xF4",
|
|
"name": "Crash Report",
|
|
"description": "Client sends crash/error report.",
|
|
"direction": "incoming",
|
|
"isDynamic": true,
|
|
"size": "var",
|
|
"fields": [
|
|
{
|
|
"name": "Packet ID",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0xF4",
|
|
"description": "Packet identifier"
|
|
},
|
|
{
|
|
"name": "Length",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Packet length"
|
|
},
|
|
{
|
|
"name": "Client Major",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Client major version"
|
|
},
|
|
{
|
|
"name": "Client Minor",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Client minor version"
|
|
},
|
|
{
|
|
"name": "Client Rev",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Client revision"
|
|
},
|
|
{
|
|
"name": "Client Pat",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Client patch"
|
|
},
|
|
{
|
|
"name": "X",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Player X coordinate at crash"
|
|
},
|
|
{
|
|
"name": "Y",
|
|
"type": "ushort",
|
|
"size": 2,
|
|
"description": "Player Y coordinate at crash"
|
|
},
|
|
{
|
|
"name": "Z",
|
|
"type": "sbyte",
|
|
"size": 1,
|
|
"description": "Player Z coordinate at crash"
|
|
},
|
|
{
|
|
"name": "Map",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Map ID at crash"
|
|
},
|
|
{
|
|
"name": "Account Name",
|
|
"type": "ascii",
|
|
"size": 32,
|
|
"description": "Account name"
|
|
},
|
|
{
|
|
"name": "Character Name",
|
|
"type": "ascii",
|
|
"size": 32,
|
|
"description": "Character name"
|
|
},
|
|
{
|
|
"name": "IP Address",
|
|
"type": "ascii",
|
|
"size": 15,
|
|
"description": "Client IP address"
|
|
},
|
|
{
|
|
"name": "Unknown1",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Unknown"
|
|
},
|
|
{
|
|
"name": "Exception Code",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Exception code"
|
|
},
|
|
{
|
|
"name": "Process Name",
|
|
"type": "ascii",
|
|
"size": 100,
|
|
"description": "Process name"
|
|
},
|
|
{
|
|
"name": "Report Text",
|
|
"type": "ascii",
|
|
"size": 100,
|
|
"description": "Report text"
|
|
},
|
|
{
|
|
"name": "Terminator",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"value": "0x00",
|
|
"description": "Null terminator"
|
|
},
|
|
{
|
|
"name": "Offset",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Crash offset"
|
|
},
|
|
{
|
|
"name": "Stack Count",
|
|
"type": "byte",
|
|
"size": 1,
|
|
"description": "Number of stack trace entries"
|
|
},
|
|
{
|
|
"name": "Stack Addresses",
|
|
"type": "loop",
|
|
"loop": {
|
|
"countField": "stackCount",
|
|
"fields": [
|
|
{
|
|
"name": "Address",
|
|
"type": "int",
|
|
"size": 4,
|
|
"description": "Stack frame address"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"source": {
|
|
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
|
|
"line": 413
|
|
}
|
|
}
|
|
]
|
|
} |