diff options
author | Wushin <pasekei@gmail.com> | 2015-01-07 21:25:14 -0600 |
---|---|---|
committer | Wushin <pasekei@gmail.com> | 2015-01-07 21:25:14 -0600 |
commit | b734af239e8ff1e7ea746ea327fb84c62be09b7e (patch) | |
tree | cbc5f399ccf8dd226056887a70b9a313f88bee6e /world/map/npc/002-2/omar.txt | |
parent | 2c09797ebd2c03b2cbe9a458f8ea8d1fbd04ccff (diff) | |
parent | 61c88ec162713b980f30e6e5111c1cfbd9f23d3a (diff) | |
download | serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.tar.gz serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.tar.bz2 serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.tar.xz serverdata-b734af239e8ff1e7ea746ea327fb84c62be09b7e.zip |
Merge pull request #223 from wushin/moving-tutorial
Move Tutorial to Hurnscald
Diffstat (limited to 'world/map/npc/002-2/omar.txt')
-rw-r--r-- | world/map/npc/002-2/omar.txt | 335 |
1 files changed, 335 insertions, 0 deletions
diff --git a/world/map/npc/002-2/omar.txt b/world/map/npc/002-2/omar.txt new file mode 100644 index 00000000..048f129c --- /dev/null +++ b/world/map/npc/002-2/omar.txt @@ -0,0 +1,335 @@ +// +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; +} + +002-2.gat,117,126,0|script|Omar|162 +{ + callfunc "ElanoreFix"; + 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!", 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]"; + 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.\""; + 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; + set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; + callsub S_update_var; + set 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!\""; + set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; + callsub S_update_var; + getitem "Pearl", 2; + set 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; + set @Q_status, @Q_STATUS_COMPLETED_ELANORE; + callsub S_update_var; + goto L_Close; + +L_Close: + set @Q_STATUS_KNOWS_MOPOX, 0; + set @Q_STATUS_MADE_MOPOX, 0; + set @Q_STATUS_DIDNT_DRINK, 0; + set @Q_STATUS_WANTS_CHOCOCAKE, 0; + set @Q_STATUS_WANTS_ORANGECUPCAKE, 0; + set @Q_STATUS_COMPLETED, 0; + set @Q_STATUS_COMPLETED_ELANORE, 0; + set @Q_STATUS_COMPLETED_NOELANORE, 0; + set @Q_STATUS_COMPLETED_POST_ELANORE, 0; + set @Q_status, 0; + close; + + +S_update_var: + set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(NIBBLE_3_MASK) | (@Q_status << NIBBLE_3_SHIFT)); + return; +} + +002-2.gat,124,124,0|script|Kadiya|174 +{ + set @child_number, 7; + callfunc "XmasList"; + + callfunc "ElanoreFix"; + 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; + goto L_M_no_cure; + +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; + goto L_M_no_chococake; + +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; + goto L_M_no_cupcake; + +L_M_no_cupcake: + set @choice_idx[@choices_nr], 0; + set @choice$[@choices_nr], "Goodbye."; + set @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: + 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; + 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: + set @Q_status, 0; + set @Q_MASK, 0; + set @Q_SHIFT, 0; + set @M_NAME, 0; + set @M_CANDY, 0; + set @M_POTION, 0; + set @M_CHOCOCAKE, 0; + set @M_CUPCAKE, 0; + set @choice, 0; + set @choices_nr, 0; + cleararray @choice_idx[0], 0, 7; + cleararray @choice$[0], "", 7; + close; + +S_update_var: + set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); + return; +} |