• 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 Making Target Spell Static

mackerel

Well-Known Member
Joined
Apr 26, 2017
Messages
398
Solutions
18
Reaction score
72
Anyone knows how to make the spell to ignore player position when casting? I remember it was the way the spells worked in earlier Tibia versions but now it has been changed, examples below;

* It is a target-based spell

Current Result:

vQqy8MA.png



---------------------



Expected Result

1qVfZqS.png



Lua:
-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{3}}))
function getDmg_Brush(cid, level, maglevel)
   return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")local combat0_Brush_2 = createCombatObject()
setCombatParam(combat0_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat0_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_2,createCombatArea({{2, 1}}))
function getDmg_Brush_2(cid, level, maglevel)
   return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")local combat0_Brush_3 = createCombatObject()
setCombatParam(combat0_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatParam(combat0_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_3,createCombatArea({{1, 2}}))
function getDmg_Brush_3(cid, level, maglevel)
   return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3")local combat0_Brush_4 = createCombatObject()
setCombatParam(combat0_Brush_4, COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT)
setCombatParam(combat0_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_4,createCombatArea({{2},
{1}}))
function getDmg_Brush_4(cid, level, maglevel)
   return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4")local combat0_Brush_5 = createCombatObject()
setCombatParam(combat0_Brush_5, COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONAREA)
setCombatParam(combat0_Brush_5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_5,createCombatArea({{1},
{2}}))
function getDmg_Brush_5(cid, level, maglevel)
   return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_5, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_5")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
   if (isCreature(cid)) then
       doCombat(cid, c, var)
       if (dirList ~= nil) then -- Emit distance effects
           local i = 2;
           while (i < #dirList) do
               doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
               i = i + 2
           end     
       end
   end
end

function onCastSpell(cid, var)
   local startPos = getCreaturePosition(cid)
   RunPart(combat0_Brush,cid,var)
   RunPart(combat0_Brush_2,cid,var)
   RunPart(combat0_Brush_3,cid,var)
   RunPart(combat0_Brush_4,cid,var)
   RunPart(combat0_Brush_5,cid,var)
   return true
end
 
Last edited:
Solution
do this
Lua:
function onCastSpell(cid, var)
doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{x=1}, {1}, -10, -20, CONST_ME_DRAWBLOOD)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{x=-1}, {1}, -10, -20, CONST_ME_LOSEENERGY)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{y=1}, {1}, -10, -20, CONST_ME_BLOCKHIT)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{y=-1}, {1}, -10, -20, CONST_ME_EXPLOSIONAREA)
return true
end
set the combat area in every combat to proper one.
1st one from your script should looks like:
Code:
createCombatArea({
   {0, 0, 0},
   {0, 3, 0},
   {0, 0, 0}
})
 
set the combat area in every combat to proper one.
1st one from your script should looks like:
Code:
createCombatArea({
   {0, 0, 0},
   {0, 3, 0},
   {0, 0, 0}
})


Doesn't seem to work:

1.

NMBVpUs.png


2.
O98Pjeo.png



Lua:
-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({
    {0, 0, 0},
    {0, 3, 0},
    {0, 0, 0}
}))
function getDmg_Brush(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")local combat0_Brush_2 = createCombatObject()
setCombatParam(combat0_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat0_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_2,createCombatArea({
    {0, 0, 0},
    {2, 1, 0},
    {0, 0, 0}
}))
function getDmg_Brush_2(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")local combat0_Brush_3 = createCombatObject()
setCombatParam(combat0_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatParam(combat0_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_3,createCombatArea({
    {0, 0, 0},
    {0, 1, 2},
    {0, 0, 0}
}))
function getDmg_Brush_3(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3")local combat0_Brush_4 = createCombatObject()
setCombatParam(combat0_Brush_4, COMBAT_PARAM_EFFECT, 6)
setCombatParam(combat0_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_4,createCombatArea({
    {0, 2, 0},
    {0, 1, 0},
    {0, 0, 0}
}))
function getDmg_Brush_4(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4")local combat0_Brush_5 = createCombatObject()
setCombatParam(combat0_Brush_5, COMBAT_PARAM_EFFECT, 8)
setCombatParam(combat0_Brush_5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush_5,createCombatArea({
    {0, 0, 0},
    {0, 1, 0},
    {0, 2, 0}
}))
function getDmg_Brush_5(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_5, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_5")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
    if (isCreature(cid)) then
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                i = i + 2
            end       
        end
    end
end

function onCastSpell(cid, var)
    local startPos = getCreaturePosition(cid)
    RunPart(combat0_Brush,cid,var)
    RunPart(combat0_Brush_2,cid,var)
    RunPart(combat0_Brush_3,cid,var)
    RunPart(combat0_Brush_4,cid,var)
    RunPart(combat0_Brush_5,cid,var)
    return true
end
 
Im not good in making spells, try this one:
Lua:
-- SpellCreator generated.
-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")local combat0_Brush_2 = createCombatObject()
setCombatParam(combat0_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat0_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_2(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")local combat0_Brush_3 = createCombatObject()
setCombatParam(combat0_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatParam(combat0_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_3(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3")local combat0_Brush_4 = createCombatObject()
setCombatParam(combat0_Brush_4, COMBAT_PARAM_EFFECT, 6)
setCombatParam(combat0_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_4(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4")local combat0_Brush_5 = createCombatObject()
setCombatParam(combat0_Brush_5, COMBAT_PARAM_EFFECT, 8)
setCombatParam(combat0_Brush_5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_5(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_5, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_5")
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
    if (isCreature(cid)) then
       if c == combat0_Brush then
           var = var
       elseif c == combat0_Brush_2 then
           var = {x = getCreaturePosition(var.number).x - 1, y = getCreaturePosition(var.number).y, z = getCreaturePosition(var.number).z}
       elseif c == combat0_Brush_3 then
           var = {x = getCreaturePosition(var.number).x + 1, y = getCreaturePosition(var.number).y, z = getCreaturePosition(var.number).z}
       elseif c == combat0_Brush_4 then
           var = {x = getCreaturePosition(var.number).x, y = getCreaturePosition(var.number).y - 1, z = getCreaturePosition(var.number).z}
       elseif c == combat0_Brush_5 then
           var = {x = getCreaturePosition(var.number).x, y = getCreaturePosition(var.number).y + 1, z = getCreaturePosition(var.number).z}
       end
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                i = i + 2
            end     
        end
    end
end
function onCastSpell(cid, var)
    local startPos = getCreaturePosition(cid)
    RunPart(combat0_Brush,cid,var)
    RunPart(combat0_Brush_2,cid,var)
    RunPart(combat0_Brush_3,cid,var)
    RunPart(combat0_Brush_4,cid,var)
    RunPart(combat0_Brush_5,cid,var)
    return true
end
 
Im not good in making spells, try this one:
Lua:
-- SpellCreator generated.
-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")local combat0_Brush_2 = createCombatObject()
setCombatParam(combat0_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_LOSEENERGY)
setCombatParam(combat0_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_2(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")local combat0_Brush_3 = createCombatObject()
setCombatParam(combat0_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatParam(combat0_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_3(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_3, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_3")local combat0_Brush_4 = createCombatObject()
setCombatParam(combat0_Brush_4, COMBAT_PARAM_EFFECT, 6)
setCombatParam(combat0_Brush_4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_4(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_4, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_4")local combat0_Brush_5 = createCombatObject()
setCombatParam(combat0_Brush_5, COMBAT_PARAM_EFFECT, 8)
setCombatParam(combat0_Brush_5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function getDmg_Brush_5(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat0_Brush_5, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_5")
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
    if (isCreature(cid)) then
       if c == combat0_Brush then
           var = var
       elseif c == combat0_Brush_2 then
           var = {x = getCreaturePosition(var.number).x - 1, y = getCreaturePosition(var.number).y, z = getCreaturePosition(var.number).z}
       elseif c == combat0_Brush_3 then
           var = {x = getCreaturePosition(var.number).x + 1, y = getCreaturePosition(var.number).y, z = getCreaturePosition(var.number).z}
       elseif c == combat0_Brush_4 then
           var = {x = getCreaturePosition(var.number).x, y = getCreaturePosition(var.number).y - 1, z = getCreaturePosition(var.number).z}
       elseif c == combat0_Brush_5 then
           var = {x = getCreaturePosition(var.number).x, y = getCreaturePosition(var.number).y + 1, z = getCreaturePosition(var.number).z}
       end
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
                i = i + 2
            end    
        end
    end
end
function onCastSpell(cid, var)
    local startPos = getCreaturePosition(cid)
    RunPart(combat0_Brush,cid,var)
    RunPart(combat0_Brush_2,cid,var)
    RunPart(combat0_Brush_3,cid,var)
    RunPart(combat0_Brush_4,cid,var)
    RunPart(combat0_Brush_5,cid,var)
    return true
end

Doesn't work, the if statement checks for brushes but what if we have more than 5? I guess we would have to write another line of code

Instead I was thinking that the if statement could be based on the player position, so if he is to the right then execute spell with specific coordinates. I will try and do that but I am not sure if that will work
 
Try this one:
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat, createCombatArea({
   {0, 2, 0},
   {2, 3, 2},
   {0, 2, 0}
}))
function damage(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "damage")
function onCastSpell(cid, var)
   local effects = {
       {"CONST_ME_DRAWBLOOD", "0", "0"},
       {"CONST_ME_LOSEENERGY", "-1", "0"},
       {"CONST_ME_POFF", "+1", "0"},
       {"6", "0", "-1"},
       {"8", "0", "+1"}
   }
   for i = 1, #effects do
       doSendMagicEffect({x = getCreaturePosition(var).x + effects[i][2], y = getCreaturePosition(var).y + effects[i][3], z = getCreaturePosition(var).z, effects[i][1])
   end
   doCombat(cid, combat, var)
    return true
end
 
Try this one:
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat, createCombatArea({
   {0, 2, 0},
   {2, 3, 2},
   {0, 2, 0}
}))
function damage(cid, level, maglevel)
    return (10)*-1,(20)*-1
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "damage")
function onCastSpell(cid, var)
   local effects = {
       {"CONST_ME_DRAWBLOOD", "0", "0"},
       {"CONST_ME_LOSEENERGY", "-1", "0"},
       {"CONST_ME_POFF", "+1", "0"},
       {"6", "0", "-1"},
       {"8", "0", "+1"}
   }
   for i = 1, #effects do
       doSendMagicEffect({x = getCreaturePosition(var).x + effects[i][2], y = getCreaturePosition(var).y + effects[i][3], z = getCreaturePosition(var).z, effects[i][1])
   end
   doCombat(cid, combat, var)
    return true
end

attempt to index a boolean value
stack traceback:
[C]: in function '__index'

This line:
Lua:
doSendMagicEffect({x = getCreaturePosition(var).x + effects[i][2], y = getCreaturePosition(var).y + effects[i][3], z = getCreaturePosition(var).z, effects[i][1]})
 
do this
Lua:
function onCastSpell(cid, var)
doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{x=1}, {1}, -10, -20, CONST_ME_DRAWBLOOD)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{x=-1}, {1}, -10, -20, CONST_ME_LOSEENERGY)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{y=1}, {1}, -10, -20, CONST_ME_BLOCKHIT)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{y=-1}, {1}, -10, -20, CONST_ME_EXPLOSIONAREA)
return true
end
 
Solution
do this
Lua:
function onCastSpell(cid, var)
doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{x=1}, {1}, -10, -20, CONST_ME_DRAWBLOOD)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{x=-1}, {1}, -10, -20, CONST_ME_LOSEENERGY)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{y=1}, {1}, -10, -20, CONST_ME_BLOCKHIT)
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getCreaturePosition(getCreatureTarget(cid))+{y=-1}, {1}, -10, -20, CONST_ME_EXPLOSIONAREA)
return true
end

LOL this guy
 
I assume it worked for him
I've seen it done in older distros, since a position is just an array {x = 1000, y = 1000, z = 7} you can just add them
{x = 1000, y = 1000, z = 7} + {x = 10, y = -10} = {x = 1010, y = 990, z = 7} for example
Don't think it works in newer distros
 
Back
Top