Ir para conteúdo
  • 0
Pepeco

Normal Monster Friend

Pergunta

Pepeco    1
Pepeco

Base:  TFS 1.2, Versão: 8.6

Qual a sua pergunta? Queria fazer com que um monstro não ataque um certo tipo de pessoa (que seria uma vocação), mas ele sempre fica com o target na pessoa, mesmo eu fazendo varias tentativas, como addFriend, removeTarget e RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE

Eu pesquisei em vários lugares e achei esse tópico que trata exatamente meu problema.

Conteúdo Oculto

    Entre aqui ou cadastre-se aqui para visualizar este conteúdo oculto.

Mas no caso dele funcionou, o meu não funcionou.

Monster

Spoiler

Conteúdo Oculto

    Entre aqui ou cadastre-se aqui para visualizar este conteúdo oculto.

 

events/creatures.lua

Spoiler

Conteúdo Oculto

    Entre aqui ou cadastre-se aqui para visualizar este conteúdo oculto.

 

 

Editado por Pepeco
Spoiler dentro de Spoiler

Compartilhar este post


Link para o post

2 respostass a esta questão

Recommended Posts

  • 1
GryLLo    17
GryLLo

Opa @Pepeco beleza?
Olha só, dei uma olhada por cima aqui pra ti e vou te dizer o que encontrei.

Se você quer que o Player seja completamente ignorado como se estivesse invisível, acredito que o jeito mais prático seja alterar os métodos C++ do seu OT, você também pode criar algumas funções auxiliares para serem chamadas em seus .LUA, mas aí é uma pouco mais avançado acredito.

Caso você não se importe dos monstros seguirem o Player, sem atacá-lo, como se fosse um PET dele, apenas essa linha já é suficiente:

return RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE

Caso eles estejam seguindo o player e atacando, verifique se está passando pelo seu if colocando um PRINT, como faço quando estou testando ou tentando novas personalizações em servidores, um exemplo do uso do print para seu código ficaria assim:

Conteúdo Oculto

    Entre aqui ou cadastre-se aqui para visualizar este conteúdo oculto.

Esse código está fazendo com que TODOS os monstros adicione e retire o target do player, escrevendo no console do servidor (tela preta) por exemplo: "Um Demon esta de olho em Pepeco".

Explicando melhor, o script é mais limitado para fazer coisas novas, tem algumas funções que são chamadas antes desse script .LUA por ter toda uma linha de segmento em C++ antes dos scripts começarem a ser chamados, e isso acaba fazendo com que o monstro aplique o target no player, em seguida chamando a função de follow, e só após isso (e talvez mais algumas outras funções) ele entra nessa função Creature:onTargetCombat, e acaba fazendo com que o monstro siga o personagem de qualquer forma, existe uma função dentro do monster.cpp chamada isOpponent, que verifica assim que alguma criatura entra na tela, se é inimiga ou não, caso queira fazer sua função acredito que comece verificando por ali e fazendo com que o isOpponent retorne FALSE se todos seus if's forem todos TRUE, como escrito no teu tópico.

Você poderia inventar algumas gambiarras, mas acredito que não fique muito legal.


Uns abraços,
GryLLo

Editado por GryLLo

Compartilhar este post


Link para o post
  • 0
Pepeco    1
Pepeco

@GryLLo Foi exatamente o que fiz e ele passou por todos os if :/, mas vou tentar fazer isso que você falou sobre o isOpponent, esse foi um grande avanço, vlw u.u, se eu conseguir eu retorno resposta aqui no tópico.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×