• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Aporte] Sistema offline trainner 10.81

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Aporte] Sistema offline trainner 10.81 el Jue Oct 01, 2015 10:44 am

    Bueno chicos aqui les traigo una solucion al offline trainer para los que tengan una version 10.81 y no les funcione el que venga empezemos:

    primero nos vamos a actions y agregamos

    Código:


       <!-- Offline Training -->

    <action fromid="18488" toid="18492" script="other/offlinetraining.lua" />


    luego vamos a la carpeta "other" y creamos un archivo llamado offlinetraining.lua

    y colocamos esto dentro

    Código:


    local statues = {
       [18488] = SKILL_SWORD,
       [18489] = SKILL_AXE,
       [18490] = SKILL_CLUB,
       [18491] = SKILL_DISTANCE,
       [18492] = SKILL_MAGLEVEL
    }

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
       local skill = statues[item.itemid]
       if not skill then
          return false
       end

       if not player:isPremium() then
          player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUNEEDPREMIUMACCOUNT))
          return true
       end

       if player:isPzLocked() then
          return false
       end

       player:setOfflineTrainingSkill(skill)
       player:remove()
       return true
    end


    hasta hay talvez algunos ya lo tenian pero no les funcionaba, tranquilos ahora viene la solucion.

    nos vamos a creaturescripts.xml y agregamos esta linea
    Código:


    <event type="login" name="OfflineTraining" script="others/offlinetraining.lua" />



    luego nos vamos a la carptea script/others  y creamos un archivo llamado offlinetraining.lua y pegamos esto dentro.

    Código:


    function onLogin(player)
       local lastLogout = player:getLastLogout()
       local offlineTime = lastLogout ~= 0 and math.min(os.time() - lastLogout, 86400 * 21) or 0
       local offlineTrainingSkill = player:getOfflineTrainingSkill()
       if offlineTrainingSkill == -1 then
          player:addOfflineTrainingTime(offlineTime * 1000)
          return true
       end

       player:setOfflineTrainingSkill(-1)

       if offlineTime < 600 then
          player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You must be logged out for more than 10 minutes to start offline training.")
          return true
       end

       local trainingTime = math.max(0, math.min(offlineTime, math.min(43200, player:getOfflineTrainingTime() / 1000)))
       player:removeOfflineTrainingTime(trainingTime * 1000)

       local remainder = offlineTime - trainingTime
       if remainder > 0 then
          player:addOfflineTrainingTime(remainder * 1000)
       end

       if trainingTime < 60 then
          return true
       end

       local text = "During your absence you trained for"
       local hours = math.floor(trainingTime / 3600)
       if hours > 1 then
          text = string.format("%s %d hours", text, hours)
       elseif hours == 1 then
          text = string.format("%s 1 hour", text)
       end

       local minutes = math.floor((trainingTime % 3600) / 60)
       if minutes ~= 0 then
          if hours ~= 0 then
             text = string.format("%s and", text)
          end

          if minutes > 1 then
             text = string.format("%s %d minutes", text, minutes)
          else
             text = string.format("%s 1 minute", text)
          end
       end

       text = string.format("%s.", text)
       player:sendTextMessage(MESSAGE_EVENT_ADVANCE, text)

       local vocation = player:getVocation()
       local promotion = vocation:getPromotion()
       local topVocation = not promotion and vocation or promotion

       local updateSkills = false
       if isInArray({SKILL_CLUB, SKILL_SWORD, SKILL_AXE, SKILL_DISTANCE}, offlineTrainingSkill) then
          local modifier = topVocation:getAttackSpeed() / 1000
          updateSkills = player:addOfflineTrainingTries(offlineTrainingSkill, (trainingTime / modifier) / (offlineTrainingSkill == SKILL_DISTANCE and 4 or 2))
       elseif offlineTrainingSkill == SKILL_MAGLEVEL then
          local gainTicks = topVocation:getManaGainTicks() * 2
          if gainTicks == 0 then
             gainTicks = 1
          end

          updateSkills = player:addOfflineTrainingTries(SKILL_MAGLEVEL, trainingTime * (vocation:getManaGainAmount() / gainTicks))
       end

       if updateSkills then
          player:addOfflineTrainingTries(SKILL_SHIELD, trainingTime / 4)
       end

       return true
    end



    --- creditos 100% ADMIN MAYA -----

    muchas gracias :p

    Ver perfil de usuario http://franciscomnb@hotmail.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.