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

Fix/Patch [Source] Downgrading TFS from 8.1 to 8.0

elf

Sing, sing blue silver
Senator
Joined
Dec 11, 2007
Messages
3,666
Solutions
1
Reaction score
125
Location
Warsaw, Poland
GitHub
tayandenga
Twitch
tayandenga
Many people just don't want to upgrade their servers (at least yet) to 8.1.
I guess it is caused by need of (almost) map remake (if they have their own), and the current features provided by OpenTibia-based servers aren't worth to work 2 days to fix at least 50% of tiles (well, thats my case :D) on map.
All of us want to bring the best to our players, so bug fixes provided by SVN revisions are required.
Now, when TFS became a 8.1, its impossible to have both at one time without some source code edition.
Im writing this small tutorial mostly for newbies, but remember, one day You were also a beginer, so don't comment it like I would kill Your mother.
Everything You have to edit are 3 files and it takes not longer than 3 minutes. Its very easy so far - so, lets begin.

IMPORTANT! You need to have also a non-8.1 items.otb (Dowonload here)

1. Open items.cpp, and find (line 191):
Code:
	else if(Items::dwMinorVersion < CLIENT_VERSION_810){
Replace it with:
Code:
	else if(Items::dwMinorVersion < CLIENT_VERSION_800){
Save and close the file.

2. Open protocolgame.cpp, and find (line 487):
Code:
	if(version < 810)
	{
		disconnectClient(0x0A, "Only clients with protocol 8.1 allowed!");
		return false;
	}
Replace it with:
Code:
	if(version != 800)
	{
		disconnectClient(0x0A, "Only clients with protocol 8.0 allowed!");
		return false;
	}
Save and close the file.

3. Open protocollogin.cpp, and find (line 94):
Code:
	if(version < 810)
	{
		disconnectClient(0x0A, "Only clients with protocol 8.1 allowed!");
		return false;
	}
Replace it with:
Code:
	if(version != 800)
	{
		disconnectClient(0x0A, "Only clients with protocol 8.0 allowed!");
		return false;
	}
Save and close the file.

Thats all, now You may compile the core :)


P.S. I know (because I have checked the difference of almost all new files to their last rev :D) there were done many changes not only in these files, but I tested it so far, and didnt find any bug yet (I was mostly afraid of earth damage instead of poison one, but it seem to be working fine).
 
Last edited:
Looks great :) But I think that we shouldn't use the latest revisions though , since there are often buged a bit, on our OTS.
 
Imho the current revision (474), which is unluckly made for 8.1 client, is most stable one.
Evermore lots of annoying bugs were fixed, so thats why I wrote this little tutorial.
 
I havn't tried it yet but I'm able to belive you. :)
But it's nice tutorial though - clean and easy to understand :)

offtop - who knows what happens to the house owner if he's pacc is finished?
 
Tested and works nice :) Great job :)

Offtop - slawkens (thanks) said that the accout type (premium or not) is checked propably only when player is buying house.
 
incredible i am testing this is very rox solution for my problem!
Nice job FightingElf
 
I guess he may join tfs coding team soon :> In 2 days he made 2 (or maybe more) tutorials with his own solutions. It's nice to see people like you =)
 
But I think that he mean his own client. I think that the same steps but the client must be edited too to send to server info that its version is 1.0
 
I know you like to compile another version of the engine. I wanted to compile the trunk of 8.2 and there is no in items.cpp is from 820 to 810 and change, but protocolgame.cpp protocollogin.cpp and there is nothing that this protocol at 8.2 -.- why?
 
This gotta be one of the biggest bumps out there.
 
Back
Top