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

Lua [TFS 1.2] monster use spell only if it is at a distance > 1 from target

gtms

New Member
Joined
Aug 8, 2014
Messages
3
Reaction score
0
Have this spell for example:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)


function onCastSpell(creature, variant)
-- if creature:distance from target > 1 then
return combat:execute(creature, variant)
--end
end

someone knows how to check the distance between the creature and the target?

thanks
 
Solution
Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)


function onCastSpell(creature, variant)
    variant_uid = variant:toNumber()
    target = Creature(variant_uid)
    t_pos = target:getPosition()
 
    --If the variant is too far away--
    if creature:getPosition():getDistance(t_pos) > 1 then
        return false
    end

    return combat:execute(creature, variant)
end

ez pz :)
Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)


function onCastSpell(creature, variant)
    variant_uid = variant:toNumber()
    target = Creature(variant_uid)
    t_pos = target:getPosition()
 
    --If the variant is too far away--
    if creature:getPosition():getDistance(t_pos) > 1 then
        return false
    end

    return combat:execute(creature, variant)
end

ez pz :)
 
Solution
Back
Top