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

Windows Need some help with this script

Elaney

Member
Joined
Jan 1, 2009
Messages
1,561
Reaction score
12
Location
Sweden
This script of mine arnt working properly.

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
 
Back
Top