diff options
Diffstat (limited to 'npc/008-2-4/olana.txt')
-rw-r--r-- | npc/008-2-4/olana.txt | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/npc/008-2-4/olana.txt b/npc/008-2-4/olana.txt new file mode 100644 index 00000000..4c42f599 --- /dev/null +++ b/npc/008-2-4/olana.txt @@ -0,0 +1,321 @@ +// The Mana World scripts. +// Author: +// Micksha +// Jesusalva +// Alastrim +// Ali-g +// Dark Mage +// Description: +// Olana, the old woman who is looking for her daughter Rossy and Juliet. +// HurnscaldQuests_Rossy +// 0 - Quest Not Assigned +// 1 - Asked to look for Rossy + + +008-2-4,30,28,0 script Olana NPC_OLANA,{ + function olanaIntro; + function olanaIntroDone; + function olanaRossyLie; + function olanaDeliverBerries; + function olanaGetLetter; + function olanaRossyGoodGirl; + function olanaRossyBadMom; + function olanaRossyHappy; + .@q=getq(HurnscaldQuests_Rossy); + if (BaseLevel < .minLevel) + .@q = -1; // Hard Reset + mesn; + mesq l("Oh, a traveler. Welcome."); + next; + switch (.@q) { + case 0: + olanaIntro(); + break; + case 1: + olanaIntroDone(); + break; + case 2: + olanaRossyLie(); + break; + case 3: + mesc l("%s smiles at you, but she still seems preoccupied.", .name$); + next; + mesc l("Rossy was collecting fruits, right? Maybe she has some idea on how to cheer her mother up?"); + break; + case 4: + olanaDeliverBerries(); + break; + case 5: + olanaGetLetter(); + break; + case 6: + case 7: + case 8: + case 9: + mesn; + mesq l("Please bring Hocus' letter to my daughter as fast as you can."); + break; + case 10: + olanaRossyGoodGirl(); + break; + case 11: + mesn; + mesc l("%s says absently-minded, while staring at a portrait of her daughters, Rossy and Juliet:"); + mesq l("Could you do me a favor? Could you bring her %d %s? I am sure she will love them!", 15, getitemlink(ARedRose)); + break; + case 12: + olanaRossyBadMom(); + break; + case 13: + mesn; + mesq l("Please, tell Rossy I am really sorry and buy her Red Tulips instead, the same amount - %d, her age.", 15); + break; + case 14: + olanaRossyHappy(); + break; + case 15: + case 16: + mesn; + mesq l("Where is Juliet? I want to know where she is! Please find her, %s!", strcharinfo(0)); + break; + case 17: + mesn; + mesq l("Juliet got home sound and safe thanks to you, %s. I'll be eternally grateful.", strcharinfo(0)); + next; + mesn; + mesq l("Rossy and Juliet are out there, playing again. Please, feel free to play with them or to come here for a cup of water."); + break; + default: + speech + l("Did you see my daughters Rossy and Juliet, by chance?"), + l("She wasn't at home for two days now. I worry about her!"), + l("If you see her, please tell her to come home."); + } + close; + +function olanaIntro { + mesn; + mesq l("This is a private room from the Rusty Pick. You see, my father owns this inn."); + next; + mesn; + mesq l("I moved to Tulimshar so my daughters – Rossy and Juliet – could learn magic, but we come back to Hurnscald on occasion."); + next; + mesn; + mesc l("Olana suddenly looks very pale and starts to shiver."); + mesq l("Which reminds me - I let my two lovely girls play in the woods nearby but they haven't come back yet!"); + next; + mesn; + mesq l("These forests are not safe; I am afraid they might have wandered in the swamps by accident."); + next; + mesn; + mesq l("Could you pretty please see if they're fine? I can book you this inn for a night after that."); + next; + if (askyesno() == ASK_NO) { + mesn; + mesq l("Well, you *do* look weak, I guess I would get worried if you went after them and ended up lost and on the swamps."); + next; + mesn; + mesq l("But if you change your mind, please, call me again."); + return; + } + mesn; + mesq l("Excellent! I am counting on you!"); + setq HurnscaldQuests_Rossy, 1; + return; +} + +function olanaIntroDone { + mesn; + mesq l("My daughters – Rossy and Juliet – went to play in the woods but haven't come back yet."); + next; + mesn; + mesq l("Could you pretty please see if they're fine? I can book you this inn for a night after that."); + return; +} + +function olanaRossyLie { + mesn; + mesq l("Have you found my daughters yet? %%i"); + next; + select + l("No, sorry, I'll keep looking."), + l("I saw Rossy, she is fine."), + l("Yes, a snail attacked them."); + mes ""; + if (@menu == 1) { + mesn; + mesq l("Please do, I'm worried about them...."); + return; + } + if (@menu == 3) { + mesn; + mesq l("Oh noes!!!!"); + next; + mesc l("%s faints.", .name$); + mesc l("Maybe we could have told her that in a better way."); + return; + } + mesn; + mesq l("Oh you did? That's good. I'm relieved. But what about Juliet?"); + next; + select + l("I haven't found Juliet yet, sorry."), + l("Well, Rossy told both of them were fine..."); + mes ""; + mesn; + mesq l("Ok. They must be playing hide and seek. Thanks again... I can't express how grateful I am."); + next; + setq HurnscaldQuests_Rossy, 3; + mesn; + mesq l("I'll now book you a room on the Inn."); + select + l("Thanks."), + l("Actually, please don't. I do this out of the goodness of my heart."); + mes ""; + // Do not register the inn + if (@menu == 2) { + mesn; + mesq l("Oh... Okay, then!"); + return; + } + // Register the inn + INN_REGISTER = RUSTYPICK_INN; + PC_IS_DEAD = false; + savepoint "008-2-4", 26, 27; + return; +} + +function olanaDeliverBerries { + mesn; + mesq l("Hello there."); + next; + select + l("Erm, hi."), + l("Hi, Rossy asked me to give you this. She says it is a gift from both her and Juliet."); + mes ""; + if (@menu == 1) + return; + mesn; + mesq l("Ohhh... How sweet... Sometimes Rossy impresses me with her kindness. Here... You are spending so much time helping us, and we give nothing back. Take this as a small reward."); + quest_xp(.maxLevel, 2000); + quest_jxp(.maxLevel, 200); + quest_gp(.maxLevel, 10000); + setq HurnscaldQuests_Rossy, 5; + next; + mesn; + mesq l("Could you do me a small favor, though? I know I barely know you, and you must be very busy, but..."); + next; + olanaGetLetter(); + return; +} + +function olanaGetLetter { + mesn; + mesq l("Would you mind giving this letter to my little Rossy? You see, Rossy and Juliet are enrolled at Tulimshar Magic School..."); + next; + mesn; + mesq l("Rossy is doing alchemy, and I received a letter signed by Hocus, the Grandmaster. She did not submit her exam before we travelled, and now she is running out of time..."); + next; + mesn; + mesq l("Pretty please?"); + next; + if (askyesno() == ASK_NO) + return; + mesn; + mesq l("Thank you again. Please, bring it to her as fast as you can."); + setq HurnscaldQuests_Rossy, 6; + return; +} + +function olanaRossyGoodGirl { + mesn strcharinfo(0); + select + l("Rossy passed her exam."); + mes ""; + mesn; + mesq l("That's a relief to hear! I'm so proud of her."); + next; + mesn; + mesq l("Could you do me a favor? Could you bring her %d %s? I am sure she will love them!", 15, getitemlink(ARedRose)); + next; + select + l("Okay, I'll get the roses and give them to her."), + l("What? No way!"); + mes ""; + if (@menu == 2) + return; + mesn; + mesq l("I know this won't be enough, but here is %d E to help you.", 50); + next; + mesn; + mesq l("After you get them, please deliver them to my brilliant daughter, Rossy."); + Zeny+=50; + setq HurnscaldQuests_Rossy, 11; + return; +} + +function olanaRossyBadMom { + mesn; + mesq l("Did she like my present?"); + next; + select + l("Sure she did..."), + l("Well, you should have known that your daughter is allergic to roses."); + mes ""; + if (@menu == 1) { + mesn; + mes "%%H"; + return; + } + mesn; + mesq l("Oh, how stupid I am! Here, take some of my money and buy Red Tulips instead, the same amount. Keep the flowers."); + next; + mesn; + mesq l("Please, tell Rossy I am really sorry. My mind was on Juliet when I asked you to bring the red roses — they are her favorite."); + next; + mesn strcharinfo(0); + select + l("I will give her the tulips when I see her."); + mes ""; + mesn; + mesq l("Thank you. And don't forget to tell her that I'm really sorry."); + Zeny+=450; + setq HurnscaldQuests_Rossy, 13; + return; +} + +function olanaRossyHappy { + mesn; + mesq l("So?"); + next; + select + l("Rossy was happy with your gift, and asked me to say you are the nicest mother in the world."); + mes ""; + mesn; + mesq l("I'm so glad to hear that! But, have you seen Juliet too, by any chance?"); + next; + select + l("Erm, no, sorry."), + l("I'm sure she is fine."); + mes ""; + mesn; + mesq l("For some reason, I can't get off my mind she is in danger... Motherly instincts."); + next; + mesn; + mesq l("For now, I should reward you for all your effort thus far."); + .@item=any(Diamond, Ruby, Emerald, Sapphire, Topaz, Amethyst); + inventoryplace .@item, 1; + setq HurnscaldQuests_Rossy, 15; + getitem .@item, 1; + next; + mesn; + mesq l("But please, could you look for Juliet as well? I'm starting to get deeply worried, here."); + return; +} + +OnInit: + .distance = 4; + .minLevel = 40; + .maxLevel = 80; // Differs from Juliet/Rossy + end; +} |