summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/magic/final.txt4
-rw-r--r--npc/magic/level2-protect.txt51
-rw-r--r--npc/scripts.conf3
3 files changed, 57 insertions, 1 deletions
diff --git a/npc/magic/final.txt b/npc/magic/final.txt
index e6f17617..a60f51ad 100644
--- a/npc/magic/final.txt
+++ b/npc/magic/final.txt
@@ -64,6 +64,10 @@ function script HUB_SkillInvoke {
SK_SummonLv2(); break;
case SKILL_KAFLOSH:
SK_Kaflosh(); break;
+ case SKILL_BETSANC:
+ SK_Betsanc(); break;
+ case SKILL_ASORM:
+ SK_Asorm(); break;
// Level 3
// Level 4
// Level 5
diff --git a/npc/magic/level2-protect.txt b/npc/magic/level2-protect.txt
new file mode 100644
index 00000000..19682245
--- /dev/null
+++ b/npc/magic/level2-protect.txt
@@ -0,0 +1,51 @@
+// The Mana World script
+// Author: Jesusalva <jesusalva@themanaworld.org>
+//
+// Magic Script: Betsanc and Asorm (Level 1)
+// School: Nature/Astral 2
+
+function script SK_Betsanc {
+ // party-guild filter
+ if (!filter_sameguildorparty(@skillTarget)) {
+ dispbottom b("Betsanc: ")+l("Skill can only be cast on party or guild members!");
+ return;
+ }
+ // no GM Hat/Bots? Not needed due filter?
+ delitem HardSpike, 1;
+ // Same duration as Kaflosh
+ .@PW=80+(20*@skillLv);
+ .@dmg=AdjustSpellpower(.@PW);
+ .@time=5+.@dmg/11;
+ .@PX=10+cap_value(.@dmg/33, 0, 20);
+ // SC, Time, DEF+, ASPD-
+ sc_start2(SC_PHYSICAL_SHIELD, .@time, .@PX*2, .@PX, 10000,
+ SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE, @skillTarget);
+ specialeffect FX_MAGIC_SHIELD_CAST, AREA, @skillTarget;
+ GetManaExp(@skillId, 2);
+ return;
+}
+
+function script SK_Asorm {
+ // party-guild filter
+ if (!filter_sameguildorparty(@skillTarget)) {
+ dispbottom b("Betsanc: ")+l("Skill can only be cast on party or guild members!");
+ return;
+ }
+ // no GM Hat/Bots? Not needed due filter?
+ delitem SmallMushroom, 1;
+ // Same duration as Kaflosh
+ .@PW=80+(20*@skillLv);
+ .@dmg=AdjustSpellpower(.@PW);
+ .@time=5+.@dmg/11;
+ .@PX=10+cap_value(.@dmg/33, 0, 20);
+ // SC_STONESKIN(??, def, mdef); Usually for mobs. Skill NPC_ANTIMAGIC
+ // SC_FREYJASCROLL(MDEF, PerfectFlee)
+ // SC_MDEFSET(MDEF)
+ // SC, Time, MDEF+
+ sc_start(SC_MDEFSET, .@time, .@PX*2, 10000,
+ SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE, @skillTarget);
+ specialeffect FX_MAGIC_BARRIER_HIT, AREA, @skillTarget;
+ GetManaExp(@skillId, 2);
+ return;
+}
+
diff --git a/npc/scripts.conf b/npc/scripts.conf
index 95ff9137..a41f2967 100644
--- a/npc/scripts.conf
+++ b/npc/scripts.conf
@@ -18,6 +18,7 @@
"npc/functions/random-talk.txt",
"npc/functions/inc_sc_bonus.txt",
"npc/commands/kami.txt",
+"npc/functions/filters.txt",
// Main Functions
"npc/functions/banker.txt",
@@ -75,6 +76,7 @@
"npc/magic/level1-grow-plants.txt",
"npc/magic/level1-lesser-heal.txt",
"npc/magic/level2-lay-on-hands.txt",
+"npc/magic/level2-protect.txt",
"npc/magic/level2-rain.txt",
"npc/magic/level2-summon-monsters.txt",
"npc/magic/final.txt",
@@ -111,7 +113,6 @@
"npc/annuals/halloween/trick_or_treat.txt",
// Post Loading Functions
-"npc/functions/filters.txt",
"npc/functions/scoreboards.txt",
"npc/functions/global_event_handler.txt",