summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/003-1/malivox.txt93
1 files changed, 90 insertions, 3 deletions
diff --git a/npc/003-1/malivox.txt b/npc/003-1/malivox.txt
index bdb9d481c..4ad7b0a95 100644
--- a/npc/003-1/malivox.txt
+++ b/npc/003-1/malivox.txt
@@ -1,12 +1,99 @@
// Author:
// Saulc
-003-1,114,106,0 script Malivox NPC_MONA,{
+003-1,114,106,0 script Malivox NPC_PLAYER,{
-
-hello;
+ speech S_LAST_NEXT,
+ l("I am Malivox, an alchemist specialized in reset potions.");
+
+L_Menu:
+ if (BaseLevel < 10)
+ .@plush_count = (BaseLevel*5)+5;
+ else
+ .@plush_count = BaseLevel*190-(9*190);
+ // Lv 9: 50 GP | Lv 10: 190 GP
+
+ select
+ l("Can you reset my stats please?"),
+ lg("You are weird, I have to go sorry.");
+
+ switch (@menu)
+ {
+ case 1:
+ goto L_ResetStats;
+ case 2:
+ goto L_Quit;
+ }
+
+L_ResetStats:
+ mesn;
+ mesq l("Status point reset can't be undone. Do you really want 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_Quit;
+ }
+
+ // 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 (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_Quit;
+ case 3:
+ goto L_Quit;
+ }
+
+
+L_Quit:
+
+ goodbye;
OnInit:
+ .@npcId = getnpcid(0, "Malivox");
+ setunitdata(.@npcId, UDT_HEADTOP, 2902);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, 1303);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, 2203);
+ setunitdata(.@npcId, UDT_WEAPON, 1800); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 7);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 17);
+
.sex = G_MALE;
.distance = 3;
end;