From 0cbf988ce4f1ab4b9ec1694c3accca44d2c90c76 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 22 Nov 2021 04:37:15 -0300 Subject: Order matters: Make SC appplication more reliable on magic skills --- npc/functions/hub.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt index dd903a45d..592c747b3 100644 --- a/npc/functions/hub.txt +++ b/npc/functions/hub.txt @@ -493,24 +493,24 @@ function script HUB_SkillInvoke { case TMW2_FIREARROW: .@PW=140+(10*@skillLv); // 4% chance, 2.5s - harm(@skillTarget, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire); sc_start SC_BLOODING, 4500, 1, 400, SCFLAG_NONE, @skillTarget; + harm(@skillTarget, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire); GetManaExp(TMW2_FIREBALL, 1); break; case TMW2_FIREBALL: .@PW=140+(10*@skillLv); .@RG=2+(@skillLv/5); // 22% chance, 2.5s - areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire); sc_start SC_BLOODING, 2500, 1, 4200, SCFLAG_NONE, @skillTarget; + areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire); GetManaExp(TMW2_FIREBALL, 2); break; case TMW2_ARMAGEDDON: .@PW=140+(10*@skillLv); .@RG=5+(@skillLv/5); // 18% chance, 3s, 3x3 radius - areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Fire); 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); GetManaExp(TMW2_FIREBALL, 3); break; //////////////////////////////// @@ -520,15 +520,15 @@ function script HUB_SkillInvoke { .@PW=35+(5*@skillLv); .@dmg=AdjustSpellpower(.@PW); .@RG=2+(@skillLv/3); - harm(@skillTarget, .@dmg/10, HARM_MAGI, Ele_Holy); areaharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Holy); + harm(@skillTarget, .@dmg/10, HARM_MAGI, Ele_Holy); GetManaExp(TMW2_HOLYLIGHT, 1); break; case TMW2_HOLYLIGHT: .@PW=125+(25*@skillLv); .@dmg=AdjustSpellpower(.@PW); - harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Holy); areaharm(@skillTarget, 1, .@dmg/5, HARM_MAGI, Ele_Holy); + harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Holy); GetManaExp(TMW2_HOLYLIGHT, 2); break; case TMW2_JUDGMENT: @@ -537,8 +537,8 @@ function script HUB_SkillInvoke { .@dmg=AdjustSpellpower(.@PW); .@dsub=AdjustSpellpower(.@SPW); .@RG=3+(@skillLv/5); - harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Holy); areaharm(@skillTarget, .@RG, .@dsub, HARM_MAGI, Ele_Holy); + harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Holy); GetManaExp(TMW2_HOLYLIGHT, 3); break; //////////////////////////////// @@ -569,24 +569,24 @@ function script HUB_SkillInvoke { case TMW2_FROSTDIVER: .@PW=80+(10*@skillLv); // 22% chance, 2.5s - harm(@skillTarget, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water); sc_start SC_FREEZE, 2500, 1, 2200, SCFLAG_NONE, @skillTarget; + harm(@skillTarget, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water); GetManaExp(TMW2_NILFHEIM, 1); break; case TMW2_FROSTNOVA: .@PW=80+(10*@skillLv); .@RG=2+(@skillLv/5); // 18% chance, 3s, 3x3 radius - areaharm(@skillTarget, .@RG, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water); 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); GetManaExp(TMW2_NILFHEIM, 2); break; case TMW2_NILFHEIM: // Nilfheim cast on self? .@PW=80+(10*@skillLv); .@RG=4+(@skillLv/5); - areaharm(getcharid(3), .@RG*3/2, AdjustSpellpower(.@PW), HARM_MAGI, Ele_Water); 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); // Maybe filter_notme() would work better, indeed GetManaExp(TMW2_NILFHEIM, 3); break; @@ -597,8 +597,8 @@ function script HUB_SkillInvoke { .@PW=130+(20*@skillLv); .@dmg=AdjustSpellpower(.@PW); .@TM=1200+(@skillLv*300); - harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Earth); sc_start SC_STUN, .@TM, 1, 800, SCFLAG_NONE, @skillTarget; + harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Earth); GetManaExp(TMW2_METEORSTRIKE, 1); break; case TMW2_METEORSHOWER: @@ -606,8 +606,8 @@ function script HUB_SkillInvoke { .@dmg=AdjustSpellpower(.@PW); .@RG=3+(@skillLv/5); .@TM=800+(@skillLv*200); - areaharm(@skillTarget, .@RG, .@dmg, HARM_MAGI, Ele_Earth); 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); GetManaExp(TMW2_METEORSTRIKE, 2); break; case TMW2_GAIABREAK: @@ -615,9 +615,9 @@ function script HUB_SkillInvoke { .@PWB=110+(10*@skillLv); .@dmg=AdjustSpellpower(.@PWA); .@dsub=AdjustSpellpower(.@PWB); - harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Earth); - rectharm(@skillTarget, 2, 5, .@dsub, HARM_MAGI, Ele_Earth); areasc(2, 5000, SC_INCDEFRATE, BL_PC, 10, "filter_friendly"); + rectharm(@skillTarget, 2, 5, .@dsub, HARM_MAGI, Ele_Earth); + harm(@skillTarget, .@dmg, HARM_MAGI, Ele_Earth); GetManaExp(TMW2_METEORSTRIKE, 3); break; /* @@ -786,8 +786,8 @@ function script HUB_SkillInvoke { .@PW=100+(25*@skillLv); .@ST=0+(10*@skillLv); .@TM=100+(90*@skillLv); - harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral); sc_start SC_STUN, .@TM, 1, .@ST, SCFLAG_NONE, @skillTarget; + harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral); GetManaExp(@skillId, rand2(1,3)); break; case TMW2_GROUNDSTRIKE: @@ -797,8 +797,8 @@ function script HUB_SkillInvoke { .@TM=100+(@skillLv*200); .@ST=500+(100*@skillLv); .@EF=any(SC_STUN, SC_BLIND, SC_BLOODING, SC_BLIND, SC_BLOODING); - areaharm(@skillTarget, .@RG, .@dmg, HARM_PHYS, Ele_Neutral); 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); GetManaExp(@skillId, rand2(1,3)); break; case TMW2_SUPREMEATTACK: @@ -873,7 +873,7 @@ function script HUB_SkillInvoke { sleep2(10); // The main elemental-less blast hits all in same square, // and also hits behind (and on your square) - rectharm(@skillTarget, 0, 1, AdjustAttackpower(.@PW/2), HARM_PHYS, Ele_Neutral); + rectharm(@skillTarget, 0, 1, AdjustAttackpower(.@PW/2), HARM_PHYS, Ele_Neutral); // FIXME: May not fire (properly) if target dies break; case TMW2_STUNNINGSTRIKE: // 70x3 = 210 -- cgit v1.2.3-60-g2f50