- Create JSON-based packet documentation for 145 packets (66 incoming, 79 outgoing) - Add HTML template with search, filtering, and navigation - Support enum/bitfield field display with values and descriptions - Support packet variants for version-specific structures - Include 0xBF extended command subpackets documentation - Add PowerShell build script to generate final HTML 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
101 lines
4.6 KiB
JSON
101 lines
4.6 KiB
JSON
{
|
|
"category": "Movement",
|
|
"packets": [
|
|
{
|
|
"id": "0x21",
|
|
"name": "Movement Rejection",
|
|
"description": "Sent by the server when player movement is blocked (collision, teleport area, etc). Contains the corrected position the client should snap back to.",
|
|
"direction": "outgoing",
|
|
"isDynamic": false,
|
|
"size": 8,
|
|
"fields": [
|
|
{ "name": "packetId", "type": "byte", "size": 1, "value": "0x21", "description": "Packet identifier" },
|
|
{ "name": "sequence", "type": "byte", "size": 1, "description": "Sequence number of the rejected movement request" },
|
|
{ "name": "x", "type": "short", "size": 2, "description": "Correct X coordinate" },
|
|
{ "name": "y", "type": "short", "size": 2, "description": "Correct Y coordinate" },
|
|
{ "name": "direction", "type": "byte", "size": 1, "description": "Correct facing direction (0-7)" },
|
|
{ "name": "z", "type": "sbyte", "size": 1, "description": "Correct Z coordinate" }
|
|
],
|
|
"related": [
|
|
{ "id": "0x02", "relationship": "request", "note": "The movement request that was rejected" }
|
|
],
|
|
"source": {
|
|
"file": "Projects/Server/Network/Packets/OutgoingMovementPackets.cs",
|
|
"line": 45
|
|
}
|
|
},
|
|
{
|
|
"id": "0x22",
|
|
"name": "Movement Acknowledgment",
|
|
"description": "Sent by the server to confirm successful player movement. Includes the player's current notoriety for display purposes.",
|
|
"direction": "outgoing",
|
|
"isDynamic": false,
|
|
"size": 3,
|
|
"fields": [
|
|
{ "name": "packetId", "type": "byte", "size": 1, "value": "0x22", "description": "Packet identifier" },
|
|
{ "name": "sequence", "type": "byte", "size": 1, "description": "Sequence number of the accepted movement request" },
|
|
{ "name": "notoriety", "type": "byte", "size": 1, "description": "Player's current notoriety flag (0=Innocent, 1=Friend, 2=Gray/Attackable, 3=Criminal, 4=Enemy, 5=Murderer, 6=Invulnerable)" }
|
|
],
|
|
"related": [
|
|
{ "id": "0x02", "relationship": "request", "note": "The movement request that was accepted" }
|
|
],
|
|
"source": {
|
|
"file": "Projects/Server/Network/Packets/OutgoingMovementPackets.cs",
|
|
"line": 42
|
|
}
|
|
},
|
|
{
|
|
"id": "0x97",
|
|
"name": "Move Player",
|
|
"description": "Server-initiated player movement. Forces the client to move in a direction (used for pushback effects, conveyors, etc).",
|
|
"direction": "outgoing",
|
|
"isDynamic": false,
|
|
"size": 2,
|
|
"fields": [
|
|
{ "name": "packetId", "type": "byte", "size": 1, "value": "0x97", "description": "Packet identifier" },
|
|
{ "name": "direction", "type": "byte", "size": 1, "description": "Direction to move (0-7). Bit 0x80 indicates running." }
|
|
],
|
|
"source": {
|
|
"file": "Projects/Server/Network/Packets/OutgoingMovementPackets.cs",
|
|
"line": 35
|
|
}
|
|
},
|
|
{
|
|
"id": "0xBF",
|
|
"subId": "0x0026",
|
|
"name": "Speed Control",
|
|
"description": "Controls the player's movement speed. Used for mount speed changes, walk/run restrictions, etc.",
|
|
"direction": "outgoing",
|
|
"isDynamic": false,
|
|
"size": 6,
|
|
"fields": [
|
|
{ "name": "packetId", "type": "byte", "size": 1, "value": "0xBF", "description": "Packet identifier" },
|
|
{ "name": "length", "type": "ushort", "size": 2, "value": "0x0006", "description": "Packet length" },
|
|
{ "name": "subCommand", "type": "ushort", "size": 2, "value": "0x0026", "description": "Sub-command for speed control" },
|
|
{ "name": "speedSetting", "type": "byte", "size": 1, "description": "Speed setting: 0=Disable (normal), 1=Mount speed, 2=Walk only" }
|
|
],
|
|
"source": {
|
|
"file": "Projects/Server/Network/Packets/OutgoingMovementPackets.cs",
|
|
"line": 31
|
|
}
|
|
},
|
|
{
|
|
"id": "0xF2",
|
|
"name": "Time Sync Response",
|
|
"description": "Server response to client time synchronization request. Contains tick counts for latency calculation.",
|
|
"direction": "outgoing",
|
|
"isDynamic": false,
|
|
"size": 25,
|
|
"fields": [
|
|
{ "name": "packetId", "type": "byte", "size": 1, "value": "0xF2", "description": "Packet identifier" },
|
|
{ "name": "tickCount1", "type": "long", "size": 8, "description": "Server tick count" },
|
|
{ "name": "tickCount2", "type": "long", "size": 8, "description": "Server tick count" },
|
|
{ "name": "tickCount3", "type": "long", "size": 8, "description": "Server tick count" }
|
|
],
|
|
"source": {
|
|
"file": "Projects/Server/Network/Packets/OutgoingMovementPackets.cs",
|
|
"line": 63
|
|
}
|
|
}
|
|
]
|
|
}
|