Ir para conteúdo

Featured Replies

Postado

Olá, gostaria de saber se existe alguma forme de por um "wait" no loop em lua (sou novo com essas parada)

 

Exemplo

 

for n = 1, 15, 1 do

    [bloco de comando]

    wait(2000) --[2 segundos]

end

 

alguém pode me ajuda com isso ?

 

OBS: não sei se está na area correta, se não tiver algum ADM pode mover pra mim ? Obrigado! 

Editado por koringa (veja o histórico de edições)

Resolvido por Rusherzin

Ir para solução
  • Respostas 7
  • Visualizações 771
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Hmmm, tenta mudar essa linha:   addEvent(regenerationOverTime, delay, cid, skill, magic) Por isso:   addEvent(regenerationOverTime, delay, cid.uid, skill, magic)  

Posted Images

Postado

@koringa, pode tentar usar uma função própria:
 

local function wait(segundos)
  local esperar = os.time() + segundos
  repeat until esperar <= os.time()
end

for n = 1, 15, 1 do
    [bloco de comando]
    wait(2) --[2 segundos]
end 

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Postado
  • Autor

@Rusherzin 

cara eu to tentando refazer um script de um ot 7.9 pra um ot 10.99

e ta assim, porem quando eu ponho essa parada que você mando o serve trava por uns 15 segundos e os char tomam conection lost.

 

pra você ter uma ideia melhor do script, isso é uma potion que vai curar o player 15 vezes durante 30 segundos sendo assim cada cura com intervalo de 2 segundos

 

Spoiler

function onUse(cid, item, frompos, item2, topos)
skill = getPlayerSkill(cid,0)
magic = getPlayerMagLevel(cid)
Blood = 1


local exhausted_seconds = 32 -- Segundos que o blood vai demorar para usar denovo
local exhausted_storagevalue = 4850 -- Storage Value do exhausted


if getPlayerSoul(cid) <= 49 then
doPlayerSendTextMessage(cid,20,"Desculpe, você não tem Souls suficiente.")
return TRUE
end

if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then
doPlayerSendTextMessage(cid,20,"Você não pode usar um blood of gods durante o efeito de outro.")
return TRUE
end

if Blood == 1 and (os.time() >= getPlayerStorageValue(cid, exhausted_storagevalue)) then
	setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
	doPlayerAddSoul(cid,-50)
	doRemoveItem(item.uid,1)
	
	local function wait(segundos)
		local esperar = os.time() + segundos
		repeat until esperar <= os.time()
	end

	for n = 1, 15, 1 do
		if isPlayer(cid) == TRUE then
		doCreatureAddHealth(cid,(12*getCreatureMaxHealth(cid)/100)+(skill*6)+(magic*2))
		doPlayerAddMana(cid,(12*getPlayerMaxMana(cid)/100)+(skill*6)+(magic*2))
		doSendMagicEffect(getCreaturePosition(cid), 9)
		wait(2)
	end
end
end
end

 

 

Editado por koringa (veja o histórico de edições)

Postado

Aaaah, sim, não tenho certeza se vai funcionar, mas tenta fazer com addEvent.
 

local function regenerationOverTime(cid, skill, magic)
		if isPlayer(cid) == TRUE then
			doCreatureAddHealth(cid,(12*getCreatureMaxHealth(cid)/100)+(skill*6)+(magic*2))
			doPlayerAddMana(cid,(12*getPlayerMaxMana(cid)/100)+(skill*6)+(magic*2))
			doSendMagicEffect(getCreaturePosition(cid), 9)
		end
	return true
end

function onUse(cid, item, frompos, item2, topos)
skill = getPlayerSkill(cid,0)
magic = getPlayerMagLevel(cid)
Blood = 1


local exhausted_seconds = 32 -- Segundos que o blood vai demorar para usar denovo
local exhausted_storagevalue = 4850 -- Storage Value do exhausted


if getPlayerSoul(cid) <= 49 then
doPlayerSendTextMessage(cid,20,"Desculpe, você não tem Souls suficiente.")
return TRUE
end

if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then
doPlayerSendTextMessage(cid,20,"Você não pode usar um blood of gods durante o efeito de outro.")
return TRUE
end

if Blood == 1 and (os.time() >= getPlayerStorageValue(cid, exhausted_storagevalue)) then
	setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
	doPlayerAddSoul(cid,-50)
	doRemoveItem(item.uid,1)
	
	for n = 1, 15, 1 do
		local delay = (n < 1) and 1 or (n-1) * 2000
		addEvent(regenerationOverTime, delay, cid, skill, magic)
	end
end
end

 

Editado por Rusherzin (veja o histórico de edições)

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo