• 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 Chain Healing(0.4)

owned

Excellent OT User
Joined
Nov 9, 2008
Messages
2,001
Solutions
3
Reaction score
558
Location
New York
Since I've seen multiple people requesting this recently, here's a code I made a couple years ago. Not sure if it works anymore, surely someone can test. Also if someone would like to update for 1.+ that'd be great.

Code:
local function chainhealing(cid, target1, target2)
    if isPlayer(target2) and getPlayerParty(cid) == getPlayerParty(target2) and isSightClear(getCreaturePosition(target1), getCreaturePosition(target2), 1) then
    local heal = math.random(((getPlayerLevel(cid) * 2.5) + (getPlayerMagLevel(cid) * 4)), ((getPlayerLevel(cid) * 3.5) + (getPlayerMagLevel(cid) * 5))) 
        doSendDistanceShoot(getCreaturePosition(target1), getCreaturePosition(target2), 37)
        doCreatureAddHealth(target2, heal)
    end
    return true
end

function onCastSpell(cid, var)
local list = getSpectators(getCreaturePosition(cid), 5, 5, false)
local membersList = getPartyMembers(cid)
    if not membersList or type(membersList) ~= 'table' or #membersList == 0 then
        doPlayerSendCancel(cid, "You are not in a party.")
        return false
    end
   
    local partymembersnearby = {}
    for _, pid in ipairs(membersList) do
        if getDistanceBetween(getCreaturePosition(pid), getCreaturePosition(cid)) <= 5 then
            table.insert(partymembersnearby, pid)
        end
    end
    local tmp = #partymembersnearby
    if tmp <= 1 then
        doPlayerSendCancel(cid, "No party members in range.")
        return false
    end

local randomtarget1 = partymembersnearby[math.random(#partymembersnearby)]
local randomtarget2 = partymembersnearby[math.random(#partymembersnearby)]
local randomtarget3 = partymembersnearby[math.random(#partymembersnearby)]
local randomtarget4 = partymembersnearby[math.random(#partymembersnearby)]
local randomtarget5 = partymembersnearby[math.random(#partymembersnearby)]

    if (list) then
        if #list >= 2 and isInParty(cid) then
            if randomtarget1 == cid then
                while randomtarget1 == cid do
                    randomtarget1 = partymembersnearby[math.random(#partymembersnearby)]
                end
            end
            if randomtarget2 == randomtarget1 then
                while randomtarget2 == randomtarget1 do
                    randomtarget2 = partymembersnearby[math.random(#partymembersnearby)]
                end
            end
            if randomtarget3 == randomtarget2 then
                while randomtarget3 == randomtarget2 do
                    randomtarget3 = partymembersnearby[math.random(#partymembersnearby)]
                end
            end
            if randomtarget4 == randomtarget3 then
                while randomtarget4 == randomtarget3 do
                    randomtarget4 = partymembersnearby[math.random(#partymembersnearby)]
                end
            end
            if randomtarget5 == randomtarget4 then
                while randomtarget5 == randomtarget4 do
                    randomtarget5 = partymembersnearby[math.random(#partymembersnearby)]
                end
            end
            addEvent(chainhealing, 0, cid, cid, randomtarget1)
            addEvent(chainhealing, 300, cid, randomtarget1, randomtarget2)
            addEvent(chainhealing, 600, cid, randomtarget2, randomtarget3)
            addEvent(chainhealing, 900, cid, randomtarget3, randomtarget4)
            addEvent(chainhealing, 1200, cid, randomtarget4, randomtarget5)
        else
            doSendMagicEffect(getCreaturePosition(cid), 2)
            doPlayerSendCancel(cid, "No party members to heal.")
            return false
        end
    end
    return true
end

This can easily be changed to chain lightning as well.
 
Last edited by a moderator:
Back
Top