Ir para conteúdo

Creaturescripts - Monstro ser teleportado ao perder metade da vida

Featured Replies

Postado

Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website).

TFS 0.4;

Base: 

 

 

Qual erro está surgindo/O que você procura?

Ola, estou tentando criar um script para quando o monstro tiver metade de vida, o mesmo ser teleportado para outro lugar. Mas o mais próximo que consegui chegar foi através da function onPrepareDeath, onde ele até é teleportado, mas somente depois de morrer. Assim sendo, mudei para statstschange mas ai nada ocorre, apenas morre e fica no seu lugar normal. Alguém poderia me ajudar com tal script para que ele funcione corretamente? Desde já agradeço. 

 

Veja o código abaixo que está em creaturescripts

 

Você tem o código disponível? Se tiver publique-o aqui:

function onStatsChange(cid, attacker, type, combat, value)
if getCreatureHealth(cid) <= 4000 then
doTeleportThing(cid,{x=1744, y=2440, z=7})
else
return 0
end
return 1
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.

  • Respostas 5
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Tudo correto, verifica se o derrotarboss.lua está na pasta principal do creaturescripts e não dentro de outra. Acredito que não seja erro no monster.xml visto que o erro da console é de não ter enco

Postado

Testa ae man, qualquer coisa errada eu arrumo amanhã...

local Hp =  0.70 -- Porcentagem de vida para usar o event ( a partir de 70%)
local intervalo = 30 -- intervalo entre os teletransportes em segundos
local destino = {x = 156 , y = 45 , z = 7}
FlagTK = 0 -- não mexa, variavel controladora.

function onStatsChange(cid, attacker, type, combat, value)
	
	if type == 1 and (getCreatureHealth(cid) <= getCreatureMaxHealth(cid)*Hp) and FlagTK == 0  then
		FlagTK = 1
		addEvent(Teleporta,1000,cid,destino)
	end
return true
end

function Teleporta(cid,destino)
	doTeleportThing(cid, destino)
	doSendMagicEffect(destino, 10)
	addEvent(ZeraFlag,intervalo*1000,nil)
end

function ZeraFlag()
	FlagTK = 0
end

 

Postado
  • Autor

Opa, desde já obrigado. Mas testei aqui e não deu certo. Aparece isso na distro:

 

[0:31:00.937] [Warning - Monster::Monster] Unknown event name - derrotarboss

No creaturescript.xml está assim: 

<event type="statschange" name="derrotarboss" event="script" value="derrotarboss.lua"/>

e no script do boss em questão, tem essa parte antes de fechar </monster>

<script>
<event name="derrotarboss"/>
</script>

 

Está faltando algo será?

Postado
17 horas atrás, maicao22 disse:

Opa, desde já obrigado. Mas testei aqui e não deu certo. Aparece isso na distro:

 


[0:31:00.937] [Warning - Monster::Monster] Unknown event name - derrotarboss

No creaturescript.xml está assim: 


<event type="statschange" name="derrotarboss" event="script" value="derrotarboss.lua"/>

e no script do boss em questão, tem essa parte antes de fechar </monster>


<script>
<event name="derrotarboss"/>
</script>

 

Está faltando algo será?

Tudo correto, verifica se o derrotarboss.lua está na pasta principal do creaturescripts e não dentro de outra.

Acredito que não seja erro no monster.xml visto que o erro da console é de não ter encontrado o nome do evento...

verifica ae onde você deixou o arquivo derrotarboss.lua.

 

por via das dúvidas o monster.xml do que eu testei o script:

draken spellweaver.xml

Postado
  • Autor

Opa amigo, muito obrigado. Deu super certo aqui. Obrigado por colaborar.

 

Só uma última coisa, como faço para que só seja teleportado uma vez? Porque no script ta configurado para ele ficar voltando para o local marcado a cada 30 segundos, mas gostaria que uma vez que ele fosse teleportado a primeira vez, isso não acontecesse mais. 

 

Creio que se eu aumentar o tempo isso resolve o problema. Mas se tiver como simplificar no código seria melhor.

 

Só para você entender o que estou falando, o boss pertence a um local em uma determinada cidade. Quando atingir metade da vida. ele vai para outra cidade, onde os player terão que se dirigir para lá para continuar lutando com o boss. Mas uma vez que ele se teleporta para essa outra cidade vizinha, não precisa do mesmo ficar se teleportando toda hora para o local marcado.

 

Mais uma vez muito obrigado, e rep + desde já.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo