Postado Abril 20, 2018 7 anos 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 Abril 20, 2018 7 anos por koringa (veja o histórico de edições)
Postado Abril 21, 2018 7 anos @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 Abril 21, 2018 7 anos 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 Abril 21, 2018 7 anos por koringa (veja o histórico de edições)
Postado Abril 21, 2018 7 anos 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 Abril 21, 2018 7 anos 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.