• 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!

Spell TFS 1.2 10.98 Party Healing and Buff Spell % of you skills!!!

Gicu

Well-Known Member
Joined
Feb 26, 2011
Messages
187
Reaction score
52
Hello and let's go!
TFS 1.2 10.98
This spell give a buff to ALL PARTY MEMBERS! Here is for SHIELDING 50% of you skill add other! And Party Healing! ( Yes Regeneration no Heal ;) ) U can set longer duration and make regeneration buff too. Sorry for that mess. Low English Detected!
2d167b66e53baf6fmed.gif



add line:
/data/spells/spells.xml

Lua:
<instant group="support" spellid="23" name="Party Wisdom" words="Party Wisdom" lvl="1" mana="10" aggressive="0" selftarget="1" cooldown="1000" groupcooldown="1000" needlearn="1" script="support/party_buff.lua">
    </instant>

create:
/data/spells/scripts/support/party_buff.lua

Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, 45)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)

local baseMana = 1000

function onCastSpell(creature, variant, isHotkey)
    local position = creature:getPosition()
    local party = creature:getParty()
    if not party then
        creature:sendCancelMessage("No party members in range.")
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end

    local membersList = party:getMembers()
    membersList[#membersList + 1] = party:getLeader()

    if membersList == nil or type(membersList) ~= 'table' or #membersList <= 1 then
        creature:sendCancelMessage("No party members in range.")
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end

    local affectedList = {}
    for _, targetPlayer in ipairs(membersList) do
        if targetPlayer:getPosition():getDistance(position) <= 36 then
            affectedList[#affectedList + 1] = targetPlayer
        end
    end

    local count = #affectedList
    if count <= 1 then
        creature:sendCancelMessage("No party members in range.")
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end

    local mana = math.ceil((0.9 ^ (count - 1) * baseMana) * count)
    if creature:getMana() < mana then
        creature:sendCancelMessage(RETURNVALUE_NOTENOUGHMANA)
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    elseif not combat:execute(creature, variant) then
        creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end
    creature:addMana(baseMana - mana, false)
    creature:addManaSpent(mana - baseMana)

    for _, targetPlayer in ipairs(affectedList) do
   
    local position = targetPlayer:getPosition()
        local pos = creature:getPosition()
     pos:sendDistanceEffect(position, 12)
            position:sendMagicEffect(45)
       

local time = 10 * 60 * 1000
local time2 = 10
    local slvl = creature:getEffectiveSkillLevel(SKILL_SHIELD) / 2
doPlayerSendTextMessage(targetPlayer, MESSAGE_INFO_DESCR, "Defense + [" .. slvl .. "/s] for [" .. time2 .."] min!")


local skill = Condition(CONDITION_ATTRIBUTES)
skill:setParameter(CONDITION_PARAM_SUBID, 550)
skill:setParameter(CONDITION_PARAM_TICKS, time)
skill:setParameter(CONDITION_PARAM_SKILL_SHIELD, slvl)
skill:setParameter(CONDITION_PARAM_BUFF_SPELL, true)
combat:setCondition(skill)


        targetPlayer:addCondition(skill)

    end
    return true
end

create:
/data/spells/scripts/support/party_heal.lua

local time = 10 * 60 * 1000 ------- 10 min
local time2 = 10 --------- 10 min
local slvl = creature:getEffectiveSkillLevel(SKILL_SHIELD) / 2 --------- 50% of YOU Shielding added to all party members

Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, 50)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)

local baseMana = 200

function onCastSpell(creature, variant, isHotkey)
    local position = creature:getPosition()
    local party = creature:getParty()
    if not party then
        creature:sendCancelMessage("No party members in range.")
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end

    local membersList = party:getMembers()
    membersList[#membersList + 1] = party:getLeader()

    if membersList == nil or type(membersList) ~= 'table' or #membersList <= 1 then
        creature:sendCancelMessage("No party members in range.")
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end

    local affectedList = {}
    for _, targetPlayer in ipairs(membersList) do
        if targetPlayer:getPosition():getDistance(position) <= 36 then
            affectedList[#affectedList + 1] = targetPlayer
        end
    end

    local count = #affectedList
    if count <= 1 then
        creature:sendCancelMessage("No party members in range.")
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end

    local mana = math.ceil((0.9 ^ (count - 1) * baseMana) * count)
    if creature:getMana() < mana then
        creature:sendCancelMessage(RETURNVALUE_NOTENOUGHMANA)
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    elseif not combat:execute(creature, variant) then
        creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
        position:sendMagicEffect(CONST_ME_POFF)
        return false
    end
    creature:addMana(baseMana - mana, false)
    creature:addManaSpent(mana - baseMana)

    for _, targetPlayer in ipairs(affectedList) do
   
    local position = targetPlayer:getPosition()
        local pos = creature:getPosition()
     pos:sendDistanceEffect(position, 31)
            position:sendMagicEffect(50)
           
   
    local lvl = creature:getLevel()
    local mlvl = creature:getMagicLevel()

    local min = (lvl * 6) + (mlvl * 6) + 10   
    local condition = Condition(CONDITION_REGENERATION)
condition:setParameter(CONDITION_PARAM_SUBID, 520)
condition:setParameter(CONDITION_PARAM_TICKS, 100)
condition:setParameter(CONDITION_PARAM_HEALTHGAIN, min)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 100)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, true)

        targetPlayer:addCondition(condition)

    end
    return true
end
local min = (lvl * 6) + (mlvl * 6) + 10 -------- how mach heal
 
Back
Top