owned
Excellent OT User
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.
This can easily be changed to chain lightning as well.
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: