{ "category": "Mahjong", "packets": [ { "id": "0xDA", "subId": "0x19", "name": "Mahjong Join Game", "description": "Notifies client to open the Mahjong game interface.", "direction": "outgoing", "isDynamic": false, "size": 9, "fields": [ { "name": "Packet ID", "type": "byte", "size": 1, "value": "0xDA", "description": "Packet identifier" }, { "name": "Length", "type": "ushort", "size": 2, "value": "0x0009", "description": "Packet length (9)" }, { "name": "Game Serial", "type": "uint", "size": 4, "description": "Serial of the Mahjong game" }, { "name": "Command", "type": "ushort", "size": 2, "value": "0x0019", "description": "Join Game command" } ], "source": { "file": "Projects/UOContent/Items/Games/Mahjong/MahjongPackets.cs", "line": 288 } }, { "id": "0xDA", "subId": "0x03", "name": "Mahjong Tile Info", "description": "Sends information about a single Mahjong tile.", "direction": "outgoing", "isDynamic": false, "size": 18, "fields": [ { "name": "Packet ID", "type": "byte", "size": 1, "value": "0xDA", "description": "Packet identifier" }, { "name": "Length", "type": "ushort", "size": 2, "value": "0x0012", "description": "Packet length (18)" }, { "name": "Game Serial", "type": "uint", "size": 4, "description": "Serial of the Mahjong game" }, { "name": "Command", "type": "ushort", "size": 2, "value": "0x0003", "description": "Tile Info command" }, { "name": "Tile Number", "type": "byte", "size": 1, "description": "Tile index number" }, { "name": "Tile Value", "type": "byte", "size": 1, "description": "Tile face value (0 if hidden)" }, { "name": "Y Position", "type": "short", "size": 2, "description": "Tile Y coordinate" }, { "name": "X Position", "type": "short", "size": 2, "description": "Tile X coordinate" }, { "name": "Stack Level", "type": "byte", "size": 1, "description": "Stack level for overlapping tiles" }, { "name": "Direction", "type": "byte", "size": 1, "description": "Tile direction (0=Up, 1=Left, 2=Down, 3=Right)" }, { "name": "Flipped", "type": "byte", "size": 1, "description": "0x10 if flipped/face-up, 0x00 if face-down" } ], "source": { "file": "Projects/UOContent/Items/Games/Mahjong/MahjongPackets.cs", "line": 362 } }, { "id": "0xDA", "subId": "0x04", "name": "Mahjong Tiles Info", "description": "Sends information about all tiles in the Mahjong game.", "direction": "outgoing", "isDynamic": true, "size": "11+", "fields": [ { "name": "Packet ID", "type": "byte", "size": 1, "value": "0xDA", "description": "Packet identifier" }, { "name": "Length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "Game Serial", "type": "uint", "size": 4, "description": "Serial of the Mahjong game" }, { "name": "Command", "type": "ushort", "size": 2, "value": "0x0004", "description": "Tiles Info command" }, { "name": "Tile Count", "type": "short", "size": 2, "description": "Number of tiles" }, { "name": "Tiles", "type": "loop", "description": "Tile data for each tile", "loop": { "countField": "Tile Count", "fields": [ { "name": "Tile Number", "type": "byte", "size": 1, "description": "Tile index number" }, { "name": "Tile Value", "type": "byte", "size": 1, "description": "Tile face value (0 if hidden)" }, { "name": "Y Position", "type": "short", "size": 2, "description": "Tile Y coordinate" }, { "name": "X Position", "type": "short", "size": 2, "description": "Tile X coordinate" }, { "name": "Stack Level", "type": "byte", "size": 1, "description": "Stack level" }, { "name": "Direction", "type": "byte", "size": 1, "description": "Tile direction" }, { "name": "Flipped", "type": "byte", "size": 1, "description": "0x10 if flipped, 0x00 otherwise" } ] } } ], "source": { "file": "Projects/UOContent/Items/Games/Mahjong/MahjongPackets.cs", "line": 408 } }, { "id": "0xDA", "subId": "0x02", "name": "Mahjong Players Info", "description": "Sends information about all players in the Mahjong game.", "direction": "outgoing", "isDynamic": true, "size": "11+", "fields": [ { "name": "Packet ID", "type": "byte", "size": 1, "value": "0xDA", "description": "Packet identifier" }, { "name": "Length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "Game Serial", "type": "uint", "size": 4, "description": "Serial of the Mahjong game" }, { "name": "Command", "type": "ushort", "size": 2, "value": "0x0002", "description": "Players Info command" }, { "name": "Seat Count", "type": "ushort", "size": 2, "description": "Number of seats with data" }, { "name": "Players", "type": "loop", "description": "Player data for each seat", "loop": { "countField": "Seat Count", "fields": [ { "name": "Player Serial", "type": "uint", "size": 4, "description": "Serial of player (0 if empty)" }, { "name": "Dealer Flag", "type": "byte", "size": 1, "description": "1=Dealer, 2=Not dealer" }, { "name": "Position", "type": "byte", "size": 1, "description": "Seat position index" }, { "name": "Score", "type": "int", "size": 4, "description": "Player\u0027s current score" }, { "name": "Reserved", "type": "short", "size": 2, "value": "0", "description": "Reserved (always 0)" }, { "name": "Reserved 2", "type": "byte", "size": 1, "value": "0", "description": "Reserved (always 0)" }, { "name": "Public Hand", "type": "bool", "size": 1, "description": "True if hand is visible to others" }, { "name": "Name", "type": "ascii", "size": 30, "description": "Player name" }, { "name": "Empty Seat", "type": "bool", "size": 1, "description": "True if seat is empty or not in game" } ] } } ], "source": { "file": "Projects/UOContent/Items/Games/Mahjong/MahjongPackets.cs", "line": 304 } }, { "id": "0xDA", "subId": "0x05", "name": "Mahjong General Info", "description": "Sends general game state including dice values, dealer indicator, and wall break position.", "direction": "outgoing", "isDynamic": false, "size": 25, "fields": [ { "name": "Packet ID", "type": "byte", "size": 1, "value": "0xDA", "description": "Packet identifier" }, { "name": "Length", "type": "ushort", "size": 2, "value": "0x0019", "description": "Packet length (25)" }, { "name": "Game Serial", "type": "uint", "size": 4, "description": "Serial of the Mahjong game" }, { "name": "Command", "type": "ushort", "size": 2, "value": "0x0005", "description": "General Info command" }, { "name": "Reserved", "type": "short", "size": 2, "value": "0", "description": "Reserved" }, { "name": "Reserved 2", "type": "byte", "size": 1, "value": "0", "description": "Reserved" }, { "name": "Options", "type": "byte", "size": 1, "description": "Bit 0: Show Scores, Bit 1: Spectator Vision" }, { "name": "Dice 1", "type": "byte", "size": 1, "description": "First dice value" }, { "name": "Dice 2", "type": "byte", "size": 1, "description": "Second dice value" }, { "name": "Dealer Wind", "type": "enum", "size": 1, "description": "Dealer indicator wind direction", "values": [ { "value": "0", "name": "North", "description": "North wind" }, { "value": "1", "name": "East", "description": "East wind" }, { "value": "2", "name": "South", "description": "South wind" }, { "value": "3", "name": "West", "description": "West wind" } ] }, { "name": "Dealer Y", "type": "short", "size": 2, "description": "Dealer indicator Y position" }, { "name": "Dealer X", "type": "short", "size": 2, "description": "Dealer indicator X position" }, { "name": "Dealer Direction", "type": "byte", "size": 1, "description": "Dealer indicator direction" }, { "name": "Wall Break Y", "type": "short", "size": 2, "description": "Wall break indicator Y position" }, { "name": "Wall Break X", "type": "short", "size": 2, "description": "Wall break indicator X position" } ], "source": { "file": "Projects/UOContent/Items/Games/Mahjong/MahjongPackets.cs", "line": 461 } }, { "id": "0xDA", "subId": "0x1A", "name": "Mahjong Relieve", "description": "Notifies client to close the Mahjong game interface.", "direction": "outgoing", "isDynamic": false, "size": 9, "fields": [ { "name": "Packet ID", "type": "byte", "size": 1, "value": "0xDA", "description": "Packet identifier" }, { "name": "Length", "type": "ushort", "size": 2, "value": "0x0009", "description": "Packet length (9)" }, { "name": "Game Serial", "type": "uint", "size": 4, "description": "Serial of the Mahjong game" }, { "name": "Command", "type": "ushort", "size": 2, "value": "0x001A", "description": "Relieve command" } ], "source": { "file": "Projects/UOContent/Items/Games/Mahjong/MahjongPackets.cs", "line": 504 } } ] }