• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Potions Exhaust

  • Thread starter Thread starter Deleted member 49793
  • Start date Start date
D

Deleted member 49793

Guest
Hey guys... for the life of me I cant figure this out...

The potion exhaust standard is like 1.5 seconds.

I've tried editing both these files..

Code:
-- Item Usage
timeBetweenActions = 200
timeBetweenExActions = 1000

This should mean... 1 second exhaust correct?

And after this script.. it should = every 0.9 Seconds you can use a potion right? Cause it's still like 1.5 seconds on the server. and we cant figure out why

Code:
local ultimateHealthPot = 8473
local greatHealthPot = 7591
local greatManaPot = 7590
local greatSpiritPot = 8472
local strongHealthPot = 7588
local strongManaPot = 7589
local healthPot = 7618
local manaPot = 7620
local smallHealthPot = 8704
local antidotePot = 8474
local greatEmptyPot = 7635
local strongEmptyPot = 7634
local emptyPot = 7636

local antidote = Combat()
antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)

local exhaust = Condition(CONDITION_EXHAUST_HEAL)
exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 100))
-- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion.

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if target == nil or not target:isPlayer() then
        return true
    end

    if player:getCondition(CONDITION_EXHAUST_HEAL) then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED))
        return true
    end

    local itemId = item:getId()
    if itemId == antidotePot then
        if not antidote:execute(target, numberToVariant(target:getId())) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == smallHealthPot then
        if not doTargetCombatHealth(0, target, COMBAT_HEALING, 60, 90, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == healthPot then
        if not doTargetCombatHealth(0, target, COMBAT_HEALING, 125, 175, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == manaPot then
        if not doTargetCombatMana(0, target, 75, 125, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == strongHealthPot then
        if (not isInArray({3, 4, 5, 9, 10, 11}, target:getVocation():getId()) or target:getLevel() < 50) and not getPlayerFlagValue(player, PlayerFlag_IgnoreSpellCheck) then
            player:say("This potion can only be consumed by paladins, berserkers and guardians of level 50 or higher.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatHealth(0, target, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == strongManaPot then
        if (not isInArray({1, 2, 3, 6, 7, 8, 9, 12}, target:getVocation():getId()) or target:getLevel() < 50) and not getPlayerFlagValue(player, PlayerFlag_IgnoreSpellCheck) then
            player:say("This potion can only be consumed by sorcerers, bards, druids and paladins of level 50 or higher.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatMana(0, target, 115, 185, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == greatSpiritPot then
        if (not isInArray({3, 9}, target:getVocation():getId()) or target:getLevel() < 80) and not getPlayerFlagValue(player, PlayerFlag_IgnoreSpellCheck) then
            player:say("This potion can only be consumed by paladins of level 80 or higher.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatHealth(0, target, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) or not doTargetCombatMana(0, target, 100, 200, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == greatHealthPot then
        if (not isInArray({4, 5, 11, 10}, target:getVocation():getId()) or target:getLevel() < 80) and not getPlayerFlagValue(player, PlayerFlag_IgnoreSpellCheck)  then
            player:say("This potion can only be consumed by Guardians and Berserkers of level 80 or higher.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatHealth(0, target, COMBAT_HEALING, 425, 575, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == greatManaPot then
        if (not isInArray({1,2,6,7,8,12}, target:getVocation():getId()) or target:getLevel() < 80) and not getPlayerFlagValue(player, PlayerFlag_IgnoreSpellCheck) then
            player:say("This potion can only be consumed by sorcerers, bards and druids of level 80 or higher.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatMana(0, target, 150, 250, CONST_ME_MAGIC_BLUE) then
            return false
        end
        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    elseif itemId == ultimateHealthPot then
        if (not isInArray({4, 10}, target:getVocation():getId()) or target:getLevel() < 120) and not getPlayerFlagValue(player, PlayerFlag_IgnoreSpellCheck) then
            player:say("This potion can only be consumed by Guardians of level 120 or higher.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatHealth(0, target, COMBAT_HEALING, 650, 850, CONST_ME_MAGIC_BLUE) then
            return false
        end

        player:addCondition(exhaust)
        target:say("Aaaah...", TALKTYPE_MONSTER_SAY)
        item:remove(1)
    end
    return true
end
 

Similar threads

Back
Top