Ir para conteúdo

Featured Replies

Postado

Boa tarde TK!

Tenho um script de potion exp, que vou postar abaixo, o que eu queria é que tivesse um comando exemplo: !tempopotion

para mostrar o tempo restante de todas as potions (é que meu servidor tem potions x2,x3,x4...)

Exemplo:

Você ainda possui tempo restante de:

X2 = 23 minutos e 30 segundos

X3 = 50 minutos e 21 segundos

X4 = não ativada

X5 = não ativada

 

Meu código da potion de x2 abaixo:

Caso conseguir me ajudar, pode fazer com todas as storages do x2, depois eu arrumo com a storage de cada uma!

 

Spoiler

local config = {  
    rate = 2, 
    storage = 61002, 
    expstorage = 61102, 
    register = 61202, 
    time = 1800, 
}  

function onUse(cid, item, fromPosition, itemEx, toPosition) 
    if getPlayerStorageValue(cid, config.storage) <= 0 then 
        local rates = getPlayerRates(cid) 
        setPlayerStorageValue(cid, config.expstorage, rates[SKILL__LEVEL]) 
        setPlayerStorageValue(cid, config.register, 1) 
        itemEx=itemid == 7439 
        doCreatureSay(cid, "Seu EXP x2 [30 min] foi ativado!", TALKTYPE_ORANGE_1, true, cid) 
        setPlayerStorageValue(cid, config.storage, os.time()+config.time)  
        doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+config.rate)  
        doRemoveItem(item.uid,1) 
        registerCreatureEvent(cid, "ExpStagex2") 
    else 
        doCreatureSay(cid, "Você já esta com efeito de x2!", TALKTYPE_ORANGE_1, true, cid) 
    end 
return true 
end 


function onThink(cid, interval) 
    if getPlayerStorageValue(cid, config.register) == 1 then 
        if getPlayerStorageValue(cid, config.storage) <= os.time() then 
            doCreatureSay(cid, "Sua EXP x2 acabou!", TALKTYPE_ORANGE_1, true, cid) 
            setPlayerStorageValue(cid, config.storage, 0) 
            setPlayerStorageValue(cid, config.register, 0) 
            local oldexp = getPlayerStorageValue(cid, config.expstorage) 
            doPlayerSetExperienceRate(cid, oldexp) 
            unregisterCreatureEvent(cid, "ExpStagex2") 
        end 
    end 
return true 
end 
function onLogin(cid) 
    if getPlayerStorageValue(cid, config.register) == 1 then 
        registerCreatureEvent(cid, "ExpStagex2") 
        local rates = getPlayerRates(cid) 
        doCreatureSay(cid, "Seu EXP x2 [30 min] ainda está ativado!", TALKTYPE_ORANGE_1, true, cid) 
        if getPlayerStorageValue(cid, config.storage) > os.time() then 
        local oldexp = getPlayerStorageValue(cid, config.expstorage) 
        doPlayerSetExperienceRate(cid, oldexp+config.rate) 
        end 
    end     
return true 
end

 

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

Resolvido por Vodkart

Ir para solução
  • Respostas 12
  • Visualizações 2.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • n testei   function onSay(cid, words, param) local str,c ="# INFO EXP Potions #\n\n",2 for i = 61002, 61005 do str = str.."[X"..c.."] -> "..(getPlayerStorageValue(cid, i) - os.time() <=

  • Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!  

  • joga essa função na sua lib:   function convertTime(a) if(type(tonumber(a)) == "number" and a > 0) then if (a <= 3599) then local minute = math.floor(a/60) local secon

Postado

Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

Here in TibiaKing messages like UP and BUMP are prohibited, use the button raise this topic. This is an automated message!
Please read the forum rules.

 

Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord:

Postado

joga essa função na sua lib:

 

function convertTime(a)
  if(type(tonumber(a)) == "number" and a > 0) then
    if (a <= 3599) then
      local minute = math.floor(a/60)
      local second = a - (60 * minute)

      if(second == 0) then
        return ((minute)..((minute > 1) and " minutos" or " minuto"))
      else
        return ((minute ~= 0) and ((minute>1) and minute.." minutos e " or minute.." minuto e ").. ((second>1) and second.." segundos" or second.." segundo") or ((second>1) and second.." segundos" or second.. " segundo"))
      end
    else
      local hour = math.floor(a/3600)
      local minute = math.floor((a - (hour * 3600))/60)
      local second = (a - (3600 * hour) - (minute * 60))

      if (minute == 0 and second > 0) then
        return (hour..((hour > 1) and " horas e " or " hora e "))..(second..((second > 1) and " segundos" or " segundo"))
      elseif (second == 0 and minute > 0) then
        return (hour..((hour > 1) and " horas e " or " hora e "))..(minute..((minute > 1) and " minutos" or " minuto"))
      elseif (second == 0 and minute == 0) then
        return (hour..((hour > 1) and " horas" or " hora"))
      end
      return (hour..((hour > 1) and " horas, " or " hora, "))..(minute..((minute > 1) and " minutos e " or " minuto e "))..(second..((second > 1) and " segundos" or " segundo"))
    end
  end
end

 

 

 

e a talk vc usa assim:

 

function onSay(cid, words, param, channel)
local potion_storage = 61002
return doPlayerSendTextMessage(cid, 25, getPlayerStorageValue(cid, potion_storage) - os.time() <= 0   and "voce nao tem exp potion no momento." or "voce tem "..convertTime(getPlayerStorageValue(cid, potion_storage) - os.time()).." de exp potion")
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor

@Vodkart Funciona usando exatamente como você manda vod, eu já tinha criado um com gambis, por que eu uso 1 comando que mostra ao mesmo tempo todas potions ex:

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "# INFO EXP Potions #\n\n[X2] -> "..storagex2.."\n[X3] -> "..storagex3.."\n[X4] -> "..storagex4.."\n[X5] -> "..storagex5.."") 

Teria como adaptar por favor? Eu tentei muito mas não rolou

Para a mensagem em si ficar:

# INFO EXP Potions #

[X2] -> 30 minutos e 20 segundos

[X3] -> Não ativo

....

 

Ao invés de se ele não tiver nenhuma ativa simplesmente não falar nada, mostrar mesmo assim porém tudo 'não ativo'

 

Obrigado pela atenção! você sempre sendo um god

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.6k

Informação Importante

Confirmação de Termo