• 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!

Lua Exchange 10.41 Server Version 10.55

f.silva

New Member
Joined
Dec 26, 2014
Messages
18
Reaction score
0
I'm trying to change the version of the server to 10:41 10:55 .

So I changed the version of the map to 10:55 ...

I went in and changed definitions.h the sources :
Code:
#define CLIENT_VERSION_MIN 1055
#define CLIENT_VERSION_MAX 1055
#define CLIENT_VERSION_STR " 10:55 "

I changed the version items.otb by 10:55 tb ...

open the regular server , only when I take debug log

8nbsQQErA.png




src : https://github.com/otland/forgottenserver
 
There is no official 10.55 otb file and there have ben protocol changes as well so you cant just change the definition.
 
Probably not, just read the source change history to see what needs to be changed.
One question, someone who has done changing protocol from 10.51 to 10.54 instead working up with his unofficial items.otb 10.71 which i got from him, he gave me some tips so :

definitions.h

i changed

#define CLIENT_VERSION_MIN 1053
#define CLIENT_VERSION_MAX 1053
#define CLIENT_VERSION_STR "10.53"

to which i need

after he said, u have to add 5 packages in protocolgame.cpp
after this package "msg.AddByte(0xA1);"

For know its all what i know, did you can give me more tips about packages etc? XD
 
I'm assuming you meant packets, not packages.

Packets are units of data that is sent between an origin and destination.
In this case, the origin and destination are the server and the Tibia client.
In TFS, these packets are called NetworkMessages (msg).

The Tibia client sends these packets to the server.
The server accepts the packets and processes them.
And most times, the server sends the packets back to the client for confirmation.

Let me give you an example.
If I press the right-arrow key, the Tibia client will recognize the action and send information to the server about the action.
In this case, the Tibia client will send a packet identified with a byte, 0x66, to the server.
The server will accept the packet and read the data on it. It will read 0x66 (and sometimes other information).
The server has to do something with the packet (parsePacket(msg)), else nothing will happen in the Tibia client.

In ProtocolGame, this is where all the parsing takes place.
parsePacket(msg) will take the identifying byte and match it with a task.
We pressed the right-arrow key and the client sent us a packet identified with 0x66.
When parsing that packet, we will eventually end up using this line.
This line will call Game: PlayerMove(), which runs a lot of stuff in the server to process the player's move, like checking to see if the player can move to the new position or not (blocked, like rocks and trees, etc), updating the player's position, etc.
At the end of the server's processing of the player move, it will send a confirmation back to the client to visually show the movement.

So, basically, the Tibia client sends packets to the server for the server to process and confirm back to the client.

Now, in your question, when he says you have to add 5 packets ProtocolGame.cpp, he's basically saying that the Tibia client has 5 new things that sends packets and the server needs to recognize those packets. If the server doesn't recognize those new packets, then nothing will happen. Like, if the server doesn't recognize 0x66 (which is move east), then the character will not move east at all.

I know this is a long post, but I hope you understood most of it.
If there's something that is incorrect, I apologize in advance, this is the closest I can get with my knowledge on network messages.
 
After:
Code:
if (player->getAccountType() >= ACCOUNT_TYPE_TUTOR) {
msg.AddByte(0x01);
} else {
msg.AddByte(0x00);
}

Add:
Code:
msg.AddByte(0x00);

After:
Code:
msg.add<uint16_t>(player->getLevel());
msg.AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
Add:
Code:
msg.AddDouble(0, 2);

Not sure if that's all though.
 
After:
Code:
if (player->getAccountType() >= ACCOUNT_TYPE_TUTOR) {
msg.AddByte(0x01);
} else {
msg.AddByte(0x00);
}

Add:
Code:
msg.AddByte(0x00);

After:
Code:
msg.add<uint16_t>(player->getLevel());
msg.AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
Add:
Code:
msg.AddDouble(0, 2);

Not sure if that's all though.

10.71 Is the same way ?
 
I'm assuming you meant packets, not packages.

Packets are units of data that is sent between an origin and destination.
In this case, the origin and destination are the server and the Tibia client.
In TFS, these packets are called NetworkMessages (msg).

The Tibia client sends these packets to the server.
The server accepts the packets and processes them.
And most times, the server sends the packets back to the client for confirmation.

Let me give you an example.
If I press the right-arrow key, the Tibia client will recognize the action and send information to the server about the action.
In this case, the Tibia client will send a packet identified with a byte, 0x66, to the server.
The server will accept the packet and read the data on it. It will read 0x66 (and sometimes other information).
The server has to do something with the packet (parsePacket(msg)), else nothing will happen in the Tibia client.

In ProtocolGame, this is where all the parsing takes place.
parsePacket(msg) will take the identifying byte and match it with a task.
We pressed the right-arrow key and the client sent us a packet identified with 0x66.
When parsing that packet, we will eventually end up using this line.
This line will call Game: PlayerMove(), which runs a lot of stuff in the server to process the player's move, like checking to see if the player can move to the new position or not (blocked, like rocks and trees, etc), updating the player's position, etc.
At the end of the server's processing of the player move, it will send a confirmation back to the client to visually show the movement.

So, basically, the Tibia client sends packets to the server for the server to process and confirm back to the client.

Now, in your question, when he says you have to add 5 packets ProtocolGame.cpp, he's basically saying that the Tibia client has 5 new things that sends packets and the server needs to recognize those packets. If the server doesn't recognize those new packets, then nothing will happen. Like, if the server doesn't recognize 0x66 (which is move east), then the character will not move east at all.

I know this is a long post, but I hope you understood most of it.
If there's something that is incorrect, I apologize in advance, this is the closest I can get with my knowledge on network messages.

I understood every lanes, thanks you so much for your time :) Love ya really :p



After:
Code:
if (player->getAccountType() >= ACCOUNT_TYPE_TUTOR) {
msg.AddByte(0x01);
} else {
msg.AddByte(0x00);
}

Add:
Code:
msg.AddByte(0x00);

After:
Code:
msg.add<uint16_t>(player->getLevel());
msg.AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
Add:
Code:
msg.AddDouble(0, 2);

Not sure if that's all though.

Is it all for 10.54 client? Are you sure it is correct? :p
 
After:
Code:
if (player->getAccountType() >= ACCOUNT_TYPE_TUTOR) {
msg.AddByte(0x01);
} else {
msg.AddByte(0x00);
}

Add:
Code:
msg.AddByte(0x00);

After:
Code:
msg.add<uint16_t>(player->getLevel());
msg.AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
Add:
Code:
msg.AddDouble(0, 2);

Not sure if that's all though.
Seems like it's enough(to play), damn these new animations look.. strange?
If somebody needs items.otb 10.55: http://www.speedy*****malware.localhost/TBAEG/items.otb
Taken from rme build 142.

However:
TALKTYPE_MONSTER_SAY = 35 > crashes client,
TALKTYPE_MONSTER_YELL = 36 > looks like TALKTYPE_MONSTER_SAY/yell,
nothing = 37 > looks like TALKTYPE_MONSTER_SAY,

messages:
MESSAGE_INFO_DESCR looks like MESSAGE_STATUS_SMALL,
MESSAGE_STATUS_SMALL looks like MESSAGE_STATUS_WARNING,
MESSAGE_EVENT_ORANGE looks like MESSAGE_INFO_DESCR,

0x25 /*Orange message in the console*/
0x26 /*White message in game window and in the console*/
ox27 = MESSAGE_INFO_DESCR
0x28 = crash
0x29 /*White message at the bottom of the game window and in the console*/
0x30 = crash

I haven't tested those 0x25 > messages on 10.41, so I am not sure if they are something new.

Is it possible that if the e.g "msg.AddByte(0x00);" were placed at little bit different location these messages would be "normal" or has tibia added some new message types or
do we just have to reorder the packets somewhere here:https://github.com/otland/forgotten...0d76891393c7a2de0706039a3109/src/const.h#L169
?
 
Last edited:
Back
Top