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

How to make your server client 8.61 Tutorial

.dat changed, i imagine a few addresses...it will have a titload of bugs, don't recommend it, or do it but warn your players the risk of using a 8.60 client.
 
protocol.cpp
Code:
...
	case 0x9E: // close NPC
				parseCloseNpc(msg);
				break;

			case 0xA0: // set attack and follow mode
				parseFightModes(msg);
				break;

			case 0xA1: // attack
				parseAttack(msg);
				break;

			case 0xA2: //follow
				parseFollow(msg);
				break;

			case 0xA3: // invite party
				parseInviteToParty(msg);
				break;

			case 0xA4: // join party
				parseJoinParty(msg);
...
				break;
Any bytes has added?/changed? in 8.60 so we must edit it...


Hmm... i have debug if i stop attack and if i attack players... anybody have any crash-client?
 
Well, im currently running an 8.6 server and am finally able to login with an 8.6 client, however i am having a few issues (as expected...) no opening containers (might be cause of whats inside, dont know), seeing a monster die, attacking, etc... (seeing potions seems to cause it also)

All my errors are of course Unknown Packet types, i'm inclined to believe this is because i haven't edited anything in protocol.cpp yet, i'd love to help fix this if i knew how, im not sure how to investigate which packet is which, (im assuming they switched them up to fuck with us?)

Any help would be appreciated, and as mentioned I'd love to help solve this issue.
 
I'd love to wait, but as it is I'm in the middle of an update and this is all that's stopping me from being able to release it as an "8.6" server, i can replace the executable in the future as TFS releases... but for now I'd really like to have at least the addresses done so i can release it as 8.6 instead of 8.54, i dont want people to have to download a new client once i release, i dont even care if it actually is 8.6 for the time being, i just want the client
 
Huh I need team to fix bugs in forgottenserver-trunk r3704{0.4_dev} with protocol 8.60].
I need:
*raports witch bugs...
*someone who create new monsters scripts...
*anybody, who told me changes in new summer update [I don't want to look for it]:)

Huh... And anybody who crate new items.otb...



Uploaded with ImageShack.us


Known bugs:
#When player stop attack any creature... || NEED FIX
#When player start attack npc or player... || NEED FIX
#When player see any items (i know, it is potion) || NEED FIX

More errors?

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

I know to fix potions error i must edit items.otb and add to potions and flask maxCount=100. New tibia client sort items of the same type [potions, flasks, coins] and i think, this do crash-client...
 
Last edited:
Okay here goes.

  • Executable (TFS 0.3.6pl1): TheForgottenServer.rar
    Using this .EXE should fix debug errors when attacking creatures and seeing them die. The bug with runes is still present, but I'll try to find a fix later.

  • items.otb: items.rar
    It has all the new items, and attribtes fixed for the old items (potions, runes and empty potions). This items.otb is kind of useless without RME, though. But you can still summon the new items with /i command.

If someone wants to open the new items.otb or patch their own, here's the modified OTItemEditor: otitemeditor.rar
Add this into your graphics.dat:
Code:
4C2C7993 4C220594 860 19

I had these things working for a week already, sorry for not uploading them sooner.
 
Okay here goes.

  • Executable (TFS 0.3.6pl1): TheForgottenServer.rar
    Using this .EXE should fix debug errors when attacking creatures and seeing them die. The bug with runes is still present, but I'll try to find a fix later.

  • items.otb: items.rar
    It has all the new items, and attribtes fixed for the old items (potions, runes and empty potions). This items.otb is kind of useless without RME, though. But you can still summon the new items with /i command.

If someone wants to open the new items.otb or patch their own, here's the modified OTItemEditor: otitemeditor.rar
Add this into your graphics.dat:
Code:
4C2C7993 4C220594 860 19

I had these things working for a week already, sorry for not uploading them sooner.

can you post the c++ fixes please? i have a modified distro and will try to pass to 8.60

and dont worry for the delay in posting, the intention is what counts
 
Okay here goes.

  • Executable (TFS 0.3.6pl1): TheForgottenServer.rar
    Using this .EXE should fix debug errors when attacking creatures and seeing them die. The bug with runes is still present, but I'll try to find a fix later.

  • items.otb: items.rar
    It has all the new items, and attribtes fixed for the old items (potions, runes and empty potions). This items.otb is kind of useless without RME, though. But you can still summon the new items with /i command.

If someone wants to open the new items.otb or patch their own, here's the modified OTItemEditor: otitemeditor.rar
Add this into your graphics.dat:
Code:
4C2C7993 4C220594 860 19

I had these things working for a week already, sorry for not uploading them sooner.


Thx man... this project have nice future ;)
 
Last edited:
can you post the c++ fixes please? i have a modified distro and will try to pass to 8.60

and dont worry for the delay in posting, the intention is what counts
items.cpp
Code:
	else if(Items::dwMinorVersion != [B][COLOR="Red"]19[/COLOR][/B])
	{
		std::cout << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
		return ERROR_INVALID_FORMAT;
	}
protocolgame.cpp
Code:
void ProtocolGame::parseAttack(NetworkMessage& msg)
{
	uint32_t creatureId = msg.GetU32();
[B][COLOR="Red"]	msg.GetU32();
	msg.GetU32();[/COLOR][/B]
	addGameTask(&Game::playerSetAttackedCreature, player->getID(), creatureId);
}
Code:
void ProtocolGame::sendCancelTarget()
{
	NetworkMessage_ptr msg = getOutputBuffer();
	if(msg)
	{
		TRACK_MESSAGE(msg);
		[B][COLOR="Red"]//[/COLOR][/B]msg->AddByte(0xA3);
	}
}
 
items.cpp
Code:
	else if(Items::dwMinorVersion != [B][COLOR="Red"]19[/COLOR][/B])
	{
		std::cout << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
		return ERROR_INVALID_FORMAT;
	}
protocolgame.cpp
Code:
void ProtocolGame::parseAttack(NetworkMessage& msg)
{
	uint32_t creatureId = msg.GetU32();
[B][COLOR="Red"]	msg.GetU32();
	msg.GetU32();[/COLOR][/B]
	addGameTask(&Game::playerSetAttackedCreature, player->getID(), creatureId);
}
Code:
void ProtocolGame::sendCancelTarget()
{
	NetworkMessage_ptr msg = getOutputBuffer();
	if(msg)
	{
		TRACK_MESSAGE(msg);
		[B][COLOR="Red"]//[/COLOR][/B]msg->AddByte(0xA3);
	}
}

thanks! really! ever helping cyko!

excuse me, can explain better in the file where put the codes?
 
Last edited:

thanks cyko! everything works very well :)
i wait to see you autostack code and runes fix :)

EDIT:

i find a bug, when you kill a target with "chase oponent button" enable, when the target die, is like the player still chasing oponent without target anything and when you walk normaly, the "chase oponent button" change to "stand while fighting button" like when you are chasing an oponent and try move freely with directional buttons...

i hope explain well, i have bad english...
 
Last edited:
If like me when adding those changes you get the errors:

Code:
  In member function 'void ProtocolGame::parseAttack(NetworkMessage&)': 
'class NetworkMessage' has no member named 'GetU32' 
'class NetworkMessage' has no member named 'GetU32' 
'class NetworkMessage' has no member named 'GetU32' 
*** [obj//protocolgame.o] Error 1

then go to the ParseAttack function and replace it with this:

Code:
void ProtocolGame::parseAttack(NetworkMessage& msg)
{
	uint32_t creatureId = msg.get<uint32_t>();
	msg.get<uint32_t>();
	msg.get<uint32_t>();
	addGameTask(&Game::playerSetAttackedCreature, player->getID(), creatureId);
}
 
If like me when adding those changes you get the errors:

Code:
  In member function 'void ProtocolGame::parseAttack(NetworkMessage&)': 
'class NetworkMessage' has no member named 'GetU32' 
'class NetworkMessage' has no member named 'GetU32' 
'class NetworkMessage' has no member named 'GetU32' 
*** [obj//protocolgame.o] Error 1

then go to the ParseAttack function and replace it with this:

Code:
void ProtocolGame::parseAttack(NetworkMessage& msg)
{
	uint32_t creatureId = msg.get<uint32_t>();
	msg.get<uint32_t>();
	msg.get<uint32_t>();
	addGameTask(&Game::playerSetAttackedCreature, player->getID(), creatureId);
}

really? i try these and is not for 0.3.6
 
Hmm, not sure which version im using... Did you get the errors i posted? That was the fix for those errors which probably are because of the version im using.
 
Hmm, not sure which version im using... Did you get the errors i posted? That was the fix for those errors which probably are because of the version im using.

well i'm copiling now, you fix the follow attack?

EDIT:

i compile and no get error, but... the bug is still annyoning :S
 
Last edited:
@up
What problen do you have?


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Known bugs:
#When player stop attack any creature... || FIXED!!!
#When player start attack npc or player... || 50% NEED FIX
#When player see any items (i know, it is potion) || FIXED!!!
More errors?
 
Last edited:
Back
Top