Ir para conteúdo

Featured Replies

Postado

Só avisando não foi eu quem fiz!
Mas achei interessante passar para todos, pois é difícil encontrar um script desses que é da época do Epa.
 

 

Testado em: Servidor Styller Yourots Premium versão 1.1.2
Nome: Scroll que multiplica exp por um determinado tempo.
Instalação: Action
 

separador-1.png

Vamos ao script.

Na pasta scripts, em actions, crie um arquivo lua com esse script.

 

XXXXX.lua (Escolha um nome para seu script).

Ex: Scrollexp.lua

function onUse(cid, item, frompos, item2, topos)
	local pausa = 30*60*1000 -- "1000 = 1 segundo" Tempo que durará a exp multiplicada! "a adicionada dura 15min"
	local texto = "Voce Recebeu, 3x de exp por, 15min" -- Texto que aparece ao utilizar o Scroll. Pode mudar como quizer, Ex: "Utilizando o Scroll, agora você receberá 5x a mais de exp...."
	textofinal = "Seu tempo acabou." -- Texto que finaliza o scroll, avisando que o tempo terminou. Igual ao de cima!
	local exp = 3 -- Por quanto X será multiplicada a experiencia do jogador quando der use no item. Exp de 20x - usando multiplicará para 60x por 15min.
	expfinal = 1 -- A exp que retornará ao player, que utilizar, caso coloque 2 ou mais o personagem ganhará Eterno xp multiplicada. Isso serve para exp voltar ao normal.
	if item.itemid == XXXX then -- Id do Item que servirá como Sua Scroll. Mude o XXXX por o ID de sua escolha.
		doRemoveItem(item.uid,1)
		doPlayerSetExperienceRate(cid,exp)
		doSendMagicEffect(frompos,13)
		doPlayerSendTextMessage(cid,22,texto)
		addEvent(potion,pausa,cid)
	end
end
function potion(pos, cid)
	doPlayerSetExperienceRate(pos,expfinal)
	doPlayerSendTextMessage(pos,22,textofinal)
end

Em actions.xml (faça isso junto com o nome que você criou seu script.)

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

Escreva em XXXX.lua o nome que você criou para sua script.

E em ItemID="Coloque ID escolhido na citação anterior."

separador-1.png

 

Há o outro script feito por @vankk, podem estar utilizando-o pois já é mais atualizado que este de cima!

local config = {
    rate = 3.0, -- Rate que vai ficar o Scroll.
    time = 24, -- Tempo dado pelo Scroll. 
    storage = 20011
} 

local function endExpRate(cid)
    if not isPlayer(cid) then
        return
    end

    doPlayerSetRate(cid, SKILL__LEVEL, 6.0)
    setPlayerStorageValue(cid, config.storage, -1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Your extra experience time has ended.")
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local timeLeft = getPlayerStorageValue(cid, 20011)
    if timeLeft > os.time() then
        local timeTable = os.date('*t', timeLeft - (os.time() + 3600))
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, string.format("You still have %d %s %d %s %d %s left of extra experience.", timeTable.hour, timeTable.hour > 1 and "hours" or "hour", timeTable.min, timeTable.min > 1 and "minutes" or "minute", timeTable.sec, timeTable.sec > 1 and "seconds" or "second"))
        return true
    end

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("Your extra experience rate is now: %d. It will last for %d hours.", config.rate, config.time))
    doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
    setPlayerStorageValue(cid, config.storage, os.time() + config.time * 3600 * 1000)
    addEvent(endExpRate, config.time * 3600 * 1000, cid)
    doRemoveItem(item.uid, 1)
    return true
end

Pelo que entendi do Script, corrijam se eu estiver Errado, você deverá adicionar a action ID na tag e adicionar isto no item!

 

Relembrando esse script, não é meu era um script que tinha guardado a anos, e não o vi na internet e gostaria de mostrar para vocês. Não fui o criador dele, mesmo que seja tão simples.

Créditos ao verdadeiro dono seja ele quem for!

  • Respostas 14
  • Visualizações 2.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Que tal assim?   local config = { rate = 3.0, time = 24, storage = 20011 } local function endExpRate(cid) if not isPlayer(cid) then return end doPlayerSetRat

  • @Andre Felipe de Azev Tomei a liberdade de editar seu post e acrescentar a identação do primeiro script junto com a separação do script que você trouxe e a do vankk. Sobre o conteúdo em si,

Postado

Olá amigo, seria interessante você colocar a versão do servidor em que este script foi testado e também utilizar a tag de code ao invés dos quotes. Aguardo um retorno para que eu possa aprovar seu tópico. 

 

Postado
  • Autor
19 horas atrás, Matk disse:

Olá amigo, seria interessante você colocar a versão do servidor em que este script foi testado e também utilizar a tag de code ao invés dos quotes. Aguardo um retorno para que eu possa aprovar seu tópico. 

Atualizei, mas não tem code Lua. utilizei o Sql, se caso queira eu modifico para xml tbm, mas vai continuar errado igual!

Postado

51mutNo.png Parabéns, seu tópico de conteúdo foi aprovado!
 Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
 Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Postado

Que tal assim?

 

local config = {
    rate = 3.0,
    time = 24,
    storage = 20011
}

local function endExpRate(cid)
    if not isPlayer(cid) then
        return
    end

    doPlayerSetRate(cid, SKILL__LEVEL, 6.0)
    setPlayerStorageValue(cid, config.storage, -1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Your extra experience time has ended.")
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local timeLeft = getPlayerStorageValue(cid, 20011)
    if timeLeft > os.time() then
        local timeTable = os.date('*t', timeLeft - (os.time() + 3600))
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, string.format("You still have %d %s %d %s %d %s left of extra experience.", timeTable.hour, timeTable.hour > 1 and "hours" or "hour", timeTable.min, timeTable.min > 1 and "minutes" or "minute", timeTable.sec, timeTable.sec > 1 and "seconds" or "second"))
        return true
    end

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, string.format("Your extra experience rate is now: %d. It will last for %d hours.", config.rate, config.time))
    doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
    setPlayerStorageValue(cid, config.storage, os.time() + config.time * 3600 * 1000)
    addEvent(endExpRate, config.time * 3600 * 1000, cid)
    doRemoveItem(item.uid, 1)
    return true
end

 

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo