Postado Janeiro 23, 2017 8 anos Alguem aqui da uma ajuda nessa exp potion, ela ativa 100% nao da erro na distro nem nada do tipo, Porém quando o player morre so pode usar novamente depois que acabar o tempo da 1 que ja foi usada! alguem consegueria remover essa parte, para assim que o player morre usando essa potion ele poder outra normamente! Spoiler <?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 = 120, ---- TIME IN MINUTES needpa = FALSE, needlvl = {FALSE, level = 50}, costmana = {FALSE, mana = 300}, addrate = 50, -- 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="7443" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62164) >= 1 then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce ja ta Sob o Efeito da Potion.") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "Voce Precisar ser Premium Para Usar") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "Voce Precisa ser " .. configs.needlvl.level .. " Para usar a Potion.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "Voce Precisar ter " .. configs.costmana.mana .. " de Mana Para usar a Potion") 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, "Efeito Final da Pocao de EXP.") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O Efeito da Pocao 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, MESSAGE_STATUS_CONSOLE_RED, "Agora Voce Ativou EXP 2x Para Matar Monstros.") 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 da Potion Termina em.") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "O Efeito da Potion Termina em "..a..".") end end return TRUE ]]></creaturescript> </mod> Editado Janeiro 23, 2017 8 anos por mateusmoretti (veja o histórico de edições)
Postado Janeiro 24, 2017 8 anos To com mta preguiça de ver o code, dsclp, mas se quiser, usa o que eu tenho uahauhauh actions/scripts/ crie um arquivo chamado expot.lua e coloque isso nele: Spoiler function onUse(cid, item, frompos, item2, topos) local time = 3600 -- Tempo que durará em segundos local texto = 'Voce ganhou 1 hora de Double Xp.' -- Texto que irá receber ao usar a potion. textofinal = 'Double Exp finalizada.' -- 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 stor = 12132 if item.itemid == 7440 then doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, exp) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, texto) addEvent(potion, time * 1000, cid) setPlayerStorageValue(cid, stor, os.time() + time) end end function potion(pos, cid) doPlayerSetExperienceRate(pos, expfinal) doPlayerSendTextMessage(pos,22, textofinal) end actions/actions.xml adicione essa tag: <action itemid="7440" event="script" value="expot.lua"/> Para alterar o ID do item que vai precisar usar, no codigo vc muda o id na linha if item.itemid == 7440 then E no actions.xml é só mudar o id que ta em itemid="7440" local time = 3600 -- Tempo em segundos de duração do exp potion(1 hora) local exp = 2 -- Quantidade que vai aumentar o xp do player, se for 2, aumenta 100% do xp, dobra então(por isso 2), se for 1.5, aumenta 50% do exp expfinal = 1 -- Deixa assim pra deixar a exp voltar ao normal GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Janeiro 24, 2017 8 anos Autor 9 horas atrás, Sekk disse: To com mta preguiça de ver o code, dsclp, mas se quiser, usa o que eu tenho uahauhauh actions/scripts/ crie um arquivo chamado expot.lua e coloque isso nele: Ocultar conteúdo function onUse(cid, item, frompos, item2, topos) local time = 3600 -- Tempo que durará em segundos local texto = 'Voce ganhou 1 hora de Double Xp.' -- Texto que irá receber ao usar a potion. textofinal = 'Double Exp finalizada.' -- 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 stor = 12132 if item.itemid == 7440 then doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, exp) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, texto) addEvent(potion, time * 1000, cid) setPlayerStorageValue(cid, stor, os.time() + time) end end function potion(pos, cid) doPlayerSetExperienceRate(pos, expfinal) doPlayerSendTextMessage(pos,22, textofinal) end actions/actions.xml adicione essa tag: <action itemid="7440" event="script" value="expot.lua"/> Para alterar o ID do item que vai precisar usar, no codigo vc muda o id na linha if item.itemid == 7440 then E no actions.xml é só mudar o id que ta em itemid="7440" local time = 3600 -- Tempo em segundos de duração do exp potion(1 hora) local exp = 2 -- Quantidade que vai aumentar o xp do player, se for 2, aumenta 100% do xp, dobra então(por isso 2), se for 1.5, aumenta 50% do exp expfinal = 1 -- Deixa assim pra deixar a exp voltar ao normal Sekk testei aqui, porem ela so funciona no, local exp = 2 se voce muda o loca exp = 1.0 1.5, 3 ele nao funciona ela esta so funcionado no 2x
Postado Janeiro 24, 2017 8 anos 3 horas atrás, mateusmoretti disse: Sekk testei aqui, porem ela so funciona no, local exp = 2 se voce muda o loca exp = 1.0 1.5, 3 ele nao funciona ela esta so funcionado no 2x se colocar 1.0 não vai mudar nada ne uahauh(seria 1 na vdd, n 1.0), como não funciona com outro valor? aqui vai normal GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Janeiro 24, 2017 8 anos Autor 16 minutos atrás, Sekk disse: se colocar 1.0 não vai mudar nada ne uahauh(seria 1 na vdd, n 1.0), como não funciona com outro valor? aqui vai normal ja fiz 1 2 3 4 5 6 9 porem nao muda nada, apartir do momento que eu modifico local exp = 2, a experencia da xp potion cai! se um bixo der 1.000.000.00 ele vai dar 700,000,00 com xp potion! 4 horas atrás, Sekk disse: se colocar 1.0 não vai mudar nada ne uahauh(seria 1 na vdd, n 1.0), como não funciona com outro valor? aqui vai normal @Sekk Queria lhe agradecer por ajudar, porém peguei outro scripts fiz todo o passo a passo que o rapaiz indicou, e esta funcionando 100% rep++ vlw ai! pra quem precisar do scripts a tag e essa Spoiler 4 horas atrás, Sekk disse: se colocar 1.0 não vai mudar nada ne uahauh(seria 1 na vdd, n 1.0), como não funciona com outro valor? aqui vai normal @Sekk Queria lhe agradecer por ajudar, porém peguei outro scripts fiz todo o passo a passo que o rapaiz indicou, e esta funcionando 100% rep++ vlw ai! pra quem precisar do scripts a tag e essa Spoiler 4 horas atrás, Sekk disse: se colocar 1.0 não vai mudar nada ne uahauh(seria 1 na vdd, n 1.0), como não funciona com outro valor? aqui vai normal @Sekk Queria lhe agradecer por ajudar, porém peguei outro scripts fiz todo o passo a passo que o rapaiz indicou, e esta funcionando 100% rep++ vlw ai! pra quem precisar do scripts a tag e essa Spoiler
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.