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

Solved Ontarget distance shoot every (animation/area).

Imfreezing

Krossa Kapitalismen
Joined
Jun 7, 2012
Messages
1,009
Solutions
1
Reaction score
88
Location
Edron
Hey I was woundering how to make it so that when you use a spell, like this
80NIqhrVU.png

to have distance effect on all the tiles or effects (iceattack i.t.c). also as on target it should shoot on all effects.
thanks in advance
IceAttack.lua
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(combat, area)

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
8.60
 
Code:
local xcombat = createCombatObject()

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat, area)

function onTargetTile(cid, pos)
     doCombat(cid,combat, positionToVariant(pos))
end
setCombatCallback(xcombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
     return doCombat(cid, xcombat, var)
end
 
Code:
local xcombat = createCombatObject()

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat, area)

function onTargetTile(cid, pos)
     doCombat(cid,combat, positionToVariant(pos))
end
setCombatCallback(xcombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
     return doCombat(cid, xcombat, var)
end
Thank you very much
 
Create more combats and use addEvent to execute them so there is some time between them.
Code:
local xcombat = createCombatObject()

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat, area)

function onTargetTile(cid, pos)
     doCombat(cid,combat, positionToVariant(pos))
end

function onTargetTile(cid, pos)
     doCombat(cid,combat1, positionToVariant(pos))
end

setCombatCallback(xcombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
local p = { cid = cid, var = var}
addEvent(onCastSpell, 100, p)
addEvent(onCastSpell1, 200, p)
end
     return doCombat(cid, xcombat, var)
end
ive tried, but doesnt work
 
For the same combat you can do it like this.
Code:
local xcombat = createCombatObject()

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat, area)

function onTargetTile(cid, pos)
  doCombat(cid,combat, positionToVariant(pos))
end
setCombatCallback(xcombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local function doTimeCombat(cid, combat, var)
     if isPlayer(cid) then
         doCombat(cid, combat, var)
     end
     return true
end
         
function onCastSpell(cid, var)
     for x = 0, 2 do
         addEvent(doTimeCombat, x * 1000, cid, xcombat, var)
     end
     return true
end
For different combats.
Code:
local xcombat = {}
for x = 1, 2 do
     xcombat[x] = createCombatObject()
end

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat[1], area)

function onTargetTile(cid, pos)
  doCombat(cid,combat, positionToVariant(pos))
end
setCombatCallback(xcombat[1], CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area2 = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat[2], area2)

function onTargetTile2(cid, pos)
  doCombat(cid,combat2, positionToVariant(pos))
end
setCombatCallback(xcombat[2], CALLBACK_PARAM_TARGETTILE, "onTargetTile2")

local function doTimeCombat(cid, combat, var)
     if isPlayer(cid) then
         doCombat(cid, combat, var)
     end
     return true
end
         
function onCastSpell(cid, var)
     for x = 1, 2 do
         addEvent(doTimeCombat, (x * 1000) -1000, cid, xcombat[x], var)
     end
     return true
end
 
For the same combat you can do it like this.
Code:
local xcombat = createCombatObject()

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat, area)

function onTargetTile(cid, pos)
  doCombat(cid,combat, positionToVariant(pos))
end
setCombatCallback(xcombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local function doTimeCombat(cid, combat, var)
     if isPlayer(cid) then
         doCombat(cid, combat, var)
     end
     return true
end
        
function onCastSpell(cid, var)
     for x = 0, 2 do
         addEvent(doTimeCombat, x * 1000, cid, xcombat, var)
     end
     return true
end
For different combats.
Code:
local xcombat = {}
for x = 1, 2 do
     xcombat[x] = createCombatObject()
end

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat[1], area)

function onTargetTile(cid, pos)
  doCombat(cid,combat, positionToVariant(pos))
end
setCombatCallback(xcombat[1], CALLBACK_PARAM_TARGETTILE, "onTargetTile")

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

local area2 = createCombatArea(AREA_SQUARE1X1)
setCombatArea(xcombat[2], area2)

function onTargetTile2(cid, pos)
  doCombat(cid,combat2, positionToVariant(pos))
end
setCombatCallback(xcombat[2], CALLBACK_PARAM_TARGETTILE, "onTargetTile2")

local function doTimeCombat(cid, combat, var)
     if isPlayer(cid) then
         doCombat(cid, combat, var)
     end
     return true
end
        
function onCastSpell(cid, var)
     for x = 1, 2 do
         addEvent(doTimeCombat, (x * 1000) -1000, cid, xcombat[x], var)
     end
     return true
end
ty <3
 
Back
Top