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

Help with paralyze spell in area

bizao030188

Member
Joined
Jun 4, 2012
Messages
50
Solutions
2
Reaction score
7
Hey there,
I am trying to implement a spell that paralyzes monsters in a certain range.
This is what I have so far:

Lua:
local condition = Condition(CONDITION_ATTRIBUTES)
condition:setParameter(CONDITION_PARAM_TICKS, 4000)
condition:setParameter(CONDITION_PARAM_SPEED, 50)

local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))
combat:setCondition(condition)

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end

The effect is showing but nothing happens to monsters around. What is the best away of doing that?

Thanks in advance.
 
Solution
Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))

local condition = Condition(CONDITION_PARALYZE)
condition:setParameter(CONDITION_PARAM_TICKS, 4000)
condition:setParameter(CONDITION_PARAM_SPEED, -50)
combat:setCondition(condition)

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end

Source of CONDITION_PARAM_SPEED
C++:
bool ConditionSpeed::setParam(ConditionParam_t param, int32_t value)
{
    Condition::setParam(param, value);
    if (param != CONDITION_PARAM_SPEED) {
        return false;
    }

    speedDelta = value;

    if (value > 0) {
        conditionType = CONDITION_HASTE;
    } else {...
Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN)
combat:setArea(createCombatArea(AREA_CIRCLE6X6))

local condition = Condition(CONDITION_PARALYZE)
condition:setParameter(CONDITION_PARAM_TICKS, 4000)
condition:setParameter(CONDITION_PARAM_SPEED, -50)
combat:setCondition(condition)

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end

Source of CONDITION_PARAM_SPEED
C++:
bool ConditionSpeed::setParam(ConditionParam_t param, int32_t value)
{
    Condition::setParam(param, value);
    if (param != CONDITION_PARAM_SPEED) {
        return false;
    }

    speedDelta = value;

    if (value > 0) {
        conditionType = CONDITION_HASTE;
    } else {
        conditionType = CONDITION_PARALYZE;
    }
    return true;
}

or just modify paralyze rune script
otland/forgottenserver
 
Solution
Back
Top