Server upload

RD Core / Commit #2

Commit Server upload

Alex Alex committed 18/10/2026 23:38 main Patch
1,106 files +223,404 -0
A data/spells/scripts/monster/demon_outcast_skill_reducer.lua +15-0 View file
@@ -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
A data/spells/scripts/monster/diabolic_imp_skill_reducer.lua +17-0 View file
@@ -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
A data/spells/scripts/monster/dipthrah_skill_reducer.lua +17-0 View file
@@ -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
A data/spells/scripts/monster/djinn_cancel_invisibility.lua +7-0 View file
@@ -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
A data/spells/scripts/monster/djinn_electrify.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/draken_abomination_curse.lua +12-0 View file
@@ -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
A data/spells/scripts/monster/energy_elemental_electrify.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/enslaved_dwarf_skill_reducer_1.lua +17-0 View file
@@ -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
A data/spells/scripts/monster/enslaved_dwarf_skill_reducer_2.lua +15-0 View file
@@ -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
A data/spells/scripts/monster/feversleep_skill_reducer.lua +15-0 View file
@@ -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
A data/spells/scripts/monster/forest_fury_skill_reducer.lua +17-0 View file
@@ -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
A data/spells/scripts/monster/frazzlemaw paralyze.lua +30-0 View file
@@ -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
A data/spells/scripts/monster/fury_skill_reducer.lua +16-0 View file
@@ -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
A data/spells/scripts/monster/ghastly_dragon_curse.lua +12-0 View file
@@ -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
A data/spells/scripts/monster/glooth anemone summon.lua +22-0 View file
@@ -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
A data/spells/scripts/monster/hellfire_fighter_soulfire.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/hellspawn_soulfire.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/ice_golem_skill_reducer.lua +16-0 View file
@@ -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
A data/spells/scripts/monster/lancer_beetle_curse.lua +12-0 View file
@@ -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
A data/spells/scripts/monster/lava_golem_soulfire.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/lizard_magistratus_curse.lua +12-0 View file
@@ -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
A data/spells/scripts/monster/magma_crawler_soulfire.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/massive_energy_elemental_electrify.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/massive_fire_elemental_soulfire.lua +11-0 View file
@@ -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
A data/spells/scripts/monster/monster_soulfire.lua +11-0 View file
@@ -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
Top