Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
  • Este é um post popular.

Potions Heal Friend TFS 1.0

 

Em alguns ots que usam tfs 1.0 as potions tem um bug que não da pra healar outros players, então vou postar o scripts desbugado funcionando 100%

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 = createCombatObject()
setCombatParam(antidote, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(antidote, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(antidote, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE)
setCombatParam(antidote, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(antidote, COMBAT_PARAM_DISPEL, CONDITION_POISON)

local exhaust = createConditionObject(CONDITION_EXHAUST_HEAL)
setConditionParam(exhaust, 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(cid, item, fromPosition, itemEx, toPosition)
    if itemEx.itemid ~= 1 or itemEx.type ~= THING_TYPE_PLAYER then
        return true
    end

    if(getCreatureCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE) then
        doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
        return TRUE
    end

    if(item.itemid == antidotePot) then
        if(doCombat(cid, antidote, numberToVariant(cid)) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(cid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == smallHealthPot) then
        if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 75, 125, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == healthPot) then
        if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 130, 180, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == manaPot) then
        if(doTargetCombatMana(0, itemEx.uid, 70, 130, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == strongHealthPot) then
        if(not(isKnight(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then
            doCreatureSay(cid, "This potion can only be consumed by paladins and knights of level 50 or higher.", TALKTYPE_ORANGE_1)
            return TRUE
        end

        if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 270, 320, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == strongManaPot) then
        if(not(isSorcerer(cid) or isDruid(cid) or isPaladin(cid)) or (getPlayerLevel(cid) < 50)) and not(getPlayerGroupId(cid) >= 2) then
            doCreatureSay(cid, "This potion can only be consumed by sorcerers, druids and paladins of level 50 or higher.", TALKTYPE_ORANGE_1)
            return TRUE
        end

        if(doTargetCombatMana(0, itemEx.uid, 115, 185, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == greatSpiritPot) then
        if(not(isPaladin(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then
            doCreatureSay(cid, "This potion can only be consumed by paladins of level 80 or higher.", TALKTYPE_ORANGE_1)
            return TRUE
        end

        if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) == LUA_ERROR or doTargetCombatMana(0, cid, 100, 200, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == greatHealthPot) then
        if(not(isKnight(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then
            doCreatureSay(cid, "This potion can only be consumed by knights of level 80 or higher.", TALKTYPE_ORANGE_1)
            return TRUE
        end

        if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 425, 575, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == greatManaPot) then
        if(not(isSorcerer(cid) or isDruid(cid)) or (getPlayerLevel(cid) < 80)) and not(getPlayerGroupId(cid) >= 2) then
            doCreatureSay(cid, "This potion can only be consumed by sorcerers and druids of level 80 or higher.", TALKTYPE_ORANGE_1)
            return TRUE
        end

        if(doTargetCombatMana(0, itemEx.uid, 150, 250, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    elseif(item.itemid == ultimateHealthPot) then
        if(not(isKnight(cid)) or (getPlayerLevel(cid) < 130)) and not(getPlayerGroupId(cid) >= 2) then
            doCreatureSay(cid, "This potion can only be consumed by knights of level 130 or higher.", TALKTYPE_ORANGE_1)
            return TRUE
        end

        if(doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 650, 850, CONST_ME_MAGIC_BLUE) == LUA_ERROR) then
            return FALSE
        end
        doAddCondition(cid, exhaust)
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
        setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)
    end
    return TRUE
end

e isso pessoal.

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

 

 

  • 2 months later...

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