summaryrefslogblamecommitdiff
path: root/npc/005-6/zitoni.txt
blob: b56adb5df3e87f504ee9101e746c0bd4d5d0b7a4 (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);
    if (BaseLevel < 10)
        .@plush_count = 1;
    else 
        .@plush_count = BaseLevel*200-(9*200);
    // Lv 9: 1 GP | Lv 10: 200 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("I will let you test it for a peny until level 10!");

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