• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Update

tibia-global

Tibia Global
Joined
Dec 4, 2014
Messages
43
Reaction score
3
Location
Brazil
Hello,

I updated mine TFS Source Code 10.53 to 10.58 and now when i die the client bug and show this message "Tibia debugging with unknown death reason = 100".

Let me know if someone can help me with this bug.

PS: I know, I can waiting for the TFS Update.

Thanks in advance.
Tibia-Global Team.
https://www.tibia-global.org
 
Tfs doesn't support that client, and there is not an official otbm, so it is doubtful you will be able to find help for that problem. The problem is most likely the byte that is sent to the client upon death, it's probably different than in clients before this one, idk, just a guess, but that's where I would start looking.
 
Try changing sendReLoginWindow to this:

Code:
void ProtocolGame::sendReLoginWindow(uint8_t unfairFightReduction)
{
    NetworkMessage msg;
    msg.AddByte(0x28);
    msg.AddByte(0x00); // 0x00 = (regular death and unfair fight), 0x01 = blessed death
    msg.AddByte(unfairFightReduction);
    writeToOutputBuffer(msg);
}
 
Tfs doesn't support that client, and there is not an official otbm, so it is doubtful you will be able to find help for that problem. The problem is most likely the byte that is sent to the client upon death, it's probably different than in clients before this one, idk, just a guess, but that's where I would start looking.

Thanks for your help, I post here if i fixed the bug!


Try changing sendReLoginWindow to this:

Code:
void ProtocolGame::sendReLoginWindow(uint8_t unfairFightReduction)
{
    NetworkMessage msg;
    msg.AddByte(0x28);
    msg.AddByte(0x00); // 0x00 = (regular death and unfair fight), 0x01 = blessed death
    msg.AddByte(unfairFightReduction);
    writeToOutputBuffer(msg);
}

Thank you very much Summ, I'm at work now, I will test when i go to home and post here the progress! ;)
 
@Summ I've done what you say and now sendReLoginWindow is working but now this debug when I attack a monster and it's like random.

ZDQdZcIZE.png


Do you have an idea how to fix this?
 
Try changing sendReLoginWindow to this:

Code:
void ProtocolGame::sendReLoginWindow(uint8_t unfairFightReduction)
{
    NetworkMessage msg;
    msg.AddByte(0x28);
    msg.AddByte(0x00); // 0x00 = (regular death and unfair fight), 0x01 = blessed death
    msg.AddByte(unfairFightReduction);
    writeToOutputBuffer(msg);
}
Why don't you explain to us what the change does.. in english please :)
 
It adds a byte which define the death reason / death type.

Byte 0x00 means that
it is a regular death if unfairFightReduction is equal to 100
or it is a unfair fight death if unfairFightReduction is lower than 100

Byte 0x01 means that the player died with blessings, unfairFightReduction byte needs to be omitted in this case.

All other bytes are invalid death reasons.

This change is only to provide basic compatibility so there is no check for bless etc. Did not look much into the changes.
 
Code:
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,

   TALKTYPE_CHANNEL_R2 = 0xFF //#d
};

enum MessageClasses : uint8_t {
   MESSAGE_STATUS_CONSOLE_BLUE  = 0x04, /*FIXME Blue message in the console*/
   MESSAGE_STATUS_CONSOLE_RED  = 0x0E, /*Red message in the console*/
   MESSAGE_STATUS_DEFAULT  = 0x11, /*White message at the bottom of the game window and in the console*/
   MESSAGE_STATUS_WARNING  = 0x12, /*Red message in game window and in the console*/
   MESSAGE_EVENT_ADVANCE  = 0x13, /*White message in game window and in the console*/
   MESSAGE_STATUS_SMALL  = 0x15, /*White message at the bottom of the game window"*/
   MESSAGE_INFO_DESCR  = 0x16, /*Green message in game window and in the console*/
   MESSAGE_DAMAGE_DEALT  = 0x17,
   MESSAGE_DAMAGE_RECEIVED  = 0x18,
   MESSAGE_HEALED  = 0x19,
   MESSAGE_EXPERIENCE  = 0x1A,
   MESSAGE_DAMAGE_OTHERS  = 0x1B,
   MESSAGE_HEALED_OTHERS  = 0x1C,
   MESSAGE_EXPERIENCE_OTHERS  = 0x1D,
   MESSAGE_EVENT_DEFAULT  = 0x1E, /*White message at the bottom of the game window and in the console*/
   MESSAGE_LOOT  = 0x1F,
   MESSAGE_EVENT_ORANGE  = 0x24, /*Orange message in the console*/
   MESSAGE_STATUS_CONSOLE_ORANGE  = 0x25  /*Orange message in the console*/
};
 
Hello,

Updated the following codes in the source code:

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,

TALKTYPE_CHANNEL_R2 = 0xFF //#d
};

enum MessageClasses : uint8_t {
MESSAGE_STATUS_CONSOLE_BLUE = 0x04, /*FIXME Blue message in the console*/
MESSAGE_STATUS_CONSOLE_RED = 0x0E, /*Red message in the console*/
MESSAGE_STATUS_DEFAULT = 0x11, /*White message at the bottom of the game window and in the console*/
MESSAGE_STATUS_WARNING = 0x12, /*Red message in game window and in the console*/
MESSAGE_EVENT_ADVANCE = 0x13, /*White message in game window and in the console*/
MESSAGE_STATUS_SMALL = 0x15, /*White message at the bottom of the game window"*/
MESSAGE_INFO_DESCR = 0x16, /*Green message in game window and in the console*/
MESSAGE_DAMAGE_DEALT = 0x17,
MESSAGE_DAMAGE_RECEIVED = 0x18,
MESSAGE_HEALED = 0x19,
MESSAGE_EXPERIENCE = 0x1A,
MESSAGE_DAMAGE_OTHERS = 0x1B,
MESSAGE_HEALED_OTHERS = 0x1C,
MESSAGE_EXPERIENCE_OTHERS = 0x1D,
MESSAGE_EVENT_DEFAULT = 0x1E, /*White message at the bottom of the game window and in the console*/
MESSAGE_LOOT = 0x1F,
MESSAGE_EVENT_ORANGE = 0x24, /*Orange message in the console*/
MESSAGE_STATUS_CONSOLE_ORANGE = 0x25 /*Orange message in the console*/
};

and

void ProtocolGame::sendReLoginWindow(uint8_t unfairFightReduction)
{
NetworkMessage msg;
msg.AddByte(0x28);
msg.AddByte(0x00); // 0x00 = (regular death and unfair fight), 0x01 = blessed death
msg.AddByte(unfairFightReduction);
writeToOutputBuffer(msg);
}

#define CLIENT_VERSION_MIN 1055
#define CLIENT_VERSION_MAX 1058
#define CLIENT_VERSION_STR "10.55"

And yet I can not login with the client 10.58, why?
 
Back
Top