Postado Outubro 9, 2013 11 anos Este é um post popular. Olá TK, Hoje trago para vocês um MOD bem interessante que encontrei na internet, a lógica é bem simples, você usa um item e ganha mais XP durante um tempo. O item, a XP e o tempo são totalmente configuráveis, vocês podem mudar como quiserem. FUNCIONA COM TFS 0.4 E DEVE FUNCIONAR COM 0.3.6 (NÃO TESTADO) Eu vou testar com a minha versão 0.3.7 quando chegar em casa e edito o post para vocês. Bem, então vamos ao script, Abra a pasta "mods" do seu servidor e crie um arquivo chamado expscroll.xml, abra e coloque o seguinte código: <?xml version="1.0" encoding="UTF-8"?> <mod name="Experience Stages Scroll" version="1.0" author="TomCrusher" contact="otland.net" enabled="yes"> <action itemid="9004" event="script" value="expstagescroll.lua"/> <creatureevent type="think" name="ExpStage" event="script" value="expstagescroll.lua"/> <creatureevent type="login" name="ExpStageLogin" event="script" value="expstagescroll.lua"/> </mod> Agora em "mods/scripts", crie um arquivo chamado expstagescroll.lua e coloque este código: local config = { rate = 2, storage = 1000, expstorage = 1100, register = 1200, time = 14400, } 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 == 9004 doCreatureSay(cid, "Your extra experience rate has been activated! It now is: " .. config.rate .. "x added to your former experience rate.", 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, "ExpStage") else doCreatureSay(cid, "You must finish first exp condition to start other exp condition !", 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, "Your extra experience rate has finished! It is now normaly experience rate.", 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, "ExpStage") end end return true end function onLogin(cid) if getPlayerStorageValue(cid, config.register) == 1 then registerCreatureEvent(cid, "ExpStage") local rates = getPlayerRates(cid) doCreatureSay(cid, "Your extra experience rate is still here! It is: " .. config.rate .. "x added to your former experience rate.", 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 Configurando: rate = 2, -- número que irá ser multiplicado pela sua exp rate básica (funciona com números quebrados, tais como 1.5 ou 0.2). storage = 1000, -- storage que irá guardar o tempo expstorage = 1100, -- storage que irá guardar a xp register = 1200, -- storage que indica se o player está registrado no mod time = 14400, -- tempo que falta para o buff do scroll acabar (o tempo é calculado em segundos, ex: 14400 segundos = 24 horas) ___________________________________________________________________________________________________________________________________ Créditos : TomCrusher (OTland) - Desenvolveu o sistema Eu - Traduzi e postei aqui.
Postado Outubro 9, 2013 11 anos Legal esse script, eu tinha ele não como mod, mas em action mesmo, agora em mod ficou melhor a instalação e a adaptação! Única coisa que eu acho que esses mods de xp boost é que tipo, se o player deslogar, ele não volta com o restante de tempo né?
Postado Outubro 9, 2013 11 anos Autor Volta sim, o script grava o storage dele e reativa a xp, quando ele logar outra vez, o tempo ainda será o mesmo de quando ele deslogou
Postado Outubro 13, 2013 11 anos Olá, GBDias. Primeiramente gostaria de agradecer pela contribuição com a comunidade Sempre gostei de scripts que usam tempo, não sei como, mas eles têm alguma mágica que não sei explicar. Não pude deixar de notar que esse script está utilizando o creatureevent onThink, ele é bastante útil, mas para um servidor que possui muitos players o uso dele se torna inviável. Porque ele fica fazendo verificações muito rapidamente e isso causa um lag absurdo no servidor. Abraço. -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Outubro 13, 2013 11 anos Autor Olá, GBDias. Primeiramente gostaria de agradecer pela contribuição com a comunidade Sempre gostei de scripts que usam tempo, não sei como, mas eles têm alguma mágica que não sei explicar. Não pude deixar de notar que esse script está utilizando o creatureevent onThink, ele é bastante útil, mas para um servidor que possui muitos players o uso dele se torna inviável. Porque ele fica fazendo verificações muito rapidamente e isso causa um lag absurdo no servidor. Abraço. Isso é verdade, o lag fica muito alto dependendo do modo que você utiliza, não existem scripts perfeitos né, ele é bom mas seu lado ruim também é bem caro. Mas vou dar uma analisada melhor no script, se não me engano, foi la pela OTland mesmo que vi que é possivel que você configure no script, de modo que o onThink se torne muito mais leve de acordo com o seu servidor, vou pesquisar mais sobre o assunto e posto aqui para você. Att.
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.