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