This script of mine arnt working properly.
and
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)
function onTarget(cid, target)
return doTargetCombatHealth(0, target, COMBAT_HOLYDAMAGE, -(getPlayerStorageValue(cid,"absorbed")), -(getPlayerStorageValue(cid,"absorbed")), CONST_ME_NONE)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTarget")
--[[Config]]--
local timeinsec = 6 -- time to absorb
--[[End]]--
local count = 1
function doDamadge(cid,var)
if getCreatureName(cid,false) then
doCreatureSay(cid,">>unleashing<<",34)
doCombat(cid, combat, var)
setPlayerStorageValue(cid,"absorbing",-1)
setPlayerStorageValue(cid,"absorbed",0)
count = 1
setPlayerStorageValue(cid,"startAbsorb",-4)
end
return true
end
function absorb(cid,var)
if getCreatureName(cid,false) then
setPlayerStorageValue(cid,"absorbing",1)
setPlayerStorageValue(cid,"startAbsorb",-4)
startEffects(cid,var)
end
return true
end
function startEffects(cid,var)
if getCreatureName(cid,false) then
local effect = CONST_ANI_SMALLHOLY
local p = getThingPos(cid)
local pos = {
{ x = p.x-2 , y = p.y , z = p.z },
{ x = p.x , y = p.y-2 , z = p.z },
{ x = p.x+2 , y = p.y , z = p.z },
{ x = p.x , y = p.y+2 , z = p.z },
{ x = p.x+2 , y = p.y+2 , z = p.z },
{ x = p.x-2 , y = p.y-2 , z = p.z },
{ x = p.x-2 , y = p.y+2 , z = p.z },
{ x = p.x+2 , y = p.y-2 , z = p.z }
}
if count <= timeinsec then
for i = 1,#pos do
doSendDistanceShoot(pos, p, effect)
end
addEvent(startEffects,1*1000,cid,var)
count = count + 1
else
doDamadge(cid,var)
count = 1
end
end
return true
end
function onCastSpell(cid, var)
count = 1
return isMonster(cid) and absorb(cid,var) or true
end
and
Code:
function onStatsChange(cid, attacker, type, combat, value)
if combat == COMBAT_HEALING then
return true
end
if value > 0 and getPlayerStorageValue(cid,"absorbing") == 1 then
if getPlayerStorageValue(cid,"startAbsorb") == -4 then
setPlayerStorageValue(cid,"startAbsorb",1)
setPlayerStorageValue(cid,"absorbed",0)
end
setPlayerStorageValue(cid,"absorbed", math.max(0,getPlayerStorageValue(cid,"absorbed")) + value)
end
return true
end