summaryrefslogblamecommitdiff
path: root/npc/008-2-4/olana.txt
blob: f07c882f4df94b418c1e3342edd5ee8ebbcfbe15 (plain) (tree)
1
2
3
4
5
6
7
8
                          

             



               
               



                                                                            
 












































































                                                                                                                                         

                                                                     
     

          







































































































                                                                                                                                                                                            


                               
















































































































                                                                                                                                                                                       
       
                           

                   
                                                

        
// 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!"),
        lg("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."),
        lg("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 lg("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:
    .bodytype = BODYTYPE_3;
    .distance = 4;
    .minLevel = 40;
    .maxLevel = 80; // Differs from Juliet/Rossy
    end;
}