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