summaryrefslogblamecommitdiff
path: root/npc/005-6/zitoni.txt
blob: 2d30ff342779f62107d16784b77390ea449fb355 (plain) (tree)
1
2
3
4
                

                    
               














                                                               
                          







                                                                   





                                          
















                                                                                                    
                                                                                            













                                                                                                                  
                                                                                                           
                                                                                                    


                                                                                                            


                                  
                                                                                      











                                                             
                                                                         



















                                                        
                                                 








                                                        
                                                          


























                                                                              
                                                                                                                       

                  



                                                                                                





                             

                                                                 














                                                                           

                                                                                





                                                                                                            
                                                                                          














                                            
                             









                                            
                                                       



                
                          







                 

                                                        






                  
// TMW2 scripts.
// Author:
//    Vasily_Makarov
//    Jesusalva
// Description:
//    Stat resetter.
// Variables:
//    General_Rumly
// Values:
//    0  Player hasn't met Zitomi
//    1  Last time player has told that he will never come back
//    2  Last time player has told that he will come back later
//    3  Player has already reset his stat
// Others:
// .@visited - Zitomi actual variable
// .@wasSP - free status points before reset

005-6,43,39,0	script	Zitoni	NPC_RUMLY,{

    setnpcdir "Zitoni", 2;
    stopnpctimer;
    initnpctimer;

    speech S_LAST_NEXT,
        l("Hey you, do you have any @@s?", getitemlink(Plushroom));

L_Menu:
    .@visited = getq(General_Rumly);
    .@plush_count = lognbaselvl(1, 10)-10;
    if (BaseLevel < 10) {
        .@plush_count = BaseLevel;
    }
    .@plush_count=.@plush_count*30;
    // Lv 9: 270 GP | Lv 10: 600 GP

    select
        l("Plushrooms you say?"),
        l("Who are you?"),
        rif(.@visited >  0, l("Can you reset my stats please?")),
        lg("You are weird, I have to go sorry.");

    switch (@menu)
    {
        case 1:
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Wind and grass is nice and cool, so juicy sweet..."),
                l("Our only wish to eat a plush, so juicy sweet...");
            goto L_Menu;
        case 2:
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                lg("Why are you asking? And who are you too? I've never seen you around before..."),
                lg("Wait, are you with the police? I didn't do anything wrong, I promise!"),
                l("I... I just like to eat the purple and delightful... And natural, and...");

            switch (select(l("Chill out I won't say anything."),
                           l("Yes I am and you are going to face justice!")))
            {
                case 1: break;
                case 2:
                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("No! No, no, my precious plushrooms! Don’t take me to them, they wants my precious.");
                    goto L_Quit;
            }

            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("I won't forget it, I swear on my precious plushrooms!"),
                l("As an alchemist, I've developed a secret formula to free you from your past mistakes."),
                l("You can use it to clear your stats, to start freshly if you see what I mean..."),
                l("For only a small amount of Gold Pieces, I will show you how it works!"),
                l("Although the more powerful you are, the more money you will need."),
                l("Until you reach level 10, it is really cheap. Then, you'll need to pay standard price.");

            select
                l("Sounds good!"),
                rif(Zeny >= .@plush_count, lg("I think I have enough gold with me.")),
                l("We will talk about it later."),
                l("My stats are too good, I won't need it.");

            switch (@menu)
            {
                case 1:
                    if (.@visited < 2)
                    {
                        setq General_Rumly, 2;
                    }

                    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                        l("Yes, it is a really sweet deal, believe me!");

                    goto L_Menu;
                case 2:
                    goto L_ResetStats;
                case 3:
                    goto L_Later;
                case 4:
                    goto L_Never;
            }

        case 3:
            goto L_ResetStats;
        case 4:
            if (.@visited < 2) goto L_Quit;

            .@rand = rand(2);

            if (.@rand)
            {
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("See you! And come back!");
            }
            else
            {
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Oh noes!"),
                    l("A rabbit!"),
                    l("He has a guns!"),
                    l("*Bang bang*");
                narrator S_LAST_NEXT,
                    l("Rumly is hiding behind the desk.");
            }

            goto L_Quit;
    }

L_ResetStats:
    if (.@visited == 1)
    {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            lg("Changed your mind, uh?"),
            l("Very good."),
            l("Status point reset can't be undone. Do you really want this?"),
            lg("Are you sure about this?");
    }
    else
    {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            lg("Are you sure about this?");
    }

L_ConfirmReset:
    switch (select(lg("Yes, I am sure."),
                   lg("I need to think about it..."),
                   lg("I won't need it, thank you.")))
    {
        case 1:
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Let me just have a quick look at you. Hm... I will need @@ GP to reset your stats.", .@plush_count);

            select
                rif(Zeny >= .@plush_count, l("Here, take as much as you need, I have plenty!")),
                rif(Zeny > 0 && Zeny < .@plush_count, l("I don't have enough money...")),
                rif(Zeny == 0, l("Oh no, I don't have any money on me right now.")),
                l("I have to go, sorry.");

            if (@menu > 1)
            {
                goto L_Later;
            }

            // TODO: I think there were functions to deal with GP
            set Zeny, Zeny-.@plush_count;

            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Thank you."),
                l("Now stand still... It should not take much time...");

            .@wasSP = StatusPoint;
            resetstatus;
            if (.@visited < 3)
            {
                setq General_Rumly, 3;
            }
            if (StatusPoint == .@wasSP)
            {
                speech S_LAST_NEXT,
                    l("It seems that you have no status points to reset!"),
                    l("But the money you brought was really awesome you know."),
                    l("Come back when you will really need me.");
            }
            else
            {
                speech S_LAST_NEXT,
                    l("Let's see... @@ of your status points have just been reset!", StatusPoint - .@wasSP),
                    l("Spend it wisely this time."),
                    l("But you are welcome to reset your stats again! I need the money.");
            }
            goto L_Quit;

        case 2:
            goto L_Later;
        case 3:
            goto L_Never;
    }

L_Later:
    if (.@visited < 2)
    {
        setq General_Rumly, 2;
    }
    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
        l("Come back soon!");

    goto L_Quit;

L_Never:
    if (.@visited < 2)
    {
        setq General_Rumly, 1;
    }

    speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
        l("I am sure that you will change your mind.");

    goto L_Quit;

L_Quit:
    setnpcdir "Zitoni", 4;
    stopnpctimer;
    initnpctimer;

    goodbye;

OnTimer1800:
    stopnpctimer;

    if (getnpcdir("Zitoni") == 2) setnpcdir "Zitoni", 6;
    if (getnpcdir("Zitoni") == 4) setnpcdir "Zitoni", 8;

    end;

OnInit:
    .sex = G_MALE;
    end;
}