LU

[Fix/Patch] OnTarget(cid, target) (Resolver Bug de Return false)

Por Luga03, 03 de jan. de 2016 em Linguagens de Programação

4
950
Luga03L
03 de janeiro de 2016 às 14:28

Iai pessoa, blz? Eu Achei este fix na Otland, eu estava com o problema de o return false, não fazer nada, então agora está fazendo oque é esperado (retornar falso e tirar o target) :D oque preciso :D Resolvi compartilhar com vcs :D



Obs: Este fix/patch é do tfs 0.4



Agora em Combat.cpp


Procure por:



ReturnValue Combat::canTargetCreature

Agora nestá função procure por:



if(deny)

Substitua a Linha seguinte por isto:



return RET_YOUARENOTTHEOWNER;//just any thing that isn't related

Agora em game.cpp


Procure por:



Game::playerSetAttackedCreature

Procure no code por isto:



if(ret != RET_NOERROR)
{
player->sendCancelMessage(ret);
player->sendCancelTarget();
player->setAttackedCreature(NULL);
return false;
}

Substitua por:



if(ret != RET_NOERROR)
{
if(ret != RET_YOUARENOTTHEOWNER)
player->sendCancelMessage(ret);

player->sendCancelTarget();
player->setAttackedCreature(NULL);
return false;
}

Pronto, Código adicionado!


Créditos a Doggynub



Exemplo de uso:



function onTarget(cid, target)
if isMonster(target) then
return false
end
return true
end

Se o target for um monstro... ele vai retornar falso e não vai atacar o monstro :D


Editado Janeiro 3 por Drazyn1291

AvronexA
03 de janeiro de 2016 às 15:01

Acho que nao tive esse problema em tfs 0.3.6. Sabe se da problema nessa distro tmb?

Luga03L
03 de janeiro de 2016 às 15:16

Acho que este fix é de source 0.4 :/ vou ler o tópico dnv e atualizo este :D


Pronto, acabei de ver e este fix é para tfs 0.4... tópico atualizado

03 de janeiro de 2016 às 19:58

muito bom,estavo com este problema com o 0.4,tavo tentando achar a solução a algum tempo,muito bom!