Ir para conteúdo

[c++] passive system


Posts Recomendados

12 minutos atrás, Drazyn1291 disse:

Testei em TFS 0.4, compilou normalmente e está funcionando quase perfeitamente! Só está com um problema,

 

Tipo, se ele for passivo, só te ataca se tu atacar ele

Dai em ots de pokemon, a gente ataca com o summon, dai se a gente ataca o bixo com summon e depois puxa ele (remove) e coloca ele denovo (adicionar outro summon), pra os players não fazem diferença isso de "remover e adicionar" mas para o monsters eles pega o cid do monster, e toda vez que remove e adiciona denovo, cria um cid diferente, dai é como se não tive-se atacada o monster, tlg? dai eu acho que seria melhor, pra tipo, registrar no monster que é passivo, o cid do player e não do summon, se não iria acontecer isso que expliquei

 

Entendeu? Tenta fazer essa modificação ae :D

Vou mudar aqui e te envio, ok ? :}

(Para te ajudar antes do cara entrar)

Editado por Danny0
Link para o comentário
Compartilhar em outros sites

Agora, boxxer321 disse:

faz uma adaptação pra 0.3.6 ai :D

Já fiz, agora tô tentando resolver um problema para ele pegar o GUID do player e não o ID do monstro.

Link para o comentário
Compartilhar em outros sites

15 minutos atrás, Ceetros disse:

Já fiz, agora tô tentando resolver um problema para ele pegar o GUID do player e não o ID do monstro.

tb to com esse erro.

Link para o comentário
Compartilhar em outros sites

1 hour ago, nociam said:

tb to com esse erro.

E so criar uma similar ao hasBeenAttacked porem tu tem que usar outro nome pra saber que é o guid que ta sendo passado como param

Link para o comentário
Compartilhar em outros sites

38 minutos atrás, dalvorsn disse:

E so criar uma similar ao hasBeenAttacked porem tu tem que usar outro nome pra saber que é o guid que ta sendo passado como param

 

Eu consegui fazer, mas ele dá erro no luascripts.cpp, dizendo que não tem "target" em isTarget

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, Ceetros disse:

 

Eu consegui fazer, mas ele dá erro no luascripts.cpp, dizendo que não tem "target" em isTarget

Sim eu fui tentar fazer e percebi, tem que por na função que seta target tipo, assim que o summon atacar o monster, registrar o guid do player no targetList do monster

Link para o comentário
Compartilhar em outros sites

1 hora atrás, dalvorsn disse:

E so criar uma similar ao hasBeenAttacked porem tu tem que usar outro nome pra saber que é o guid que ta sendo passado como param

Vc acha que pode ajudar com a solução porque não manjo muito de c++, claro se não for pedir demais.

 

achei ela em creature.cpp?

 

bool Creature::hasBeenAttacked(uint32_t attackerId) const

{

 CountMap::const_iterator it = damageMap.find(attackerId);

 if(it != damageMap.end())

  return (OTSYS_TIME() - it->second.ticks) <= g_config.getNumber(ConfigManager::PZ_LOCKED);

 
 return false;

}

Editado por nociam
Link para o comentário
Compartilhar em outros sites

PARA PEGAR O ID DO MASTER:

Monster.cpp:

Vai ter uma parte parecida com essa, não lembro como é, deixa assim:

 

if((isHostile() || isSummon() || isTarget(creature) && !isSummon() && isPassive()) && setAttackedCreature(creature) && !isSummon())		Dispatcher::getInstance().addTask(createTask(			boost::bind(&Game::checkCreatureAttack, &g_game, getID() && creature->getMaster())));

 

Editado por Danny0
Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Ceetros disse:

PARA PEGAR O ID DO MASTER:

Monster.cpp:

Vai ter uma parte parecida com essa, não lembro como é, deixa assim:

 

if((isHostile() || isSummon() || isTarget(creature) && !isSummon() && isPassive()) && setAttackedCreature(creature) && !isSummon())		Dispatcher::getInstance().addTask(createTask(			boost::bind(&Game::checkCreatureAttack, &g_game, getID() && creature->getMaster())));

 

faz uma versão 0.3.6 prfv e dps o cara atualiza o tópico c a versão 0.3.6

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...