...
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;
4C2C7993 4C220594 860 19
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.
@Chev:
You aren't supposed to use 0.4_DEV.
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.
items.cppcan 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
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;
}
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);
}
void ProtocolGame::sendCancelTarget()
{
NetworkMessage_ptr msg = getOutputBuffer();
if(msg)
{
TRACK_MESSAGE(msg);
[B][COLOR="Red"]//[/COLOR][/B]msg->AddByte(0xA3);
}
}
items.cpp
protocolgame.cppCode: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; }
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?
Ctrl+F
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
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); }
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.
More errors?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!!!