| @@ -0,0 +1,15 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW) | |
| 3 | + | combat:setArea(createCombatArea(AREA_BEAM1)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 6 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 25} | |
| 8 | + | } | |
| 9 | + | ||
| 10 | + | function onCastSpell(creature, variant) | |
| 11 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 12 | + | target:addAttributeCondition(parameters) | |
| 13 | + | end | |
| 14 | + | return true | |
| 15 | + | end |
| @@ -0,0 +1,17 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) | |
| 3 | + | combat:setArea(createCombatArea(AREA_BEAM1)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 6 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = nil} | |
| 8 | + | } | |
| 9 | + | ||
| 10 | + | function onCastSpell(creature, variant) | |
| 11 | + | parameters[2].value = math.random(70, 80) | |
| 12 | + | ||
| 13 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 14 | + | target:addAttributeCondition(parameters) | |
| 15 | + | end | |
| 16 | + | return true | |
| 17 | + | end |
| @@ -0,0 +1,17 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) | |
| 3 | + | combat:setArea(createCombatArea(AREA_CIRCLE3X3)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 4 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 50}, | |
| 8 | + | {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 50}, | |
| 9 | + | {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50} | |
| 10 | + | } | |
| 11 | + | ||
| 12 | + | function onCastSpell(creature, variant) | |
| 13 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 14 | + | target:addAttributeCondition(parameters) | |
| 15 | + | end | |
| 16 | + | return true | |
| 17 | + | end |
| @@ -0,0 +1,7 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_INVISIBLE) | |
| 3 | + | combat:setArea(createCombatArea(AREA_CIRCLE3X3)) | |
| 4 | + | ||
| 5 | + | function onCastSpell(creature, variant) | |
| 6 | + | return combat:execute(creature, variant) | |
| 7 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 3) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,12 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | local damage = math.random(62, 128) | |
| 8 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 9 | + | creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage) | |
| 10 | + | end | |
| 11 | + | return true | |
| 12 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE3X3)) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 7) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,17 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) | |
| 3 | + | combat:setArea(createCombatArea(AREA_CIRCLE2X2)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 6 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = nil} | |
| 8 | + | } | |
| 9 | + | ||
| 10 | + | function onCastSpell(creature, variant) | |
| 11 | + | parameters[2].value = math.random(13, 50) | |
| 12 | + | ||
| 13 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 14 | + | target:addAttributeCondition(parameters) | |
| 15 | + | end | |
| 16 | + | return true | |
| 17 | + | end |
| @@ -0,0 +1,15 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) | |
| 3 | + | combat:setArea(createCombatArea(AREA_CROSS1X1)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 6 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 45} | |
| 8 | + | } | |
| 9 | + | ||
| 10 | + | function onCastSpell(creature, variant) | |
| 11 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 12 | + | target:addAttributeCondition(parameters) | |
| 13 | + | end | |
| 14 | + | return true | |
| 15 | + | end |
| @@ -0,0 +1,15 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_STUN) | |
| 3 | + | combat:setArea(createCombatArea(AREA_CIRCLE6X6)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 4 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50} | |
| 8 | + | } | |
| 9 | + | ||
| 10 | + | function onCastSpell(creature, variant) | |
| 11 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 12 | + | target:addAttributeCondition(parameters) | |
| 13 | + | end | |
| 14 | + | return true | |
| 15 | + | end |
| @@ -0,0 +1,17 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_LARGEROCK) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE2X2)) | |
| 5 | + | ||
| 6 | + | local parameters = { | |
| 7 | + | {key = CONDITION_PARAM_TICKS, value = 4 * 1000}, | |
| 8 | + | {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 50}, | |
| 9 | + | {key = CONDITION_PARAM_SKILL_DISTANCEPERCENT, value = 50} | |
| 10 | + | } | |
| 11 | + | ||
| 12 | + | function onCastSpell(creature, variant) | |
| 13 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 14 | + | target:addAttributeCondition(parameters) | |
| 15 | + | end | |
| 16 | + | return true | |
| 17 | + | end |
| @@ -0,0 +1,30 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) | |
| 3 | + | ||
| 4 | + | local condition = Condition(CONDITION_PARALYZE) | |
| 5 | + | condition:setParameter(CONDITION_PARAM_TICKS, 20000) | |
| 6 | + | condition:setFormula(-0.6, 0, -0.8, 0) | |
| 7 | + | combat:addCondition(condition) | |
| 8 | + | ||
| 9 | + | arr = { | |
| 10 | + | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
| 11 | + | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
| 12 | + | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
| 13 | + | {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, | |
| 14 | + | {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, | |
| 15 | + | {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, | |
| 16 | + | {0, 0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 0, 0}, | |
| 17 | + | {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, | |
| 18 | + | {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, | |
| 19 | + | {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, | |
| 20 | + | {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, | |
| 21 | + | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
| 22 | + | {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | |
| 23 | + | } | |
| 24 | + | ||
| 25 | + | local area = createCombatArea(arr) | |
| 26 | + | combat:setArea(area) | |
| 27 | + | ||
| 28 | + | function onCastSpell(creature, var) | |
| 29 | + | return combat:execute(creature, var) | |
| 30 | + | end |
| @@ -0,0 +1,16 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SOUND_YELLOW) | |
| 3 | + | combat:setArea(createCombatArea(AREA_CIRCLE3X3)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 5 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 60}, | |
| 8 | + | {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 70} | |
| 9 | + | } | |
| 10 | + | ||
| 11 | + | function onCastSpell(creature, variant) | |
| 12 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 13 | + | target:addAttributeCondition(parameters) | |
| 14 | + | end | |
| 15 | + | return true | |
| 16 | + | end |
| @@ -0,0 +1,12 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | local damage = math.random(128, 954) | |
| 8 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 9 | + | creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage) | |
| 10 | + | end | |
| 11 | + | return true | |
| 12 | + | end |
| @@ -0,0 +1,22 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_NONE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN) | |
| 4 | + | ||
| 5 | + | local area = createCombatArea(AREA_SQUARE1X1) | |
| 6 | + | combat:setArea(area) | |
| 7 | + | ||
| 8 | + | local maxsummons = 1 | |
| 9 | + | ||
| 10 | + | function onCastSpell(creature, var) | |
| 11 | + | local summoncount = creature:getSummons() | |
| 12 | + | if #summoncount < 1 then | |
| 13 | + | for i = 1, maxsummons - #summoncount do | |
| 14 | + | local mid = Game.createMonster("Glooth Blob", creature:getPosition()) | |
| 15 | + | if not mid then | |
| 16 | + | return | |
| 17 | + | end | |
| 18 | + | mid:setMaster(creature) | |
| 19 | + | end | |
| 20 | + | end | |
| 21 | + | return combat:execute(creature, var) | |
| 22 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE6X6)) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 26) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,16 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) | |
| 3 | + | combat:setArea(createCombatArea(AREA_SQUARE1X1)) | |
| 4 | + | ||
| 5 | + | local parameters = { | |
| 6 | + | {key = CONDITION_PARAM_TICKS, value = 4 * 1000}, | |
| 7 | + | {key = CONDITION_PARAM_SKILL_SHIELDPERCENT, value = 85}, | |
| 8 | + | {key = CONDITION_PARAM_SKILL_MELEEPERCENT, value = 85} | |
| 9 | + | } | |
| 10 | + | ||
| 11 | + | function onCastSpell(creature, variant) | |
| 12 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 13 | + | target:addAttributeCondition(parameters) | |
| 14 | + | end | |
| 15 | + | return true | |
| 16 | + | end |
| @@ -0,0 +1,12 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | local damage = math.random(17, 43) | |
| 8 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 9 | + | creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage) | |
| 10 | + | end | |
| 11 | + | return true | |
| 12 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE2X2)) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 40) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,12 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLCLOUDS) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | local damage = math.random(74, 107) | |
| 8 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 9 | + | creature:addDamageCondition(target, CONDITION_CURSED, DAMAGELIST_EXPONENTIAL_DAMAGE, damage) | |
| 10 | + | end | |
| 11 | + | return true | |
| 12 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_EXPLOSIONHIT) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE2X2)) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE3X3)) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_ENERGY, DAMAGELIST_VARYING_PERIOD, 25, {10, 12}, 10) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) | |
| 4 | + | combat:setArea(createCombatArea(AREA_CIRCLE6X6)) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | local combat = Combat() | |
| 2 | + | combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) | |
| 3 | + | combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) | |
| 4 | + | combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) | |
| 5 | + | ||
| 6 | + | function onCastSpell(creature, variant) | |
| 7 | + | for _, target in ipairs(combat:getTargets(creature, variant)) do | |
| 8 | + | creature:addDamageCondition(target, CONDITION_FIRE, DAMAGELIST_VARYING_PERIOD, 10, {8, 10}, 20) | |
| 9 | + | end | |
| 10 | + | return true | |
| 11 | + | end |