Postado Agosto 22, 2014 10 anos Essa meu scroll de doble exp feito em mod, quando acaba, não da pra usar, diz que ja estou com o efeito de double exp do scroll. como colocar pra quando acabar o tempo retirar o storage sla? <?xml version="1.0" encoding="UTF-8"?> <mod name="AdvancedExpPotionSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <!-- Configs and Functions --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 60, ---- TIME IN MINUTES needpa = FAlSE, needlvl = {FALSE, level = 50}, costmana = {FALSE, mana = 300}, addrate = 100, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) -- Colex if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) -- Colex addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) -- By MatheusMkalo return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="5958" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62164) >= 1 then return doPlayerSendTextMessage(cid, 22, "Voce ja esta com o efeito do Double EXP Scroll [1 Hora].") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "You need to be a premmium account to use this item.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "You need to be level " .. configs.needlvl.level .. " to use this item.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "You need " .. configs.costmana.mana .. " mana to use this item.") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "O efeito do Double EXP Scroll [1 Hora] acabou !") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O efeito do Double EXP Scroll vai acabar em "..a..".") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doPlayerSendTextMessage(cid, 22, "Voce ativou o Double EXP Scroll e tera 1 hora de double exp.") setPlayerStorageValue(cid, 62164, os.time()) creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 62164, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 62164) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000 , cid, 62164, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 62164))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 62164)))*1000, cid, "O efeito do Double EXP Scroll [1 Hora] acabou!") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "O efeito do Double EXP Scroll vai acabar em "..a..".") end end return TRUE ]]></creaturescript> </mod>
Postado Agosto 22, 2014 10 anos ella ja fz isso tipo olha setPlayerStorageValue(cid, 62164, os.time()) troca storage do player para tempo exemplo a 62164,1minuto ao terminar ela fica 0 portanto pode usar dinovo. pode colocar se o cara deslogar ela acaba.. Editado Agosto 22, 2014 10 anos por kbpaulo (veja o histórico de edições) Meus topicos.[Gesior]Layout pokemon vrs1.0[854]OtServer Digimon Vrs.1.1 Spoiler http://free.timeanddate.com/countdown/i48ub0vi/n213/cf11/cm0/cu4/ct0/cs0/ca0/cr0/ss0/cac009/cpc000/pcf90/tcfff/fs100/szw448/szh189/tatTempo%20Para%20Resetar/tac000/tptDigimon%20World%20Cerberus%20Online/tpc000/matDigimon%20World%20Cerberus%20Online/mac000/mptEstá%20Online%20à/mpc000/iso2014-07-19T00:01:00/bas3/bat8/bac00f/pa3 Meu Servidor Digimon World Cerberus OnlineDigimon World Cerberus Online Agradecer sempre a todos que ajudaram, o server a ficar pronto deis de Sprites que não conheço,scripts, etc....como o jogo esta na internet e para todos usarem vlw a todos bjus...
Postado Agosto 22, 2014 10 anos setPlayerStorageValue(cid, 62164, os.time()) troca storage do player para tempo exemplo a 62164,1minuto ao terminar ela fica 0 portanto pode usar dinovo. Errado meu amigo, quando vc seta o valor de um storage como sendo os.time() você está na verdade falando que o novo valor daquele storage vai ser o tempo atual em unix time (segundos que se passaram desde 1 de janeiro de 1970) e o storage não vai diminuir de valor, o valor é fixo. Oque dá pra fazer é comparar qnd for usar novamente se o tempo atual naquele momento é maior que o tempo salvo no storage (oque obviamente vai ser) + a soma de um intervalo de tempo. Ex: Quero um script que só possa ser usado a cada 15 segundos: if os.time() - getPlayerStorageValue(cid, 62164) >= 15 then setPlayerStorageValue(cid, 62164, os.time()) RESTO DO SCRIPT AQUI end @Topic esse script foi feito de uma forma muito, mas MUITO complexa. Aparentemente ele criou uma nova função pra zerar o storage depois de um determinado tempo mas se você diz que não tá funcionando então deve ser algum erro de lógica que mudou com o passar do tempo; Usa esse script aqui http://www.tibiaking.com/forum/topic/28522-pergaminho-de-exp-com-tempo/ que é a mesma coisa, em menos linhas 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Agosto 22, 2014 10 anos Autor Ta mas poderia me explicar? >= 15.. etc , não vi onde eu teria que adaptar pra remover ou o tempo da storage que fica ativa
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.