// Evol scripts. // Author: // Micksha // Description: // Wyara the witch. // TODO: Buy or make plushroom potions // TODO: Should she ask for a money comission when resetting status? 008-2-7,27,28,0 script Wyara NPC_DARK_DRUID,{ function confirmStatusReset; function doStatusReset; speech l("What? Is there someone?"), l("Please, leave me alone. I have to pixel potions."), lg("I will sell some when you return a bit later."), l("Unless you are interested in a status reset?"); next; do { select l("I'm fine, thanks."), l("I actually could use a status reset!"); switch (@menu) { case 2: @plush_count = lognbaselvl(1, 10); @plush_count = @plush_count*12/10; if (confirmStatusReset()) doStatusReset(); break; } } while (@menu != 1); // Note: There is some dark magic here, because confirmStatusReset() overrides @menu. close; function confirmStatusReset { mesn; mesq l("Let me just have a quick look at you. Hm... I will need @@ @@s to reset your stats.", @plush_count, getitemlink(Plushroom)); next; mesn; mesq l("Also, status point reset can't be undone. Do you really want this?"); next; if (askyesno() == ASK_YES) { if (countitem(Plushroom) >= @plush_count) return 1; mesn; mesq l("Alright, but... You only have @@ @@, and I need @@ to do the status reset for you!", countitem(Plushroom), getitemlink(Plushroom), @plush_count); } return 0; } function doStatusReset { delitem Plushroom, @plush_count; .@wasSP = StatusPoint; resetstatus; // Everything was done before dialog in case of forced disconnection speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Thank you."), l("Now stand still... It should not take much time..."); if (StatusPoint == .@wasSP) { speech l("It seems that you have no status points to reset!"), l("I'll return the plushroom to you, but please, do not waste my time."); getitem Plushroom, @plush_count; } else { speech l("Let's see... @@ of your status points have just been reset!", StatusPoint - .@wasSP), l("Spend it wisely this time."), lg("But you are welcome to reset your stats again if you bring me some more plushrooms!"); } return; } OnInit: .sex = GENDER_MALE; .distance = 4; end; }