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": [
|
||||
{
|
||||
|
|
@ -983,7 +983,9 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "ExtendedSupportedFeatures determines which variant is sent"
|
||||
"classic": {},
|
||||
"enhanced": {},
|
||||
"notes": "ExtendedSupportedFeatures determines which variant is sent"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingAccountPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Quest",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -127,7 +127,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "HighSeas (7.0.9.0+) adds target serial"
|
||||
"classic": {
|
||||
"min": "7.0.9.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "HighSeas (7.0.9.0+) adds target serial. Pre-HS clients use 6-byte variant (max 7.0.8.x), HS+ clients use 10-byte variant."
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Skills/Tracking/OutgoingArrowPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Assistant",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Boat",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -106,7 +106,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "HighSeas"
|
||||
"classic": {
|
||||
"min": "7.0.9.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "High Seas expansion feature"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Multis/Boats/BoatPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Book",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Buff Icon",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -292,8 +292,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "5.0.2b",
|
||||
"feature": "BuffIcon"
|
||||
"classic": {
|
||||
"min": "5.0.2b"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "BuffIcon feature supported in Classic Client 5.0.2b+"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Engines/BuffIcons/BuffIconPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Bulletin Board",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Chat",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Combat",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Container",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -71,7 +71,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "HighSeas adds containerType field"
|
||||
"classic": {
|
||||
"min": "7.0.9.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "HighSeas adds containerType field"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingContainerPackets.cs",
|
||||
|
|
@ -221,7 +225,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "ContainerGridLines adds gridLocation byte"
|
||||
"classic": {
|
||||
"min": "6.0.1.7"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "ContainerGridLines adds gridLocation byte"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingContainerPackets.cs",
|
||||
|
|
@ -429,7 +437,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "ContainerGridLines (6.0.1.7+) adds gridLocation byte per item"
|
||||
"classic": {
|
||||
"min": "6.0.1.7"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "ContainerGridLines (6.0.1.7+) adds gridLocation byte per item"
|
||||
},
|
||||
"notes": "Also used for corpse contents. Corpses are special containers that display equipped items on a body graphic. Use with 0x89 Corpse Equipment for full corpse display.",
|
||||
"source": {
|
||||
|
|
@ -508,8 +520,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "5.0.0a",
|
||||
"feature": "NewSpellbook (Core.AOS \u0026\u0026 ns.NewSpellbook)"
|
||||
"classic": {
|
||||
"min": "5.0.0a"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "NewSpellbook feature (Core.AOS)"
|
||||
},
|
||||
"notes": "Used when Core.AOS \u0026\u0026 ns.NewSpellbook. Otherwise, old 0x3C format is used with spells as pseudo-items.",
|
||||
"source": {
|
||||
|
|
@ -575,7 +590,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "HighSeas"
|
||||
"classic": {
|
||||
"min": "7.0.9.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "HighSeas expansion feature"
|
||||
},
|
||||
"notes": "Uses PacketContainerBuilder for efficient dynamic growth. Commonly used by boat system to batch all visible entities on deck. Minimum packet length is 5 bytes (header only).",
|
||||
"source": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Context Menu",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -201,7 +201,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "NewHaven clients (6.0.0.0+) use command 0x02"
|
||||
"classic": {
|
||||
"min": "6.0.0.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "NewHaven clients (6.0.0.0+) use command 0x02"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Context Menus/ContextMenuSystem.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Combat",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -30,10 +30,13 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "5.0.0a",
|
||||
"feature": "DamagePacket"
|
||||
"classic": {
|
||||
"min": "5.0.0a"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "Used by Enhanced Client (all versions) and Classic Client 5.0.0a+"
|
||||
},
|
||||
"notes": "For pre-5.0.0a clients, use 0xBF/0x22 instead.",
|
||||
"notes": "For pre-5.0.0a clients, use 0xBF/0x22 instead. Enhanced Client always uses this packet format (ushort damage allows values up to 65535).",
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingDamagePackets.cs",
|
||||
"line": 34
|
||||
|
|
@ -89,10 +92,12 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"max": "5.0.0a",
|
||||
"notes": "For clients before DamagePacket feature"
|
||||
"classic": {
|
||||
"max": "5.0.0a"
|
||||
},
|
||||
"notes": "For Classic Client before DamagePacket feature. Not used by Enhanced Client."
|
||||
},
|
||||
"notes": "Damage is capped at 255 for old clients.",
|
||||
"notes": "Damage is capped at 255 for old clients. Classic Client only; Enhanced Client uses 0x0B packet.",
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingDamagePackets.cs",
|
||||
"line": 40
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Effects",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Item",
|
||||
"tags": ["Mobile"],
|
||||
"packets": [
|
||||
|
|
@ -86,8 +86,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "4.0.0a",
|
||||
"feature": "AOS tooltips"
|
||||
"classic": {
|
||||
"min": "4.0.0a"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "AOS tooltips feature"
|
||||
},
|
||||
"notes": "Hash is calculated by XORing each property\u0027s cliloc number with ((hash \u003e\u003e 31) \u0026 1) ^ (hash \u003c\u003c 1). Properties are cliloc entries with optional Unicode LE arguments separated by tabs.",
|
||||
"source": {
|
||||
|
|
@ -385,8 +388,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "7.0.0.0",
|
||||
"feature": "StygianAbyss"
|
||||
"classic": {
|
||||
"min": "7.0.0.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "StygianAbyss expansion feature"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingEntityPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Equipment",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
70
docs/packets/outgoing/freeshard.json
Normal file
70
docs/packets/outgoing/freeshard.json
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
"category": "FreeShard Protocol",
|
||||
"packets": [
|
||||
{
|
||||
"id": "0x51",
|
||||
"name": "Compact Shard Stats",
|
||||
"description": "Server response to compact shard stats query (0xF1/0xFE).",
|
||||
"direction": "outgoing",
|
||||
"isDynamic": false,
|
||||
"size": 27,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x51",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "0x001B",
|
||||
"description": "Packet length (27)"
|
||||
},
|
||||
{
|
||||
"name": "Clients",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Current client count"
|
||||
},
|
||||
{
|
||||
"name": "Items",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Total item count"
|
||||
},
|
||||
{
|
||||
"name": "Mobiles",
|
||||
"type": "int",
|
||||
"size": 4,
|
||||
"description": "Total mobile count"
|
||||
},
|
||||
{
|
||||
"name": "Age",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Server uptime in seconds"
|
||||
},
|
||||
{
|
||||
"name": "Memory",
|
||||
"type": "long",
|
||||
"size": 8,
|
||||
"description": "Memory usage in bytes"
|
||||
}
|
||||
],
|
||||
"related": [
|
||||
{
|
||||
"id": "0xF1/0xFE",
|
||||
"relationship": "request",
|
||||
"note": "Query Compact Shard Stats request"
|
||||
}
|
||||
],
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Network/UOGateway.cs",
|
||||
"line": 60
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Gump",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -216,7 +216,9 @@
|
|||
},
|
||||
{
|
||||
"name": "Noresize",
|
||||
"description": "Prevent resizing (Enhanced Client)"
|
||||
"description": "Prevent resizing (Enhanced Client)",
|
||||
"tags": ["EC"],
|
||||
"notes": "Enhanced Client only"
|
||||
},
|
||||
{
|
||||
"name": "Nodispose",
|
||||
|
|
@ -388,7 +390,9 @@
|
|||
},
|
||||
{
|
||||
"name": "Picinpic",
|
||||
"description": "Cropped sprite from gump",
|
||||
"description": "Cropped sprite from gump (sprite image rendering)",
|
||||
"tags": ["EC"],
|
||||
"notes": "Also known as GumpSpriteImage. EC-compatible.",
|
||||
"args": [
|
||||
{
|
||||
"name": "X",
|
||||
|
|
@ -965,7 +969,9 @@
|
|||
},
|
||||
{
|
||||
"name": "Tooltip",
|
||||
"description": "Tooltip on previous element",
|
||||
"description": "Tooltip on previous element (GumpTooltip)",
|
||||
"tags": ["EC"],
|
||||
"notes": "EC-compatible tooltip display.",
|
||||
"args": [
|
||||
{
|
||||
"name": "Cliloc",
|
||||
|
|
@ -982,7 +988,9 @@
|
|||
},
|
||||
{
|
||||
"name": "Itemproperty",
|
||||
"description": "Display item\u0027s OPL tooltip",
|
||||
"description": "Display item's OPL tooltip (GumpItemProperty)",
|
||||
"tags": ["EC"],
|
||||
"notes": "EC-compatible property display for items.",
|
||||
"args": [
|
||||
{
|
||||
"name": "Serial",
|
||||
|
|
@ -1001,6 +1009,12 @@
|
|||
"description": "Master gump identifier"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Echandleinput",
|
||||
"description": "EC-specific input handler",
|
||||
"tags": ["EC"],
|
||||
"notes": "Enhanced Client only"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -1030,8 +1044,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "3.0.0",
|
||||
"feature": "Compressed gumps"
|
||||
"classic": {
|
||||
"min": "3.0.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "Compressed gumps supported since Classic Client 3.0.0"
|
||||
},
|
||||
"notes": "Layout uses ASCII encoding only. The compressed lengths include a +4 offset. Decompression produces: layout as ASCII text, strings as length-prefixed UTF-16 BE entries.",
|
||||
"source": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "House",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -153,8 +153,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "4.0.0a",
|
||||
"feature": "AOS House Customization"
|
||||
"classic": {
|
||||
"min": "4.0.0a"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "AOS House Customization feature"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Multis/Houses/HousePackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Items",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -90,7 +90,9 @@
|
|||
],
|
||||
"notes": "For Stygian Abyss+ clients, use 0xF3 World Entity instead.",
|
||||
"clientVersion": {
|
||||
"max": "6.0.14.2",
|
||||
"classic": {
|
||||
"max": "6.0.14.2"
|
||||
},
|
||||
"notes": "Replaced by 0xF3 for SA+ clients"
|
||||
},
|
||||
"source": {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Light",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Mahjong",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Map",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -412,8 +412,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"min": "7.0.13.0",
|
||||
"feature": "NewCharacterList"
|
||||
"classic": {
|
||||
"min": "7.0.13.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "NewCharacterList feature"
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/UOContent/Items/Maps/MapItemPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Menu",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Message",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Movement",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Party",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Player",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -904,95 +904,249 @@
|
|||
},
|
||||
{
|
||||
"id": "0xBF/0x19",
|
||||
"name": "Stat Lock Info",
|
||||
"description": "Sends stat lock states (STR/DEX/INT) to client.",
|
||||
"name": "Extended Status",
|
||||
"description": "Multi-purpose status packet. The Type byte determines the payload: Type 0 for pet bonded status, Type 2/5 for player stat locks.",
|
||||
"direction": "outgoing",
|
||||
"isDynamic": false,
|
||||
"size": 12,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xBF",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "12",
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "short",
|
||||
"size": 2,
|
||||
"value": "0x19",
|
||||
"description": "Subcommand (Stat Lock Info)"
|
||||
},
|
||||
{
|
||||
"name": "Type",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x02",
|
||||
"description": "Type (2 = stat locks)"
|
||||
},
|
||||
{
|
||||
"name": "Serial",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Mobile serial"
|
||||
},
|
||||
{
|
||||
"name": "Unknown",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x00",
|
||||
"description": "Unknown"
|
||||
},
|
||||
{
|
||||
"name": "Lock Bits",
|
||||
"type": "bitfield",
|
||||
"size": 1,
|
||||
"description": "Packed stat lock states. Bit layout: 00SSDDII where SS=Str, DD=Dex, II=Int",
|
||||
"flags": [
|
||||
"size": "Varies",
|
||||
"fields": [],
|
||||
"variants": [
|
||||
{
|
||||
"name": "Bonded Status (Type 0)",
|
||||
"condition": "Type = 0: Pet bonding status",
|
||||
"size": 11,
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xBF",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "11",
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "0x0019",
|
||||
"description": "Extended Status subcommand"
|
||||
},
|
||||
{
|
||||
"name": "Type",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x00",
|
||||
"description": "Type 0 = Bonded Status"
|
||||
},
|
||||
{
|
||||
"name": "Serial",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Pet mobile serial"
|
||||
},
|
||||
{
|
||||
"name": "Bonded",
|
||||
"type": "bool",
|
||||
"size": 1,
|
||||
"description": "True if pet is bonded to owner"
|
||||
}
|
||||
],
|
||||
"notes": "Sent when a pet's bonded status changes or when pet info is requested."
|
||||
},
|
||||
{
|
||||
"name": "Stat Lock Info - Classic (Type 2)",
|
||||
"condition": "Type = 2: Classic Client stat locks",
|
||||
"size": 12,
|
||||
"clientVersion": {
|
||||
"classic": {}
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xBF",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "12",
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "0x0019",
|
||||
"description": "Extended Status subcommand"
|
||||
},
|
||||
{
|
||||
"name": "Type",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x02",
|
||||
"description": "Type 2 = Stat Lock Info (Classic Client)"
|
||||
},
|
||||
{
|
||||
"name": "Serial",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Player mobile serial"
|
||||
},
|
||||
{
|
||||
"name": "Unknown",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x00",
|
||||
"description": "Unknown (always 0)"
|
||||
},
|
||||
{
|
||||
"name": "Lock Bits",
|
||||
"type": "bitfield",
|
||||
"size": 1,
|
||||
"description": "Packed stat lock states (00SSDDII)",
|
||||
"flags": [
|
||||
{
|
||||
"bit": "5-4",
|
||||
"name": "Str Lock",
|
||||
"description": "Strength lock (value \u003c\u003c 4)"
|
||||
"description": "Strength lock (value << 4)"
|
||||
},
|
||||
{
|
||||
"bit": "3-2",
|
||||
"name": "Dex Lock",
|
||||
"description": "Dexterity lock (value \u003c\u003c 2)"
|
||||
"description": "Dexterity lock (value << 2)"
|
||||
},
|
||||
{
|
||||
"bit": "1-0",
|
||||
"name": "Int Lock",
|
||||
"description": "Intelligence lock (value \u003c\u003c 0)"
|
||||
"description": "Intelligence lock (value << 0)"
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"value": 0,
|
||||
"name": "Up",
|
||||
"description": "Stat will increase when gains are available"
|
||||
},
|
||||
{
|
||||
"value": 1,
|
||||
"name": "Down",
|
||||
"description": "Stat will decrease to allow other stats to increase"
|
||||
},
|
||||
{
|
||||
"value": 2,
|
||||
"name": "Locked",
|
||||
"description": "Stat will not change"
|
||||
}
|
||||
],
|
||||
"notes": "Formula: (StrLock \u003c\u003c 4) | (DexLock \u003c\u003c 2) | IntLock. Example: Str=Locked(2), Dex=Up(0), Int=Down(1) = 0b00100001 = 0x21"
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"value": 0,
|
||||
"name": "Up",
|
||||
"description": "Stat gains enabled"
|
||||
},
|
||||
{
|
||||
"value": 1,
|
||||
"name": "Down",
|
||||
"description": "Stat decreases enabled"
|
||||
},
|
||||
{
|
||||
"value": 2,
|
||||
"name": "Locked",
|
||||
"description": "Stat locked"
|
||||
}
|
||||
],
|
||||
"notes": "Formula: (StrLock << 4) | (DexLock << 2) | IntLock"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Stat Lock Info - Enhanced (Type 5)",
|
||||
"condition": "Type = 5: Enhanced Client stat locks",
|
||||
"size": 12,
|
||||
"clientVersion": {
|
||||
"enhanced": {}
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "Packet ID",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0xBF",
|
||||
"description": "Packet identifier"
|
||||
},
|
||||
{
|
||||
"name": "Length",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "12",
|
||||
"description": "Packet length"
|
||||
},
|
||||
{
|
||||
"name": "Sub-Command",
|
||||
"type": "ushort",
|
||||
"size": 2,
|
||||
"value": "0x0019",
|
||||
"description": "Extended Status subcommand"
|
||||
},
|
||||
{
|
||||
"name": "Type",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x05",
|
||||
"description": "Type 5 = Stat Lock Info (Enhanced Client)"
|
||||
},
|
||||
{
|
||||
"name": "Serial",
|
||||
"type": "uint",
|
||||
"size": 4,
|
||||
"description": "Player mobile serial"
|
||||
},
|
||||
{
|
||||
"name": "Unknown",
|
||||
"type": "byte",
|
||||
"size": 1,
|
||||
"value": "0x00",
|
||||
"description": "Unknown (always 0)"
|
||||
},
|
||||
{
|
||||
"name": "Lock Bits",
|
||||
"type": "bitfield",
|
||||
"size": 1,
|
||||
"description": "Packed stat lock states (00SSDDII)",
|
||||
"flags": [
|
||||
{
|
||||
"bit": "5-4",
|
||||
"name": "Str Lock",
|
||||
"description": "Strength lock (value << 4)"
|
||||
},
|
||||
{
|
||||
"bit": "3-2",
|
||||
"name": "Dex Lock",
|
||||
"description": "Dexterity lock (value << 2)"
|
||||
},
|
||||
{
|
||||
"bit": "1-0",
|
||||
"name": "Int Lock",
|
||||
"description": "Intelligence lock (value << 0)"
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"value": 0,
|
||||
"name": "Up",
|
||||
"description": "Stat gains enabled"
|
||||
},
|
||||
{
|
||||
"value": 1,
|
||||
"name": "Down",
|
||||
"description": "Stat decreases enabled"
|
||||
},
|
||||
{
|
||||
"value": 2,
|
||||
"name": "Locked",
|
||||
"description": "Stat locked"
|
||||
}
|
||||
],
|
||||
"notes": "Formula: (StrLock << 4) | (DexLock << 2) | IntLock"
|
||||
}
|
||||
],
|
||||
"notes": "Enhanced Client uses Type 5 instead of Type 2"
|
||||
}
|
||||
],
|
||||
"tags": ["Player", "Mobile"],
|
||||
"notes": "The Type byte after the sub-command determines the packet structure. Type 0 is for pet bonding, Types 2/5 are for player stat locks (Classic/Enhanced Client respectively).",
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
|
||||
"line": 36
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Secure Trade",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Targeting",
|
||||
"packets": [
|
||||
{
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
"variants": [
|
||||
{
|
||||
"version": "pre-HighSeas",
|
||||
"name": "Classic",
|
||||
"name": "Pre-HighSeas (26 bytes)",
|
||||
"size": 26,
|
||||
"fields": [
|
||||
{
|
||||
|
|
@ -141,8 +141,8 @@
|
|||
},
|
||||
{
|
||||
"version": "HighSeas+",
|
||||
"name": "High Seas Extended",
|
||||
"condition": "Client version \u003e= 7.0.9.0 (HighSeas)",
|
||||
"name": "HighSeas / Enhanced (30 bytes)",
|
||||
"condition": "Classic >= 7.0.9.0, or Enhanced Client (any version)",
|
||||
"size": 30,
|
||||
"fields": [
|
||||
{
|
||||
|
|
@ -210,7 +210,11 @@
|
|||
}
|
||||
],
|
||||
"clientVersion": {
|
||||
"feature": "HighSeas adds 4 bytes"
|
||||
"classic": {
|
||||
"min": "7.0.9.0"
|
||||
},
|
||||
"enhanced": {},
|
||||
"notes": "HighSeas expansion adds 4 bytes. EC always uses 30-byte variant."
|
||||
},
|
||||
"source": {
|
||||
"file": "Projects/Server/Network/Packets/OutgoingTargetPackets.cs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Vendor",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
{
|
||||
"category": "Weapon Ability",
|
||||
"packets": [
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue