// TMW2 scripts.
// Author:
// Vasily_Makarov (original from Evol)
// Jesusalva
// Description:
// Stat resetter. He is an alchemist, married with Morgan.
// Others:
// .@wasSP - free status points before reset
005-6,43,39,0 script Zitoni NPC_RUMLY,{
mesn;
mesq l("Ah, hello there! I am @@, a Redy alchemist.", .name$);
mes "";
mesq l("I have developed a special formula, which resets your stats!");
next;
mes "";
L_Menu:
.@q1=getq(TulimsharQuest_DarkInvocator);
if (BaseLevel < 10)
.@price = 1;
else
.@price = (BaseLevel*200-(9*200))/(BaseLevel*10);
mesn strcharinfo(0);
select
l("Status reset? Sounds illegal!"),
l("Can you reset my stats please?"),
l("Do you make any other kind of potions?"),
rif(.@q1 == 1 || .@q1 == 2, l("Can you help me with Everburn Powder? I need 5.")),
rif(.@q1 == 3 && countitem(DarkDesertMushroom) >= 1,l("Zarkor sent you this gift. He needs Everburn Powder.")),
rif(.@q1 >= 4,l("I need some Everburn Powder.")),
lg("You are weird, I have to go sorry.");
mes "";
switch (@menu) {
case 1:
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
lg("Wait, are you with the police? I didn't do anything wrong, I promise!"),
l("My formula is not a drug, nor magic. It is an ancient technology of our people!"),
l("You can use it to clear your stats, to start freshly if you know 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 >= .@price, 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:
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 2:
goto L_ResetStats;
case 3:
goto L_OtherPotion;
case 4:
goto L_DarkInv_Ever;
case 5:
goto L_DarkInv_Mush;
case 6:
goto L_DarkInv_Powder;
default:
goto L_Quit;
}
L_ResetStats:
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
lg("Status point reset can't be undone. 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.", .@price);
select
rif(Zeny >= .@price, l("Here, take as much as you need, I have plenty!")),
rif(Zeny > 0 && Zeny < .@price, 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-.@price;
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 (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:
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Come back soon!");
goto L_Quit;
L_Never:
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("I am sure that you will change your mind.");
goto L_Quit;
L_OtherPotion:
mesn;
mesq l("I make both @@ and @@, if you give me the shrooms associated to them, and money.", getitemlink(HastePotion), getitemlink(StrengthPotion));
next;
mesn;
mesq l("For you, it will be only 150 GP for potion! But I need the base ingredients, four @@ - or @@, depends on which one.", getitemlink(Plushroom), getitemlink(Chagashroom));
next;
menu
l("Nothing at the moment."), L_Quit,
l("4 Plushrooms for a Haste Potion!"), L_HastePotion,
l("4 Chagashrooms for a Strength Potion!"), L_StrengthPotion;
L_HastePotion:
mes "";
mesn;
if (Zeny < 150) {
mesq l("You don't have enough money. Sorry.");
next;
goto L_Quit;
}
if (countitem(Plushroom) < 4) {
mesq l("I need @@ to work...", getitemlink(Plushroom));
next;
goto L_Quit;
}
inventoryplace HastePotion, 1;
Zeny=Zeny-150;
delitem Plushroom, 4;
getitem HastePotion, 1;
mesq l("Here you go!");
goto L_OtherPotion;
L_StrengthPotion:
mes "";
mesn;
if (Zeny < 150) {
mesq l("You don't have enough money. Sorry.");
next;
goto L_Quit;
}
if (countitem(Chagashroom) < 4) {
mesq l("I need @@ to work...", getitemlink(Chagashroom));
next;
goto L_Quit;
}
inventoryplace StrengthPotion, 1;
Zeny=Zeny-150;
delitem Chagashroom, 4;
getitem StrengthPotion, 1;
mesq l("Here you go!");
goto L_OtherPotion;
L_DarkInv_Ever:
mesn;
mesq l("...What? You want @@? Five of them?!", getitemlink(EverburnPowder));
next;
mesn;
mesq l("You have no idea of how dangerous that item is! I can't simply do it!");
next;
mesn;
mesq l("I don't know who sent you to me, but this is a flat and big NO!");
next;
mesc l("Zitoni won't cooperate with you. Perhaps you should ask to Zarkor about that.");
setq TulimsharQuest_DarkInvocator, 2;
close;
L_DarkInv_Mush:
mesn;
mesq l("Ah... A @@. The sturdiest from all mushroom, and very, very rare.", getitemlink(DarkDesertMushroom));
next;
mesn;
mesc l("Zitoni seems to be lost on deep thought.");
next;
mesn;
mesq l("Ah... Well, ok. I'll do the powder for you, but you still need to bring me the material.");
next;
mesn;
mesq l("Just... Don't accidentaly invoke a Legendary Guardian or something, these thingies could destroy a whole city.");
delitem DarkDesertMushroom, 1;
setq TulimsharQuest_DarkInvocator, 4;
close;
L_DarkInv_Powder:
mesn;
mesq l("@@ is an expensive, rare, and dangerous item. Do not shake it too much, or it will catch fire.", getitemlink(EverburnPowder));
next;
mesn;
mesq l("...And trust me, it'll take way more than just water to put the fire down.");
next;
mesn;
mesq l("I will require 3000 GP, 1 @@, 1 @@ and 1 @@, for a small handful of it.", getitemlink(IronPowder), getitemlink(SulfurPowder), getitemlink(PileOfAsh));
mes "";
select
l("I still don't have everything, but don't worry, I'll be back."),
l("I have everything here with me.");
mes "";
if (@menu == 1)
goto L_Quit;
if (countitem(IronPowder) < 1 ||
countitem(SulfurPowder) < 1 ||
countitem(PileOfAsh) < 1 ||
Zeny < 3000) goto L_Liar;
Zeny=Zeny-3000;
delitem IronPowder, 1;
delitem SulfurPowder, 1;
delitem PileOfAsh, 1;
getitem EverburnPowder, 1;
getexp 100, 0;
mesn;
mesq l("Here you go. Handle it with caution.");
close;
L_Liar:
mesn;
mesq l("Liar. You can't fool me. That's the price. Get that or get out!");
next;
mesn;
mesq l("We're talking about @@. It's not something for kids or pranksters!", getitemlink(EverburnPowder));
close;
L_Quit:
closedialog;
goodbye;
close; // double sure
OnInit:
.sex = G_MALE;
end;
}