From f108bb5759733eb0b7a9ee3396f41a3e989c802e Mon Sep 17 00:00:00 2001 From: Vincent Petithory Date: Mon, 11 Feb 2013 23:01:59 +0100 Subject: Add GM Killing Event materials: * MagicGMTopHat: The hat to give powers to a gm * Add #pullrabbit spell associated to the magic gm top hat. Requires ./build-magic.sh * Add Murderer Crown (prize) --- world/map/conf/magic.conf.template | 12 ++++++++++++ world/map/db/const.txt | 2 +- world/map/db/item_db.txt | 2 ++ world/map/npc/items/magic_gm_top_hat.txt | 17 +++++++++++++++++ world/map/npc/scripts.conf | 1 + 5 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 world/map/npc/items/magic_gm_top_hat.txt 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 -- cgit v1.2.3-70-g09d2