summaryrefslogtreecommitdiff
path: root/world/map/npc/magic
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/magic')
-rw-r--r--world/map/npc/magic/event-summon-managuardian.txt10
-rw-r--r--world/map/npc/magic/event-summon-manatyrant.txt10
-rw-r--r--world/map/npc/magic/level1-lesser-heal.txt10
-rw-r--r--world/map/npc/magic/level1-summon-maggots.txt10
-rw-r--r--world/map/npc/magic/level2-barrier.txt18
-rw-r--r--world/map/npc/magic/level2-flying-backpack.txt26
-rw-r--r--world/map/npc/magic/level2-lay-on-hands.txt12
-rw-r--r--world/map/npc/magic/level2-magic-knuckles.txt10
-rw-r--r--world/map/npc/magic/level2-protect.txt18
-rw-r--r--world/map/npc/magic/level2-rain.txt14
-rw-r--r--world/map/npc/magic/level2-summon-fluffies.txt10
-rw-r--r--world/map/npc/magic/level2-summon-mouboo.txt10
-rw-r--r--world/map/npc/magic/level2-summon-pinkie.txt10
-rw-r--r--world/map/npc/magic/level2-summon-snakes.txt10
-rw-r--r--world/map/npc/magic/level2-summon-spiky-mushroom.txt10
-rw-r--r--world/map/npc/magic/level2-summon-wickedmushroom.txt10
16 files changed, 165 insertions, 33 deletions
diff --git a/world/map/npc/magic/event-summon-managuardian.txt b/world/map/npc/magic/event-summon-managuardian.txt
index bad1213c..0d3d2d0b 100644
--- a/world/map/npc/magic/event-summon-managuardian.txt
+++ b/world/map/npc/magic/event-summon-managuardian.txt
@@ -11,6 +11,10 @@ OnCast:
if (countitem("TinyManaElixir") < 1) end;
if (!$DOOMSDAY_SUMMON) end;
if (@ddcooldown > gettimetick(2)) goto L_Cooldown;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "TinyManaElixir", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 15000, "Magic Timer::OnClear"; // set the new debuff
@@ -50,6 +54,12 @@ L_Cooldown:
message strcharinfo(0), "This skill is in forced cooldown; Please wait your first summon to expire.";
end;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "jande"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/event-summon-manatyrant.txt b/world/map/npc/magic/event-summon-manatyrant.txt
index f91b2a87..73ee6537 100644
--- a/world/map/npc/magic/event-summon-manatyrant.txt
+++ b/world/map/npc/magic/event-summon-manatyrant.txt
@@ -10,6 +10,10 @@ OnCast:
if (getskilllv(SKILL_MAGIC) < .level) end;
if (countitem("LargeManaElixir") < 1) end;
if (@dd4cooldown > gettimetick(2)) goto L_Cooldown;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "LargeManaElixir", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 15000, "Magic Timer::OnClear"; // set the new debuff
@@ -51,6 +55,12 @@ L_Cooldown:
message strcharinfo(0), "This skill is in forced cooldown; Please wait your first summon to expire.";
end;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "manatez"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level1-lesser-heal.txt b/world/map/npc/magic/level1-lesser-heal.txt
index c5be2761..dc4f4228 100644
--- a/world/map/npc/magic/level1-lesser-heal.txt
+++ b/world/map/npc/magic/level1-lesser-heal.txt
@@ -12,14 +12,14 @@
if (distance(BL_ID, @target_id) >= .@range) end;
if (PVP_CHANNEL != get(PVP_CHANNEL, @target_id) && get(PVP_CHANNEL, @target_id) != 0) end;
if (countitem("Lifestone") < 1) end;
- set @_M_BLOCK, 1; // block casting, until the timer clears it
- addtimer 500, "Magic Timer::OnClear"; // set the new debuff
- delitem "Lifestone", 1;
- callfunc "adjust_spellpower";
if (getmap() == "033-1") goto L_SpecialRules6;
goto L_Pay;
L_Pay:
+ set @_M_BLOCK, 1; // block casting, until the timer clears it
+ addtimer 500, "Magic Timer::OnClear"; // set the new debuff
+ delitem "Lifestone", 1;
+ callfunc "adjust_spellpower";
set Sp, Sp - 6;
misceffect FX_MAGIC_HEAL_CAST, strcharinfo(0);
callfunc "magic_exp";
@@ -52,7 +52,7 @@ L_Mouboo:
L_SpecialRules6:
if ($@KIMARR_EVENT < 1) goto L_Pay;
if (@target_id == BL_ID) goto L_Pay;
- message strcharinfo(0), "You can't heal others on this map!";
+ message strcharinfo(0), "You can't heal others here.";
end;
OnInit:
diff --git a/world/map/npc/magic/level1-summon-maggots.txt b/world/map/npc/magic/level1-summon-maggots.txt
index 98ca6096..7924608b 100644
--- a/world/map/npc/magic/level1-summon-maggots.txt
+++ b/world/map/npc/magic/level1-summon-maggots.txt
@@ -8,6 +8,10 @@ OnCast:
if (getmapflag(getmap(), MF_TOWN)) end;
if (getskilllv(SKILL_MAGIC) < .level) end;
if (countitem("MaggotSlime") < 1 || countitem("Root") < 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "MaggotSlime", 1;
delitem "Root", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -47,6 +51,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "kalmurk"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-barrier.txt b/world/map/npc/magic/level2-barrier.txt
index ed695b77..7b0a7e54 100644
--- a/world/map/npc/magic/level2-barrier.txt
+++ b/world/map/npc/magic/level2-barrier.txt
@@ -5,24 +5,26 @@
set .@level, getskilllv(.school);
if (.@level < .level) end;
if (getskilllv(SKILL_MAGIC) < .level) end;
- if (.@level <= 3 && countitem("SmallMushroom") >= 1) delitem "SmallMushroom", 1;
- elif (.@level <= 3) end;
+ if (.@level <= 3 && countitem("SmallMushroom") < 1) end;
set @target_id, getcharid(3, @args$);
if (@target_id < 1 || !(isloggedin(@target_id)) || get(INVISIBLE, @target_id) == 1)
set @target_id, BL_ID; // fallback to self
+ if (distance(BL_ID, @target_id) >= (@spellpower/30)+2) set @target_id, BL_ID;
+ if (BL_ID == @target_id) set @args$, strcharinfo(0);
if (get(GM, @target_id) == 1) end;
if (get(Hp, @target_id) < 1) end;
if (getequipid(equip_head, strcharinfo(0, @target_id)) == 888) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+L_Pay:
+ delitem "SmallMushroom", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 1000, "Magic Timer::OnClear"; // set the new debuff
callfunc "adjust_spellpower";
set Sp, Sp - 15;
misceffect FX_MAGIC_BARRIER_CAST, strcharinfo(0);
callfunc "magic_exp";
-
- if (distance(BL_ID, @target_id) >= (@spellpower/30)+2) set @target_id, BL_ID;
- if (BL_ID == @target_id) set @args$, strcharinfo(0);
if (BL_ID != @target_id) misceffect FX_MAGIC_BARRIER_HIT, @args$;
set .@time, (@spellpower*200)+2000;
set @asorm_time, .@time, @target_id;
@@ -39,6 +41,12 @@ OnEnd:
misceffect FX_MAGIC_BARRIER_END, strcharinfo(0);
end;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if (@target_id == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't cast this spell at others here.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "asorm"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-flying-backpack.txt b/world/map/npc/magic/level2-flying-backpack.txt
index 84c95e70..49e1bb9e 100644
--- a/world/map/npc/magic/level2-flying-backpack.txt
+++ b/world/map/npc/magic/level2-flying-backpack.txt
@@ -5,21 +5,25 @@
set .@level, getskilllv(.school);
if (.@level < .level) end;
if (getskilllv(SKILL_MAGIC) < .level) end;
- if (.@level <= 3 && countitem("SilkCocoon") >= 1) delitem "SilkCocoon", 1;
- elif (.@level <= 3) end;
+ if (.@level <= 3 && countitem("SilkCocoon") < 1) end;
+ set @target_id, getcharid(3, @args$);
+ if (@target_id < 1 || !(isloggedin(@target_id)) || get(INVISIBLE, @target_id) == 1)
+ set @target_id, BL_ID; // fallback to self
+ if (distance(BL_ID, @target_id) >= (@spellpower/30)+2) set @target_id, BL_ID;
+ if (BL_ID == @target_id) set @args$, strcharinfo(0);
+ if (get(GM, @target_id) == 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
+ delitem "SilkCocoon", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 1000, "Magic Timer::OnClear"; // set the new debuff
callfunc "adjust_spellpower";
set Sp, Sp - 12;
misceffect FX_MAGIC_FLYING_CAST, strcharinfo(0);
callfunc "magic_exp";
- set @target_id, getcharid(3, @args$);
- if (@target_id < 1 || !(isloggedin(@target_id)) || get(INVISIBLE, @target_id) == 1)
- set @target_id, BL_ID; // fallback to self
- if (distance(BL_ID, @target_id) >= (@spellpower/30)+2) set @target_id, BL_ID;
- if (get(GM, @target_id) == 1) end;
if (BL_ID != @target_id) misceffect FX_MAGIC_FLYING_HIT, @args$;
- if (BL_ID == @target_id) set @args$, strcharinfo(0);
set @plugh_time, (@spellpower*500)+5000, @target_id;
sc_start SC_FLYING_BACKPACK, @plugh_time, 0, @target_id;
message @args$, "Backpack : Your backpack is lifted by a mystical force; you no longer feel it pressing on your back.";
@@ -34,6 +38,12 @@ OnEnd:
misceffect FX_MAGIC_FLYING_END, strcharinfo(0);
end;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if (@target_id == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't cast this spell at others here.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_NATURE;
set .invocation$, chr(MAGIC_SYMBOL) + "plugh"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-lay-on-hands.txt b/world/map/npc/magic/level2-lay-on-hands.txt
index 9deac893..b8fe7c22 100644
--- a/world/map/npc/magic/level2-lay-on-hands.txt
+++ b/world/map/npc/magic/level2-lay-on-hands.txt
@@ -9,19 +9,19 @@
if (@target_id < 1 || !(isloggedin(@target_id)) || get(INVISIBLE, @target_id) || BL_ID == @target_id) end;
if (get(GM, @target_id) == 1) end;
if (Hp <= get(MaxHp, @target_id) / 20) end; // hp needs to be > 1/20 * target hp
- callfunc "adjust_spellpower";
- if (getmap() == "099-4") goto L_SpecialRules4;
- if (getmap() == "099-5") goto L_SpecialRules5;
- if (getmap() == "033-1") goto L_SpecialRules6;
if (distance(BL_ID, @target_id) >= (((sqrt(@spellpower)*12)+@spellpower)/100)+2) end;
if (sc_check(SC_HALT_REGENERATE,@target_id)) end;
if (getequipid(equip_head, @args$) == 888) end; // magic gm top hat
- set @needed, get(MaxHp, @target_id) - get(Hp, @target_id);
+ if (getmap() == "099-4") goto L_SpecialRules4;
+ if (getmap() == "099-5") goto L_SpecialRules5;
+ if (getmap() == "033-1") goto L_SpecialRules6;
goto L_Pay;
L_Pay:
+ set @needed, get(MaxHp, @target_id) - get(Hp, @target_id);
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 500, "Magic Timer::OnClear"; // XXX should this be 0 ?
+ callfunc "adjust_spellpower";
set Sp, Sp - 10;
misceffect FX_MAGIC_LAY_CAST, strcharinfo(0); // on caster
misceffect FX_MAGIC_LAY_HIT, @args$; // on target
@@ -73,7 +73,7 @@ L_SpecialRules5:
goto L_Pay;
L_SpecialRules6:
if ($@KIMARR_EVENT < 1) goto L_Pay;
- message strcharinfo(0), "You can't heal others on this map!";
+ message strcharinfo(0), "You can't heal others here.";
end;
OnInit:
diff --git a/world/map/npc/magic/level2-magic-knuckles.txt b/world/map/npc/magic/level2-magic-knuckles.txt
index 2063ad12..12055efb 100644
--- a/world/map/npc/magic/level2-magic-knuckles.txt
+++ b/world/map/npc/magic/level2-magic-knuckles.txt
@@ -14,10 +14,10 @@
set Sp, Sp - 20;
misceffect FX_MAGIC_KNUCKLE_CAST, strcharinfo(0);
setarray @upmarmuspell[0],
- max(1, BASE_ATK - 100 + min(100, Int)), // dmg
+ BASE_ATK, // dmg
((@spellpower/10) + ((Dex * 8)/(sqrt(BaseLevel + 34)) + 20)), // charges (you get more at lower levels)
(sqrt(300 - (Agi * 2)) + (5/2)), // delay
- ((Agi + Int) / 2), // dmg bonus
+ Agi, // dmg bonus
(((BaseLevel/5) + Str) * 2); // do not allow to equip light armor, cast, and then switch to heavy armor to get bonus str
callfunc "magic_exp";
goto L_FreeRecast;
@@ -32,6 +32,12 @@ OnAttack:
L_FreeRecast:
if (@upmarmuspell[1] > 0)
addtimer 0, strnpcinfo(0) + "::OnSetRecast";
+ elif (@upmarmuspell[1] == 0)
+ goto OnEnd;
+ end;
+
+OnEnd:
+ misceffect FX_MAGIC_KNUCKLE_END, strcharinfo(0);
end;
OnDischarge:
diff --git a/world/map/npc/magic/level2-protect.txt b/world/map/npc/magic/level2-protect.txt
index 4e3b9f88..db34cfa8 100644
--- a/world/map/npc/magic/level2-protect.txt
+++ b/world/map/npc/magic/level2-protect.txt
@@ -9,21 +9,23 @@
set @target_id, getcharid(3, @args$);
if (@target_id < 1 || !(isloggedin(@target_id)) || get(INVISIBLE, @target_id))
set @target_id, BL_ID; // fallback to self
+ if (distance(BL_ID, @target_id) >= (@spellpower/30)+2) set @target_id, BL_ID;
+ if (BL_ID == @target_id) set @args$, strcharinfo(0);
if (get(GM, @target_id) == 1) end;
if (get(Hp, @target_id) < 1) end;
if (getequipid(equip_head, strcharinfo(0, @target_id)) == 888) end;
-
- if (distance(BL_ID, @target_id) >= (@spellpower/30)+2) set @target_id, BL_ID;
if (get(@antiprotect, @target_id) > 0) end;
- if (.@level <= 3) delitem "HardSpike", 1;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
+ delitem "HardSpike", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 1500, "Magic Timer::OnClear"; // set the new debuff
callfunc "adjust_spellpower";
set Sp, Sp - 14;
misceffect FX_MAGIC_SHIELD_CAST, strcharinfo(0);
callfunc "magic_exp";
-
- if (BL_ID == @target_id) set @args$, strcharinfo(0);
misceffect FX_MAGIC_SHIELD, @args$;
set .@time, (@spellpower*1000)+5000;
set @betsanc_time, .@time, @target_id;
@@ -40,6 +42,12 @@ OnEnd:
misceffect FX_MAGIC_SHIELD_ENDS, strcharinfo(0);
end;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if (@target_id == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't cast this spell at others here.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_NATURE;
set .invocation$, chr(MAGIC_SYMBOL) + "betsanc"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-rain.txt b/world/map/npc/magic/level2-rain.txt
index fac98690..f9e091f2 100644
--- a/world/map/npc/magic/level2-rain.txt
+++ b/world/map/npc/magic/level2-rain.txt
@@ -11,8 +11,12 @@ OnCast:
explode .@map_ext[0], getmap(), "-";
if (.@map_ext[1] != 1 && getmap() != "099-5") end; // XXX this is fugly, in the future let's use MF_OUTSIDE to detect if a map is "outside" or "inside"
if (getmapflag(getmap(), MF_TOWN)) end;
- if (getskilllv(.school) < 4 && countitem("BottleOfWater") >= 1) delitem "BottleOfWater", 1;
- elif (getskilllv(.school) < 4) end;
+ if (countitem("BottleOfWater") < 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
+ delitem "BottleOfWater", 1;
set Sp, Sp - 17;
set @_M_BLOCK, 1; // block casting, until the timer clears it
addtimer 3000, "Magic Timer::OnClear"; // set the new debuff
@@ -96,6 +100,12 @@ OnDestroy:
debugmes "kaflosh timeout! [this shouldn't happen]"; // XXX: looks like this CAN happen with higher levels of magic, so we might want to cap max charges
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't use this spell here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_NATURE;
set .invocation$, chr(MAGIC_SYMBOL) + "kaflosh"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-summon-fluffies.txt b/world/map/npc/magic/level2-summon-fluffies.txt
index b614e4a3..bae7728c 100644
--- a/world/map/npc/magic/level2-summon-fluffies.txt
+++ b/world/map/npc/magic/level2-summon-fluffies.txt
@@ -9,6 +9,10 @@ OnCast:
if (getskilllv(SKILL_MAGIC) < .level) end;
if (getskilllv(.school) < .level) end;
if (countitem("WhiteFur") < 1 || countitem("Root") < 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "WhiteFur", 1;
delitem "Root", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -48,6 +52,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "kalakarenk"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-summon-mouboo.txt b/world/map/npc/magic/level2-summon-mouboo.txt
index dfa60e57..13d9cfb0 100644
--- a/world/map/npc/magic/level2-summon-mouboo.txt
+++ b/world/map/npc/magic/level2-summon-mouboo.txt
@@ -9,6 +9,10 @@ OnCast:
if (getskilllv(SKILL_MAGIC) < .level) end;
if (getskilllv(.school) < .level) end;
if (countitem("MoubooFigurine") < 1 || countitem("Root") < 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "MoubooFigurine", 1;
delitem "Root", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -48,6 +52,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "kalboo"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-summon-pinkie.txt b/world/map/npc/magic/level2-summon-pinkie.txt
index efcb014c..e8f46aae 100644
--- a/world/map/npc/magic/level2-summon-pinkie.txt
+++ b/world/map/npc/magic/level2-summon-pinkie.txt
@@ -9,6 +9,10 @@ OnCast:
if (getskilllv(SKILL_MAGIC) < .level) end;
if (getskilllv(.school) < .level) end;
if (countitem("PinkAntenna") < 1 || countitem("Root") < 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "PinkAntenna", 1;
delitem "Root", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -48,6 +52,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "kalgina"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-summon-snakes.txt b/world/map/npc/magic/level2-summon-snakes.txt
index 2e2021ae..f412cd22 100644
--- a/world/map/npc/magic/level2-summon-snakes.txt
+++ b/world/map/npc/magic/level2-summon-snakes.txt
@@ -10,6 +10,10 @@ OnCast:
if (getskilllv(.school) < .level) end;
if (countitem("DarkCrystal") < 1 || countitem("SnakeEgg") < 1) end;
if (OrumQuest <= 40) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "DarkCrystal", 1;
delitem "SnakeEgg", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -54,6 +58,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_DARK;
set .invocation$, chr(MAGIC_SYMBOL) + "halhiss"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-summon-spiky-mushroom.txt b/world/map/npc/magic/level2-summon-spiky-mushroom.txt
index ff861283..c4158c93 100644
--- a/world/map/npc/magic/level2-summon-spiky-mushroom.txt
+++ b/world/map/npc/magic/level2-summon-spiky-mushroom.txt
@@ -9,6 +9,10 @@ OnCast:
if (getskilllv(SKILL_MAGIC) < .level) end;
if (getskilllv(.school) < .level) end;
if (countitem("HardSpike") < 1 || countitem("Root") < 1) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "HardSpike", 1;
delitem "Root", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -48,6 +52,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_ASTRAL;
set .invocation$, chr(MAGIC_SYMBOL) + "kalrenk"; // used in npcs that refer to this spell
diff --git a/world/map/npc/magic/level2-summon-wickedmushroom.txt b/world/map/npc/magic/level2-summon-wickedmushroom.txt
index dc5fb72d..3b817f8d 100644
--- a/world/map/npc/magic/level2-summon-wickedmushroom.txt
+++ b/world/map/npc/magic/level2-summon-wickedmushroom.txt
@@ -10,6 +10,10 @@ OnCast:
if (getskilllv(.school) < .level) end;
if (countitem("DarkCrystal") < 1 || countitem("SmallMushroom") < 1) end;
if (OrumQuest <= 36) end;
+ if (getmap() == "033-1") goto L_SpecialRules6;
+ goto L_Pay;
+
+L_Pay:
delitem "DarkCrystal", 1;
delitem "SmallMushroom", 1;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -53,6 +57,12 @@ S_SummonAll:
if (.@i < .count) goto S_SummonAll;
destroy;
+L_SpecialRules6:
+ if ($@KIMARR_EVENT < 1) goto L_Pay;
+ if ($@Fluffy_FighterID == BL_ID) goto L_Pay;
+ message strcharinfo(0), "You can't summon here unless hunting fluffies.";
+ end;
+
OnInit:
set .school, SKILL_MAGIC_DARK;
set .invocation$, chr(MAGIC_SYMBOL) + "helorp"; // used in npcs that refer to this spell