From 5d12bfc67aa59cfed4aa141db16c5c036ebbdfa3 Mon Sep 17 00:00:00 2001 From: HoraK-FDF Date: Fri, 16 Sep 2022 03:25:04 +0200 Subject: summon/spell event fixes --- world/map/npc/033-1/kimarr.txt | 11 +++++++++ world/map/npc/magic/event-summon-managuardian.txt | 10 +++++++++ world/map/npc/magic/event-summon-manatyrant.txt | 10 +++++++++ world/map/npc/magic/level1-lesser-heal.txt | 10 ++++----- world/map/npc/magic/level1-summon-maggots.txt | 10 +++++++++ world/map/npc/magic/level2-barrier.txt | 18 ++++++++++----- world/map/npc/magic/level2-flying-backpack.txt | 26 +++++++++++++++------- world/map/npc/magic/level2-lay-on-hands.txt | 12 +++++----- world/map/npc/magic/level2-magic-knuckles.txt | 10 +++++++-- world/map/npc/magic/level2-protect.txt | 18 ++++++++++----- world/map/npc/magic/level2-rain.txt | 14 ++++++++++-- world/map/npc/magic/level2-summon-fluffies.txt | 10 +++++++++ world/map/npc/magic/level2-summon-mouboo.txt | 10 +++++++++ world/map/npc/magic/level2-summon-pinkie.txt | 10 +++++++++ world/map/npc/magic/level2-summon-snakes.txt | 10 +++++++++ .../map/npc/magic/level2-summon-spiky-mushroom.txt | 10 +++++++++ .../map/npc/magic/level2-summon-wickedmushroom.txt | 10 +++++++++ 17 files changed, 176 insertions(+), 33 deletions(-) diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt index 292ef401..9fbaa4d4 100644 --- a/world/map/npc/033-1/kimarr.txt +++ b/world/map/npc/033-1/kimarr.txt @@ -430,10 +430,21 @@ S_Clean: set $@Fluffy_Kills, 0; set $@Fluffy_Spawn, 0; set $@Fluffy_Alive, 0; + if ($@KIMARR_EVENT) + goto L_CleanEvent; killmonster "033-1", "Kimarr::OnIceGoblinDeath"; killmonster "033-1", "Kimarr::OnWolvernDeath"; killmonster "033-1", "Kimarr::OnYetiDeath"; killmonster "033-1", "Kimarr::OnFluffyDeath"; + goto L_CleanEnd; + +L_CleanEvent: + // kill all remaining summons to prevent players from filling the area with summons for the next hunt + // that kills white slimes aswell tho + killmonster "033-1", "All"; + goto L_CleanEnd; + +L_CleanEnd: set @state, 0; return; 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 -- cgit v1.2.3-60-g2f50