Ir para conteúdo
  • Cadastre-se

CreatureScript/GlobalEvent/MoveMent LevelUP Time - "You advanced to level 35 in 3 minutes and 10 seconds".


Posts Recomendados

Achei esse script muito interessante na OTLand e resolvi trazer pra vocês.

 

Versão: TFS 1.X

Função: Mostra quanto tempo levou para upar deis de o ultimo level.

[IMG]

 

Instalação:

Em "Data/creaturescripts/scripts", copie e cole um arquivo.LUA, renomeie para timeLevel.lua, apague tudo e cole:

function timeString(timeDiff)
    local dateFormat = {
        {"day", timeDiff / 60 / 60 / 24},
        {"hour", timeDiff / 60 / 60 % 24},
        {"minute", timeDiff / 60 % 60},
        {"second", timeDiff % 60}
    }

    local out = {}
    for k, t in ipairs(dateFormat) do
        local v = math.floor(t[2])
        if(v > 0) then
            table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or ''))
        end
    end
    local ret = table.concat(out)
    if ret:len() < 16 and ret:find("second") then
        local a, b = ret:find(" and ")
        ret = ret:sub(b+1)
    end

    return ret
end

function onAdvance(player, skill, oldlevel, newlevel)
    if skill ~= SKILL_LEVEL then
        return true
    end

    oldtime = player:getStorageValue(3499)
    timenow = os.time()
    if oldtime == -1 then
        player:setStorageValue(3499, timenow)
    else
        player:sendTextMessage(MESSAGE_INFO_DESCR, "It took you " .. timeString(timenow - oldtime) .. " to advance in level from your last advance.")
        player:setStorageValue(3499, timenow)
    end
    return true
end

Novamente em "Data/creaturescripts/scripts", abra o arquivo login.lua e registre:

player:registerEvent("timelevel")

Agora em "Data/creaturescripts", abra o arquivo creaturescripts.xml e adicione:

<event type="advance" name="timelevel" script="timelevel.lua"/>

 

 

Créditos: Ahilphino

Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Wakon, tentei fazer teu script de informar quanto tempo a pessoa demorou para pegar o próximo nivel. Mas eu faço tudo de acordo e dou reload no creaturescrpit e da erro no distro, segue erro:

[31/03/2016 01:14:36] [Error - CreatureScript Interface] 
[31/03/2016 01:14:36] data/creaturescripts/scripts/login.lua:onLogin
[31/03/2016 01:14:36] Description: 
[31/03/2016 01:14:36] data/creaturescripts/scripts/login.lua:58: attempt to index global 'player' (a nil value)
[31/03/2016 01:14:36] stack traceback:
[31/03/2016 01:14:36]     data/creaturescripts/scripts/login.lua:58: in function <data/creaturescripts/scripts/login.lua:7>
[31/03/2016 01:14:36] ADM Tiago has logged out.

 

 

meu login.lua é esse:

 

local config = {
    loginMessage = getConfigValue('loginMessage'),
    useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))

}

function onLogin(cid)
accountManager = "Account Manager"                       
managerCounter = 0

   for i, player in ipairs(getOnlinePlayers()) do
      if accountManager:lower() == player:lower() then             
      managerCounter = managerCounter + 1
      end 
   end
 
   if managerCounter >= 3 then
      return false
   end
    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else
            str = str .. " Please choose your outfit."
            doPlayerSendOutfitWindow(cid)
        end

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    elseif(accountManager == MANAGER_ACCOUNT) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    end

    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    end

    registerCreatureEvent(cid, "Mail")
    registerCreatureEvent(cid, "GuildMotd")

    registerCreatureEvent(cid, "Idle")
    if(config.useFragHandler) then
        registerCreatureEvent(cid, "SkullCheck")
    end

registerCreatureEvent(cid, "ReportBug")
player:registerEvent("timelevel")
registerCreatureEvent(cid, "AdvanceSave")
registerCreatureEvent(cid, "attackguild")    
registerCreatureEvent(cid, "advance")
registerCreatureEvent(cid, "FimVip")
registerCreatureEvent(cid, "SkullCheck")
registerCreatureEvent(cid, "demonOakLogout")
registerCreatureEvent(cid, "demonOakDeath")
registerCreatureEvent(cid, "ReportBug")
registerCreatureEvent(cid, VipReceive)
registerCreatureEvent(cid, "PlayerKill")
registerCreatureEvent(cid, "KillingInTheNameOf")

    if (InitArenaScript ~= 0) then
    InitArenaScript = 1

        for i = 42300, 42309 do
            setGlobalStorageValue(i, 0)
            setGlobalStorageValue(i+100, 0)
        end
    end

    if getPlayerStorageValue(cid, 42309) < 1 then
        for i = 42300, 42309 do
            setPlayerStorageValue(cid, i, 0)
        end
    end

    if getPlayerStorageValue(cid, 42319) < 1 then
        for i = 42310, 42319 do
            setPlayerStorageValue(cid, i, 0)
        end
    end

    if getPlayerStorageValue(cid, 42329) < 1 then
        for i = 42320, 42329 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    if getPlayerStorageValue(cid, 42355) == -1 then
        setPlayerStorageValue(cid, 42355, 0)
    end
    setPlayerStorageValue(cid, 42350, 0)
    setPlayerStorageValue(cid, 42352, 0)
return true

end


 

Editado por tiagololxd (veja o histórico de edições)

1508741_4.png

         Acesse: www.7wars.com          Global 8.60 full

 

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 2 months later...

Muito bom script. Instalei em TFS 0.4, servidor 8.6, sem erros no distro, mas sem mensagem também...

 

Caso apareça alguma solução, ou até uma conversão para 8.6 TFS 0.4, muitos ficariam gradecidos.

Atenciosamente,

 0lxhEI2.jpg

 

 

Meu servidor:

 

pbOT

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo