summaryrefslogblamecommitdiff
path: root/npc/002-2/omar.txt
blob: 1307a6f84b52899849573b04f34a50d3d462865f (plain) (tree)










































































































































































































































































































































                                                                                                                                                          
function	script	KadiyaSubquestConsts	{
    @Q_kadiya_status = (QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;

    @Q_STATUS_NONE = 0;
    @Q_STATUS_KNOWS_MOPOX = 1;
    @Q_STATUS_MADE_MOPOX = 2;
    @Q_STATUS_DIDNT_DRINK = 3;
    @Q_STATUS_WANTS_CHOCOCAKE = 4;
    @Q_STATUS_WANTS_ORANGECUPCAKE = 5;
    @Q_STATUS_COMPLETED = 6;
    @Q_STATUS_COMPLETED_ELANORE = 7;
    @Q_STATUS_COMPLETED_NOELANORE = 8;
    @Q_STATUS_COMPLETED_POST_ELANORE = 9;

    if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) < 4) set @Q_kadiya_status, @Q_STATUS_NONE;

    if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) > 4) set @Q_kadiya_status, @Q_STATUS_COMPLETED_POST_ELANORE;

    return;
}

002-2,117,126,0	script	Omar	NPC162,{
    callfunc "ElanoreFix";
    callfunc "KadiyaSubquestConsts";

    @Q_status = @Q_kadiya_status;

    if (@Q_status >= @Q_STATUS_COMPLETED) goto L_cured;

    if (@Q_status == @Q_STATUS_DIDNT_DRINK) goto L_didnt_drink;

    if (@Q_status > @Q_STATUS_DIDNT_DRINK) goto L_make_food;

    mes "[Omar]";
    mes "\"Welcome to my humble abode.\"";
    next;
    menu
        "Well met!  May I ask who you are?", L_omar,
        "What's wrong with your daughter?", L_kadiya_sick,
        "Thank you!", L_close;

L_omar:
    mes "[Omar]";
    mes "\"My name is Omar;  I am a trader of oils and spices.\"";
    goto L_close;

L_kadiya_sick:
    mes "[Omar]";
    mes "\"Kadiya has caught Ponderpox, I fear.\"";
    mes "He sighs.";
    mes "\"She's has been feverish for many days now. I wish there were something I could do.\"";
    next;
    menu
        "Have you asked Elanore the healer?", L_sick_elanore,
        "How about the Hurnscald hospital?", L_sick_hospital,
        "Can I help?", L_sick_self,
        "I'm sorry to hear that.", L_Next;

L_Next:
    mes "[Omar]";
    mes "\"Well, she is a strong girl. I am sure that she will get over it eventually.\"";
    mes "He smiles, but you see doubt in his eyes.";
    goto L_close;

L_sick_elanore:
    mes "[Omar]";
    mes "\"Elanore?\"";
    mes "He frowns.";
    mes "\"She knows nothing. I see no point in talking to her.\"";
    goto L_close;

L_sick_hospital:
    mes "[Omar]";
    mes "\"Hurnscald is too far away. I don't think that it would be good for her to go on such a long trip.\"";
    goto L_close;

L_sick_self:
    mes "[Omar]";
    mes "\"You are very kind, but I don't think there is anything you can do.\"";
    goto L_close;

L_didnt_drink:
    mes "[Omar]";
    mes "\"So she has Mopox, not Ponderpox, you say?  Hmm. That is much harder to cure, I think.\"";
    mes "\"I am grateful for the effort you put into brewing a potion for her. But it does smell vile...\"";
    next;
    mes "[Omar]";
    mes "\"I promised my dear wife that I would never make Kadiya eat or drink anything she doesn't like. So I won't force her to drink this.\"";
    next;
    mes "[Omar]";
    @Q_status = (@Q_STATUS_WANTS_CHOCOCAKE + rand(2));
    callsub S_Update_Var;
    if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE)
        mes "\"If only we could make it smell and taste like orange cupcakes... she really loves those cupcakes.\"";
    if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE)
        mes "\"If only this were a chocolate cake and not a potion... she really loves chocolate cakes.\"";
    goto L_close;

L_make_food:
    mes "[Omar]";
    mes "\"I should stay here to watch over her. I wish I could think of a way to convince her to drink the potion...\"";
    if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE)
        mes "\"Alas, it is not an orange cupcake.\"";
    if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE)
        mes "\"If only it were to smell and taste like her favourite chocolate cake...\"";
    goto L_close;

L_cured:
    if (@Q_status == @Q_STATUS_COMPLETED) goto L_cured_choice;
    mes "[Omar]";
    mes "\"She is sleeping now, but she seems to be much better. I am sure that she will be up and running around again soon.\"";
    goto L_close;

L_cured_choice:
    mes "[Omar]";
    mes "\"I am very grateful for your help. I really was sure that it was Ponderpox, not Mopox, that she had.\"";
    next;
    menu
        "Oh, it was nothing.", L_cured_nothing,
        "I didn't do it alone; Elanore helped.", L_cured_elanore,
        "That will be 5000 GP.", L_Next1;

L_Next1:
    mes "[Omar]";
    mes "\"Ah, certainly.\"";
    mes "He hands you a small bag of money.";
    next;
    @Q_status = @Q_STATUS_COMPLETED_NOELANORE;
    callsub S_Update_Var;
    Zeny = Zeny + 5000;
    goto L_close;

L_cured_nothing:
    mes "[Omar]";
    mes "\"No, this wasn't nothing. She is everything to me. Here, you deserve a reward.\"";
    mes "He hands you a bag of money containing 10,000 GP and two pearls.";
    mes "\"And feel free to drop by again whenever you would like!\"";
    @Q_status = @Q_STATUS_COMPLETED_NOELANORE;
    callsub S_Update_Var;
    getitem "Pearl", 2;
    Zeny = Zeny + 10000;
    goto L_close;

L_cured_elanore:
    mes "[Omar]";
    mes "Omar frowns.";
    mes "\"That witch?  You worked with her without telling me?\"";
    mes "He looks over to his daughter, concern suddenly in his eyes.";
    mes "\"She is looking better, though...\"";
    next;
    mes "[Omar]";
    mes "Omar shakes his head.";
    mes "\"I will have to think about this. Please leave me alone.\"";
    next;
    @Q_status = @Q_STATUS_COMPLETED_ELANORE;
    callsub S_Update_Var;
    goto L_close;

L_close:
    @Q_STATUS_KNOWS_MOPOX = 0;
    @Q_STATUS_MADE_MOPOX = 0;
    @Q_STATUS_DIDNT_DRINK = 0;
    @Q_STATUS_WANTS_CHOCOCAKE = 0;
    @Q_STATUS_WANTS_ORANGECUPCAKE = 0;
    @Q_STATUS_COMPLETED = 0;
    @Q_STATUS_COMPLETED_ELANORE = 0;
    @Q_STATUS_COMPLETED_NOELANORE = 0;
    @Q_STATUS_COMPLETED_POST_ELANORE = 0;
    @Q_status = 0;
    close;


S_Update_Var:
    QUEST_MAGIC2 = (QUEST_MAGIC2 & ~(NIBBLE_3_MASK) | (@Q_status << NIBBLE_3_SHIFT));
    return;
}

002-2,124,124,0	script	Kadiya	NPC174,{
    @child_number = 7;
    callfunc "XmasList";

    callfunc "ElanoreFix";
    @Q_MASK = NIBBLE_3_MASK;
    @Q_SHIFT = NIBBLE_3_SHIFT;
    callfunc "KadiyaSubquestConsts";
    @Q_status = @Q_kadiya_status;
    if (@Q_status >= @Q_STATUS_COMPLETED) goto L_cured;

    mes "You see a young girl lying in bed. At first she doesn't seem to notice you approaching.";
    mes "Finally, she turns her head towards you. Judging from the sweat on her forehead and look in her eyes, she is suffering from some kind of fever.";
    next;
    mes "[Kadiya]";
    mes "\"Hello,\" she says in a tiny voice.";
    next;
    @M_NAME = 1;
    @M_CANDY = 2;
    @M_POTION = 3;
    @M_CHOCOCAKE = 4;
    @M_CUPCAKE = 5;

    setarray @choice$, "Hello!  What's your name?", "Would you like some candy?", "", "", "", "", "", "";
    setarray @choice_idx, @M_NAME, @M_CANDY, 0, 0, 0, 0, 0, 0;
    @choices_nr = 2;

    if (countitem("MopoxCurePotion") == 0) goto L_M_no_cure;

    @choice_idx[@choices_nr] = @M_POTION;
    @choice$[@choices_nr] = "This potion will cure your illness!";
    @choices_nr = @choices_nr + 1;
    goto L_M_no_cure;

L_M_no_cure:
    if ((countitem("LacedChocolateCake") == 0) || (@Q_status != @Q_STATUS_WANTS_CHOCOCAKE))
        goto L_M_no_chococake;
    @choice_idx[@choices_nr] = @M_CHOCOCAKE;
    @choice$[@choices_nr] = "Would you like special chocolate cake?";
    @choices_nr = @choices_nr + 1;
    goto L_M_no_chococake;

L_M_no_chococake:
    if ((countitem("LacedOrangeCupcake") == 0) || (@Q_status != @Q_STATUS_WANTS_ORANGECUPCAKE))
        goto L_M_no_cupcake;
    @choice_idx[@choices_nr] = @M_CUPCAKE;
    @choice$[@choices_nr] = "Would you like special orange cupcake?";
    @choices_nr = @choices_nr + 1;
    goto L_M_no_cupcake;

L_M_no_cupcake:
    @choice_idx[@choices_nr] = 0;
    @choice$[@choices_nr] = "Goodbye.";
    @choices_nr = @choices_nr + 1;

    menu
        @choice$[0], L_MenuItems,
        @choice$[1], L_MenuItems,
        @choice$[2], L_MenuItems,
        @choice$[3], L_MenuItems,
        @choice$[4], L_MenuItems,
        @choice$[5], L_MenuItems;

L_MenuItems:
    @choice = @choice_idx[@menu - 1];

    if (@choice == @M_NAME) goto L_name;
    if (@choice == @M_CANDY) goto L_No_candy;
    if (@choice == @M_POTION) goto L_Potion;
    if (@choice == @M_CHOCOCAKE) goto L_chococake;
    if (@choice == @M_CUPCAKE) goto L_cupcake;
    goto L_close;

L_name:
    mes "[Kadiya]";
    mes "She smiles a faint smile.";
    mes "\"My name is Kadiya.\"";
    goto L_close;

L_No_candy:
    mes "[Kadiya]";
    mes "She hesitates for a moment.";
    mes "\"No, thank you. I don't think I should.\"";
    goto L_close;

L_Potion:
    mes "[Kadiya]";
    if (@Q_status < @Q_STATUS_DIDNT_DRINK) set @Q_status, @Q_STATUS_DIDNT_DRINK;
    callsub S_Update_Var;

    mes "Kadiya grimaces and pushes the bottle away.";
    mes "\"That smells terrible!\"";
    next;
    mes "[Kadiya]";
    mes "She pulls the sheets over her head.";
    mes "\"I won't drink that!\"";
    goto L_close;

L_chococake:
    delitem "LacedChocolateCake", 1;
    goto L_do_cure;

L_cupcake:
    delitem "LacedOrangeCupcake", 1;
    goto L_do_cure;

L_do_cure:
    if (@Q_status < @Q_STATUS_COMPLETED) set @Q_status, @Q_STATUS_COMPLETED;
    callsub S_Update_Var;

    mes "[Kadiya]";
    mes "Kadiya's eyes widen.";
    mes "\"Oh!  Daddy, is it okay if I eat this?\"";
    mes "Omar nods and smiles. \"You should eat a bit to regain your strength, sweetheart.\"";
    next;
    mes "[Kadiya]";
    mes "Kadiya devours your gift in just a handful of bites.";
    next;
    mes "[Kadiya]";
    mes "She smiles. \"Thank you!  I feel better already!\".";
    next;
    mes "[Kadiya]";
    mes "She looks much healthier, too. Omar walks over and touches her forehead.";
    mes "\"Now that is funny – your fever has gone down quite a bit!\"";
    mes "He smiles at you. \"Thank you for your help!\"";
    next;
    mes "[Kadiya]";
    mes "\"You should get some sleep now, sweetheart. I'm sure that you will be better soon.\"";
    goto L_close;

L_cured:
    mes "[Kadiya]";
    mes "Kadiya seems to be sleeping calmly. She looks much less sweaty than earlier; unless you are very much mistaken, her fever has disappeared.";
    goto L_close;

L_close:
    @Q_status = 0;
    @Q_MASK = 0;
    @Q_SHIFT = 0;
    @M_NAME = 0;
    @M_CANDY = 0;
    @M_POTION = 0;
    @M_CHOCOCAKE = 0;
    @M_CUPCAKE = 0;
    @choice = 0;
    @choices_nr = 0;
    cleararray @choice_idx[0], 0, 7;
    cleararray @choice$[0], "", 7;
    close;

S_Update_Var:
    QUEST_MAGIC2 = (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT));
    return;
}