LI

[Resolvido] [AJUDA]Respaw npc por tile

Por Liu King, 18 de mai. de 2018 em Resolvidos

8
2.1k
Liu KingL
18 de maio de 2018 às 18:43

Olá venho aqui pedir uma ajuda não tenho muita experiencia em programação mas queria implementar um script
é possivel criar um script onde um npc X nasça apenas em tiles pre determinados?
Exemplo: NPC Xtibia só vai nascer nos tileid 156
assim o npc Xtibia iria "escolher" entre todos os tiles do mapa com id 156 para respawnar 
Estou usando a base open source do KPDO 
se puderem ajudar eu agradeço >< 

PoRaIP
20 de maio de 2018 às 02:47

Oq exatamente quer fazer? Não é mais fácil spawnar por posição?

Liu KingL
20 de maio de 2018 às 03:02

A ideia é criar um respaw aleatório de vários npc onde o jogador precise procurar diariamente por eles por todo o mapa...e todo server save todo o processo se repete e novamente procurar pelo npc... etc

MeguminyanM
21 de maio de 2018 às 04:46

o npc que  você fala seria um npc agressivo igual o da brotherhood?

Liu KingL
21 de maio de 2018 às 09:23

Nn seriam npc's normais... de troca, missão, task etc

o que eu queria é que esses npc's fossem respawnados aleatoriamente no mapa e não algo fixo 

MeguminyanM
22 de maio de 2018 às 05:51
Melhor resposta

olha, enquanto você não acha o script ideal você pode usar este aqui

Em movements xml adicione essa tag
 

<movevent type="StepIn" actionid="19384" event="script" value="npcrandom.lua"/>

agora em creature events > scripts copie um .lua e renomeie para npcrandom.lua, apague tudo que tem dentro e cole isto

function onStepIn(cid, item, position, fromPosition)
local positio =   {x=1034, y=1039, z=7}
local positio2 =  {x=1036, y=1039, z=7}
local positio3 =  {x=1038, y=1039, z=7}
local positio4 =  {x=1040, y=1039, z=7}
local positio5 =  {x=1034, y=1039, z=7}
local positio6 =  {x=1036, y=1039, z=7}
local positio7 =  {x=1038, y=1039, z=7}
local positio8 =  {x=1040, y=1039, z=7}
local positio9 =  {x=1034, y=1039, z=7}
local positio10 = {x=1036, y=1039, z=7}
local chance = math.random(1,10)



if chance == 1     then
doTeleportThing(cid, positio) 
elseif chance == 2 then
doTeleportThing(cid, positio2) 
elseif chance == 3 then
doTeleportThing(cid, positio3)
elseif chance == 4 then
doTeleportThing(cid, positio4)
elseif chance == 5 then
doTeleportThing(cid, positio5)
elseif chance == 6 then
doTeleportThing(cid, positio6)
elseif chance == 7 then
doTeleportThing(cid, positio7)
elseif chance == 8 then
doTeleportThing(cid, positio8)
elseif chance == 9 then
doTeleportThing(cid, positio9)
elseif chance == 10 then
doTeleportThing(cid, positio10)

end
return true
end

Agora crie um teleport em 1 lugar onde os players não tem acesso com o adction id 19384 no seu mapa e faça o npc desejado spawnar em cima dele (lembre de não deixar espaço aberto ao lado do teleport se não o npc ira spawnar no espaço do lado do teleport


então ao iniciar o server o npc sera jogado em 1 dessas 10  localizações editaveis.

para adicionar mais lugares é só ir adicionando os positiosX, mudar a quantidade de lugars no  Math.random e adicionar mais elseif chance = X

Editado Maio 22 por Meguminyan

Liu KingL
23 de maio de 2018 às 11:58

Nossa... realmente é muito bom o script posso determinar mts coordenadas e usar isso a todos os npc... mt obrigado reputado...
se a staff quiser pode fechar o tópico...

1 mês depois...
StigalS
14 de junho de 2018 às 12:32
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.