// TMW2 Script // Author: // Jesusalva // Description: // The last Mana Stone in the whole world, which is not owned by the Magic Council // or the Monster King. // It actually hates (or rather, fears) everybody, and is not always willing to // talk with people. May hide itself within the walls during these occasions. // It may not hate some very specific things which are lore-related. // // Notes: During sieges, Monster King and Human Council apparitions, it may hide // itself. // // Variables: // $MANA_BINT => Base Intelligence for Mana Stone // $MANA_BLVL => Base Level for Mana Stone // $MANA_JLVL => Base Job Level for Mana Stone // .int => Int Increment // .lvl => Lvl Increment // .jlvl => Jlv Increment 011-1,0,0,0 script Mana Stone NPC_MANA_STONE,{ function dearLord; if (BaseLevel < $MANA_BLVL) goto L_NotWorthy; mesn; mes l("The mighty Mana Stone does not reacts against you."); mes l("Although this particular one seems to hate everyone and everything, it recognizes your strength."); mes l("If you fell ready, perhaps you should touch it?"); mes ""; menu l("Touch it!"), L_Level, l("Take it!"), L_NotWorthy2, l("Break it!"), L_NotWorthy2, l("Leave it alone!"), -; close; L_NotWorthy2: if (is_gm()) movenpc .name$, 20+rand(150), 20+rand(150); if (is_gm()) close; npctalk3 l("You are not worthy!"); percentheal -20, -50; if (!MAGIC_LVL) dispbottom l("I should train my intelligence, have full MP, and don't neglect even Job Level."); end; L_Level: // See functions/util.txt for *mstone() details if (mstone(0)) goto L_LevelUp; if (mstone(1)) goto L_LevelUp; if (mstone(2)) goto L_LevelUp; if (mstone(3)) goto L_LevelUp; if (mstone(4)) goto L_LevelUp; if (mstone(5)) goto L_LevelUp; if (mstone(6)) goto L_LevelUp; if (MAGIC_LVL >= 7) dearLord(); if (MAGIC_LVL >= 7) npctalk3 l("You already got all power I could grant you!"); if (is_gm()) percentheal -20, -50; if (MAGIC_LVL >= 7 || is_gm()) close; L_NotWorthy: if (readparam(Sp) != readparam(MaxSp)) dispbottom l("I must have full MP to touch it... Which I don't."); else dispbottom l("I should train my intelligence, and level up, both my base as my Job Level."); npctalk3 l("You are not worthy!"); percentheal min(-10, -70+BaseLevel), min(-10, -100+BaseLevel); end; L_LevelUp: mes ""; mes l("A great rush of mana flows though you."); if (!MAGIC_LVL) mes l("Magic Power is granted to you, but you die from it."); if (MAGIC_LVL) mes l("More Magic Power is granted to you, but you die from it."); MAGIC_LVL = MAGIC_LVL+1; sk_lvup(AL_DP); // No penalty for death provoked by Mana Stone, see npc/001-8/hub.txt for more info sc_start SC_CASH_DEATHPENALTY, 1000, 1; /* @deathpenalty_realvalue=readparam(BaseExp); @deathpenalty_realvaljob=readparam(JobExp); @deathpenalty_override=1; */ die(); close; function dearLord { if ($MANASTONE_WINNER$ == "") { $MANASTONE_WINNER$=strcharinfo(0); channelmes("#world", $MANASTONE_WINNER$+" is the first player to reach "+get_race()+"'s magic limit since the Monster King! %%N"); announce "All hail ##B"+$MANASTONE_WINNER$+"##b, first to reach "+get_race()+"'s magic limit since the Monster King! %%N", bc_all|bc_npc; getexp 0, 2000; getitem SupremeGift, 1; mesc l("CONGRATULATIONS! You are the first player to harness all power the Mana Stone would willingly give!"), 2; mesc l("You just gained a Supreme Gift, and 2000 Job Exp for your bravery!"), 2; next; } return; } OnInit: movenpc .name$, 20+rand(150), 20+rand(150); .sex = G_OTHER; .distance = 6; end; OnClock0030: OnClock0120: OnClock0210: OnClock0300: OnClock0450: OnClock0540: OnClock0630: OnClock0720: OnClock0810: OnClock0900: OnClock1050: OnClock1140: OnClock1230: OnClock1320: OnClock1410: OnClock1500: OnClock1650: OnClock1740: OnClock1830: OnClock1920: OnClock2010: OnClock2100: OnClock2250: OnClock2340: npctalk "Those who are worthy, may get my magic. For the others, death awaits!"; movenpc .name$, 20+rand(150), 20+rand(150); end; }