UO游戏代码游戏协议参考
https://sourceforge.net/projects/freeuoclients/
http://www.emuresource.com/
http://developer.berlios.de/projects/hypnos/
http://uop.sourceforge.net
00 - Login
Create a new character
0x68 bytes
byteID (00)
dword0xedededed
dword0xffffffff
byte0
char[60]Character Name
byteGender
byteStrength
byteDexterity
byteIntelligence
byteSkill 1
byteSkill 1 Amount
byteSkill 2
byteSkill 2 Amount
byteSkill 3
byteSkill 3 Amount
wordSkin Color
wordHair Style
wordHair Color
wordBeard Style
wordBeard Color
wordStarting City
word0
wordSlot
dwordClient IP
wordShirt color
wordPants Color
01 - Logout
Character returns to main menu from character select menu.
5 bytes
byteID (01)
dword0xffffffff
02 - Req Move
Ask the server if we can walk.
7 bytes
byteID (02)
byteDirection
byteSequence Number
dwordFastwalk Prevention Key
03 - Speech
Send speech to the server
byteID (03)
wordSize of Packet
byteMode (0=say,2=emote,8=whipser,9=yell)
wordText Color
wordFont
byte[*]Text
04 - God Mode Toggle
Toggles god mode on/off
2 bytes
byteID (04)
byteGod mode on/off
05 - Attack
Send attack to server
5 bytes
byteID (05)
dwordSerial of character to attack
06 - Req Obj Use
Ask the server if we can use an object (double click)
5 bytes
byteID (06)
dwordSerial of item double clicked
07 - Req Get Obj
Ask the server for item
7 bytes
byteID (07)
dwordSerial of item
wordAmount of item
08 - Req Drop Obj
Ask the server to drop an item
0x0E bytes
byteID (08)
dwordItem Serial
wordX
wordY
charZ
dwordContainer Serial (-1 = ground)
09 - Req Look
Ask the server to look at an item (single click)
5 bytes
byteID (09)
dwordSerial of item single clicked
0A - Edit
Edit dynamics and statics
0x0B bytes
Types are:
04 = Dynamic item
07 = NPC
0A = Static Item
byteID (0A)
byteType
wordX
wordY
wordID
byteZ
wordUnknown
0B - Edit Area
Edit Area
0x0A bytes
byteID (0B)
byte[9]Unknown
0C - Tile Data
Alter tiledata (send new tiledata to the server)
byteID (0C)
wordPacket Size
wordTile ID
byte[37]New Tile data (see tiledata.mul)
wordF777
0D - NPC Data
Send new NPC data to the server
3 bytes
byteID (0D)
byte[2]Unknown
0E - Template Data
Edit template data
byteID (0E)
byte[2]Packet Size
byte[*]Unknown
0F - Paperdoll
Paperdoll
0x3D bytes
byteID (0F)
byte[0x3C]Unknown
10 - Hue Data
Modify Hue Data
0xD7 bytes
byteID (10)
byte[0xD6]Unknown
11 - Mobile Stat
The status of a character
byteID (11)
wordPacket Size
dwordSerial
char[30]Character Name
wordHit Points
wordMax Hit Points
byteAllow Name change (FFh = yes)
byteValid stats (1 = yes)
byteGender
wordStrength
wordDexterity
wordIntelligence
wordStamina
wordMax Stamina
wordMana
wordMax Mana
dwordGold
wordArmor Rating
wordWeight
12 - God Command
External command, use skill, magic, etc
CommandTypes:
0x24 = Use Skill
0x56 = Macro Spell
0x58 = Open Door
0x6b = God Mode Command
0xc7 = Action
byteID (12)
wordPacket Size
byteCommandType
byte[*]Command
13 - Req Obj Equip
Equip an item
0x0A bytes
byteID (13)
dwordItem Serial
byteLayer
dwordContainer Serial
14 - Elev Change
Change Z value of item
6 bytes
byteID (14)
byte[5]Unknown
15 - Follow
Follow character
9 bytes
byteID (15)
byte[8]Unknown
16 - Req Script Names
Get a list of script names
1 byte
byteID (16)
17 - Script Tree Cmd
Script Modification commands
byteID (17)
byte[2]Packet Size
byte[*]Unknown
18 - Script Attach
Add new script to server
byteID (18)
byte[2]Packet Size
byte[*]Unknown
19 - NPC Convo Data
Modify NPC Speech data
byteID (19)
byte[2]Packet Size
byte[*]Unknown
1A - Move
Move or place an item on the ground
byteID (1A)
wordPacket Size
dwordItem Serial
wordItem ID
wordItem Amount (if Serial&0x80000000)
byteStack ID (if Item ID&0x8000) add to Item ID
wordX
wordY
byteDirection (if X&0x8000)
charZ
wordHue (if Y&0x8000)
byteStatus if (y&0x4000)
1B - Login Confirm
Player initialization
0x25 bytes
byteID (1B)
dwordSerial
dword0
wordID
wordX
wordY
byte0
charZ
byteDirection
dword7Fh
dword0
word7
byteStatus
wordHighlight Color
word0
dword0
1C - Text
Someone is speaking, or the server is sending us info
byteID (1C)
wordPacket Size
dwordCharacter Serial
wordCharacter ID
byteType
wordText Color
wordFont
char[30]Name
char[*]Text
1D - Destroy Object
Remove Item from scene
5 bytes
byteID (1D)
dwordItem Serial
1E - Animate
Control Animation
4 bytes
byteID (1E)
byte[3]Unknown
1F - Explode
Cause explosion
8 bytes
byteID (1F)
byte[7]Unknown
20 - Z Move
Character is being moved by the server
0x13 bytes
byteID (20)
dwordSerial
wordID
byte0
wordSkin Color
byteStatus
wordX
wordY
word0
byteDirection
charZ
21 - Blocked Move
Server rejected our walk request
8 bytes
byteID (21)
byteSequence Rejected
wordX location to jump back to
wordY
byteDirection
charZ
22 - OK Move
Server accepted our walk request
3 bytes
byteID (22)
byteSequence accepted
byteStatus
23 - Obj Move
Drag Item
0x1A bytes
byteID (23)
wordItem ID
byte0
word0
wordItem Amount
dwordSource Serial
wordSource X
wordSource Y
charSource Z
dwordTarget Serial
wordTarget X
wordTarget Y
charTarget Z
24 - Open Gump
Open a gump
7 bytes
byteID (24)
dwordSerial
wordGump
wordPacket Size
wordNumber of Items
loopItem
dwordItem Serial
wordItem ID
byte0
wordItem Amount
wordItem X
wordItem Y
dwordContainer Serial
wordItem Hue
endloopItem
25 - Obj to Obj
Add Object to an Object
0x14 bytes
byteID (25)
dwordItem Serial
wordItem ID
byte0
wordItem Amount
wordItem X
wordItem Y
dwordContainer Serial
wordItem Color
26 - Old Client
Old Client, kick
5 bytes
byteID (26)
dwordSerial of GM who kicked
27 - Get Obj Failed
Unable to pick up object
2 bytes
byteID (27)
byteWhere
28 - Drop Obj Failed
Unable to drop object
5 bytes
byteID (28)
byte[4]Unknown
29 - Drop Obj OK
Object dropped ok
1 byte
byteID (29)
2A - Blood
Blood mode
5 bytes
byteID (2A)
byte[4]Unknown
2B - God Mode
God Mode is on/off (server response to packet 04)
2 bytes
byteID (2B)
byteGod mode on/off
2C - Death
Choose resurrection
2 bytes
Choice = 0=server ask, 1=resurrect, 2=ghost
byteID (2C)
byteChoice
2D - Health
Health
0x11 bytes
byteID (2D)
byte[0x10]Unknown
2E - Equip Item
Character is wearing an item
0x0F bytes
byteID (2E)
dwordItem Serial
wordItem ID
byte0
byteLayer
dwordContainer Serial
wordItem Color
2F - Swing
Fight, swing
0x0A bytes
byteID (2F)
byte0
dwordAttacker Serial
dwordDefender Serial
30 - Attack OK
Attack granted
5 bytes
byteID (30)
byte[4]Unknown
31 - Attack End
Attack ended
1 byte
byteID (31)
32 - Hack Mover
God mode admin command
2 bytes
byteID (32)
byteUnknown
33 - Group
Group command
2 bytes
byteID (33)
byteCommand
34 - Client Query
Get Status
0x0A bytes
Types:
0x04=Basic Status (Packet 0x11)
0x05=Request Skills (Packet 0x3A)
byteID (34)
dword0xedededed
byteType
dwordSerial
35 - Resource Type
Get resource type
0x8D bytes
byteID (35)
byte[0x8C]Unknown
36 - Resource Tile Data
Resource tile data
byteID (36)
wordPacket Size
byte[*]Unknown
37 - Move Object
Move an object
8 bytes
byteID (37)
byte[7]Unknown
38 - Follow Move
Follow move
7 bytes
byteID (38)
byte[6]Unknown
39 - Groups
Groups
9 bytes
byteID (39)
byte[8]Unknown
3A - Skills
Update skills
Client version is only ID, Packet Size, Skill ID, and Lock Status.
byteID (3A)
wordPacket Size
byteList Type (ff=no loop, else loop till ID=0)
loopSkill
wordSkill ID
wordSkill Value
wordBase Value
byteLock Status
endloopSkill
3B - Offer Accept
Accept Offer
byteID (3B)
wordPacket Size
dwordVendor Serial
byteNum of Items (0=clear message)
loopItem
byteLayer
dwordItem Serial
wordItem Amount
endloopItem
3C - Multi Obj to Obj
Add objects to object
byteID (3C)
wordPacket Size
wordNumber of Items
loopItem
dwordItem Serial
wordItem ID
byte0
wordItem Amount
wordItem X
wordItem Y
dwordContainer Serial
wordItem Color
endloopItem
3D - Ship
Ship
2 bytes
byteID (3D)
byteUnknown
3E - Versions
Version retrieval
0x25 bytes
byteID (3E)
byte[0x24]Unknown
3F - Upd Obj Chunk
Update object chunk
byteID (3F)
byte[2]Packet Size
byte[*]Unknown
40 - Upd Terr Chunk
Update terrain chunk
0xC9 bytes
byteID (40)
byte[0xC8]Unknown
41 - Update Tile Data
Send an updated tiledata.mul entry to the client.
byteID (41)
wordPacket Size
wordTile ID
byte[37]Tile Data (see tiledata.mul)
wordF777
42 - Update Art
Send updated art to client
byteID (42)
byte[2]Packet Size
byte[*]Unknown
43 - Update Anim
Send new animation data to client
0x29 bytes
byteID (43)
byte[0x28]Unknown
44 - Update Hues
Send new hue information to the client
0xC9 bytes
byteID (44)
byte[0xC8]Unknown
45 - Ver Ok
Ver Ok
5 bytes
byteID (45)
byte[4]Unknown
46 - New Art
Send new artwork
byteID (46)
wordPacket Size
dwordTile ID
byte[*]Art Data (see art.mul)
47 - New Terr
Send new terrain to the server
0x0B bytes
byteID (47)
wordX
wordY
wordArt ID
dwordUnknown
48 - New Anim
Send new animation data (static tile animation)
0x49 bytes
byteID (48)
dwordTile ID
byte[64]Frames
byteUnknown
byteNumer of Frames Used
byteFrame Interval
byteStart Interval
49 - New Hues
Send new hues
0x5D bytes
byteID (49)
dwordHue ID
word[32]Hue Values
wordStart
wordEnd
char[20]Hue Name
4A - Destroy Art
Destroy artwork
5 bytes
byteID (4A)
dwordArt ID
4B - Check Ver
Check client version
9 bytes
byteID (4B)
byte[8]Unknown
4C - Script Names
Modify script names
byteID (4C)
byte[2]Packet Size
byte[*]Unknown
4D - Script File
Edit script file
byteID (4D)
byte[2]Packet Size
byte[*]Unknown
4E - Light Change
Set the personal light level
6 bytes
byteID (4E)
dwordSerial
byteLevel
4F - Sunlight
Set light level.
2 bytes
0 = Bright, 1F = Black
byteID (4F)
byteLevel
50 - Board Header
Bulletin Board Header
byteID (50)
byte[2]Packet Size
byte[*]Unknown
51 - Board Msg
Bulletin Board Message
byteID (51)
byte[2]Packet Size
byte[*]Unknown
52 - Post Msg
Post Bulletin Board Message
byteID (52)
byte[2]Packet Size
byte[*]Unknown
53 - Login Reject
Login Rejected
2 bytes
(1=no character, 2=char exists, 3-4=Can't connect,
5=character already in world,6=login problem,7=idle,
8=can't connect)
byteID (53)
byteMessage
54 - Sound
Play a sound effect
0x0C bytes
Flags = 0 repeating, 1 = single play
byteID (54)
byteFlags
wordEffect
wordVolume
wordX
wordY
wordZ
55 - Login Complete
Begin Game
1 byte
byteID (55)
56 - Map Command
Plot course for ships
0x0B bytes
byteID (56)
dwordSerial
byteAction (1=add,5=delete,6=toggle edit)
bytePin Number
wordPin X
wordPin Y
57 - Upd Regions
Update regions
0x6E bytes
byteID (57)
byte[0x6D]Unknown
58 - New Region
Create a new region
0x6A bytes
byteID (58)
char[40]Area Name
dword0
wordX
wordY
wordWidth
wordHeight
wordZ1
wordZ2
char[40]Description
wordSound FX
wordMusic
wordNight Sound FX
byteDungeon
wordLight
59 - New Context FX
Create a new effect
byteID (59)
byte[2]Packet Size
byte[*]Unknown
5A - Upd Context FX
Update effect
byteID (5A)
byte[2]Packet Size
byte[*]Unknown
5B - Game Time
Set the time of day
4 bytes
byteID (5B)
byteHours
byteMinutes
byteSeconds
5C - Restart Ver
Resart Ver
2 bytes
byteID (5C)
byteUnknown
5D - Pre Login
Select the character to play
0x49 bytes
byteID (5D)
dword0xEDEDEDED
char[32]Character Name
dword[7]Unknown
dwordCharacter Index
dwordClient IP
5E - Server List
Server List
byteID (5E)
byte[2]Packet Size
byte[*]Unknown
5F - Server Add
Add server
0x31 bytes
byteID (5F)
byte[0x30]Unknown
60 - Server Remove
Delete a server
5 bytes
byteID (60)
byte[4]Unknown
61 - Destroy Static
Delete a static
9 bytes
byteID (61)
wordX
wordY
byteUnknown
charZ
wordID
62 - Move Static
Move a static
0x0F bytes
byteID (62)
byte[0x0E]Unknown
63 - Area Load
Load an area
0x0D bytes
byteID (63)
byte[0x0C]Unknown
64 - Area Load Req
Attempt to load area
1 byte
byteID (64)
65 - Weather Change
Set current weather
4 bytes
Type:
0x00 = "It starts to rain"
0x01 = "A fierce storm approaches"
0x02 = "It begins to snow"
0x03 = "A storm is brewing."
0xff = Stop all weather.
byteID (65)
byteWeather Type
byteNumber of weather effects
byteTemperature
66 - Book Page
Show book
As a client message, this writes to the book.
byteID (66)
wordPacket Size
dwordItem Serial
wordNumber of Pages
loopPage
wordPage Index
wordNumber of Lines
loopLine
byte[*]Text
endloopLine
endloopPage
67 - Simped
Simped
0x15 bytes
byteID (67)
byte[0x14]Unknown
68 - Script LS Attach
Add LS script
byteID (68)
byte[2]Packet Size
byte[*]Unknown
69 - Friends
Unknown
byteID (69)
wordPacket Size
byte[*]Unknown
6A - Friend Notify
Notify Friend
3 bytes
byteID (6A)
byte[2]Unknown
6B - Key Use
Use Key
9 bytes
byteID (6B)
byte[8]Unknown
6C - Target
Bring up targeting cursor
0x13 bytes
byteID (6C)
byteTarget Type
dwordCharacter Serial
byteCheck Crime
dwordItem Serial
wordX (ffff=cancel)
wordY (ffff=cancel)
byteUnknown
byteZ
6D - Music
Play a midi music file
3 bytes
byteID (6D)
wordMidi Song
6E - Anim
Show an animation
0x0E bytes
byteID (6E)
dwordSerial
wordAction
word5
wordDirection
wordRepeat Times
byteForward (0=forward 1= backward)
byteRepeat Flag
byteDelay (0=fast, 0xff=slow)
6F - Trade
Open trade window
Type:
0 = Start Trading
1 = Cancel Trade
2 = Reset Checkmarks
byteID (6F)
wordPacket Size
byteType (0=start,1=cancel,2=change checkmarks)
dwordCharacter Serial
dwordItem 1 Serial (type0 only)
dwordItem 2 Serial (type0 only)
byteName Included (type 0 only)
char[30]Name (type 0 only, only if Name Included)
70 - Effect
Play a special effect (like magic)
0x1C bytes
Type:
00 = Go from source to dest
01 = Lightning strike
02 = Stay at location
03 = Stay with source
byteID (70)
byteType
dwordCharacter Serial
dwordTarget Serial
wordObject ID
wordX
wordY
charZ
wordTarget X
wordTarget Y
charTarget Z
wordSpeed
word0
wordExplode
71 - BBoard
Display a message board
Type:
0=draw board,
1=get posts,
2-3=get body,
4=ack dl,
5=post,
6=delete
byteID (71)
wordPacket Size
byteType
71.0 - Draw Board
Draw the Bulletin board
byteID (71)
wordPacket Size
byteType (0)
dwordBoard Serial
char[22]Board Name
dwordID
dword0
71.1 - Message List
List of bulletin board messages
byteID (71)
wordPacket Size
byteType (1)
dwordBoard Serial
dwordMessage Serial
dwordContainer Serial (0 = top level)
byteName Length
char[*]Name
byteSubject Length
char[*]Subject
byteTime Length
char[*]Time
71.2 - Message
A single message on a bulletin board
byteID (71)
wordPacket Length
byteType (2)
dwordBoard Serial
dwordMessage Serial
byteName Length
char[*]Name
byteSubject Length
char[*]Subject
byteTime Length
char[*]Time
byte[29]Unknown
byteNum Lines
loopLine
byteLine Length
char[*]Line Text
endloopLine
71.3 - Get Message
Ask the server for a message
byteID (71)
wordPacket Size
byteType (3)
dwordBoard Serial
dwordMessage Serial
71.4 - Get Summary
Get a bulletin board's message summary
byteID (71)
wordPacket Size
byteType (4)
dwordBoard Serial
dwordMessage Serial
71.5 - Post Message
Post a message to a bulletin board
byteID (71)
wordPacket Size
byteType (5)
dwordBoard Serial
dwordReply Message Serial (0 if no reply)
byteSubject Length
char[*]Subject
byteNum Lines
loopLine
byteLine Length
char[*]Line Text
endloopLine
71.6 - Delete Message
Delete a posted message
byteID (71)
wordPacket Size
byteType (6)
dwordBoard Serial
dwordMessage Serial
72 - Combat
Set war mode and stuff
5 bytes
byteID (72)
byteWar Mode
wordUnknown
byteUnknown
73 - Ping
Ping and Pong
2 bytes
byteID (73)
byteValue
74 - Shop Data
Purchase details
byteID (74)
wordPacket Size
dwordVendor Serial
byteNumber of Items
loopItem
dwordPrice
byteName Length
char[*]Name
endloopItem
75 - Rename MOB
Rename character
0x23 bytes
byteID (75)
dwordSerial
char[30]Name
76 - Server Change
Server change
0x10 bytes
byteID (76)
byte[0x0F]Unknown
77 - Naked MOB
Another character or monster is walking (why is this called Naked MOB?)
0x11 bytes
byteID (77)
dwordSerial
wordID
wordX
wordY
charZ
byteDirection
wordSkin Color
byteStatus
byteNotoriety (Murderer, Friend etc)
78 - Equipped MOB
Add a character to the scene
byteID (78)
wordPacket Size
dwordSerial
wordID
wordAmount/Corpse (if Serial&0x80000000)
wordX
wordY
charZ
byteDirection
wordSkin Color
byteStatus
byteNotoriety
loopItem (while Serial!=0)
dwordItem Serial
wordItem ID
byteItem Layer
wordItem Color (if Item ID&0x8000)
endloopItem
79 - Resource Query
Get Resource
9 bytes
byteID (79)
dwordUnknown
dwordUnknown
7A - Resource Data
Resource Data
byteID (7A)
byte[2]Packet Size
byte[*]Unknown
7B - Sequence
Sequence
2 bytes
byteID (7B)
byteUnknown
7C - Obj Picker
Display a Gump with options (like the Add menu)
byteID (7C)
wordPacket Size
dwordGump Serial
wordGump ID
byteTitle Length
byte[*]Title
byteNumber of Lines
loopLine
wordChoice ID
wordChecked
byteLine Length
char[*]Text
endloopLine
7D - Picked Obj
Choose an option from 7C
0x0D bytes
byteID (7D)
dwordGump Serial
wordGump ID
wordItem ID
dwordUnknown
7E - God View Query
Get god view data
2 bytes
byteID (7E)
byteGod view stat id
7F - God View Data
God view data
byteID (7F)
byte[2]Packet Size
byte[*]Unknown
80 - Acct Login Req
Login to the login server.
0x3E bytes
byteID (80)
char[30]Name
char[30]Password
byteUnknown
81 - Acct Login Ok
Login ok
byteID (81)
byte[2]Packet Size
byte[*]Unknown
82 - Acct Login Fail
There was an error logging in
2 bytes
0=No Account, 1=Account in Use, 2=Account Blocked, 3=No Password
byteID (82)
byteError
83 - Acct Del Char
Delete a player
0x27 bytes
byteID (83)
byte[30]Password
dwordCharacter Index
dwordClient IP
84 - Chg Char PW
Change password
0x45 bytes
byteID (84)
byte[0x44]Unknown
85 - Chg Char Result
Result of Change character request
2 bytes
byteID (85)
byteUnknown
86 - All Characters
Resend Characters after delete
byteID (86)
wordPacket Size
byteNumber of Characters
loopCharacter
char[30]Name
char[30]Password
endloopCharacter
87 - Send Resources
Send resources
byteID (87)
wordPacket Size
word0x101
word0
byteUnknown
dwordX
dwordY
dwordX2
dwordY2
byteName Length
char[*]Name
88 - Open Paper Doll
Display paper doll
0x42 bytes
byteID (88)
dwordCharacter Serial
char[60]Name
byteStatus
89 - Corpse EQ
Corpses backpack
byteID (89)
wordPacket Size
dwordContainer Serial
loopItem (while Layer!=0)
byteLayer
dwordItem Serial
endloopItem
8A - Trigger Edit
Edit Trigger
byteID (8A)
byte[2]Packet Size
byte[*]Unknown
8B - Display Sign
Show Sign
byteID (8B)
byte[2]Packet Size
byte[*]Unknown
8C - User Server
Relay to the game server.
0x0B bytes
byteID (8C)
dwordServer IP
wordServer Port
dwordAuth ID
8D - Unused3
Unsued
byteID (8D)
byte[2]Packet Size
byte[*]Unknown
8E - Move Character
Move Character
byteID (8E)
byte[2]Packet Size
byte[*]Unknown
8F - Unused4
Unused
byteID (8F)
byte[2]Packet Size
byte[*]Unknown
90 - Open Course Gump
Show map, for plotting etc.
0x13 bytes
byteID (90)
dwordSerial
wordCorner Image
wordX1
wordY1
wordX2
wordY2
wordWidth
wordHeight
91 - Post Login
Login to the game server
0x41 bytes
byteID (91)
dwordAuth ID
char[30]Name
char[30]Password
92 - Upd Multi
Update Multi
byteID (92)
byte[2]Packet Size
byte[*]Unknown
93 - Book Hdr
Open a book
0x63 bytes
byteID (93)
dwordItem Serial
byteEditable
byte1
wordNumber of Pages
char[60]Title
char[30]Author
94 - Upd Skill
Alter skill
byteID (94)
byte[2]Packet Size
byte[*]Unknown
95 - Hue Picker
Dye
9 bytes
byteID (95)
dwordItem Serial
wordItem ID
wordColor
96 - Game Cent Mon
Monitor game, mostly through godview
byteID (96)
wordPacket Size
byteCommand
byte[*]Unknown
97 - Player Move
Player move
2 bytes
byteID (97)
byteUnknown
98 - MOB Name
Alter name
byteID (98)
byte[2]Packet Size
byte[*]Unknown
99 - Target Multi
Targeting cursor for multis
0x1A bytes
byteID (99)
byteAllow Ground
dwordDeed Serial
dword0
dword0
dword0
wordMulti ID
dword0
word0
9A - Text Entry
Text Entry
byteID (9A)
byte[2]Packet Size
byte[*]Unknown
9B - Request Assist
Page a GM
2 bytes
byteID (9B)
byteUnknown
9C - Assist Request
Assistance response
0x35 bytes
byteID (9C)
byte[0x34]Unknown
9D - GM Single
GM Single
0x33 bytes
byteID (9D)
byte[0x32]Unknown
9E - Shop Sell
Details for sales
byteID (9E)
wordPacket Size
dwordVendor Serial
wordNumber of Items
loopItem
dwordItem Serial
wordItem ID
wordItem Color
wordItem Amount
wordValue
wordName Length
char[*]Name
endloopItem
9F - Shop Offer
Sell window
byteID (9F)
wordPacket Size
dwordVendor Serial
byteUnknown
byteNumber of Items
loopItem
dwordItem Serial
wordItem Amount
endloopItem
A0 - Britannia Select
Select a shard to play on
3 bytes
byteID (A0)
wordServer Index
A1 - HP Health
Adjust strength and Hit Points
9 bytes
byteID (A1)
dwordSerial
wordStrength
wordHit Points
A2 - Mana Health
Update Intelligence and Mana
9 bytes
byteID (A2)
dwordSerial
wordIntelligence
wordMana
A3 - Fat Health
Update Dexterity and Stamina
9 bytes
byteID (A3)
dwordSerial
wordDexterity
wordStamina
A4 - Hardware Info
Send system info to the server
0x95 bytes
byteID (A4)
byte[0x94]Unknown
A5 - Web Browse
Launch a browser and to to URL
byteID (A5)
wordPacket Size
char[*]URL
A6 - Message
Show a scroll on the screen
byteID (A6)
wordPacket Size
byteFont
word0
wordTip Number
wordText Length
char[*]Text
A7 - Req Tip
Get a tooltip
4 bytes
byteID (A7)
wordTip
byte0 = tip, 1 = notice
A8 - Britannia List
List the available shards
byteID (A8)
wordPacket Size
byteFFh
wordNumber of Servers
loopServer
wordServer Index
char[32]Server Name
bytePercent Full
byteTimezone
dwordServer IP
endloopServer
A9 - Cities and Chars
List of characters as well as starting cities
Flags:
0x8 = enable popups
0x4 = server limits number of characters per account, (flags>>4 = number of characters)
byteID (A9)
wordPacket Size
byteNumber of Characters
loopCharacter
char[60]Character Name
endloopCharacter
byteNumber of Cities
loopCity
byteIndex
char[31]City Name
char[31]Area of Town
endloopCity
dwordFlags (May not be present)
AA - Current Target
Current attack target
5 bytes
byteID (AA)
dwordSerial (0 = attack invalid)
AB - String Query
Text Entry
byteID (AB)
wordPacket Size
dwordSerial
byteParent ID
byteButtom ID
wordText Length
char[*]Text
byteStyle (0=none, 1=normal, 2=numerical)
dwordMax Length
wordLabel Length
char[*]Label
AC - String Response
Text Entry Response
byteID (AC)
wordPacket Size
dwordSerial
byteType
byteIndex
byteMode (0=cancel,1=ok)
wordText Length
char[*]Text
AD - Speech Unicode
Speak in unicode
If Mode&0xc0 then there are keywords (from speech.mul) present.
Keywords:
The first 12 bits = the number of keywords present.
The keywords are included right after this, each one is 12 bits also.
The keywords are padded to the closest byte.
For example, if there are 2 keywords, it will take up 5 bytes.
12bits for the number, and 12 bits for each keyword. 12+12+12=36.
Which will be padded 4 bits to 40 bits or 5 bytes.
byteID (AD)
wordPacket Length
byteMode (0=say,2=emote,8=whisper,9=yell) *
wordText Color
wordFont
char[4]Language
byte[*]Keywords (Only present if mode&0xc0)
char[*]Text
AE - Text Unicode
Someone is speaking in Unicode
byteID (AE)
wordPacket Size
dwordSerial
wordID
byteType
wordText Color
wordFont
char[4]Language
char[30]Name
char[*]Text
AF - Death Anim
Death Anim
0x0D bytes
byteID (AF)
dwordCharacter Serial
dwordCorpse Serial
dword0
B0 - Generic Gump
Show Gump
byteID (B0)
wordPacket Size
dwordSerial
dwordGump ID
dword6Eh
dword46h
wordLayout Length
char[*]Layout
wordNumber of Lines
loopLine
wordLine Length
word[*]Text
endloopLine
B1 - Gen Gump Trig
Generic Gump Choice
byteID (B1)
wordPacket Size
byte[*]Button Data
B2 - Chat Msg
Chat Message
byteID (B2)
byte[2]Packet Size
byte[*]Unknown
B3 - Chat Text
Chat Text
byteID (B3)
byte[2]Packet Size
byte[*]Unknown
B4 - Target Obj List
Target object list
byteID (B4)
byte[2]Packet Size
byte[*]Unknown
B5 - Chat Open
Chat open
0x40 bytes
byteID (B5)
byte[0x39]Unknown
B6 - Help Request
Show Popup Help
9 bytes
byteID (B6)
dwordHelp Serial
byteLangauge Number
char[3]Language
B7 - Help Unicode Text
Display Popup help
byteID (B7)
wordPacket Size
dwordHelp Serial
word[*]Unicode Text
B8 - Char Profile
Profile
byteID (B8)
wordPacket Size
byteMode
dwordSerial
B9 - Features
Feature Enable
3 bytes
Bit 1 = Enable T2A Features (chat)
Bit 2 = Enable LBR Features (animations)
byteID (B9)
wordEnable
BA - Pointer
Display Quest Pointer
6 bytes
byteID (BA)
byteActive
wordX
wordY
BB - Acct ID
Account ID
9 bytes
byteID (BB)
byte[8]Unknown
BC - Game Season
Season
3 bytes
byteID (BC)
byteSeason
byteCursor
BD - Client Version
Send client version to the server
byteID (BD)
wordPacket Size
char[*]Version String
BE - Assist Version
Assist Version
byteID (BE)
byte[2]Packet Size
byte[*]Unknown
BF - Generic Command
Miscellaneous Commands
byteID (BF)
wordPacket Size
wordCommand
BF.1 - Fast Walk
Cycle's through the keys in the stack when walking.
byteID (BF)
wordPacket Size
wordCommand (1)
dword[6]Key Stack
BF.13 - Unknown
Unknown packet
The client sends this packet just after it sends packet 09,
for the same serial.
byteID (BF)
wordSize
wordCommand (13)
dwordSerial
BF.18 - Enable Map Diffs
This packet is sent by the server to the client, telling the client to use the mapdif* and stadif* files to patch the map and statics.
Usually there are 3 maps in this packet, 0 = fellucca, 1 = trammel, and 2 = ilshenar.
byteID (BF)
wordSize
wordSubcommand (18)
dwordNumber of Maps
loop[map]
dwordNumber of Map patches in this map
dwordNumber of Static patches in this map
endloop[map]
BF.2 - Add Walk Key
Add a key to the top of the Walk Stack
byteID (BF)
wordPacket Size
wordCommand (2)
dwordKey
BF.6 - Party
Party system is BF Command 6
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command
BF.6.1 - Add Member
Add a member to the party
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (1)
dwordSerial (0 = target)
BF.6.2 - Remove Member
Remove a member from your party
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (2)
dwordSerial (0 = target)
BF.6.3 - Party Private Msg
Tell a party member a message
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (3)
dwordSerial
word[*]Unicode Message
BF.6.4 - Party Chat
Send a message to entire party.
(Serial not present in Client Msg)
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (4)
dwordSerial of source
word[*]Unicode Text
BF.6.6 - Party Loot
Party can loot me
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (6)
byteCan Loot
BF.6.8 - Accept
Accept a join invitation
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (8)
dwordParty Leader Serial
BF.6.9 - Decline
Decline join invitation
byteID (BF)
wordPacket Size
wordCommand (6)
byteParty Command (9)
dwordParty Leader Serial
BF.8 - Cursor Hue
Set cursor hue
byteBF
wordPacket Size
wordCommand (8)
byteHue (0=felucca, 1= trammel, 2=ilshenar)
BF.B - Client Language
Set client language
byteID (BF)
wordPacket Size
wordCommand (B)
byte[3]Language
BF.C - Close Status
Close status gump
byteID (BF)
wordPacket Size
wordCommand (C)
dwordSerial
C0 - Effect Hued FX
Hued effect
0x24 bytes
byteID (C0)
byte[0x23]Unknown
C1 - Text ID
Display a cliloc message
Type:
6 = lower left
7 = on player
byteID (C1)
wordPacket Size
dwordSerial
wordBody
byteType
wordHue
wordFont
word7
wordMessage Number
char[32]Name
C2 - Text Entry Unicode
Unicode text entry
byteID (C2)
byte[2]Packet Size
byte[*]Unknown
C3 - GQ Request
GQ Request
byteID (C3)
byte[2]Packet Size
byte[*]Unknown
C4 - Semi Visible
Semivisible
6 bytes
byteID (C4)
byte[5]Unknown
C5 - Invalid Map
Invalid map
0xCB bytes
byteID (C5)
byte[0xCA]Unknown
C6 - Invalid Map Enable
Enable invalid map
1 byte
byteID (C6)
C7 - Particle Effect
Particle Effect
0x31 bytes
Effect ID and Explode Effect ID correspond directly to the pbg files in the Particles directory.
byteID (C7)
byteType (00 = moving effect, 02 = item effect, 03 = static effect)
dwordSerial
dwordSerial 2
wordTile ID
wordX
wordY
byteZ
wordX 2
wordY 2
byteZ 2
wordUnknown Effect data
word0
byteAdjust
byteExplode
dword0
dword0
wordEffect ID
wordExplode Effect ID
wordUnknown Effect Data
dword0
byteLayer (0-4, 0xff for moving)
byteUnknown Effect Data
byte0
C8 - Update Range Change
Update range change
2 bytes
This packet says how far away the client wants to see.. that allows slower modems to not get items and MOBs that are over a certain distance away.
byteID (C8)
byteDistance
C9 - Trip Time
Trip time
6 bytes
byteID (C9)
byte[5]Unknown
CA - UTrip time
Utrip time
6 bytes
byteID (CA)
byte[5]Unknown
CB - GQ Count
GQ Count
7 bytes
byteID (CB)
byte[6]Unknown
CC - Text ID Plus String
Text ID and String
byteID (CC)
byte[2]Packet Size
byte[*]Unknown