summaryrefslogblamecommitdiff
path: root/npc/011-1/manastone.txt
blob: 3d8df2b5efc21ad93d9296ed697d533fabcc640a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12



               

                                                                                   





                                                                                 







                                                      
 
                                                        
                      
 
                                                 

                                                                
                                                                                                              








                                                             
 



                                                            
                                      


                                                                                                        

        
        







                                                   
                                   
                                                                                   
                                      

                                         




                                                                                                    
                                      
                                                                  







                                                                                     
                   
                                                                                       

                                           

                                               
                             
      
          

          













                                                                                                                                                 
       
                                               
                   
                  

























            
                                                                                    
                                               
        
 
// 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;
}