Ir para conteúdo
  • Cadastre-se

(Resolvido)[erro] Pq o storage desse script não esta setando devolta?


Ir para solução Resolvido por Eduardo Carvalho,

Posts Recomendados

Oi tudo bem galera do tk?

 

Eu estava modificando um script de potion de exp ai estava colocando por player ganhar tal storage quando bebesse a pot, e quando o efeito acabasse ele perdesse o storage(tudo no script esta funcional menos a parte de perder o storage)

 

Script expo.lua

 

function onUse(cid, item, frompos, item2, topos)


local pausa = 30*60*1000 -- (1000 = 1 segundos) Tempo que o script durará
local texto = "Você dobrou sua Experiencia por 30 minutos" -- 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 = 2 -- 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.
local limitedeuso = 49012
local tempo = 1*1*1000
local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar."
if item.itemid == 9930 and (getPlayerStorageValue(cid, limitedeuso) < 1) then
doRemoveItem(item.uid,1)
doPlayerSetExperienceRate(cid,exp)
doSendMagicEffect(frompos,13)
doPlayerSendTextMessage(cid,22,texto)
addEvent(potion,pausa,cid)
setPlayerStorageValue(cid, limitedeuso, 1)
elseif item.itemid == 9930 and (getPlayerStorageValue(cid, limitedeuso) >= 1) then
doPlayerSendTextMessage(cid,22,textofinal1)
end

end




function potion(pos, cid)
local limitedeuso = 49012
doPlayerSetExperienceRate(pos,expfinal)
doPlayerSendTextMessage(pos,22,textofinal)
setPlayerStorageValue(cid, limitedeuso, 0)
end

 

Se alguem souber pq o storage não volta pro 0 ao acabar o tempo eu agraceço.

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Hum... mas ae é so colocar uma função onlogout para setar  o storage...Mas não é por isso pra testar coloquei o tempo(pausa em 1s ) pro addevent 1s depois executar as ações.. mas mesmo assim a storage não seta de volta...( a mensagem final que não esta mais sob o efeito é transmitida..)

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

não executa porque "pos" não existe...

que parametro é esse "pos" que você utilizou?

function potion(pos, cid)
local limitedeuso = 49012
doPlayerSetExperienceRate(pos,expfinal)
doPlayerSendTextMessage(pos,22,textofinal)
setPlayerStorageValue(cid, limitedeuso, 0)
end

você tinha que ter declarado ele antes ou utilizado outro parametro já conhecinho. Eis os conhecidos:

function onUse(cid, item, frompos, item2, topos)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

EU posso mudar esse pos por topos?(sem erros) ou eu posso declará-lo?

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Ele criou o parametro pos na function potion(pos, cid)..... O erro dele foii utilizar o parametro de forma errada na funçao.

Deveria ser assim

function potion(cid)

local limitedeuso = 49012

doPlayerSetExperienceRate(cid,expfinal)

doPlayerSendTextMessage(cid,22,textofinal)

setPlayerStorageValue(cid, limitedeuso, 0)

end

 

 

 

 

 

v61snZO.png?129bcx1x.pngiVgTXVz.png?1

 

 

 

 

 

Link para o post
Compartilhar em outros sites

Usa os.time, é bem melhor.

setPlayerStorageValue(cid, 49012, os.time() + TempoAqui)

Se o player sair não terá mais cid.

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

infos40x40.png

Skype : duhw.carvalho

 

Ajude-nos a crescer, clicando em curtir

 

 

 

Link para o post
Compartilhar em outros sites

os.time serve para que? pode dar um exemplo eduardo?

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

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

os.time serve para que? pode dar um exemplo eduardo?

 

para setar a storage com tempo..

 

Exemplo :

if getPlayerStorageValue(cid, XXXX) - os.time() <= 0 then
     ...
   setPlayerStorageValue(cid, XXXX, os.time() + 2 * 60)
else
   doPlayerSendCancel(cid, "Você só pode ... a cada 2 minutos.")
end

a storage é setada por 2 minutos.

 

para setar uma storage você usar :

setPlayerStorageValue(cid, XXXX, 1)

Correto ? com os.time() só oq muda é o valor para qual será setada...

os.time() + TIME (por padrão é segundos)
os.time() + 10 (a storage será setada por 10 segundos)
os.time() + 10 * 60 (a storage será setada por 10 minutos)

infos40x40.png

Skype : duhw.carvalho

 

Ajude-nos a crescer, clicando em curtir

 

 

 

Link para o post
Compartilhar em outros sites

Pow com os time economiza um addevent... Mto mais pratico msm nesse caso vlw. :)

 

Rep + para todos.

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

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

os.time() é uma função que retorna o Unix time. Basicamente são os segundos que se passaram desde 00:00:00 de 1 de janeiro de 1970.
Foi a data em que o "tempo" começou na era dos computadores e a medida acabou sendo usada até hoje.
É uma ótima função para brincar com o tempo e é amplamente usada em todo tipo de linguagem. No tibia seus principais usos estão em global events e storages (exaustão entre comandos). O formato principal dessa função é assim.

Fazer tal coisa
salva o os.time num storage
fim

pegar o os.time novo e subtrair o os.time antigo (getPlayerStorageValue), se isso for >= ao tempo que vc quer, então permitir o resto do script
senão
retorna erro: falta ainda (tempo + (getPlayerStorageValue (storage do os.time) - os.time() (novo)) )
fim

http://en.wikipedia.org/wiki/Unix_time

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

E mto prática :).

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Nogard
      Não deixe seu evento de Natal para última hora, faltam apenas 4 dias. 

      Aproveite as sprites com desconto no site: https://otsprites.com
       
       
       

       

       
       
       
    • Por otpokesalense
      🧿Base Tibia Solebran totalmente otimizada!  
       
       ✔️ OTClient (Version Old);
      ✔️ Update 2.2;
      ✔️ Site Póprio;
      ✔️ Map Global
      ✔️ Bugs, Minimo (2x) talvez;
      ✔️ PVP 💯 Funcional.
       
       
      Get Servidor: https://files.fm/f/7qumr8943e 💸 Buy! otimo projeto para vc utilizá-lo.
      Lembrando:: ao comprar o download será disponibilizado automaticamente.
       
      🧑‍💻System Operacional: Windows (VPS)
      👨‍💻Programador (27) 998931903 - - - O Valor já inclui o serviço de programação! 🤗
       

       
       

       
       
    • Por Arkanjo39
      CUIDA, CUIDA E VEM CONHECER NOSSO SERVER. KING BAIAK ACABOU DE SER LANÇADO!!! VEM SER O TOP 1 Site com Otclient: https://kingbaiak.com/ PARA NOVOS JOGARES ADM TA DANDO AQUELA FORCINHA! SERVIDOR 8.60 COM RESETS, MONTARIAS E GOLDEN OUTFIT! INFORMAÇÕES BÁSICAS DO SERVIDOR: [+] MAPA BAIAK [+] HIGH EXP [+] RESETS COM + DAMAGE [+] AUTOLOOT AUTOMÁTICO [+] CITY DONATE [+] ROSHAMUUL, ORAMOND E NETHER [+] MONTARIAS E GOLDEN OUTFIT [+] INVASÃO DE MONSTROS AUTOMÁTICAS [+] DAILY MONSTER QUE APARECE AO LOGAR [+] MONTARIAS COM COMANDO !MOUNT [+] SISTEMA DE ROLETA ATUAL [+] CAST WATCH [+] FAST ATTACK [+] CAST ARROWS [+] PUSH CRUZADO [+] REWARD CHEST [+] WARSQUARE [+] COMBO EXP DE POTIONS [+] MINERAÇÃO COM LOJA [+] SISTEMA DE BOSS [+] CRITICAL/DODGE [500/500] [+] LIFE E MANA EM PORCENTAGEM* [+] VARIAS QUESTS [+] EVENTO DTT (AUTOMÁTICO) [+] EVENTO BATLEFIELD (AUTOMÁTICO) [+] EVENTO SNOWBALLWAR (AUTOMÁTICO) [+] EVENTO DESERT WAR (AUTOMÁTICO) [+] EVENTO ZOMBIE (AUTOMÁTICO) [+] EVENTO CAMPO MINADO (AUTOMÁTICO) [+] EVENTO TEAM BATLE (AUTOMÁTICO) [+] EVENTO CAPTURE THE FLAG (AUTOMÁTICO)
    • Por BTitan
      Baiak Titan: Uma Experiência Incomparável no Universo Baiak
       
      O Baiak Titan combina a nostalgia dos antigos tempos de OTServ com a inovação e modernidade atuais. Oferecemos um mapa vasto, com mais de 100 áreas de caça para explorar, além de vocações equilibradas para um PvP justo e emocionante. Diversos eventos automáticos ocorrem diariamente, garantindo diversão constante para os jogadores. O servidor conta com vários sistemas, como por exemplo, montarias para quem utiliza o cliente exclusivo, monstros do Tibia 9.6+, sistema de mineração, entre outros!
       
      Por Que Escolher o Baiak Titan?
       
      PvP de Alta Qualidade: Embora seja um servidor Baiak, nosso mapa é cuidadosamente projetado para proporcionar ganho de experiência sem perder a seriedade do jogo, oferecendo desafios instigantes e um equilíbrio perfeito para combates épicos.
      Jogabilidade Customizada: O mapa Baiak foi exclusivamente adaptado para promover intensas batalhas de PvP, com recursos inovadores que mantêm a jogabilidade sempre fresca e emocionante.

      Detalhes do Servidor:
       
      IP: baiaktitan.com Website: https://baiaktitan.com Account Manager: 1/1
        Principais Características:
       
      Uptime 24/7, Sem Lag: Jogue a qualquer hora com a estabilidade de servidores dedicados e de alta performance. Velocidade de Ataque Equilibrada: Ajustada perfeitamente para garantir combates dinâmicos e justos. Sistema de Cast: Transmita suas jogadas ao vivo e assista aos seus amigos em ação. Cliente Exclusivo: Software personalizado com novos outfits, montarias e criaturas, enriquecendo ainda mais sua experiência no jogo. Runas, Poções e Flechas Não Infinitas: Valorizamos uma jogabilidade mais estratégica e desafiadora, onde os recursos precisam ser geridos com sabedoria.
      Eventos Automáticos:
       
      Zombie Team Battle Monster Hunter Castle (War of Emperium) Capture The Flag DOTA Corrida Arena War (O último sobrevivente ganha) Fire Storm
        Taxas do Servidor:
       
      EXP: 200x (com stages)
      Skill: 100x
      Magic: 30x
      Loot: 3x
       
      Junte-se à nossa comunidade e viva essa aventura única. O Baiak Titan espera por você!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo