chore: Adds missing packets and cleans up packets.html (#2321)

This commit is contained in:
Kamron Batman 2026-01-31 10:20:48 -08:00 • committed by GitHub
parent 0b92eec791
commit 3e8f14a0ac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 1976 additions and 1931 deletions

View file

@ -1,4 +1,4 @@
{
{
"category": "Mobile",
"packets": [
{
@ -1104,8 +1104,8 @@
},
{
"id": "0x78",
"name": "Mobile Incoming",
"description": "Full mobile information including equipped items. Sent when a mobile enters view range.",
"name": "Mobile Incoming (Old)",
"description": "Full mobile information including equipped items. Sent when a mobile enters view range. Pre-Stygian Abyss version.",
"direction": "outgoing",
"isDynamic": true,
"size": "23+",
@ -1232,7 +1232,7 @@
"name": "Item ID",
"type": "ushort",
"size": 2,
"description": "Item graphic ID (bit 0x8000 = hue follows for old clients)"
"description": "Item graphic ID (15-bit, 0x7FFF mask). Bit 0x8000 indicates hue follows."
},
{
"name": "Layer",
@ -1244,8 +1244,8 @@
"name": "Hue",
"type": "short",
"size": 2,
"description": "Item hue (only if bit 0x8000 set or NewMobileIncoming)",
"condition": "hue flag or NewMobileIncoming"
"description": "Item hue (only present if bit 0x8000 set on Item ID)",
"condition": "Item ID & 0x8000"
}
]
}
@ -1259,9 +1259,351 @@
}
],
"clientVersion": {
"feature": "NewMobileIncoming",
"notes": "NewMobileIncoming clients always include hue field for equipment"
"classic": { "max": "6.x.x.x" },
"notes": "Pre-Stygian Abyss. Equipment hue only sent when non-zero (indicated by 0x8000 flag on ItemID)."
},
"related": [
{ "id": "0x78", "relationship": "variant", "note": "Mobile Incoming (SA) for 7.0.0.0+" },
{ "id": "0x78", "relationship": "variant", "note": "Mobile Incoming (New) for 7.0.33.1+" }
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingMobilePackets.cs",
"line": 601
}
},
{
"id": "0x78",
"name": "Mobile Incoming (SA)",
"description": "Full mobile information including equipped items. Sent when a mobile enters view range. Stygian Abyss version with updated packet flags.",
"direction": "outgoing",
"isDynamic": true,
"size": "23+",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x78",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Mobile serial"
},
{
"name": "Body",
"type": "short",
"size": 2,
"description": "Body/graphic ID"
},
{
"name": "X",
"type": "short",
"size": 2,
"description": "X coordinate"
},
{
"name": "Y",
"type": "short",
"size": 2,
"description": "Y coordinate"
},
{
"name": "Z",
"type": "sbyte",
"size": 1,
"description": "Z coordinate"
},
{
"name": "Direction",
"type": "byte",
"size": 1,
"description": "Facing direction"
},
{
"name": "Hue",
"type": "short",
"size": 2,
"description": "Hue/color"
},
{
"name": "Flags",
"type": "byte",
"size": 1,
"description": "Packet flags"
},
{
"name": "Notoriety",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Notoriety flag",
"values": [
{
"value": 0,
"name": "Innocent",
"description": "Blue - innocent player"
},
{
"value": 1,
"name": "Friend",
"description": "Green - ally/friend"
},
{
"value": 2,
"name": "Attackable",
"description": "Gray - can be attacked"
},
{
"value": 3,
"name": "Criminal",
"description": "Gray - criminal flag"
},
{
"value": 4,
"name": "Enemy",
"description": "Orange - enemy"
},
{
"value": 5,
"name": "Murderer",
"description": "Red - murderer"
},
{
"value": 6,
"name": "Invulnerable",
"description": "Yellow - invulnerable"
}
]
},
{
"name": "Equipment",
"type": "array",
"description": "Equipped items (terminated by 0x00000000)",
"loop": {
"countField": "variable (until terminator)",
"fields": [
{
"name": "Item Serial",
"type": "uint",
"size": 4,
"description": "Item serial (0 = end of list)"
},
{
"name": "Item ID",
"type": "ushort",
"size": 2,
"description": "Item graphic ID (15-bit, 0x7FFF mask). Bit 0x8000 indicates hue follows."
},
{
"name": "Layer",
"type": "byte",
"size": 1,
"description": "Equipment layer"
},
{
"name": "Hue",
"type": "short",
"size": 2,
"description": "Item hue (only present if bit 0x8000 set on Item ID)",
"condition": "Item ID & 0x8000"
}
]
}
},
{
"name": "Terminator",
"type": "int",
"size": 4,
"value": "0x00000000",
"description": "Equipment list terminator"
}
],
"clientVersion": {
"classic": { "min": "7.0.0.0", "max": "7.0.33.0" },
"enhanced": {},
"notes": "Stygian Abyss clients. Equipment hue only sent when non-zero (indicated by 0x8000 flag on ItemID)."
},
"related": [
{ "id": "0x78", "relationship": "variant", "note": "Mobile Incoming (Old) for pre-7.0.0.0" },
{ "id": "0x78", "relationship": "variant", "note": "Mobile Incoming (New) for 7.0.33.1+" }
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingMobilePackets.cs",
"line": 601
}
},
{
"id": "0x78",
"name": "Mobile Incoming (New)",
"description": "Full mobile information including equipped items. Sent when a mobile enters view range. NewMobileIncoming version with full 16-bit ItemID and always-present hue field.",
"direction": "outgoing",
"isDynamic": true,
"size": "23+",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x78",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Mobile serial"
},
{
"name": "Body",
"type": "short",
"size": 2,
"description": "Body/graphic ID"
},
{
"name": "X",
"type": "short",
"size": 2,
"description": "X coordinate"
},
{
"name": "Y",
"type": "short",
"size": 2,
"description": "Y coordinate"
},
{
"name": "Z",
"type": "sbyte",
"size": 1,
"description": "Z coordinate"
},
{
"name": "Direction",
"type": "byte",
"size": 1,
"description": "Facing direction"
},
{
"name": "Hue",
"type": "short",
"size": 2,
"description": "Hue/color"
},
{
"name": "Flags",
"type": "byte",
"size": 1,
"description": "Packet flags"
},
{
"name": "Notoriety",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Notoriety flag",
"values": [
{
"value": 0,
"name": "Innocent",
"description": "Blue - innocent player"
},
{
"value": 1,
"name": "Friend",
"description": "Green - ally/friend"
},
{
"value": 2,
"name": "Attackable",
"description": "Gray - can be attacked"
},
{
"value": 3,
"name": "Criminal",
"description": "Gray - criminal flag"
},
{
"value": 4,
"name": "Enemy",
"description": "Orange - enemy"
},
{
"value": 5,
"name": "Murderer",
"description": "Red - murderer"
},
{
"value": 6,
"name": "Invulnerable",
"description": "Yellow - invulnerable"
}
]
},
{
"name": "Equipment",
"type": "array",
"description": "Equipped items (terminated by 0x00000000)",
"loop": {
"countField": "variable (until terminator)",
"fields": [
{
"name": "Item Serial",
"type": "uint",
"size": 4,
"description": "Item serial (0 = end of list)"
},
{
"name": "Item ID",
"type": "ushort",
"size": 2,
"description": "Item graphic ID (full 16-bit, 0xFFFF mask)"
},
{
"name": "Layer",
"type": "byte",
"size": 1,
"description": "Equipment layer"
},
{
"name": "Hue",
"type": "short",
"size": 2,
"description": "Item hue (always present)"
}
]
}
},
{
"name": "Terminator",
"type": "int",
"size": 4,
"value": "0x00000000",
"description": "Equipment list terminator"
}
],
"clientVersion": {
"classic": { "min": "7.0.33.1" },
"notes": "NewMobileIncoming clients. Equipment always includes hue field (no 0x8000 flag needed). ItemID uses full 16-bit range."
},
"related": [
{ "id": "0x78", "relationship": "variant", "note": "Mobile Incoming (Old) for pre-7.0.0.0" },
{ "id": "0x78", "relationship": "variant", "note": "Mobile Incoming (SA) for 7.0.0.0-7.0.33.0" }
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingMobilePackets.cs",
"line": 601
@ -1625,18 +1967,21 @@
},
{
"name": "Show Bar",
"type": "short",
"type": "enum",
"size": 2,
"value": "0x0001",
"description": "Show bar (always 1)"
"description": "Show bar flag. If 0, packet ends here (no subsequent fields sent).",
"values": [
{ "value": "0", "name": "Hide", "description": "Hide healthbar, packet ends here" },
{ "value": "1", "name": "Show", "description": "Show healthbar, following fields included" }
]
},
{
"name": "Healthbar Type",
"type": "enum",
"size": 2,
"description": "Type of healthbar overlay",
"description": "Type of healthbar overlay (only sent if Show Bar = 1)",
"values": [
{ "value": "1", "name": "Poison", "description": "Poison status bar" },
{ "value": "1", "name": "Poison", "description": "Poison status bar (green)" },
{ "value": "2", "name": "Yellow", "description": "Yellow/invulnerable bar" }
]
},
@ -1644,7 +1989,7 @@
"name": "Level",
"type": "enum",
"size": 1,
"description": "Status level",
"description": "Status level (only sent if Show Bar = 1)",
"values": [
{ "value": "0", "name": "Off", "description": "Status disabled" },
{ "value": "1", "name": "Level1/On", "description": "Poison level 1 or yellow on" },
@ -1654,10 +1999,97 @@
]
}
],
"related": [
{
"id": "0x16",
"relationship": "variant",
"note": "Mobile Healthbar (EC) - Enhanced Client version"
}
],
"clientVersion": {
"classic": {},
"notes": "Classic Client only. EC uses 0x16 instead."
},
"source": {
"file": "Projects/Server/Network/Packets/OutgoingMobilePackets.cs",
"line": 419
}
},
"notes": "When Show Bar is 0, the packet is only 9 bytes (no Healthbar Type or Level fields). Poison (green) overrides yellow coloring."
},
{
"id": "0x16",
"name": "Mobile Healthbar",
"description": "Updates a mobile's healthbar status for Enhanced Client (poison level, yellow bar for invulnerability).",
"direction": "outgoing",
"isDynamic": true,
"implemented": false,
"size": "9 or 12",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x16",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length (9 or 12)"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Mobile serial"
},
{
"name": "Show Bar",
"type": "enum",
"size": 2,
"description": "Show bar flag. If 0, packet ends here (no subsequent fields sent).",
"values": [
{ "value": "0", "name": "Hide", "description": "Hide healthbar, packet ends here" },
{ "value": "1", "name": "Show", "description": "Show healthbar, following fields included" }
]
},
{
"name": "Healthbar Type",
"type": "enum",
"size": 2,
"description": "Type of healthbar overlay (only sent if Show Bar = 1)",
"values": [
{ "value": "1", "name": "Poison", "description": "Poison status bar (green)" },
{ "value": "2", "name": "Yellow", "description": "Yellow/invulnerable bar" }
]
},
{
"name": "Level",
"type": "enum",
"size": 1,
"description": "Status level (only sent if Show Bar = 1)",
"values": [
{ "value": "0", "name": "Off", "description": "Status disabled" },
{ "value": "1", "name": "Level1/On", "description": "Poison level 1 or yellow on" },
{ "value": "2", "name": "Level2", "description": "Poison level 2 (Greater)" },
{ "value": "3", "name": "Level3", "description": "Poison level 3 (Deadly)" },
{ "value": "4", "name": "Level4", "description": "Poison level 4 (Lethal)" }
]
}
],
"related": [
{
"id": "0x17",
"relationship": "variant",
"note": "Mobile Healthbar (Classic) - Classic Client version"
}
],
"clientVersion": {
"enhanced": {},
"notes": "Enhanced Client only. Classic uses 0x17 instead."
},
"notes": "When Show Bar is 0, the packet is only 9 bytes (no Healthbar Type or Level fields). Poison (green) overrides yellow coloring. ModernUO currently sends 0x17 to all clients; this EC variant needs implementation."
},
{
"id": "0xAF",
@ -1697,61 +2129,6 @@
"file": "Projects/Server/Network/Packets/OutgoingMobilePackets.cs",
"line": 78
}
},
{
"id": "0xBF",
"subId": "0x19",
"name": "Bonded Status",
"description": "Indicates whether a mobile (pet) is bonded to its owner.",
"direction": "outgoing",
"isDynamic": false,
"size": 11,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xBF",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"value": "0x000B",
"description": "Packet length (11)"
},
{
"name": "Sub-Command",
"type": "ushort",
"size": 2,
"value": "0x0019",
"description": "Sub-command for bonded status"
},
{
"name": "Command",
"type": "byte",
"size": 1,
"value": "0x00",
"description": "Command type (0 for bonded)"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Mobile serial"
},
{
"name": "Bonded",
"type": "bool",
"size": 1,
"description": "Bonded status"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingMobilePackets.cs",
"line": 44
}
}
]
}