summaryrefslogtreecommitdiff
path: root/world
diff options
context:
space:
mode:
Diffstat (limited to 'world')
-rw-r--r--world/map/conf/magic.conf.template12
-rw-r--r--world/map/db/const.txt2
-rw-r--r--world/map/db/item_db.txt2
-rw-r--r--world/map/npc/items/magic_gm_top_hat.txt17
-rw-r--r--world/map/npc/scripts.conf1
5 files changed, 33 insertions, 1 deletions
diff --git a/world/map/conf/magic.conf.template b/world/map/conf/magic.conf.template
index cf3094c7..c9e0de6c 100644
--- a/world/map/conf/magic.conf.template
+++ b/world/map/conf/magic.conf.template
@@ -568,6 +568,7 @@ SPELL lay-on-hands (target : STRING) : "#L10" =
&& (rdistance(location(caster), location(pc(target)))
< 2 + (12 * sqrt(spellpower) + spellpower) / 100)
&& not (running_status_update(pc(target), SC_HALT_REGENERATE))
+ && not (is_equipped(target, "MagicGMTopHat"))
))
=> EFFECT CALL adjust_spellpower(school);
IF (not (target)) THEN ABORT;
@@ -715,6 +716,7 @@ SPELL protect (target : PC) : "#N11" =
IN (MANA 14, CASTTIME 1500,
REQUIRE skill(caster, MAGIC) > level,
REQUIRE skill(caster, school) > level,
+ REQUIRE not(is_equipped(target, "MagicGMTopHat")),
(REQUIRE skill(caster, school) > 3 OR COMPONENTS ["HardSpike"]),
REQUIRE rdistance(location(target), location(caster)) < 2 + spellpower / 30)
=> EFFECT CALL adjust_spellpower(school);
@@ -836,6 +838,7 @@ SPELL barrier (target : PC) : "#A10" =
IN (MANA 16, CASTTIME 1000,
REQUIRE skill(caster, MAGIC) > level,
REQUIRE skill(caster, school) > level,
+ REQUIRE not(is_equipped(target, "MagicGMTopHat")),
(REQUIRE skill(caster, school) > 3 OR COMPONENTS ["SmallMushroom"]),
REQUIRE rdistance(location(target), location(caster)) < 2 + spellpower / 30)
=> EFFECT CALL adjust_spellpower(school);
@@ -1718,3 +1721,12 @@ NONMAGIC SPELL illia0 : "#catalazuli" = REQUIRE ((rdistance(location(caster), lo
=> EFFECT {
callfunc "StartChannelling";
};
+
+#--------------------------------------------------------------------------------
+# Kill the GM event spell
+#--------------------------------------------------------------------------------
+
+NONMAGIC SPELL killgm0 : "#pullrabbit" = REQUIRE (is_equipped(caster, "MagicGMTopHat"))
+ => EFFECT {
+ callfunc "ActivateMagicGMTophat";
+ };
diff --git a/world/map/db/const.txt b/world/map/db/const.txt
index e50dfb24..a69ba485 100644
--- a/world/map/db/const.txt
+++ b/world/map/db/const.txt
@@ -150,7 +150,7 @@ bAspdRate 1015 // +n% attack speed (bAspdRate,n;).
bHPrecovRate 1016 // Natural HP recovery ratio increased of n% (bHPrecovRate,n;).
//bSPrecovRate 1017 // Natural SP recovery ratio increased of n% (bSPrecovRate,n;).
//bSpeedRate 1018 // Moving speed increased of n% and only the highest among all is applied (bSpeedRate,n;).
-//bCriticalDef 1019 // Decreases the chance of being hit by critical hits of n% (bCriticalDef,n;).
+bCriticalDef 1019 // Decreases the chance of being hit by critical hits of n% (bCriticalDef,n;).
//bNearAtkDef 1020 // Adds n% damage reduction against melee physical attacks (bNearAtkDef,n;).
//bLongAtkDef 1021 // Adds n% damage reduction against ranged physical attacks (bLongAtkDef,n;).
//bDoubleRate 1022 // Adds a n% probability of doing a double attack (bDoubleRate,n;).
diff --git a/world/map/db/item_db.txt b/world/map/db/item_db.txt
index 9742600e..8390e714 100644
--- a/world/map/db/item_db.txt
+++ b/world/map/db/item_db.txt
@@ -396,6 +396,8 @@
879, HeartOfIsis, Heart of Isis, 5, 70000, 35000, 40, , , , , 0, 2, 8, , 85, 0, {}, {bonus bMaxHPrate, 15; bonus bHPrecovRate, 65;}
880, LazuriteRobe, Lazurite Robe, 5, 92000, 52000, 30, , 7, , 60, 0, 2, 512, , 90, 0, {}, {set @bStat$, "Int";set @minbStatVal, 70;callfunc "RequireStat"; set @bStat$, "Vit";set @minbStatVal, 40;callfunc "RequireStat"; bonus bSpeedAddRate, -15; bonus bDef2Rate, -40; bonus bMdef, 60; bonus bVit, -1; bonus bInt, 7; bonus bLuk, -1; bonus bDex, -1; bonus bStr, -1;}
881, RaggedShorts, Ragged Shorts, 5, 60, 1, 7, , 0, , -2, 0, 2, 1, , 1, 0, {}, {}
+888, MagicGMTopHat, Magic GM Top Hat, 5, 4200, 1900, 30, , 60, , 20, 0, 2, 256, , 0, 0, {}, {set @minLvl, 60; callfunc "RestrictedItem"; bonus bMaxHP, 31000; bonus bFlee, -200; bonus bHPrecovRate, -400; bonus bCriticalDef, 250; bonus bMdef, 89;}
+889, MurdererCrown, Murderer Crown, 5, 75000, 12000, 240, , 4, , 0, 0, 2, 256, , 0, 0, {}, {}
// Add new entries above here. For dyed entries,add to the bottom of the 2000s.
diff --git a/world/map/npc/items/magic_gm_top_hat.txt b/world/map/npc/items/magic_gm_top_hat.txt
new file mode 100644
index 00000000..cd9a0302
--- /dev/null
+++ b/world/map/npc/items/magic_gm_top_hat.txt
@@ -0,0 +1,17 @@
+function|script|ActivateMagicGMTophat|{
+ if (getgmlevel() < 60) return;
+ getinventorylist;
+ if ((checkweight("MurdererCrown", 1) == 0) || (@inventorylist_count == 100))
+ goto L_Inventory;
+ // Get the current reward of the event. This may be changed later
+ getitem "MurdererCrown", 1;
+ // Display an effect
+ misceffect FX_CHANNELLING_CAST, strcharinfo(0);
+ // Log the usage of this spell
+ gmcommand "@l "+strcharinfo(0)+" used the Magic GM Top Hat.";
+ return;
+
+L_Inventory:
+ message strcharinfo(0), "You cannot create this item. You're too heavy or you don't have a free slot.";
+ return;
+}
diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf
index 48712aca..26a0b0b4 100644
--- a/world/map/npc/scripts.conf
+++ b/world/map/npc/scripts.conf
@@ -21,6 +21,7 @@ npc: npc/functions/debug.txt
npc: npc/functions/lockpicking.txt
// Item Functions
+npc: npc/items/magic_gm_top_hat.txt
npc: npc/items/purification_potion.txt
npc: npc/items/scissors.txt
npc: npc/items/shock_sweet.txt