Jump to content

Question

Alguma chance de fazer dois monstros selvagens brigarem entre si, sem ter que mudar na source a AI dos monstros?

onTarget não serve pra monstros e, aparentemente, o setTarget não funciona para 2 monstros, nem o challengeCreature.

 

Alguma ideia?

 

Edited: Descobri que é possível fazer isso usando combat, mas ainda procuro uma solução mais simples do que refazer toda a iteração dos monstros via combat rs.

Edited by Skulls
Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/
Share on other sites

Recommended Posts

  • 0

Funcionou, porem deu erro na hora de executar: LIBMYSQL.dll missing..

Compartilhei o sisteminha que fiz em lua para tal:

http://www.xtibia.com/forum/topic/238899-monstros-duelando-entre-si/

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1682062
Share on other sites

  • 0

pensei nisso hoje, se nao me engano tem scripts de monstros passivos por aí via source editing, com a tag de monstros passivos daria pra fazer monstros agressivos atacarem os passivos da mesma forma que atacam um player, mas como não mexo com c++, não faço idéia de como seria uma possivel implementação disso

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681228
Share on other sites

  • 0

pensei nisso hoje, se nao me engano tem scripts de monstros passivos por aí via source editing, com a tag de monstros passivos daria pra fazer monstros agressivos atacarem os passivos da mesma forma que atacam um player, mas como não mexo com c++, não faço idéia de como seria uma possivel implementação disso

Pois é. Eu até sei C++, mas nunca mexi com C++ pra ot e as vezes que baixei uma source apanhei pra compilar, então eu estou evitando usá-lo.

Eu encontrei um jeito, usando doTargetCombatHealth e doAreaCombatHealth, e mandando procurar na mão se tem algum monstro por perto para ele dar target, mas vai dar um puta trabalho, rs. Queria mesmo um jeito mais simples.

 

EDITED:

Não ta 100% ainda não, mas já é uma luz :tongue:

 

giphy.gif

Edited by Skulls
Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681229
Share on other sites

  • 0

Isso daqui é um script pra monstros não atacarem determinadas vocações, alguns NTO's utilizam algo semelhante para não atacar determinados storages, acredito que com as modificações corretas daria pra implementar um sistema complexo de hierarquia na ordem de ataques:

Se o lobo tem um cervo e um humano pra atacar, qual dos dois ele escolhe?

Observe o script:

 

local notattackable = {1,2,5,6} --- vocações que não receberão ataque
function onCombat(cid, target)
 
if(not isPlayer(target)) then
return true
else
 
targets = getMonsterTargetList(cid)
if isInArray(notattackable, getPlayerVocation(target)) then
   addEvent(check,1000,cid,targets)
   return false
else
return true
end
end
end
 
function check(cid,targets) 
for i=1, #targets do
	if isInArray(notattackable, getPlayerVocation(targets[i])) then	  
	   addEvent(check,1000,cid,targets)
	   return false
	else
		stopEvent(check)
		return true
	end
end
end

 


não é de minha autoria, tenho aqui no pc salvo mas peguei de algum lugar acho.. só não lembro onde.

Com algumas tabelas vc consegue controlar muita coisa nesse script, só tem que verificar se na targetList ele considera outros monstros, porque se não... teria que modificar essa função na source :/

 

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681326
Share on other sites

  • 0

então tenta trocar pra toda vez que for iniciar o combat, se for player checar as criaturas em volta e ver se há monstros passivos e aí vc usa o dotargetCombat, se fizer um script só pro combat dos monstros, vc pode configurar quais vão ser agressivos só botando a tag do creaturescript no xml

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681363
Share on other sites

  • 0

Eh exatamente isso que estou fazendo, inclusive aquela gif ali.. ta funcionando, mas da trabalho.. eu vou fazer meu próprio sistema de Target de monstro e ignorar as interações vindas da source xP

 

Eu to com um probleminha que eh o maldito follow que eles dão, mesmo nao batendo no player, eles mantem uma interacao seguido ele como se tivesse com target. Nesse script que vc postou das vocações, acontece isso?

Edited by Skulls
Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681365
Share on other sites

  • 0

não se tiver outro target, o problema do script acima é que ele não assume modo defensivo na presença de outro player.. lembro de um teste q eu fiz com um demon e somente um personagem da vocação q nao podia ser atacada, oque aconteceu foi que o demon ficava correndo pra lá e pra cá em volta do player como se tivesse se preparando pra ir atacar ele, mas não ia. Não lembro se o demon me seguia caso eu fugisse mas pro seu caso acredito q isso nao seria um problema.. a menos q vc esteja pensando em fazer monstros de raças que não atacam os humanos, por exemplo.. mas aí compensa mais trabalhar em cima da IA via source

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681367
Share on other sites

  • 0

Eu acredito que seja muito melhor editar o IA dos monstros pelas sources, qualquer método diferente, é um "atalho" ou "redirecionamento"...

é melhor criar uma raça (Ex: blood, undead) de monstros, que tenha essa característica. Mas aí mano, vai ter que aprender a mexer bem nas sources, porque não é só criar um bool lá que tá tudo resolvido...

 

Eu acho que criar outra raça seria muito mais legal, e fácil para você controlar os monstros que não atacam player...

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681442
Share on other sites

  • 0

Exatamente, por mais que eu saiba c++ eu ia ter que ler códigos e tutoriais pra aprender a editar as sources e fazer algo decente. Sem contar que eu nunca consigo compilar. Acho que do jeito que estou fazendo vou conseguir fazer o que preciso, só tenho que resolver esse problema do follow. Tem como criar outra raça via script?

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681452
Share on other sites

  • 0

Rapaz, se for 0.3~0.4 vc tem uma gama infinita de creaturescripts pra brincar..

onAttack
onFollow
onTarget

Experimenta cada um deles com return false e verifica qual que impede o monstro de seguir o player.

Não sei se vou levar advertencia por postar link de outros fóruns mas não tem como eu copiar todo o contéudo que eu escrevi lá aqui.

To meio sem tempo pra ficar abrindo sv e fazendo testes, mas prometo q se vc não conseguir eu vou fazer de tudo pra tentar algo aqui também. Boa sorte amigo, e se conseguir, por favor compartilhe a solução ^^

Edited by Caronte
Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681471
Share on other sites

  • 0

Wolf tu já me ajuda muito. Eu tenho esse post seu no meu favoritos, sempre que preciso de um callback novo recorro a ele. Infelizmente, onTarget não serve para monstros. Eu nunca testei onFollow, mas acredito que não funcione pq o follow que ele da é de Target. O onAttack é o que eu estou usando, não resolve o problema.

Vou postar sim, criei um tópico nos showoffs com o gif do que já fiz e a cada avanço vou compartilhar os resultados. Ao final eu posto o código completo em downloads.

Você me ajudando com ideias e possíveis caminhos já ta ótimo, eu vou implementando o que formos pensando e vendo se funciona.

Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681473
Share on other sites

  • 0

Não quero mexer nas sources.

Consegui um resultado bem bom, vou fazer mais alguns ajustes e segunda feira posto aqui! So com setCreatureNoMove da pra contornar o bug.

 

Sabem me dizer se as funções set e get playerStorage podem ser usadas com uid de monstro (funcionou,mas quero saber se buga alguma coisa)

Edited by Skulls
Link to comment
https://xtibia.com/forum/topic/238784-monstros-se-matando/#findComment-1681687
Share on other sites

×
×
  • Create New...