Ir para conteúdo
  • Cadastre-se

(Resolvido)Duvida Sobre Lua


Ir para solução Resolvido por Rusherzin,

Posts Recomendados

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)
Link para o post
Compartilhar em outros sites

@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

Link para o post
Compartilhar em outros sites

@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)
Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites
  • Solução

Hmmm, tenta mudar essa linha:
 

addEvent(regenerationOverTime, delay, cid, skill, magic)

Por isso:
 

addEvent(regenerationOverTime, delay, cid.uid, skill, magic)

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
44 minutos atrás, Rusherzin disse:

Hmmm, tenta mudar essa linha:
 


addEvent(regenerationOverTime, delay, cid, skill, magic)

Por isso:
 


addEvent(regenerationOverTime, delay, cid.uid, skill, magic)

 

 

manja muito rs 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo