From 4e2081bd5d1940bd634023bffdfd163115f6203d Mon Sep 17 00:00:00 2001 From: jesusalva Date: Sun, 11 Feb 2018 12:15:42 -0200 Subject: Malivox, the reset NPC for Tulimshar --- npc/003-1/malivox.txt | 93 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 90 insertions(+), 3 deletions(-) (limited to 'npc/003-1/malivox.txt') 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; -- cgit v1.2.3-60-g2f50