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 "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";
@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;
}