chore: Adds missing packets and cleans up packets.html (#2321)
This commit is contained in:
parent
0b92eec791
commit
3e8f14a0ac
54 changed files with 1976 additions and 1931 deletions
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Account",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -295,6 +295,13 @@
|
|||
"description": "Client patch level"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"classic": {
|
||||
"min": "6.0.5.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "Replaces the legacy 4-byte seed for clients 6.0.5.0+. Pre-6.0.5.0 clients send only a 4-byte seed without version info."
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs",
|
||||
"line": 419
|
||||
|
|
@ -335,7 +342,7 @@
|
|||
{
|
||||
"id": "0xE1",
|
||||
"name": "Client Type",
|
||||
"description": "Sent by the client to identify the client type and version.",
|
||||
"description": "Sent by the client to identify the client type and version. Added during Kingdom Reborn/Stygian Abyss expansion.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"size": "var",
|
||||
|
|
@ -357,13 +364,20 @@
|
|||
"name": "Unknown",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Unknown"
|
||||
"value": "0x0001",
|
||||
"description": "Unknown (always 0x0001)"
|
||||
},
|
||||
{
|
||||
"name": "Client Type",
|
||||
"type": "ushort",
|
||||
"type": "enum",
|
||||
"enumType": "sequential",
|
||||
"size": 2,
|
||||
"description": "Client type identifier"
|
||||
"description": "Client type identifier",
|
||||
"values": [
|
||||
{ "value": "0x00", "name": "Classic", "description": "Classic 2D Client" },
|
||||
{ "value": "0x02", "name": "KR", "description": "Kingdom Reborn Client" },
|
||||
{ "value": "0x03", "name": "EC", "description": "Enhanced Client (Stygian Abyss)" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Version",
|
||||
|
|
@ -371,6 +385,20 @@
|
|||
"description": "Client version string"
|
||||
}
|
||||
],
|
||||
"related": [
|
||||
{
|
||||
"id": "0xBF/0x0F",
|
||||
"relationship": "related",
|
||||
"note": "Client Info - similar client type information sent at login"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"classic": {
|
||||
"min": "6.0.14.3"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "Added during Kingdom Reborn/Stygian Abyss expansion"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs",
|
||||
"line": 200
|
||||
|
|
@ -576,12 +604,19 @@
|
|||
{
|
||||
"id": "0xF8",
|
||||
"relationship": "variant",
|
||||
"note": "Create Character (New) for 7.0.16.0+ with 4th skill"
|
||||
"note": "Create Character (New) for Classic 7.0.16.0+ with 4th skill"
|
||||
},
|
||||
{
|
||||
"id": "0x8D",
|
||||
"relationship": "variant",
|
||||
"note": "Create Character (EC) for Enhanced Client"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"max": "7.0.15.x",
|
||||
"notes": "Replaced by 0xF8 in client 7.0.16.0+"
|
||||
"classic": {
|
||||
"max": "7.0.15.x"
|
||||
},
|
||||
"notes": "Replaced by 0xF8 in Classic Client 7.0.16.0+. EC uses 0x8D instead."
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs",
|
||||
|
|
@ -800,18 +835,247 @@
|
|||
{
|
||||
"id": "0x00",
|
||||
"relationship": "variant",
|
||||
"note": "Create Character (Old) for pre-7.0.16.0 with 3 skills"
|
||||
"note": "Create Character (Old) for Classic pre-7.0.16.0 with 3 skills"
|
||||
},
|
||||
{
|
||||
"id": "0x8D",
|
||||
"relationship": "variant",
|
||||
"note": "Create Character (EC) for Enhanced Client"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "7.0.16.0",
|
||||
"notes": "Replaces 0x00, adds 4th starting skill"
|
||||
"classic": {
|
||||
"min": "7.0.16.0"
|
||||
},
|
||||
"notes": "Classic Client only. Replaces 0x00, adds 4th starting skill. EC uses 0x8D instead."
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs",
|
||||
"line": 58
|
||||
},
|
||||
"notes": "Uses the same handler as 0x00 but with 2 additional bytes for the 4th skill."
|
||||
},
|
||||
{
|
||||
"id": "0x8D",
|
||||
"name": "Create Character",
|
||||
"description": "Request to create a new character from Enhanced Client (KR/SA 3D clients). Variable length packet with different field layout than Classic client versions.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"size": "var",
|
||||
"implemented": false,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x8D",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Pattern1",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"value": "0xEDEDEDED",
|
||||
"description": "Fixed pattern"
|
||||
},
|
||||
{
|
||||
"name": "Character Index",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Character slot index"
|
||||
},
|
||||
{
|
||||
"name": "Name",
|
||||
"type": "ascii",
|
||||
"size": 30,
|
||||
"description": "Character name"
|
||||
},
|
||||
{
|
||||
"name": "Unknown",
|
||||
"type": "byte[30]",
|
||||
"size": 30,
|
||||
"description": "Unknown (possibly password field)"
|
||||
},
|
||||
{
|
||||
"name": "Profession",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Starting profession"
|
||||
},
|
||||
{
|
||||
"name": "Client Flags",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Client flags (0x41 or 0x3F)"
|
||||
},
|
||||
{
|
||||
"name": "Gender",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "0=male, 1=female"
|
||||
},
|
||||
{
|
||||
"name": "Race",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "0=human, 1=elf, 2=gargoyle"
|
||||
},
|
||||
{
|
||||
"name": "Strength",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Starting strength"
|
||||
},
|
||||
{
|
||||
"name": "Dexterity",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Starting dexterity"
|
||||
},
|
||||
{
|
||||
"name": "Intelligence",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Starting intelligence"
|
||||
},
|
||||
{
|
||||
"name": "Skin Color",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Character skin hue"
|
||||
},
|
||||
{
|
||||
"name": "Unknown2",
|
||||
"type": "byte[8]",
|
||||
"size": 8,
|
||||
"description": "Unknown padding"
|
||||
},
|
||||
{
|
||||
"name": "Skill 1 ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "First skill ID"
|
||||
},
|
||||
{
|
||||
"name": "Skill 1 Value",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "First skill starting value"
|
||||
},
|
||||
{
|
||||
"name": "Skill 2 ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Second skill ID"
|
||||
},
|
||||
{
|
||||
"name": "Skill 2 Value",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Second skill starting value"
|
||||
},
|
||||
{
|
||||
"name": "Skill 3 ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Third skill ID"
|
||||
},
|
||||
{
|
||||
"name": "Skill 3 Value",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Third skill starting value"
|
||||
},
|
||||
{
|
||||
"name": "Skill 4 ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Fourth skill ID"
|
||||
},
|
||||
{
|
||||
"name": "Skill 4 Value",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Fourth skill starting value"
|
||||
},
|
||||
{
|
||||
"name": "Unknown3",
|
||||
"type": "byte[26]",
|
||||
"size": 26,
|
||||
"description": "Unknown padding and appearance fields"
|
||||
},
|
||||
{
|
||||
"name": "Hair Color",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Hair hue"
|
||||
},
|
||||
{
|
||||
"name": "Hair Style",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Hair graphic ID"
|
||||
},
|
||||
{
|
||||
"name": "Shirt Color",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Shirt hue"
|
||||
},
|
||||
{
|
||||
"name": "Shirt Style",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Shirt graphic ID"
|
||||
},
|
||||
{
|
||||
"name": "Face Color",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Face hue"
|
||||
},
|
||||
{
|
||||
"name": "Face Style",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Face graphic ID"
|
||||
},
|
||||
{
|
||||
"name": "Beard Color",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Facial hair hue"
|
||||
},
|
||||
{
|
||||
"name": "Beard Style",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Facial hair graphic ID"
|
||||
}
|
||||
],
|
||||
"related": [
|
||||
{
|
||||
"id": "0x00",
|
||||
"relationship": "variant",
|
||||
"note": "Create Character (Old) for Classic Client pre-7.0.16.0"
|
||||
},
|
||||
{
|
||||
"id": "0xF8",
|
||||
"relationship": "variant",
|
||||
"note": "Create Character (New) for Classic Client 7.0.16.0+"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"enhanced": {},
|
||||
"notes": "Enhanced Client only. Uses different field layout with separate gender/race bytes."
|
||||
},
|
||||
"notes": "EC clients use this packet instead of 0x00/0xF8. The field layout differs significantly from Classic client versions, with separate gender and race bytes instead of combined genderRace field."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Assistant",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Book",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Chat",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Encoded Commands (0xD7)",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -691,7 +691,10 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "Samurai Empire",
|
||||
"classic": {
|
||||
"min": "4.0.3a"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "Added with Samurai Empire expansion"
|
||||
},
|
||||
"source": {
|
||||
|
|
@ -761,7 +764,10 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "Samurai Empire",
|
||||
"classic": {
|
||||
"min": "4.0.3a"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "Added with Samurai Empire expansion"
|
||||
},
|
||||
"source": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Item",
|
||||
"tags": ["Mobile"],
|
||||
"packets": [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Extended Commands (0xBF)",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -604,9 +604,10 @@
|
|||
"id": "0xBF/0x0F",
|
||||
"subId": "0x0F",
|
||||
"name": "Client Info",
|
||||
"description": "Client type information (Spy on Client). No data is read from this packet.",
|
||||
"description": "Client type information sent once at login. ModernUO currently ignores this packet data.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"implemented": false,
|
||||
"size": "var",
|
||||
"fields": [
|
||||
{
|
||||
|
|
@ -626,14 +627,41 @@
|
|||
"name": "Sub-Command",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "0x0F",
|
||||
"value": "0x000F",
|
||||
"description": "Client Info subcommand"
|
||||
},
|
||||
{
|
||||
"name": "Unknown",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x0A",
|
||||
"description": "Unknown (always 0x0A)"
|
||||
},
|
||||
{
|
||||
"name": "Client Type",
|
||||
"type": "enum",
|
||||
"enumType": "sequential",
|
||||
"size": 4,
|
||||
"description": "Client type flag (same as character create/login)",
|
||||
"values": [
|
||||
{ "value": "0x00", "name": "Classic", "description": "Classic 2D Client" },
|
||||
{ "value": "0x02", "name": "KR", "description": "Kingdom Reborn Client" },
|
||||
{ "value": "0x03", "name": "EC", "description": "Enhanced Client (Stygian Abyss)" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"related": [
|
||||
{
|
||||
"id": "0xE1",
|
||||
"relationship": "related",
|
||||
"note": "Client Type packet - similar client type information"
|
||||
}
|
||||
],
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingExtendedCommandPackets.cs",
|
||||
"line": 52
|
||||
}
|
||||
},
|
||||
"notes": "ModernUO registers this packet but ignores its data (calls Empty handler). The client type should match the value in 0xE1 Client Type packet."
|
||||
},
|
||||
{
|
||||
"id": "0xBF/0x10",
|
||||
|
|
|
|||
134
docs/packets/incoming/freeshard.json
Normal file
134
docs/packets/incoming/freeshard.json
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
{
|
||||
"category": "FreeShard Protocol (0xF1)",
|
||||
"packets": [
|
||||
{
|
||||
"id": "0xF1",
|
||||
"name": "FreeShard Protocol",
|
||||
"description": "Bundle packet for freeshard-specific commands (UOGateway). Sub-command is a single byte.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"size": "var",
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xF1",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Subcommand ID"
|
||||
},
|
||||
{
|
||||
"name": "Data",
|
||||
"type": "byte[]",
|
||||
"description": "Subcommand-specific data"
|
||||
}
|
||||
],
|
||||
"subpackets": [
|
||||
{
|
||||
"subId": "0xFE",
|
||||
"name": "Query Compact Shard Stats",
|
||||
"direction": "incoming"
|
||||
},
|
||||
{
|
||||
"subId": "0xFF",
|
||||
"name": "Query Extended Shard Stats",
|
||||
"direction": "incoming"
|
||||
}
|
||||
],
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/FreeshardProtocol.cs",
|
||||
"line": 21
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0xF1/0xFE",
|
||||
"subId": "0xFE",
|
||||
"name": "Query Compact Shard Stats",
|
||||
"description": "Query server for compact statistics. Server responds with 0x51.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"size": "var",
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xF1",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xFE",
|
||||
"description": "Query Compact Shard Stats subcommand"
|
||||
}
|
||||
],
|
||||
"notes": "Outgame only. Requires uogateway.enabled configuration.",
|
||||
"related": [
|
||||
{
|
||||
"id": "0x51",
|
||||
"relationship": "response",
|
||||
"note": "Compact Shard Stats response"
|
||||
}
|
||||
],
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/UOGateway.cs",
|
||||
"line": 31
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0xF1/0xFF",
|
||||
"subId": "0xFF",
|
||||
"name": "Query Extended Shard Stats",
|
||||
"description": "Query server for extended statistics. Server responds with raw UTF-8 string.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"size": "var",
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xF1",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xFF",
|
||||
"description": "Query Extended Shard Stats subcommand"
|
||||
}
|
||||
],
|
||||
"notes": "Outgame only. Requires uogateway.enabled configuration. Response is a raw UTF-8 string (no packet wrapper): 'ModernUO, Name={name}, Age={hours}, Clients={count}, Items={count}, Chars={count}, Mem={kb}K, Ver=2\\0'",
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/UOGateway.cs",
|
||||
"line": 32
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
116
docs/packets/incoming/gump.json
Normal file
116
docs/packets/incoming/gump.json
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
{
|
||||
"category": "Gump",
|
||||
"packets": [
|
||||
{
|
||||
"id": "0xB1",
|
||||
"name": "Gump Response",
|
||||
"description": "Client response to a generic gump dialog (button press, checkbox/radio selections, text entries).",
|
||||
"direction": "incoming",
|
||||
"isDynamic": true,
|
||||
"size": "var",
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xB1",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Serial",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Serial from the 0xB0/0xDD gump packet"
|
||||
},
|
||||
{
|
||||
"name": "Gump ID",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Gump type ID from the 0xB0/0xDD gump packet"
|
||||
},
|
||||
{
|
||||
"name": "Button ID",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "ID of button pressed (0 if gump closed without pressing a button)"
|
||||
},
|
||||
{
|
||||
"name": "Switch Count",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Number of active switches (checkboxes/radio buttons)"
|
||||
},
|
||||
{
|
||||
"name": "Switches",
|
||||
"type": "array",
|
||||
"description": "Array of switch IDs that are active/checked",
|
||||
"entries": [
|
||||
{
|
||||
"name": "Switch ID",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "ID of an active switch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Text Entry Count",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Number of text entries"
|
||||
},
|
||||
{
|
||||
"name": "Text Entries",
|
||||
"type": "array",
|
||||
"description": "Array of text entry responses",
|
||||
"entries": [
|
||||
{
|
||||
"name": "Entry ID",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Text entry field ID"
|
||||
},
|
||||
{
|
||||
"name": "Text Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"description": "Length of text in characters"
|
||||
},
|
||||
{
|
||||
"name": "Text",
|
||||
"type": "unicode-be",
|
||||
"size": "var",
|
||||
"description": "UTF-16 BE encoded text (length * 2 bytes, not null-terminated)"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"related": [
|
||||
{
|
||||
"id": "0xB0",
|
||||
"relationship": "response",
|
||||
"note": "Generic Gump (uncompressed) - server sends this to display the gump"
|
||||
},
|
||||
{
|
||||
"id": "0xDD",
|
||||
"relationship": "response",
|
||||
"note": "Compressed Gump - server sends this to display a compressed gump"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"classic": {},
|
||||
"enhanced": {}
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Gumps/Base/GumpSystem.cs",
|
||||
"line": 31
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
188
docs/packets/incoming/hardware.json
Normal file
188
docs/packets/incoming/hardware.json
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
{
|
||||
"category": "Hardware",
|
||||
"packets": [
|
||||
{
|
||||
"id": "0xD9",
|
||||
"name": "Hardware Info",
|
||||
"description": "Client sends hardware and system information. Also known as 'Spy on Client' packet.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": false,
|
||||
"size": 268,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xD9",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Unknown",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Unknown (1 for pre-4.0.1a, 2 for 4.0.1a+)"
|
||||
},
|
||||
{
|
||||
"name": "Instance ID",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "UO client instance identifier"
|
||||
},
|
||||
{
|
||||
"name": "OS Major",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Operating system major version"
|
||||
},
|
||||
{
|
||||
"name": "OS Minor",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Operating system minor version"
|
||||
},
|
||||
{
|
||||
"name": "OS Revision",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Operating system revision"
|
||||
},
|
||||
{
|
||||
"name": "CPU Manufacturer",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "CPU manufacturer code"
|
||||
},
|
||||
{
|
||||
"name": "CPU Family",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "CPU family identifier"
|
||||
},
|
||||
{
|
||||
"name": "CPU Model",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "CPU model number"
|
||||
},
|
||||
{
|
||||
"name": "CPU Clock Speed",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "CPU clock speed in MHz"
|
||||
},
|
||||
{
|
||||
"name": "CPU Quantity",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Number of CPUs/cores"
|
||||
},
|
||||
{
|
||||
"name": "Physical Memory",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Physical memory in MB"
|
||||
},
|
||||
{
|
||||
"name": "Screen Width",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Screen width in pixels"
|
||||
},
|
||||
{
|
||||
"name": "Screen Height",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Screen height in pixels"
|
||||
},
|
||||
{
|
||||
"name": "Screen Depth",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Screen color depth in bits"
|
||||
},
|
||||
{
|
||||
"name": "DirectX Major",
|
||||
"type": "short",
|
||||
"size": 2,
|
||||
"description": "DirectX major version"
|
||||
},
|
||||
{
|
||||
"name": "DirectX Minor",
|
||||
"type": "short",
|
||||
"size": 2,
|
||||
"description": "DirectX minor version"
|
||||
},
|
||||
{
|
||||
"name": "Video Card Description",
|
||||
"type": "unicode-le",
|
||||
"size": 128,
|
||||
"description": "Video card description string (64 chars, little-endian UTF-16)"
|
||||
},
|
||||
{
|
||||
"name": "Video Card Vendor ID",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Video card vendor identifier"
|
||||
},
|
||||
{
|
||||
"name": "Video Card Device ID",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Video card device identifier"
|
||||
},
|
||||
{
|
||||
"name": "Video Card Memory",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Video card memory in MB"
|
||||
},
|
||||
{
|
||||
"name": "Distribution",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Distribution type"
|
||||
},
|
||||
{
|
||||
"name": "Clients Running",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Number of UO clients currently running"
|
||||
},
|
||||
{
|
||||
"name": "Clients Installed",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Number of UO clients installed"
|
||||
},
|
||||
{
|
||||
"name": "Partial Installed",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"description": "Partial installation flag"
|
||||
},
|
||||
{
|
||||
"name": "Language",
|
||||
"type": "unicode-le",
|
||||
"size": 8,
|
||||
"description": "Language code (4 chars, little-endian UTF-16)"
|
||||
},
|
||||
{
|
||||
"name": "Unknown2",
|
||||
"type": "ascii",
|
||||
"size": 64,
|
||||
"description": "Unknown data"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"classic": {},
|
||||
"enhanced": {},
|
||||
"notes": "Packet size is 268 bytes (0x10C) for clients 4.0.1a+"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Misc/HardwareInfo.cs",
|
||||
"line": 93
|
||||
},
|
||||
"notes": "This packet is sent automatically by the client after login. The server uses this to track hardware information for debugging and statistics purposes."
|
||||
}
|
||||
]
|
||||
}
|
||||
37
docs/packets/incoming/house.json
Normal file
37
docs/packets/incoming/house.json
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"category": "House",
|
||||
"packets": [
|
||||
{
|
||||
"id": "0xFB",
|
||||
"name": "Public House Content",
|
||||
"description": "Client toggles whether to receive content updates for public houses. When enabled, the server sends container contents for publicly accessible houses.",
|
||||
"direction": "incoming",
|
||||
"isDynamic": false,
|
||||
"size": 2,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xFB",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Show Contents",
|
||||
"type": "bool",
|
||||
"size": 1,
|
||||
"description": "0 = hide public house contents, 1 = show public house contents"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"classic": {},
|
||||
"enhanced": {}
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingHousePackets.cs",
|
||||
"line": 24
|
||||
},
|
||||
"notes": "This packet allows clients to opt-in or opt-out of receiving container content data for publicly accessible houses, which can reduce bandwidth for players who don't need to see inside public houses."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Items",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -146,7 +146,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "ContainerGridLines adds gridLocation byte"
|
||||
"classic": {
|
||||
"min": "6.0.1.7"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "ContainerGridLines adds gridLocation byte"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingItemPackets.cs",
|
||||
|
|
@ -235,6 +239,9 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"enhanced": {}
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingItemPackets.cs",
|
||||
"line": 112
|
||||
|
|
@ -283,6 +290,9 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"enhanced": {}
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/Packets/IncomingItemPackets.cs",
|
||||
"line": 125
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Map",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Message",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Mobile",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Movement",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Player",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
32
docs/packets/incoming/store.json
Normal file
32
docs/packets/incoming/store.json
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"category": "Store",
|
||||
"packets": [
|
||||
{
|
||||
"id": "0xFA",
|
||||
"name": "Open UO Store",
|
||||
"description": "Client requests to open the Ultima Store interface. Sent when player clicks the UO Store button in the client toolbar (Classic) or selects Ultima Store from the menu (Enhanced).",
|
||||
"direction": "incoming",
|
||||
"isDynamic": false,
|
||||
"size": 1,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xFA",
|
||||
"description": "Packet identifier"
|
||||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"classic": {},
|
||||
"enhanced": {},
|
||||
"notes": "Ultima Store feature"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Engines/UltimaStore/UltimaStorePackets.cs",
|
||||
"line": 10
|
||||
},
|
||||
"notes": "The Ultima Store is an in-game microtransaction store on official servers. ModernUO includes a placeholder that displays a 'not available' message. Free shards may implement their own store functionality using this packet trigger."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Targeting",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Vendor",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue