• 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 Area Stun

adamox223

New Member
Joined
Oct 21, 2017
Messages
99
Reaction score
4
Hello, anyone know why i cant use this spell area? only i can target, when i have in spells.xml needtarget="0"

Code:
local area = {
    {0, 1, 1, 1, 0},
    {1, 1, 1, 1, 1},
    {1, 1, 2, 1, 1},
    {1, 1, 1, 1, 1},
    {0, 1, 1, 1, 0}
}

local areaEffect = {
    {0, 1, 1, 1, 0},
    {1, 1, 1, 1, 1},
    {1, 1, 2, 1, 1},
    {1, 1, 1, 1, 1},
    {0, 1, 1, 1, 0}
}




local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_STUN)
    setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0) 
        setCombatArea(combat, createCombatArea(area))

 local combatEffect = createCombatObject()
    setCombatParam(combatEffect, COMBAT_PARAM_EFFECT, 40)
    setCombatArea(combatEffect, createCombatArea(areaEffect))
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 4000)

local muted = createConditionObject(CONDITION_MUTED)
setConditionParam(muted, CONDITION_PARAM_TICKS, 4000)

local pacified = createConditionObject(CONDITION_PACIFIED)
setConditionParam(pacified, CONDITION_PARAM_TICKS, 4000)

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, 4000)

function onCastSpell(cid, var)
   
    local target = getCreatureTarget(cid)
    local speed = getCreatureSpeed(target)
    doChangeSpeed(target, -speed) 
    addEvent(doChangeSpeed, 4000, target, speed)
    doAddCondition(target, paralyze)
    doAddCondition(target, muted)
    doAddCondition(target, pacified)
    doAddCondition(target, exhaust)
   
    return doCombat(cid, combat, var)
end
 
because you are applying those conditions only on the target, take a look at your spell.
Propably this is what you wanted to achieve:
Code:
local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_STUN)
    setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0)
    setCombatArea(combat, createCombatArea(AREA_CIRCLE2X2))

local paralyze = createConditionObject(CONDITION_PARALYZE, 4000)
local muted    = createConditionObject(CONDITION_MUTED, 4000)
local pacified = createConditionObject(CONDITION_PACIFIED, 4000)
local exhaust  = createConditionObject(CONDITION_EXHAUST, 4000)

local function onTargetCreature(cid, target)
    local speed = getCreatureSpeed(target)
    doChangeSpeed(target, -speed)
    addEvent(doChangeSpeed, 4000, target, speed)
    doAddCondition(target, paralyze)
    doAddCondition(target, muted)
    doAddCondition(target, pacified)
    doAddCondition(target, exhaust)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onCastSpell(cid, var)  
    return doCombat(cid, combat, var)
end
 
Back
Top