Ir para conteúdo

Exp Scroll - Configuravel/ensinando Configurar


1579091

Posts Recomendados

..

:: Experience Scroll ::..

Hoje, venho vos trazer o script/mod, Experience Scroll:

Créditos: TomCrusher

» Como funciona??

Voce tem um item, e ao clicar nele, ele sumira, e a experiencia bonus será ativa. A experiencia Bonus terá uma duração de 24horas (Configuravel), e a experiencia normal dele será multiplicada em 2x (Configuravel).

 

» Duvidas provaveis que surgirão:

E se eu logar com a exp ativa?

- Se você logar, o contador não vai parar, e ao voltar, o jogador recebera um aviso, dizendo que a experiencia bonus ainda está ativa.

 

Vamos la:

 

Na pasta Mods do seu OT, crie um arquivo chamado 'expscroll.xml' e dentro cole isto:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<mod name="Experience Stages Scroll" version="1.0" enabled="yes">

<action itemid="9004" event="script" value="expstagescroll.lua"/>

<creatureevent type="think" name="ExpStage" event="script" value="expscroll.lua"/>

<creatureevent type="login" name="ExpStageLogin" event="script" value="expscroll.lua"/>

</mod>

 

 

 

- Em Vermelho é o item que será o exp scroll, que no caso o ItemID é 9004.

 

Depois, na pasta mods/scripts do seu ot (caso não tenha a pasta scripts dentro da sua pasta mods, é só criar normalmente como se foce uma pasta normal.) Dentro da pasta scripts crie um arquivo chamado 'expscroll.lua' e dentro coloque isso:

 

 

 

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, "Sua experiencia extra esta ativa! Agora sua xp está multiplicada em " .. config.rate .. "x.", 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, "Voce ja usou um Experience Scroll, espere ele expirar pra que possa usar outro.", 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 experiencia bonus se expirou.", 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, "Sua experiencia bonus ainda está ativa, e esta multiplicada por " .. config.rate .. "x.", 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

 

 

 

» Explicação:

 

 

[•] "Rate = 2" -- Isso é em quantas vezes a experiencia dele será multiplicada + 1. No caso se a exp dele for 200x, a exp vai pra 600x, por exemplo, se ele ganha 120 exp matando um bixo, ele vai passar a ganhar 360 exp...

[•] "time = 14400" -- Esse é o tempo que o exp scroll vai ficar ativo, no caso 24horas.

 

[•] São as frases que apareçerão in-game.

 

» Opicional:

Bom, creio que em muitos ots pode acontecer de quando o player der look no item apareçer isso:

You see an item of type 9004, please report it to gamemaster.

Ou então pode apareçer um nome de um iten nada aver...

É simples:

Vai na pasta data/items/items.xml

E dentro do items.xml clique ctrl+f e procure por 9004, se encontrar alguma coisa, apague a linha, e/ou substitua por essa linha aqui (caso não encontre nada, é só adicionar estas linhas no items.xml:

 

<item id="9004" article="a" name="exp scroll">

<attribute key="weight" value="50" />

</item>

 

É isso... Gostou? REP ++!

Editado por GuizitoG
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Aí cara! desculpa não entender direito, mas ainda to aprendendo a mexer no ot perfeitamente. Então, fiz aí oque você disse no em um OTserver 8.60, e não funcionou! não está faltando algo?

Link para o comentário
Compartilhar em outros sites

Graças a você, é claro que você não me conhece :)

 

ei man tipo meu sv e de war ele tbm almenta a xp de player matar player ?

que em seguida, alterando as suas taxas de mudar todas as taxas, tanto em guerra e luta simples!

Link para o comentário
Compartilhar em outros sites

  • 11 months later...

Brow preciso de uma ajudinha, então eu fiz todo processo certo, mais quando do use no scroll ele diz que já usei para esperar terminar para pode usar outro porque acontece isso se não usei nada o,O ??

Se pude me ajudar agradeço...

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...