• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    XP GAIN RATE

    Compartir:

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

    1default XP GAIN RATE el Jue Mayo 14, 2020 6:21 pm

    zeneel

    zeneel
    Miembro
    Miembro
    Descripcion escribió:Buen día a todos, tengo un detalle con mi OT- TFS 1.3
    clientVersionStr = "Only support outdated 10.00 and versions 11.00 to 11.49"

    tengo el siguiente tema, como puedo modificar el XP Gain Rate
    lo que pasa es que en mi OT, lo tengo en 800% para lvls bajos.
    conforme vaya subiendo lvl esto va bajando.

    me interesa dejarlo en 125% al tener full stamina y 100 al bajar la stamina.

    Gracias por su atención espero puedan ayudarme
    Captura del Error escribió:Imagen del error: XP GAIN RATE Empty
    La config. radica en: GlobalEvents

    2default Re: XP GAIN RATE el Jue Mayo 14, 2020 7:11 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    creo que en creaturescripts login.lua



    XP GAIN RATE YNU5B25
    https://www.tibiaface.com

    3default Re: XP GAIN RATE el Jue Mayo 14, 2020 8:30 pm

    zeneel

    zeneel
    Miembro
    Miembro
    perfecto para confirmar será este layout? código?

    Código:
    function Player.sendTibiaTime(self, hours, minutes)
       local msg = NetworkMessage()
       msg:addByte(0xEF)
       msg:addByte(hours)
       msg:addByte(minutes)
       msg:sendToPlayer(self)
       msg:delete()
       return true
    end

    local events = {
        'ParasiteWarzone',
        'ElementalSpheresOverlords',
        'BigfootBurdenVersperoth',
        'BigfootBurdenWiggler',
        'SvargrondArenaKill',
        'NewFrontierShardOfCorruption',
        'NewFrontierTirecz',
        'ServiceOfYalaharDiseasedTrio',
        'ServiceOfYalaharAzerus',
        'ServiceOfYalaharQuaraLeaders',
        'InquisitionBosses',
        'InquisitionUngreez',
        'KillingInTheNameOfKills',
       'KillingInTheNameOfKillss',
       'KillingInTheNameOfKillsss',
        'MastersVoiceServants',
        'SecretServiceBlackKnight',
        'ThievesGuildNomad',
        'WotELizardMagistratus',
        'WotELizardNoble',
        'WotEKeeper',
        'WotEBosses',
        'WotEZalamon',
        'WarzoneThree',
        'PlayerDeath',
        'AdvanceSave',
        'bossesWarzone',
        'AdvanceRookgaard',
        'PythiusTheRotten',
        'DropLoot',
        'Yielothax',
        'BossParticipation',
        'Energized Raging Mage',
        'Raging Mage',
        'DeathCounter',
        'KillCounter',
        'bless1',
       'lowerRoshamuul',
       'SpikeTaskQuestCrystal',
       'SpikeTaskQuestDrillworm',
       'petlogin',
       'petthink',
       'UpperSpikeKill',
       'MiddleSpikeKill',
       'LowerSpikeKill',
       'BossesForgotten',
       'ReplicaServants',
       'EnergyPrismDeath',
       'AstralPower',
       'BossesKill',
       'TheShattererKill',
       'BossesHero',
       'DragonsKill',
        'deeplingBosses',
        'imbueDamage',
        'theGreatDragonHuntKill'
    }

    local function onMovementRemoveProtection(cid, oldPosition, time)
        local player = Player(cid)
        if not player then
            return true
        end

        local playerPosition = player:getPosition()
        if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
            player:setStorageValue(Storage.combatProtectionStorage, 0)
            return true
        end

        addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
    end

    function onLogin(player)
       local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!'
       if player:getLastLoginSaved() <= 0 then
          loginStr = loginStr .. ' Please choose your outfit.'
          player:setBankBalance(0)

          if player:getSex() == 1 then
             player:setOutfit({lookType = 128, lookHead = 78, lookBody = 106, lookLegs = 58, lookFeet = 76})
          else
             player:setOutfit({lookType = 136, lookHead = 78, lookBody = 106, lookLegs = 58, lookFeet = 76})
          end

          player:sendTutorial(1)
       else
          if loginStr ~= "" then
             player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
          end

          loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved()))
       end

        player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
       player:openChannel(10) -- LOOT CHANNEL

        local playerId = player:getId()

       DailyReward.init(playerId)

        player:loadSpecialStorage()

        --[[-- Maintenance mode
        if (player:getGroup():getId() < 2) then
            return false
        else

        end--]]

        if (player:getGroup():getId() >= 4) then
            player:setGhostMode(true)
        end

        -- Stamina
        nextUseStaminaTime[playerId] = 1

        -- EXP Stamina
        nextUseXpStamina[playerId] = 1

        -- Prey Stamina
        nextUseStaminaPrey[playerId+1] = {Time = 1}
        nextUseStaminaPrey[playerId+2] = {Time = 1}
        nextUseStaminaPrey[playerId+3] = {Time = 1}

        -- Prey Data
        if (player:getVocation():getId() ~= 0) then
            local columnUnlocked = getUnlockedColumn(player)
            if (not columnUnlocked) then
                columnUnlocked = 0
            end

            for i = 0, columnUnlocked do
                sendPreyData(player, i)
            end
        end

        if (player:getAccountType() == ACCOUNT_TYPE_TUTOR) then
            local msg = [[:: Tutor Rules
                1 *> 3 Warnings you lose the job.
                2 *> Without parallel conversations with players in Help, if the player starts offending, you simply mute it.
                3 *> Be educated with the players in Help and especially in the Private, try to help as much as possible.
                4 *> Always be on time, if you do not have a justification you will be removed from the staff.
                5 *> Help is only allowed to ask questions related to tibia.
                6 *> It is not allowed to divulge time up or to help in quest.
                7 *> You are not allowed to sell items in the Help.
                8 *> If the player encounters a bug, ask to go to the website to send a ticket and explain in detail.
                9 *> Always keep the Tutors Chat open. (required).
                10 *> You have finished your schedule, you have no tutor online, you communicate with some CM in-game or ts and stay in the help until someone logs in, if you can.
                11 *> Always keep a good Portuguese in the Help, we want tutors who support, not that they speak a satanic ritual.
                12 *> If you see a tutor doing something that violates the rules, take a print and send it to your superiors. "
                - Commands -
                Mute Player: / mute nick, 90. (90 seconds)
                Unmute Player: / unmute nick.
                - Commands -]]
            player:popupFYI(msg)
        end

        -- OPEN CHANNELS
       if table.contains({"Rookgaard", "Dawnport"}, player:getTown():getName())then
          --player:openChannel(7) -- help channel
          player:openChannel(3) -- world chat
          player:openChannel(6) -- advertsing rook main
       else
          --player:openChannel(7) -- help channel
          player:openChannel(3) -- world chat
          player:openChannel(5) -- advertsing main
       end

          --
        -- Rewards
        local rewards = #player:getRewardList()
        if(rewards > 0) then
            player:sendTextMessage(MESSAGE_INFO_DESCR, string.format("You have %d %s in your reward chest.", rewards, rewards > 1 and "rewards" or "reward"))
        end

        -- Update player id
        local stats = player:inBossFight()
        if stats then
            stats.playerId = player:getId()
        end

        -- Events
        for i = 1, #events do
            player:registerEvent(events[i])
        end


        if player:getStorageValue(Storage.combatProtectionStorage) < 1 then
            player:setStorageValue(Storage.combatProtectionStorage, 1)
            onMovementRemoveProtection(playerId, player:getPosition(), 10)
       end

       -- Exp stats
       local staminaMinutes = player:getStamina()
       local Boost = player:getExpBoostStamina()
       if staminaMinutes > 2400 and player:isPremium() and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*2) -- 200 = 1.0x, 200 = 2.0x, ... premium account
       elseif staminaMinutes > 2400 and player:isPremium() and Boost <= 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1.5) -- 150 = 1.0x, 150 = 1.5x, ... premium account
       elseif staminaMinutes <= 2400 and staminaMinutes > 840 and player:isPremium() and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1.5) -- 150 = 1.5x      premium account
       elseif staminaMinutes > 840 and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1.5) -- 150 = 1.5x      free account
       elseif staminaMinutes <= 840 and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1) -- 50 = 0.5x   all players
       elseif staminaMinutes <= 840 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*0.5) -- 50 = 0.5x   all players
       end

       if player:getClient().version > 1110 then
          local worldTime = getWorldTime()
          local hours = math.floor(worldTime / 60)
          local minutes = worldTime % 60
          player:sendTibiaTime(hours, minutes)
       end
        return true
    end

    4default Re: XP GAIN RATE el Jue Mayo 14, 2020 8:36 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    si ahi señor



    XP GAIN RATE YNU5B25
    https://www.tibiaface.com

    5default Re: XP GAIN RATE el Dom Mayo 17, 2020 4:15 pm

    zeneel

    zeneel
    Miembro
    Miembro
    con el mismo tema, se tiene el siguiente código, pero según entiendo es para que con estamina full se tenga en 200 la xpgain rate si el Player es premium, y después con el timepo la pierda a 150.
    lo cual no nunca sucede.

    sucede que entre el Player tenga mas nivel el XP baja gradualmente.(esto lo leeo en el codigo)
    como quedaría si mi intención es dejar el XP máximo a 125 (a todos los playeros), y y al pasar el tiempo nomral que segun yo son 2 hrs baje a 100% el XP este gain.
    su apoyo por favor.

    es esto posible? y que se tiene que modificar?


    Código:

       -- Exp stats
       local staminaMinutes = player:getStamina()
       local Boost = player:getExpBoostStamina()

       if staminaMinutes > 2400 and player:isPremium() and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*2) -- 200 = 1.0x, 200 = 2.0x, ... premium account
          
       elseif staminaMinutes > 2400 and player:isPremium() and Boost <= 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1.5) -- 150 = 1.0x, 150 = 1.5x, ... premium account
          
       elseif staminaMinutes <= 2400 and staminaMinutes > 840 and player:isPremium() and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1.5) -- 150 = 1.5x      premium account
          
       elseif staminaMinutes > 840 and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*1.5) -- 150 = 1.5x      free account
          
       elseif staminaMinutes <= 840 and Boost > 0 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*2) -- 50 = 0.5x   all players

       elseif staminaMinutes <= 840 then
          player:setBaseXpGain(Game.getExperienceStage(player:getLevel())*2) -- 50 = 0.5x   all players
       end



    alguien?



    Despues de estar entendiendo el código descubrir que se hace de esta manera. les dejo el código por si alguien mas es nuevo y tiene dudas.

    Código:

    local staminaMinutes = player:getStamina()
       local Boost = player:getExpBoostStamina()

       if staminaMinutes > 2400 and player:isPremium() and Boost > 0 then
          player:setBaseXpGain(125) -- 200 = 1.0x, 200 = 2.0x, ... premium account
          
       elseif staminaMinutes > 2400 and player:isPremium() and Boost <= 0 then
          player:setBaseXpGain(125) -- 150 = 1.0x, 150 = 1.5x, ... premium account
          
       elseif staminaMinutes <= 2400 and staminaMinutes > 840 and player:isPremium() and Boost > 0 then
          player:setBaseXpGain(100) -- 150 = 1.5x      premium account
          
       elseif staminaMinutes > 840 and Boost > 0 then
          player:setBaseXpGain(100) -- 150 = 1.5x      free account
          
       elseif staminaMinutes <= 840 and Boost > 0 then
          player:setBaseXpGain(100) -- 50 = 0.5x   all players

       elseif staminaMinutes <= 840 then
          player:setBaseXpGain(100) -- 50 = 0.5x   all players
       end




    Very Happy Resuelto Gracias Very Happy

    Contenido patrocinado


    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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).