What TFS are you using? 1.4? 1.5?
What client? 10.98?
Is it some kind of server '10 + 12 client'?
Client crashed on 'chat channel message', because it had 'chat message mode'
52 (in OTS it's called 'speak class').
There is no 'message mode
52' in Tibia (valid types listed below). There are 2 possible reasons:
1.
There is some C++/Lua script that sends channel message with type
set to 52. I've checked TFS and otservbr, there is no verification in C++ that
type
you set in Lua is valid type for message. Tested TFS code:
C++ Shell (http://cpp.sh/7kb3g) (C++ does not verify enum values passed as argument)
2. Your network code in
protocolgame.cpp
is bugged, which is almost not possible in any popular engine (TFS/otservbr). Only in some 'downgraded protocol' releases, which often forget to use valid message bytes/types for their downgraded protocol (ex. 8.6)
VALID TYPES
TFS 1.4 10.98 speak classes:
C++:
enum SpeakClasses : uint8_t {
TALKTYPE_SAY = 1,
TALKTYPE_WHISPER = 2,
TALKTYPE_YELL = 3,
TALKTYPE_PRIVATE_FROM = 4,
TALKTYPE_PRIVATE_TO = 5,
TALKTYPE_CHANNEL_Y = 7,
TALKTYPE_CHANNEL_O = 8,
TALKTYPE_PRIVATE_NP = 10,
TALKTYPE_PRIVATE_PN = 12,
TALKTYPE_BROADCAST = 13,
TALKTYPE_CHANNEL_R1 = 14, //red - #c text
TALKTYPE_PRIVATE_RED_FROM = 15, //@name@text
TALKTYPE_PRIVATE_RED_TO = 16, //@name@text
TALKTYPE_MONSTER_SAY = 36,
TALKTYPE_MONSTER_YELL = 37,
otservbr canary 12+ speak classes:
C++:
TALKTYPE_SAY = 1,
TALKTYPE_WHISPER = 2,
TALKTYPE_YELL = 3,
TALKTYPE_PRIVATE_FROM = 4,
TALKTYPE_PRIVATE_TO = 5,
TALKTYPE_CHANNEL_MANAGER = 6,
TALKTYPE_CHANNEL_Y = 7,
TALKTYPE_CHANNEL_O = 8,
TALKTYPE_SPELL_USE = 9,
TALKTYPE_PRIVATE_NP = 10,
TALKTYPE_NPC_UNKOWN = 11, /* no effect (?)*/
TALKTYPE_PRIVATE_PN = 12,
TALKTYPE_BROADCAST = 13,
TALKTYPE_CHANNEL_R1 = 14, //red - #c text
TALKTYPE_PRIVATE_RED_FROM = 15, //@name@text
TALKTYPE_PRIVATE_RED_TO = 16, //@name@text
TALKTYPE_MONSTER_SAY = 36,
TALKTYPE_MONSTER_YELL = 37,