Closed Ghorre closed 12 years ago
That's a well know server side only bug, all otservs ignore the attack sequential number in parseAttack,
Taken from TFS source 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);
}
The first "??" byte represents the attack seq, used to cancel attacks.
void ProtocolGame::sendCancelTarget()
{
NetworkMessage_ptr msg = getOutputBuffer();
if(!msg)
return;
TRACK_MESSAGE(msg);
msg->put<char>(0xA3);
msg->put<uint32_t>(0); //? creatureId?
}
The "unknown" byte must be the same value received in parseAttack, but TFS doesn't implement that. That bug doesn't exist while playing real tibia with otclient.
I see. I'll double check next time - sorry I bothered You.
When attacking next creature while the previous one is dying (death delay) you might be able to make one hit and then the "red square" disappears - attack gets cancelled.
Steps to reproduce (kinda hard to catch - might take a few attempts):