Postado Dezembro 20, 2016 8 anos Galera, boa tarde, tenho esse script function onSay(cid, words, param) if getPlayerStorageValue(cid,49015) - os.time() > 0 then doPlayerSendTextMessage(cid, 23,"Tempo para acabar a Exp Potion:") return true end return true end Bom...eu queria que quando falasse: !exptime...ele mostrasse quanto tempo falta para acabar o exp potion. Expo.lua function onUse(cid, item, frompos, item2, topos) local pausa = 120*60*120000 -- (1000 = 1 segundos) Tempo que o script durará local texto = "Você dobrou sua Experiencia por 2 Horas" -- Texto que irá receber ao usar a potion. textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar. local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. remoitem = true --irá remover o item. local limitedeuso = 49015 local tempo = 120*60*1000 -- 1000 = 1s então 1000 vezes 60 vezes 30 = 30 minutos local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar." local seuitem = 7440 -- seu item que dará double exp local efeito1 = 13 -- efeito que ficara com o char por meia hora local efeito2 = 35 -- efeito que acontecera no momento que usar a pot --fim da parte configuravel não mecha se nao tiver conhecimento de scripting local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais. function effect() if isPlayer(cid) then local pos = getCreaturePosition(cid) doSendMagicEffect(pos, efeito1) end end if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,exp) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, limitedeuso, os.time() + 1800) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,pausa,cid) a = 1 while a ~= timeEffect do addEvent(effect, a * 1000) a = a + 1 end elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then doPlayerSendTextMessage(cid,22,textofinal1) end return true end function potion(cid) doPlayerSetExperienceRate(cid,expfinal) doPlayerSendTextMessage(cid,22,textofinal) end . Se puderem me ajudar...+3rep.
Postado Dezembro 20, 2016 8 anos function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end function onSay(cid, words, param) if getPlayerStorageValue(cid,49015) - os.time() <= 0 then doPlayerSendTextMessage(cid, 23,"você não tem Exp Potion ativa.") return true end local time = timeString((os.time() - getPlayerStorageValue(cid, 49015))) return doPlayerSendTextMessage(cid, 23,"você ainda tem "..time.." de Exp Potion.") end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Dezembro 20, 2016 8 anos Autor Cara, eu acho que meu script ta bugado, pq eu coloquei la o que vc posto e funciono normal, ai aparece que tenho 23:00 horas de exp, só que eu coloquei 2 horas, pode me ajudar? e também ao invez dele diminuir o tempo ele aumenta...tipo: 17:18 você ainda tem 23 hours, 43 minutes and 33 seconds de Exp Potion. 17:18 você ainda tem 23 hours, 43 minutes and 45 seconds de Exp Potion. ele vai aumentando, e nao diminui...pode me ajudar ou indicar um melhor? Editado Dezembro 20, 2016 8 anos por Luzetti (veja o histórico de edições)
Postado Dezembro 20, 2016 8 anos deixa assim pra ver function onUse(cid, item, frompos, item2, topos) local texto = "Você dobrou sua Experiencia por 2 Horas" -- Texto que irá receber ao usar a potion. textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar. local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. remoitem = true --irá remover o item. local limitedeuso = 49015 local hours = 2 local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar." local seuitem = 7440 -- seu item que dará double exp local efeito1 = 13 -- efeito que ficara com o char por meia hora local efeito2 = 35 -- efeito que acontecera no momento que usar a pot local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais. function effect() if isPlayer(cid) then local pos = getCreaturePosition(cid) doSendMagicEffect(pos, efeito1) end end if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,exp) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, limitedeuso, os.time() + hours*3600) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,pausa,cid) a = 1 while a ~= timeEffect do addEvent(effect, a * 1000) a = a + 1 end elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then doPlayerSendTextMessage(cid,22,textofinal1) end return true end function potion(cid) doPlayerSetExperienceRate(cid,expfinal) doPlayerSendTextMessage(cid,22,textofinal) end e o talk assim function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end function onSay(cid, words, param) if getPlayerStorageValue(cid,49015) - os.time() <= 0 then doPlayerSendTextMessage(cid, 23,"você não tem Exp Potion ativa.") return true end local time = timeString(-(os.time() - getPlayerStorageValue(cid, 49015))) return doPlayerSendTextMessage(cid, 23,"você ainda tem "..time.." de Exp Potion.") end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Dezembro 20, 2016 8 anos Autor 4 minutos atrás, Vodkart disse: deixa assim pra ver function onUse(cid, item, frompos, item2, topos) local texto = "Você dobrou sua Experiencia por 2 Horas" -- Texto que irá receber ao usar a potion. textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar. local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. remoitem = true --irá remover o item. local limitedeuso = 49015 local hours = 2 local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar." local seuitem = 7440 -- seu item que dará double exp local efeito1 = 13 -- efeito que ficara com o char por meia hora local efeito2 = 35 -- efeito que acontecera no momento que usar a pot local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais. function effect() if isPlayer(cid) then local pos = getCreaturePosition(cid) doSendMagicEffect(pos, efeito1) end end if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,exp) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, limitedeuso, os.time() + hours*3600) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,pausa,cid) a = 1 while a ~= timeEffect do addEvent(effect, a * 1000) a = a + 1 end elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then doPlayerSendTextMessage(cid,22,textofinal1) end return true end function potion(cid) doPlayerSetExperienceRate(cid,expfinal) doPlayerSendTextMessage(cid,22,textofinal) end e o talk assim function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end function onSay(cid, words, param) if getPlayerStorageValue(cid,49015) - os.time() <= 0 then doPlayerSendTextMessage(cid, 23,"você não tem Exp Potion ativa.") return true end local time = timeString(-(os.time() - getPlayerStorageValue(cid, 49015))) return doPlayerSendTextMessage(cid, 23,"você ainda tem "..time.." de Exp Potion.") end agr ta dando isso: 17:36 Você dobrou sua Experiencia por 2 Horas 17:36 Sua Exp Voltou Ao Normal. as 2 mensagens ao mesmo tempo.
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.