diff options
Diffstat (limited to 'npc/001-2_Tulimshar')
-rw-r--r-- | npc/001-2_Tulimshar/omar.txt | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/npc/001-2_Tulimshar/omar.txt b/npc/001-2_Tulimshar/omar.txt index a495dd0a..2fd813ac 100644 --- a/npc/001-2_Tulimshar/omar.txt +++ b/npc/001-2_Tulimshar/omar.txt @@ -1,7 +1,346 @@ // +function script KadiyaSubquestConsts { + set @Q_kadiya_status, (QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT; + + set @Q_STATUS_NONE, 0; + set @Q_STATUS_KNOWS_MOPOX, 1; + set @Q_STATUS_MADE_MOPOX, 2; + set @Q_STATUS_DIDNT_DRINK, 3; + set @Q_STATUS_WANTS_CHOCOCAKE, 4; + set @Q_STATUS_WANTS_ORANGECUPCAKE, 5; + set @Q_STATUS_COMPLETED, 6; + set @Q_STATUS_COMPLETED_ELANORE, 7; + set @Q_STATUS_COMPLETED_NOELANORE, 8; + set @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; +} + 001-2.gat,70,60,0 script Omar 162,{ + callfunc "KadiyaSubquestConsts"; + + set @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!", -; close; + +L_omar: + mes "[Omar]"; + mes "\"My name is Omar; I am a trader of oils and spices.\""; + 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.", -; + + 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."; + close; + +L_sick_elanore: + mes "[Omar]"; + mes "\"Elanore?\""; + mes "He frowns."; + mes "\"She knows nothing. I see no point in talking to her.\""; + 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.\""; + close; + +L_sick_self: + mes "[Omar]"; + mes "\"You are very kind, but I don't think there is anything you can do.\""; + 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]"; + set @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.\""; + 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...\""; + 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.\""; + 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.", -; + + mes "[Omar]"; + mes "\"Ah, certainly.\""; + mes "He hands you a small bag of money."; + next; + + set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; + callsub S_update_var; + + set zeny, zeny + 5000; + 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!\""; + + set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; + callsub S_update_var; + + getitem "Pearl", 2; + set zeny, zeny + 10000; + 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; + + set @Q_status, @Q_STATUS_COMPLETED_ELANORE; + callsub S_update_var; + + close; + +S_update_var: + set QUEST_MAGIC2, + (QUEST_MAGIC2 & ~(NIBBLE_3_MASK) + | (@Q_status << NIBBLE_3_SHIFT)); + return; +} + + +001-2.gat,76,59,0 script _______Kadiya 174,{ + set @Q_MASK, NIBBLE_3_MASK; + set @Q_SHIFT, NIBBLE_3_SHIFT; + + callfunc "KadiyaSubquestConsts"; + set @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; + + set @M_NAME, 1; + set @M_CANDY, 2; + set @M_POTION, 3; + set @M_CHOCOCAKE, 4; + set @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; + set @choices_nr, 2; + + if (countitem("MopoxCurePotion") == 0) + goto L_M_no_cure; + + set @choice_idx[@choices_nr], @M_POTION; + set @choice$[@choices_nr], "This potion will cure your illness!"; + set @choices_nr, @choices_nr + 1; + +L_M_no_cure: + + if ((countitem("LacedChocolateCake") == 0) || (@Q_status != @Q_STATUS_WANTS_CHOCOCAKE)) + goto L_M_no_chococake; + + set @choice_idx[@choices_nr], @M_CHOCOCAKE; + set @choice$[@choices_nr], "Would you like special chocolate cake?"; + set @choices_nr, @choices_nr + 1; + +L_M_no_chococake: + + if ((countitem("LacedOrangeCupcake") == 0) || (@Q_status != @Q_STATUS_WANTS_ORANGECUPCAKE)) + goto L_M_no_cupcake; + + set @choice_idx[@choices_nr], @M_CUPCAKE; + set @choice$[@choices_nr], "Would you like special orange cupcake?"; + set @choices_nr, @choices_nr + 1; + +L_M_no_cupcake: + + set @choice_idx[@choices_nr], 0; + set @choice$[@choices_nr], "Goodbye."; + set @choices_nr, @choices_nr + 1; + + menu + @choice$[0], -, + @choice$[1], -, + @choice$[2], -, + @choice$[3], -, + @choice$[4], -, + @choice$[5], -; + + set @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; + + close; + +L_name: + mes "[Kadiya]"; + mes "She smiles a faint smile."; + mes "\"My name is Kadiya.\""; + + close; + +L_no_candy: + mes "[Kadiya]"; + mes "She hesitates for a moment."; + mes "\"No, thank you. I don't think I should.\""; + + 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!\""; + next; + + 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.\""; + close; + +L_goodbye: + mes "[Kadiya]"; + mes "Goodbye!"; + + 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."; + close; + +S_update_var: + set QUEST_MAGIC2, + (QUEST_MAGIC2 & ~(@Q_MASK) + | (@Q_status << @Q_SHIFT)); + return; } |