Script de npc função de "wait"

Zync
Por Zync
em Resolvidos

Zync

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/16Posts: 17Gênero: Masculino

Eu tenho um script de um npc que luta contra o jogador, e tenho ele a dizer umas frases antes do duelo, só que da forma que tenho ele fala tudo de uma vez e solta logo o pokemon, o que não da tempo ao player der ler as mensagens, eu queria uma função que fizesse o npc esperar x segundos entre cada mensagem

Eu tentei usar esta função:

local function wait(seconds)  local start = os.time()  repeat until os.time() > start + secondsend(...)selfSay("O meu nome é X, eu quero duelar com vc!")wait(2)selfSay("Espero que esteja preparado mlk!")wait(2)selfSay("Vamos a isso!")(...)

Mas não teve o resultado que eu esperava, o npc fica calado durante algum tempo e depois fala as msgs e solta logo o pokemon tupo no mesmo instante, tem alguma forma que funcione de fazer isso?

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Você pode usar addEvent nas funções de fala, separando-as por um intervalo em milissegundos. Por exemplo:

selfSay("O meu nome é X, eu quero duelar com vc!")addEvent(selfSay, 1500, "Espero que esteja preparado mlk!")addEvent(selfSay, 3000, "Vamos a isso!")

 

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

Zync

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/16Posts: 17Gênero: Masculino

O npc acaba por só usar a fala sem o addEvent...

1 hora atrás, zipter98 disse:

Você pode usar addEvent nas funções de fala, separando-as por um intervalo em milissegundos. Por exemplo:

selfSay("O meu nome é X, eu quero duelar com vc!")addEvent(selfSay, 1500, "Espero que esteja preparado mlk!")addEvent(selfSay, 3000, "Vamos a isso!")

 

Não tem outra forma de fazer wait em lua?

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Sinceramente, não estou muito a fim de procurar a razão do problema com o selfSay, então, se não se importar, use isso aqui (em efeitos práticos, dá na mesma):

selfSay("O meu nome é X, eu quero duelar com vc!")    addEvent(doCreatureSay, 1500, getNpcCid(), "Espero que esteja preparado mlk!")    addEvent(doCreatureSay, 3000, getNpcCid(), "Vamos a isso!")

Certamente deve haver outras formas de preparar ações para um momento futuro, mas minha disposição à programar não me incentiva muito a pensar nisso. addEvent é a maneira mais simples e sem complicações (logicamente, 'sem complicações' caso as condições adequadas sejam postas, o que não vejo necessidade no caso - a não ser que o NPC seja deletado aleatoriamente).

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

Zync

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/16Posts: 17Gênero: Masculino

Funcionou cara! Mil obrigados! Sim no sistema que implementei, após o duelo o npc torna-se um monster e o player "mata-o" e é inicializado outro script para fazer spawn do npc inicial de volta