local arrs = {
{
{0, 1, 0},
{1, 2, 1},
{0, 1, 0}
},
{
{0, 1, 1, 1, 0},
{1, 1, 0, 1, 1},
{1, 0, 2, 0, 1},
{1, 1, 0, 1, 1},
{0, 1, 1, 1, 0}
},
{
{0, 0, 1, 0, 1, 0, 0},
{0, 1, 0, 1, 0, 1, 0},
{1, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 2, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 1, 0},
{0, 0, 1, 1, 1, 0, 0}
},
{
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},
{1, 1, 0, 0, 0, 2, 0, 0, 0, 1, 1},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}
}
}
local arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
local arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
local arr3 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
local arr4 = {
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},
{1, 1, 0, 0, 0, 2, 0, 0, 0, 1, 1},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1},
{0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
-- Dano do spell - Fase 1
function onGetFormulaValues1(cid, level, maglevel)
local min = 1
local max = 1
return -min, -max
end
-- Dano do spell - Fase 2
function onGetFormulaValues2(cid, level, maglevel)
local min = 2
local max = 2
return -min, -max
end
-- Dano do spell - Fase 3
function onGetFormulaValues3(cid, level, maglevel)
local min = 3
local max = 3
return -min, -max
end
-- Dano do spell - Fase 4
function onGetFormulaValues4(cid, level, maglevel)
local min = 4
local max = 4
return -min, -max
end
-- Efeito visual para o alvo - Fase 1
function onTargetTile1(cid, pos)
doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_HOLY)
return true
end
-- Efeito visual para o alvo - Fase 2
function onTargetTile2(cid, pos)
doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_HOLY)
return true
end
-- Efeito visual para o alvo - Fase 3
function onTargetTile3(cid, pos)
doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_HOLY)
return true
end
-- Efeito visual para o alvo - Fase 4
function onTargetTile4(cid, pos)
doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_HOLY)
return true
end
-- Criação do combate - Fase 1
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
setCombatArea(combat1, area1)
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues1")
setCombatCallback(combat1, CALLBACK_PARAM_TARGETTILE, "onTargetTile1")
-- Criação do combate - Fase 2
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatArea(combat2, area2)
setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues2")
setCombatCallback(combat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2")
-- Criação do combate - Fase 3
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatArea(combat3, area3)
setCombatCallback(combat3, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues3")
setCombatCallback(combat3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3")
-- Criação do combate - Fase 4
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER)
setCombatArea(combat4, area4)
setCombatCallback(combat4, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues4")
setCombatCallback(combat4, CALLBACK_PARAM_TARGETTILE, "onTargetTile4")
-- Funções para executar cada fase do spell
function castSpell1(parameters)
if isCreature(parameters.cid) then
doCombat(parameters.cid, combat1, parameters.var)
end
return true
end
function castSpell2(parameters)
if isCreature(parameters.cid) then
doCombat(parameters.cid, combat2, parameters.var)
end
return true
end
function castSpell3(parameters)
if isCreature(parameters.cid) then
doCombat(parameters.cid, combat3, parameters.var)
end
return true
end
function castSpell4(parameters)
if isCreature(parameters.cid) then
doCombat(parameters.cid, combat4, parameters.var)
end
return true
end
function onCastSpell(cid, var)
-- Executa a primeira fase imediatamente
doCombat(cid, combat1, var)
-- Agenda as próximas fases com atrasos diferentes
local parameters = {cid = cid, var = var}
addEvent(castSpell2, 100, parameters)
addEvent(castSpell3, 250, parameters)
addEvent(castSpell4, 500, parameters)
return true
end


info
Grupo: Artesão
Registrado: 01/03/20
Posts: 110
Reputação: +1
Gênero: Masculino
Char no Tibia: Samuel on Issobra
local arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr3 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local arr4 = { {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0}, {0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0}, {1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 2, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1}, {0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0}, {0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0} } local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) combat:setArea(createCombatArea(arr1)) local combat2 = Combat() combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) combat2:setArea(createCombatArea(arr2)) local combat3 = Combat() combat3:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) combat3:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) combat3:setArea(createCombatArea(arr3)) local combat4 = Combat() combat4:setParameter(COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) combat4:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER) combat4:setArea(createCombatArea(arr4)) function onGetFormulaValues(player, level, magicLevel) local min = 1 local max = 1 return -min, -max end function onGetFormulaValues2(player, level, magicLevel) local min = 2 local max = 2 return -min, -max end function onGetFormulaValues3(player, level, magicLevel) local min = 3 local max = 3 return -min, -max end function onGetFormulaValues4(player, level, magicLevel) local min = 4 local max = 4 return -min, -max end function onTargetTile(creature, position) creature:getPosition():sendDistanceEffect(position, CONST_ANI_HOLY) end function onTargetTileTwo(creature, position) creature:getPosition():sendDistanceEffect(position, CONST_ANI_HOLY) end function onTargetTileThree(creature, position) creature:getPosition():sendDistanceEffect(position, CONST_ANI_HOLY) end combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues2") combat3:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues3") combat4:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues4") combat2:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile") combat3:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTileTwo") combat4:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTileThree") local function castSpell1(creatureId, variant) local creature = Creature(creatureId) if not creature then return end combat:execute(creature, variant) end local function castSpell2(creatureId, variant) local creature = Creature(creatureId) if not creature then return end combat2:execute(creature, variant) end local function castSpell3(creatureId, variant) local creature = Creature(creatureId) if not creature then return end combat3:execute(creature, variant) end local function castSpell4(creatureId, variant) local creature = Creature(creatureId) if not creature then return end combat4:execute(creature, variant) end function onCastSpell(creature, variant) castSpell1(creature, variant) addEvent(castSpell2, 100, creature:getId(), variant) addEvent(castSpell3, 250, creature:getId(), variant) addEvent(castSpell4, 500, creature:getId(), variant) return true end