egs/docs/protocol/commands/0304.txt

50 lines
1.7 KiB
Plaintext

0304
Size:32
Command:16 Channel:8 Garbage:8
DestLID:16 0:16
FromTypeID:32
FromGID:32
0:32
0:32
DestTypeID:32
DestGID:32
0:32
0:32
SourceTypeID:32
SourceGID:32
0:32
0:32
ChatType:8 ChatCutIn:8 ChatCutInAngle:8 ChatMessageLength:8
ChatChannel:8 ChatCharacterType:8 0:8 _UnknownH:8
FromName:512
ChatMessage:N
Size: depends on ChatMessage
Channel: 2, 3
DestLID: sometimes ffff guessing in counters
FromTypeID: 0 on channel 2; 00011300 on channel 3, this is the one for the player source, or leader if an NPC
FromGID: 0 on channel 2; GID of the player source, or leader if an NPC on channel 3
DestTypeID: 0 on channel 2; 00011300 on channel 3
DestGID: 0 on channel 2; GID on channel 3
channel 2:
SourceTypeID: 00000000 (? found twice in the logs) or 00001200 (player) or 00001d00 (npc)
SourceGID: can be 00000000 too? found twice in the logs too; otherwise player or npc GID
channel 3:
SourceTypeID: 00001200 (player) or 00001d00 (npc); never 00000000 like on channel 2
SourceGID: player or npc GID; never 00000000 like on channel 2
ChatType: 0=normal 1=shout 2=whisper
ChatCutIn: 0=none 1=laugh 2=smile 3=wry_smile 4=surprised 5=confused 6=disappointed 7=deep_in_thought 8=sneer 9=dissatisfied 10=angry
ChatCutInAngle: 0=default 1=(down 1 time) 2=(down 2 times) 3=(down 3 times)
ChatMessageLength: a rounding happens, probably a good idea to check its validity
a 2 (D = len of a + 1)
hi 4 (D = len of hi + 2)
lol 4 (D = len of lol + 1)
lolo 6 (D = len of lolo + 2)
So probably string + \0\0 rounded below at a number multiple of 2.
ChatChannel: 0=public 1=private
ChatCharacterType: 0 2; probably 0 for a normal player, 2 for an NPC
_UnknownH: from 0 to 255
FromName: not available in v2.0
ChatMessage: variable length, finishes by a double \0