summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFedja Beader <fedja@protonmail.ch>2025-02-12 01:59:07 +0000
committerJesusalva Jesusalva <jesusalva@tmw2.org>2025-02-12 01:59:07 +0000
commit11a59ad44a3098f7d4a5f527f5e370f6de5998cd (patch)
tree75083bccabd4446d56a3b4e178d41264dcdb1d3e
parentac5c7bea20f59543f184610c7aedbb8f3ccdae31 (diff)
downloadserverdata-11a59ad44a3098f7d4a5f527f5e370f6de5998cd.tar.gz
serverdata-11a59ad44a3098f7d4a5f527f5e370f6de5998cd.tar.bz2
serverdata-11a59ad44a3098f7d4a5f527f5e370f6de5998cd.tar.xz
serverdata-11a59ad44a3098f7d4a5f527f5e370f6de5998cd.zip
Fix areaharm credit
+change order of arguments and defaults (but I might flip them around again, stay tuned) Also fixes magnus heal: note how filter_friendly was passed as elemental type. Depends on !174. * Make square/rect-harm match harm() calling convention * -artefact * Swap blocks filter and script filter around.. if you think about it, the blocks filter is coarse and the latter is fine so it makes sense to order them this way as well. * areaharm should be called squareharm, no? * Fix areaharm credit +change order of arguments and defaults **** ml/serverdata!175
-rw-r--r--npc/006-7/ctrl.txt22
-rw-r--r--npc/026-7/boss.txt30
-rw-r--r--npc/029-9/boss.txt6
-rw-r--r--npc/034-4/lobby.txt4
-rw-r--r--npc/042-11/boss.txt4
-rw-r--r--npc/config/magic.txt41
-rw-r--r--npc/functions/hub.txt36
7 files changed, 79 insertions, 64 deletions
diff --git a/npc/006-7/ctrl.txt b/npc/006-7/ctrl.txt
index 6de5a304b..d82f11bf7 100644
--- a/npc/006-7/ctrl.txt
+++ b/npc/006-7/ctrl.txt
@@ -204,7 +204,7 @@ OnTimer5000:
.@dmg = .@mtk * .@PW / 100;
.@dsb = .@mtk * .@SPW / 100;
sleep(1000);
- areaharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Holy, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Holy, .BOSS);
harm(.@mvp, .@dmg, HARM_MAGI, Ele_Holy);
break;
// (3/6) Random Target (~60s)
@@ -261,13 +261,13 @@ OnTimer5000:
specialeffect(11, AREA, .@t5);
specialeffect(11, AREA, .@t6);
}
- areaharm(.@t1, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t2, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t3, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@t1, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t2, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t3, 2, 450, HARM_MISC, Ele_Neutral);
if (.@hp < 5 || .hard) {
- areaharm(.@t4, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t5, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t6, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@t4, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t5, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t6, 2, 450, HARM_MISC, Ele_Neutral);
}
sleep(1000);
// FIXME: M+ fails to remove them, need @refresh
@@ -301,7 +301,7 @@ OnTimer5000:
break;
}
areasc((.hard ? 7 : 6), 45000, .@sc, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .BOSS, 95000);
- areaharm(.BOSS, (.hard ? 7 : 6), 100, HARM_MAGI, Ele_Water, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.BOSS, (.hard ? 7 : 6), 100, HARM_MAGI, Ele_Water);
break;
}
// Strong AOE: Every 3 minutes (case = 0)
@@ -329,14 +329,14 @@ OnTimer5000:
}
/* Three blocks */
specialeffect(66, AREA, .BOSS);
- areaharm(.BOSS, (.hard ? 7 : 6), .@dmg, HARM_MAGI, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.BOSS, (.hard ? 7 : 6), .@dmg, HARM_MAGI, Ele_Neutral);
sleep(500);
specialeffect(66, AREA, .BOSS);
- areaharm(.BOSS, (.hard ? 18 : 12), .@dmg, HARM_MAGI, Ele_Water, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.BOSS, (.hard ? 18 : 12), .@dmg, HARM_MAGI, Ele_Water);
sleep(500);
specialeffect(66, AREA, .BOSS);
specialeffect(312, AREA, .BOSS);
- areaharm(.BOSS, (.hard ? 24 : 18), .@dmg, HARM_MAGI, Ele_Holy, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.BOSS, (.hard ? 24 : 18), .@dmg, HARM_MAGI, Ele_Holy);
areasc((.hard ? 24 : 18), .@dmg*rand2(50, 100), SC_FROSTMISTY, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .BOSS, 10001 - (.@hp * 1000)); // FIXME
// SC_COLD freezes you, so trying SC_FROSTMISTY
}
diff --git a/npc/026-7/boss.txt b/npc/026-7/boss.txt
index 47463b733..7398611f1 100644
--- a/npc/026-7/boss.txt
+++ b/npc/026-7/boss.txt
@@ -445,11 +445,11 @@ OnTimer10000:
break;
case 13:
.@msg$ = sprintf("##BAncient Magic: Obliterate");
- rectharm(.MK, 7, 7, rand2(700, 900), HARM_MISC, Ele_Dark, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm(.@mob, 7, rand2(700, 900), HARM_MISC, Ele_Dark);
break;
case 14:
.@msg$ = sprintf("##BAncient Magic: Terminate Homunculi");
- rectharm(.MK, 14, 14, rand2(1500, 2500), HARM_MISC, Ele_Dark, "filter_always", BL_MER | BL_HOM);
+ squareharm(.@mob, 14, rand2(1500, 2500), HARM_MISC, Ele_Dark, .@mob, BL_MER | BL_HOM);
break;
case 15:
mapannounce("026-7", "Monster King : ##BAncient Magic: Wizcat", 0);
@@ -461,7 +461,7 @@ OnTimer10000:
break;
case 16:
mapannounce("026-7", "Monster King : ##BAncient Magic: Silencing Nuke", 0);
- rectharm(.MK, 14, 14, rand2(450, 750), HARM_MISC, Ele_Dark, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm(.@mob, 14, rand2(450, 750), HARM_MISC, Ele_Dark);
areasc2("026-7", 40, 35, 20, 15000, SC_SILENCE, BL_PC, 1);
break;
case 17:
@@ -473,7 +473,7 @@ OnTimer10000:
.@dsb = .@mtk * .@SPW / 100;
sleep(1000);
specialeffect(FX_LIGHTNING, AREA, .@mvp);
- areaharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Wind, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Wind, .@mob);
harm(.@mvp, .@dmg, HARM_MAGI, Ele_Holy);
break;
case 18:
@@ -508,28 +508,28 @@ OnTimer10000:
.@dsb = .@mtk * .@SPW / 100;
sleep(1000);
specialeffect(FX_LIGHTNING, AREA, .@mvp);
- areaharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Wind, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Wind, .@mob);
harm(.@mvp, .@dmg, HARM_MAGI, Ele_Holy);
break;
case 21:
.@msg$ = sprintf("##BMagic: Armageddon");
- rectharm(.MK, 6, 6, rand2(300, 500), HARM_MAGI, Ele_Fire, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm(.@mob, 6, rand2(300, 500), HARM_MAGI, Ele_Fire);
break;
case 22:
.mana += 1;
.@msg$ = sprintf("##BMagic: Tempest");
- rectharm(.MK, 3, 3, rand2(200, 300), HARM_MAGI, Ele_Wind, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm(.@mob, 3, rand2(200, 300), HARM_MAGI, Ele_Wind);
break;
case 23:
.@msg$ = sprintf("##BMagic: Gaia Break");
- sc_start SC_INCDEFRATE, 15000, 10, .MK;
- rectharm(.MK, 2, 5, rand2(250, 350), HARM_MAGI, Ele_Earth, "filter_always", BL_PC | BL_MER | BL_HOM);
+ sc_start SC_INCDEFRATE, 15000, 10, .@mob;
+ rectharm(.@mob, 2, 5, rand2(250, 350), HARM_MAGI, Ele_Earth);
break;
case 24:
.@msg$ = sprintf("##BMagic: Ground Strike");
.@EF=any(SC_STUN, SC_BLIND, SC_BLOODING, SC_BLIND, SC_BLOODING);
areasc2("026-7", .@x, .@y, 3, 12000, .@EF, BL_PC, 1);
- rectharm(.MK, 3, 3, rand2(250, 350), HARM_PHYS, Ele_Neutral, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm(.@mob, 3, rand2(250, 350), HARM_PHYS, Ele_Neutral);
break;
// TODO: Skills which manipulate the map or weather
default:
@@ -563,11 +563,11 @@ OnTimer10000:
specialeffect(FX_CRITICAL, AREA, .@t3);
specialeffect(FX_CRITICAL, AREA, .@t4);
specialeffect(FX_CRITICAL, AREA, .@t5);
- areaharm(.@t1, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t2, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t3, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t4, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
- areaharm(.@t5, 2, 450, HARM_MISC, Ele_Neutral, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@t1, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t2, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t3, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t4, 2, 450, HARM_MISC, Ele_Neutral);
+ squareharm(.@t5, 2, 450, HARM_MISC, Ele_Neutral);
sleep(1000);
// FIXME: M+ fails to remove them, need @refresh (maybe @refreshall?)
// NOTE: The effect NÂș 67 (halo circle) is also not cleaned by M+
diff --git a/npc/029-9/boss.txt b/npc/029-9/boss.txt
index 24900253c..b53ee6a64 100644
--- a/npc/029-9/boss.txt
+++ b/npc/029-9/boss.txt
@@ -483,7 +483,7 @@ OnTimer15000:
break;
case 11:
mapannounce("029-9", "Moubootaur : ##BAncient Magic: Obliterate", 0);
- rectharm($@FOS_MOB, 7, 7, rand2(700, 900), HARM_MISC, Ele_Holy, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm($@FOS_MOB, 7, rand2(700, 900), HARM_MISC, Ele_Holy);
break;
case 12:
mapannounce("029-9", "Moubootaur : ##BAncient Magic: Disarm Homun", 0);
@@ -491,7 +491,7 @@ OnTimer15000:
break;
case 13:
mapannounce("029-9", "Moubootaur : ##BAncient Magic: Exterminate Lesserform", 0);
- rectharm($@FOS_MOB, 7, 7, rand2(800, 1400), HARM_MISC, Ele_Holy, "filter_always", BL_MER | BL_HOM);
+ squareharm($@FOS_MOB, 7, rand2(800, 1400), HARM_MISC, Ele_Holy, $@FOS_MOB, BL_MER | BL_HOM);
break;
case 14:
mapannounce("029-9", "Moubootaur : ##BAncient Magic: Summon Reinforcement", 0);
@@ -517,7 +517,7 @@ OnTimer15000:
break;
case 16:
mapannounce("029-9", "Moubootaur : ##BAncient Magic: Nuke", 0);
- rectharm($@FOS_MOB, 14, 14, rand2(450, 750), HARM_MISC, Ele_Holy, "filter_always", BL_PC | BL_MER | BL_HOM);
+ squareharm($@FOS_MOB, 14, rand2(450, 750), HARM_MISC, Ele_Holy);
break;
default: // case 0
mapannounce("029-9", "Moubootaur : ##BAncient Magic: Seal", 0);
diff --git a/npc/034-4/lobby.txt b/npc/034-4/lobby.txt
index dd9a26780..11eef7b04 100644
--- a/npc/034-4/lobby.txt
+++ b/npc/034-4/lobby.txt
@@ -230,7 +230,7 @@ OnTimer30000:
}
areasc(9, 45000, .@sc, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .luvia, 95000);
.@dmg=100 + (max(1, (11 - .@hp) / 10) * 40);
- areaharm(.luvia, 9, .@dmg, HARM_MAGI, any(Ele_Water,Ele_Fire,Ele_Wind,Ele_Earth), "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.luvia, 9, .@dmg, HARM_MAGI, any(Ele_Water,Ele_Fire,Ele_Wind,Ele_Earth));
break;
default:
specialeffect(60, AREA, .luvia);
@@ -243,7 +243,7 @@ OnTimer30000:
"I'm not afraid of you!"));
sleep(500);
.@dmg=40 + (max(1, (11 - .@hp) / 10) * 20);
- areaharm(.luvia, 9, .@dmg, HARM_MAGI, any(Ele_Water,Ele_Fire,Ele_Wind,Ele_Earth), "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.luvia, 9, .@dmg, HARM_MAGI, any(Ele_Water,Ele_Fire,Ele_Wind,Ele_Earth));
break;
}
diff --git a/npc/042-11/boss.txt b/npc/042-11/boss.txt
index c1f08c209..d79a7951f 100644
--- a/npc/042-11/boss.txt
+++ b/npc/042-11/boss.txt
@@ -232,7 +232,7 @@ OnTimer5000:
.@dsb = .@mtk * .@SPW / 100;
sleep(1000);
specialeffect(FX_LIGHTNING, AREA, .@mvp);
- areaharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Wind, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Wind, .@mob);
harm(.@mvp, .@dmg, HARM_MAGI, Ele_Holy);
break;
default:
@@ -244,7 +244,7 @@ OnTimer5000:
.@dsb = .@mtk * .@SPW / 100;
sleep(1000);
specialeffect(FX_LIGHTNING, AREA, .@rnd);
- areaharm(.@rnd, .@RG, .@dsb, HARM_MAGI, Ele_Wind, "filter_always", BL_PC|BL_MER|BL_HOM);
+ squareharm(.@rnd, .@RG, .@dsb, HARM_MAGI, Ele_Wind, .@mob);
harm(.@rnd, .@dmg, HARM_MAGI, Ele_Holy);
break;
}
diff --git a/npc/config/magic.txt b/npc/config/magic.txt
index ca9def074..f283c8790 100644
--- a/npc/config/magic.txt
+++ b/npc/config/magic.txt
@@ -152,8 +152,10 @@ function script SummonMagic {
}
-// rectharm(target, x, y, DMG, {type, element, filter, bl, caster})
-// Defaults to HARM_MISC, Ele_Neutral, filter filter_hostile and all BLs
+// rectharm(target, rx, ry, damage, {type, element, caster, BLfilter, filter})
+// Range centers on target. The latter may be excluded by filters.
+// [BL]filter defaults differ depending if caster is a mob or not. See below.
+// Defaults to HARM_MISC & Ele_Neutral
// Valid BL: BL_MOB | BL_PC | BL_HOM | BL_MER
// Do not use: NPC, PET, ELEM
function script rectharm {
@@ -163,13 +165,18 @@ function script rectharm {
.@damage = getarg(3);
.@harm_type = getarg(4, HARM_MISC);
.@element = getarg(5, Ele_Neutral);
- .@filter$ = getarg(6, "filter_hostile");
- .@blocks = getarg(7, BL_PC | BL_MOB | BL_MER | BL_HOM);
- .@caster = getarg(8, .@t);
+ .@caster = getarg(6, .@target);
+ if (getunittype(.@caster) == BL_MOB) {
+ .@bl_filter = getarg(7, BL_PC | BL_MER | BL_HOM);
+ .@filter$ = getarg(8, "filter_always");
+ } else {
+ .@bl_filter = getarg(7, BL_PC | BL_MOB | BL_MER | BL_HOM);
+ .@filter$ = getarg(8, "filter_hostile");
+ }
getmapxy(.@map$, .@x, .@y, getunittype(.@target), .@target);
- .@count = getunits(.@blocks, .@units, false, .@map$,
+ .@count = getunits(.@bl_filter, .@units, false, .@map$,
.@x-.@range_x, .@y-.@range_y, .@x+.@range_x, .@y+.@range_y);
for (.@i = 0; .@i < .@count; .@i++) {
@@ -184,23 +191,29 @@ function script rectharm {
}
-// areaharm(target, range, DMG, {type, element, filter, bl, caster})
-// Same as rectharm() but using a square instead of two lengths for a rectangle
-function script areaharm {
+// squareharm(target, range, damage, {type, element, caster, BLfilter, filter})
+// Same as rectharm() but harming in a square, instead of a rectange
+function script squareharm {
.@target = getarg(0);
.@range = getarg(1);
.@damage = getarg(2);
.@harm_type = getarg(3, HARM_MISC);
.@element = getarg(4, Ele_Neutral);
- .@filter$ = getarg(5, "filter_hostile");
- .@blocks = getarg(6, BL_PC | BL_MOB | BL_MER | BL_HOM);
- .@caster = getarg(7, .@target);
+ .@caster = getarg(5, .@target);
+ if (getunittype(.@caster) == BL_MOB) {
+ .@bl_filter = getarg(6, BL_PC | BL_MER | BL_HOM);
+ .@filter$ = getarg(7, "filter_always");
+ } else {
+ .@bl_filter = getarg(6, BL_PC | BL_MOB | BL_MER | BL_HOM);
+ .@filter$ = getarg(7, "filter_hostile");
+ }
- rectharm(.@target, .@range, .@range, .@damage, .@harm_type, .@element, .@filter$, .@blocks, .@caster);
- return;
+ return rectharm(.@caster, .@target, .@range, .@range,
+ .@damage, .@harm_type, .@element, .@bl_filter, .@filter$);
}
+
// mescordialog(text, color, {dialog=1})
function script mescordialog {
if (getarg(2, true))
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index 773f306c7..978eb1a72 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -516,13 +516,13 @@ function script HUB_SkillInvoke {
.@cth = 2000 + (1000 * @skillLv);
/* First strike (magic) */
- areaharm(@skillTarget, 7, .@dmg, HARM_MAGI, Ele_Earth);
+ squareharm(@skillTarget, 7, .@dmg, HARM_MAGI, Ele_Earth, @skillCaster);
areasc(7, .@dur, SC_BLIND, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
sleep2(500);
/* Delayed strike (physical) */
- areaharm(@skillTarget, 7, .@dmg, HARM_PHYS, Ele_Wind);
+ squareharm(@skillTarget, 7, .@dmg, HARM_PHYS, Ele_Wind, @skillCaster);
areasc(7, .@dur, SC_BLIND, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
break;
case TMW2_GOLDENFERSE:
@@ -541,7 +541,7 @@ function script HUB_SkillInvoke {
.@rng = 5 + (@skillLv / 2);
.@dur = 500 * @skillLv;
.@cth = 500 + (400 * @skillLv); // 5% + 4% per level (starts at 9%)
- areaharm(@skillTarget, .@rng, .@dmg, HARM_MAGI, Ele_Holy);
+ squareharm(@skillTarget, .@rng, .@dmg, HARM_MAGI, Ele_Holy, @skillCaster);
areasc(.@rng, .@dur, SC_STUN, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
break;
}
@@ -641,7 +641,7 @@ function script HUB_SkillInvoke {
// Weapon Overload attack
case TMW2_OVERLOAD:
.@PW=200+(@skillLv > 3 ? @skillLv : 0)+(@skillLv > 7 ? @skillLv*2 : 0);
- areaharm(@skillTarget, 0, AdjustAttackpower(.@PW), HARM_MISC, @skillCaster);
+ squareharm(@skillTarget, 0, AdjustAttackpower(.@PW), HARM_MISC, Ele_Neutral, @skillCaster);
break;
////////////////////////////////
// Magic v3
@@ -652,7 +652,7 @@ function script HUB_SkillInvoke {
// Has no cooldown, so it is powerful with pots
// And is a good starter offensive skill
// Note: Skill damage is not negated by DEF/MDEF.
- areaharm(@skillTarget, 0, Sp*(@skillLv+1), HARM_MISC, Ele_Ghost, @skillCaster);
+ squareharm(@skillTarget, 0, Sp*(@skillLv+1), HARM_MISC, Ele_Ghost, @skillCaster);
Sp=0;
GetManaExp(@skillId, 1);
break;
@@ -683,7 +683,9 @@ function script HUB_SkillInvoke {
// Area healing
.@PW=200+(20*@skillLv);
.@RG=4+(@skillLv/5);
- areaharm(@skillTarget, .@RG, -AdjustSpellpower(.@PW), HARM_MISC, "filter_friendly", @skillCaster);
+ squareharm(@skillTarget, .@RG,
+ -AdjustSpellpower(.@PW), HARM_MISC, Ele_Neutral, @skillCaster,
+ BL_PC | BL_MOB | BL_MER | BL_HOM, "filter_friendly");
GetManaExp(TMW2_HEALING, 3);
break;
////////////////////////////////
@@ -706,7 +708,7 @@ function script HUB_SkillInvoke {
.@RG=2+(@skillLv/5);
// 22% chance, 2.5s
sc_start SC_BLOODING, 2500, 1, 4200, SCFLAG_NONE, @skillTarget;
- areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire, @skillCaster);
+ squareharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire, @skillCaster);
GetManaExp(TMW2_FIREBALL, 2);
break;
case TMW2_ARMAGEDDON:
@@ -714,7 +716,7 @@ function script HUB_SkillInvoke {
.@RG=5+(@skillLv/5);
// 18% chance, 3s, 3x3 radius
areasc(.@RG, 6000, SC_BLOODING, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, 1800);
- areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire, @skillCaster);
+ squareharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire, @skillCaster);
GetManaExp(TMW2_FIREBALL, 3);
break;
////////////////////////////////
@@ -724,14 +726,14 @@ function script HUB_SkillInvoke {
.@PW=35+(5*@skillLv);
.@dmg=AdjustSpellpower(.@PW);
.@RG=2+(@skillLv/3);
- areaharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Holy, @skillCaster);
+ squareharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Holy, @skillCaster);
harm(@skillTarget, .@dmg/10, HARM_MAGI, Ele_Holy);
GetManaExp(TMW2_HOLYLIGHT, 1);
break;
case TMW2_HOLYLIGHT:
.@PW=125+(25*@skillLv);
.@dmg=AdjustSpellpower(.@PW);
- areaharm(@skillTarget, 1, .@dmg/5, HARM_MAGI, Ele_Holy, @skillCaster);
+ squareharm(@skillTarget, 1, .@dmg/5, HARM_MAGI, Ele_Holy, @skillCaster);
harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Holy);
GetManaExp(TMW2_HOLYLIGHT, 2);
break;
@@ -741,7 +743,7 @@ function script HUB_SkillInvoke {
.@dmg=AdjustSpellpower(.@PW);
.@dsub=AdjustSpellpower(.@SPW);
.@RG=3+(@skillLv/5);
- areaharm(@skillTarget, .@RG, .@dsub, HARM_MAGI, Ele_Holy, @skillCaster);
+ squareharm(@skillTarget, .@RG, .@dsub, HARM_MAGI, Ele_Holy, @skillCaster);
harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Holy);
GetManaExp(TMW2_HOLYLIGHT, 3);
break;
@@ -764,7 +766,7 @@ function script HUB_SkillInvoke {
.@PW=125+(25*@skillLv);
.@dmg=AdjustSpellpower(.@PW);
.@RG=2+(@skillLv/5);
- areaharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Wind, @skillCaster);
+ squareharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Wind, @skillCaster);
GetManaExp(TMW2_LIGHTNINGBOLT, 3);
break;
////////////////////////////////
@@ -782,7 +784,7 @@ function script HUB_SkillInvoke {
.@RG=2+(@skillLv/5);
// 18% chance, 3s, 3x3 radius
areasc(.@RG, 3000, SC_FREEZE, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, 1800);
- areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water, @skillCaster);
+ squareharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water, @skillCaster);
GetManaExp(TMW2_NILFHEIM, 2);
break;
case TMW2_NILFHEIM:
@@ -790,7 +792,7 @@ function script HUB_SkillInvoke {
.@PW=80+(10*@skillLv);
.@RG=4+(@skillLv/5);
areasc(.@RG, 15000, SC_FREEZE, BL_PC | BL_MOB | BL_MER | BL_HOM, 1, "filter_hostile");
- areaharm(getcharid(3), .@RG*3/2, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water, @skillCaster);
+ squareharm(getcharid(3), .@RG*3/2, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water, @skillCaster);
// Maybe filter_notme() would work better, indeed
GetManaExp(TMW2_NILFHEIM, 3);
break;
@@ -811,7 +813,7 @@ function script HUB_SkillInvoke {
.@RG=3+(@skillLv/5);
.@TM=800+(@skillLv*200);
areasc(.@RG, .@TM, SC_STUN, BL_MOB | BL_PC | BL_HOM | BL_MER, 1, "filter_hostile", @skillTarget, 800);
- areaharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Earth, @skillCaster);
+ squareharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Earth, @skillCaster);
GetManaExp(TMW2_METEORSTRIKE, 2);
break;
case TMW2_GAIABREAK:
@@ -1018,7 +1020,7 @@ function script HUB_SkillInvoke {
.@ST=500+(100*@skillLv);
.@EF=any(SC_STUN, SC_BLIND, SC_BLOODING, SC_BLIND, SC_BLOODING);
areasc(.@RG, .@TM, .@EF, BL_MOB | BL_PC | BL_HOM | BL_MER, 1, "filter_hostile", @skillTarget, .@ST);
- areaharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral, @skillCaster);
+ squareharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral, @skillCaster);
GetManaExp(@skillId, rand2(1,3));
break;
case TMW2_SUPREMEATTACK:
@@ -1037,7 +1039,7 @@ function script HUB_SkillInvoke {
.@PW=150+(10*@skillLv);
.@dmg=AdjustAttackpower(.@PW);
.@RG=1+(@skillLv/3);
- areaharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral, @skillCaster);
+ squareharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral, @skillCaster);
GetManaExp(@skillId, rand2(1,3));
break;
////////////////////////////////