//================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2012-2015 Hercules Dev Team //= Copyright (C) rAthena Dev Team //= Copyright (C) Euphy //= Copyright (C) eAthena Dev Team //= Copyright (C) L0ne_W0lf //= Copyright (C) Lupus //= Copyright (C) Evera //= //= Hercules is free software: you can redistribute it and/or modify //= it under the terms of the GNU General Public License as published by //= the Free Software Foundation, either version 3 of the License, or //= (at your option) any later version. //= //= This program is distributed in the hope that it will be useful, //= but WITHOUT ANY WARRANTY; without even the implied warranty of //= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //= GNU General Public License for more details. //= //= You should have received a copy of the GNU General Public License //= along with this program. If not, see . //========================================================================= //= Quest NPCs related to Niflheim //================= Description =========================================== //= Piano Key Ouest //= - Escape from Niflheim //= - Variables in use: nif_esc, MISC_QUEST (Bit 32) //= Message Delivery Quest //= - Deliver a message to Erious' departed wife. //= - Variables in use: nif_revive, MISC_QUEST (Bit 16384) //================= Current Version ======================================= //= 1.6 //========================================================================= //== Piano Quest :: nif_ryu ================================ niflheim,224,243,3 script Alreg#nif 4_M_NFDEADMAN,{ if (nif_piano) nif_piano = 0; mes "[Alreg]"; mes "Me like meat, muheh."; mes "You! Look tempting."; next; mes "[Alreg]"; mes "Me want to taste you."; next; mes "^FF3355*Crunch* Crunch*^000000"; if (nif_esc == 0 && (MISC_QUEST & 32) == 0) { percentheal -60,0; next; mes "["+ strcharinfo(PC_NAME) +"]"; mes "NooOOoOOoOoO~!"; next; mes "[Alreg]"; mes "It long time since I had meat"; mes "so... so good. You taste"; mes "good. Alreg give you this"; mes "for payback. Present!"; mes "*Burrrp*"; nif_esc = rand(1,2); getitem Piano_Keyboard,1; close; } percentheal -30,0; next; mes "["+ strcharinfo(PC_NAME) +"]"; mes "Ow~! What are you"; mes "trying to do, kill me?!"; next; mes "[Alreg]"; mes "Hm? Oh, no no no."; mes "Me am trying to eat you."; close; } nif_in,105,81,3 script Crayu#nif 4_M_NFDEADMAN2,{ mes "[Crayu]"; mes "Living one..."; mes "Listen to this song..."; mes "It's been sung by many for a"; mes "long time, but nobody knows"; mes "when it was made or who wrote it."; next; mes "[Crayu]"; mes "^FF00001. Mountain sunset to the west"; mes "^FF00002. Where the purple dusk falls "; mes "^FF00003. Surrounded by beautiful melody"; mes "^FF00004. You become the key that ignores its master^000000"; next; if (nif_esc == 1 || nif_esc == 4) { mes "[Crayu]"; mes "Okay, wait! Here's a test for you!"; switch(rand(1,4)) { case 1: .@songline$ = "Mountain sunset to the west"; mes "Write down the first line of the song."; break; case 2: .@songline$ = "Where the purple dusk falls"; mes "Write down the second line of the song."; break; case 3: .@songline$ = "Surrounded by beautiful melody"; mes "Write down the third line of the song."; break; case 4: .@songline$ = "You become the key that ignores its master"; mes "Write down the fourth line of the song."; break; } next; input(.@input$); if (.@input$ == .@songline$) { mes "[Crayu]"; mes "Excellent...!"; mes "So you've been listening~!"; mes "That makes you one of my"; mes "favorite guests. Here's a"; mes "little reward for you."; next; if (nif_esc == 1) nif_esc = 3; else nif_esc = 6; getitem Piano_Keyboard,1; mes "[Crayu]"; mes "Lastly, I hope you will show your"; mes "respect to other Bards, just as"; mes "you have done for me."; close; } mes "[Crayu]"; mes "*Sigh*... If you had only"; mes "listened to me, it would"; mes "have been easy to answer."; mes "Try to remember the line"; mes "and try again!"; close; } next; mes "[Crayu]"; mes "I wonder what the lyrics mean..."; mes "They seem quite profound..."; mes "I have the feeling that this song"; mes "carries some secret."; close; } nif_in,31,20,3 script Kuzkahina#nif 4_M_NFDEADMAN2,{ if (nif_esc == 2 || nif_esc == 3) { mes "[Kuzkahina]"; mes "I don't understand"; mes "why I can't make any"; mes "money with this store..."; mes "Even when I was alive"; mes "I could never make any"; mes "money with my businesses..."; next; mes "[Kuzkahina]"; mes "Hey you! Make yourself useful"; mes "and throw this away when you leave."; nif_esc += 2; getitem Piano_Keyboard,1; next; mes "[Kuzkahina]"; mes "Gosh, what's with this store?"; mes "How did I end up hiring such useless employees...?"; mes "*mumble mumble*"; mes "*mumble mumble*"; close; } mes "[Kuzkahina]"; mes "I don't understand"; mes "why I can't make any"; mes "money with this store..."; mes "Even when I was alive"; mes "I could never make any"; mes "money with my businesses..."; close; } niflheim,208,103,1 script #Graveyard1 HIDDEN_NPC,1,1,{ end; OnTouch: if (nif_esc == 5 || nif_esc == 7 || nif_esc == 8 || nif_esc == 10) { mes "^3355FFYou found something"; mes "half-buried near a grave."; mes "It looks very well-shaped.^000000"; next; mes "^3355FFWould you like to pick it up?^000000"; if (select("Yes", "No") == 1) { if (nif_esc < 10) nif_esc += 2; else if (nif_esc == 10) nif_esc = 11; getitem Piano_Keyboard,1; } close; } end; } niflheim,169,71,1 script #Graveyard2 HIDDEN_NPC,1,1,{ end; OnTouch: if (nif_esc == 6 || nif_esc == 9) { mes "^3355FFYou found something"; mes "half-buried near a grave."; mes "It looks very well-shaped.^000000"; next; mes "^3355FFWould you like to pick it up?^000000"; if (select("Yes", "No") == 1) { nif_esc += 2; getitem Piano_Keyboard,1; } close; } end; } nif_in,115,181,0 script #Piano HIDDEN_NPC,1,1,{ end; OnTouch: if (nif_esc == 0 && (MISC_QUEST & 32) == 0) { mes "^3355FFYou see a big, heavy piano."; mes "You get the feeling that"; mes "its music would sound magnificient.^000000"; next; mes "^3355FFAs you examine the piano,"; mes "you find that 7 keys"; mes "are missing in the"; mes "middle of the keyboard."; mes "If you had all the keys,"; mes "you could play music...^000000"; close; } if (nif_esc == 11 && countitem(Piano_Keyboard) > 5) { nif_esc = 12; delitem Piano_Keyboard,6; mes "^3355FFYou took the keys you've found"; mes "and inserted them into"; mes "each empty space.^000000"; next; mes "^3355FFBut then you realize"; mes "that you're missing the last"; mes "key for the space on the far"; mes "left of the keyboard...^000000"; close; } end; } nif_in,114,181,0 script #Piano3 HIDDEN_NPC,1,1,{ end; OnTouch: if (nif_esc == 12 || nif_esc == 13 || MISC_QUEST & 32) { mes "^3355FFAs you bend towards"; mes "the final empty key space"; mes "to take a better look at it...^000000"; next; soundeffect "complete.wav",0; next; if (nif_esc == 12) { MISC_QUEST |= 32; nif_piano = 0; } mes "^3355FFYou begin to feel dizzy and"; mes "your body feels as if it were"; mes "floating in air. Then, your"; mes "vision starts to blur...^000000"; close2; warp "nif_in",179,163; end; } end; } nif_in,188,168,3 script Witch#nif 4_F_NFDEADMGCIAN,{ mes "[Kirkena]"; mes "Huh? ...You're alive, aren't you?"; mes "I'm not sure how more of you are"; mes "able to get here and I don't"; mes "know your reasons for coming,"; mes "but this place is dangerous for"; mes "the living."; next; mes "[Kirkena]"; mes "I am sending you back"; mes "outside of this town."; mes "If you can help it, you"; mes "better not come back to"; mes "this place."; close2; warp "umbala",138,208; end; } //== Message Delivery Quest :: nif_npc_lackee ============== prt_in,161,20,3 script Erious#nif 4_F_03,{ if (MISC_QUEST & 16384) { mes "[Erious]"; mes "I wish you safety from harm"; mes "in your journeys, adventurer."; close; } if (nif_revive == 0) { mes "[Erious]"; mes "*Sob*Sob*"; mes "*Cries* Wahhh...!"; mes "Elly, how could you"; mes "leave me this way..."; emotion e_sob; next; if (select("Comfort him.", "Neglect him.") == 1) { mes "[Erious]"; mes "Ah, thank you for your kindness."; mes "*Sob* My wife died while I was on"; mes "a trip. I'm so sorry that I"; mes "couldn't be with her when"; mes "the end came..."; next; mes "[Erious]"; mes "I wish I could talk to my Elly,"; mes "although I know it's too late now."; mes "*Cries* But... there is one last"; mes "hope that I have. My absolute"; mes "final chance..."; next; mes "[Erious]"; mes "I was told that somewhere"; mes "in this world, there exists a town"; mes "where the dead reside. I might be"; mes "able to meet my wife there, but"; mes "I cannot leave my children here"; mes "without me. *Cries*"; next; if (select("I can deliver your message to her.", "I am so sorry to hear that.") == 1) { mes "[Erious]"; mes "Oh, can you?"; mes "Thank you so much for your"; mes "generosity. If you can do"; mes "this for me, I would be"; mes "greatly indebted to you."; next; mes "[Erious]"; mes "You're an adventurer, aren't you?"; mes "If your journeys take you to that"; mes "town of the dead, and if you"; mes "happen to meet her by chance..."; next; mes "[Erious]"; mes "Please send Elly a message for me,"; mes "let her know that what happened"; mes "a month ago was all my fault."; mes "Thank you for your help,"; mes "and please take care."; nif_revive = 1; setquest 11038; close; } mes "[Erious]"; mes "*Cries* Is there no way that I"; mes "can see her again? If I could"; mes "talk to her at least once more,"; mes "even if it's the last time,"; mes "I would do anything..."; close; } mes "[Erious]"; mes "*Cries* Eeeeelllllyyyy~~~~!"; mes "I never thought that would be"; mes "the last time we would see"; mes "each other..."; mes "*Sob*..."; close; } else if (nif_revive == 1) { mes "[Erious]"; mes "This place I was told about..."; mes "The town of the dead..."; mes "From what I remember, it was"; mes "located near some rest area."; next; mes "[Erious]"; mes "All day and night, it's filled"; mes "with never ending screams of"; mes "agony and despair. I hope that"; mes "this will be helpful in your search."; close; } else if (nif_revive == 5 || nif_revive == 6) { mes "[Erious]"; mes "Oh my! You really found the town,"; mes "have you? I really appreciate that"; mes "you've endured all this hardship"; mes "for me... Um...So in the end..."; mes "Were you able to meet my Elly?"; next; if (select("Yes.", "Sorry, I couldn't.") == 1) { if (nif_revive == 6 && countitem(Mementos) > 0) { mes "[Erious]"; mes "Are you serious? What did she say?"; mes "Did she say she will forgive me?"; next; select("Yes. And she gave me...this."); delitem Mementos,1; mes "[Erious]"; mes "Ah...In this box were the gifts"; mes "I gave her when we started"; mes "seeing each other. She had a"; mes "serious illness even before we"; mes "met, so I promised her that I"; mes "would cure her illness..."; next; mes "[Erious]"; mes "That's why I went on that trip..."; mes "to find a cure or medicine"; mes "for her... But my efforts turned"; mes "out to be a good for nothing."; mes "..................."; mes "........."; next; mes "[Erious]"; mes "Anyway, I appreciate your"; mes "generousity. I want to pay"; mes "you back for all the trouble"; mes "I caused you, but I only have"; mes "the medicine I found for her"; mes "illness during this trip."; next; mes "[Erious]"; mes "I hope you will take this medicine"; mes "as a token of my gratitute."; next; if (checkweight(Leaf_Of_Yggdrasil,26)) { MISC_QUEST |= 16384; nif_revive = 0; completequest 11043; getitem Yggdrasilberry,2; getitem Seed_Of_Yggdrasil,2; getitem Leaf_Of_Yggdrasil,10; mes "[Erious]"; mes "Thank you for everything."; mes "I wish you luck and safety"; mes "in your adventures."; close; } mes "[Erious]"; mes "I have something to give you,"; mes "but you're carrying too much"; mes "stuff for me to give it to"; mes "right now. Why don't you"; mes "store your items somewhere?"; close; } else if (nif_revive == 6 && countitem(Mementos) < 1) { mes "[Erious]"; mes "Hmm...this is odd. I'm sure she would give you something as a token of meeting her. By any chance, is there anything that you've forgetten to bring me?"; close; } mes "[Erious]"; mes "I guess you misunderstood"; mes "something or you're trying"; mes "to scam a man in grief."; close; } if (nif_revive == 5) { mes "[Erious]"; mes "I see...you have failed to find"; mes "her... However, I also understand"; mes "that fulfilling my request may"; mes "be impossible..."; next; mes "[Erious]"; mes "You've really gone out of your way"; mes "to help me, so I want to give you"; mes "something as a token of my"; mes "gratitute."; next; if (checkweight(Leaf_Of_Yggdrasil,10)) { MISC_QUEST |= 16384; nif_revive = 0; completequest 11042; getitem Leaf_Of_Yggdrasil,10; mes "[Erious]"; mes "Thank you for everything."; mes "I wish you luck and safety"; mes "from harm in your journeys."; close; } mes "[Erious]"; mes "I have something to give you,"; mes "but you're carrying too much"; mes "stuff for me to give it to"; mes "right now. Why don't you"; mes "store your items somewhere?"; close; } mes "[Erious]"; mes "I see..."; mes "...Wait! Doesn't that belong"; mes "to my wife, Elly? Why are you"; mes "trying to cheat a grieving man...?"; close; } end; } umbala,215,181,3 script Billik 4_M_JOB_KNIGHT1,{ if (nif_revive > 1 || MISC_QUEST & 16384) { mes "[Billik]"; mes "Well, long time no see."; mes "If you have a chance in the"; mes "future, let's meet in the"; mes "town of the dead later."; mes "Hahahaha~"; emotion e_no1; close; } if (nif_revive == 1) { mes "[Billik]"; mes "The Town of the dead..."; mes "It's a very dangerous place."; mes "Why would you want to go there?"; next; if (select("I have to meet somebody there.", "It's a part of my adventure.") == 1) { mes "[Billik]"; mes "Someone you have to meet there..."; mes "Hmm... I suppose you wish to"; mes "contact the dead..."; mes "I can also see that you're"; mes "determined to go."; next; mes "[Billik]"; mes "*Sigh* Okay, if you really want to"; mes "go, you must find a man named"; mes "'Feylin.' It's very important to"; mes "let him know that I introduced"; mes "him to you."; next; mes "[Billik]"; mes "He's not very trusting, but he"; mes "likes roses a lot, so bring a rose"; mes "for him. That way, he'll know for"; mes "sure that I've sent you."; nif_revive = 2; changequest 11038,11039; next; mes "[Billik]"; mes "The town of the dead is located"; mes "north of this place. Remember, it"; mes "is very dangerous to go there,"; mes "even for well experienced"; mes "adventurers, so..."; mes "Be careful."; close; } mes "[Billik]"; mes "Hahaha~ I guess you like adventure"; mes "as much as I do. Although it's a"; mes "very dangrous place, you will be"; mes "paid back for your effort after"; mes "you get there. But be careful."; close; } else if (nif_revive == 0) { mes "[Billik]"; mes "What brings you here? I'm busy,"; mes "leave if you don't have any business."; close; } } niflheim,153,215,3 script Feylin 4_M_NFDEADMAN2,{ if (nif_revive == 2) { mes "[Feylin]"; mes "Poor "+ (Sex == SEX_MALE ? "guy" : "girl") +"..."; mes "Dying at such a young age..."; mes "I am always sorry to see the"; mes "young pass away."; next; mes "[Feylin]"; mes "............??"; mes "Oh, I see you're not dead yet,"; mes "are you? It's unbelievable to"; mes "see another living person"; mes "in this town."; next; mes "[Feylin]"; mes "Are you coming to rescue someone,"; mes "or do you have another purpose?"; mes "If you came here to meet a"; mes "deceased friend of yours, you've"; mes "come to the wrong person."; next; mes "[Feylin]"; mes "Nobody in Niffelheim can"; mes "perform that kind of miracle..."; next; mes "[Feylin]"; mes "I can tell you have been through"; mes "much hardship, but unfortunately,"; mes "you came here for nothing. I hope"; mes "you go back to where you came"; mes "from before it's too late."; nif_revive = 3; changequest 11039,11040; close; } else if (nif_revive == 3) { mes "[Feylin]"; mes "I've asked you to leave this"; mes "town immediately. I'm sorry"; mes "but I know nothing about what"; mes "you are asking."; emotion e_an; next; if (select("But...", "I am sorry.") == 1) { mes "[Feylin]"; mes "You must know something..."; mes "Otherwise, you wouldn't be"; mes "so stubborn. I am not sure"; mes "who told you contacting the"; mes "dead might be possible..."; next; mes "[Feylin]"; mes "But I surely wouldn't have told"; mes "you. Besides, speaking about"; mes "such things is taboo."; nif_revive = 4; changequest 11040,11041; close; } mes "[Feylin]"; mes "Please consider leaving this"; mes "place as soon as possible."; mes "Nobody should stay in"; mes "Niflheim for too long."; close; } else if (nif_revive == 4) { if (countitem(Witherless_Rose) > 0) { mes "[Feylin]"; mes "Huh, Billik must have sent you."; mes "Since I'm indebted to him, I"; mes "suppose I will help you."; mes "But let me warn you."; mes "The price that I demand may be"; mes "more that you expect..."; next; if (select("I'm willing to do this.", "I don't think I can do this.") == 1) { if (BaseLevel > 79) { mes "[Feylin]"; mes "Alright, but you must promise"; mes "me that you will not let other"; mes "people know what I am about"; mes "to tell you."; next; mes "[Feylin]"; mes "This sorcery requires great"; mes "sacrifice. Needless to say, there"; mes "is a chance that this spell may"; mes "fail. I must also have"; mes "10 Yggdrasil Leaf to cast this"; mes "spell. Do you wish to continue?"; next; if (select("Yes", "No") == 1) { if (countitem(Leaf_Of_Yggdrasil) > 9) { mes "[Feylin]"; mes "I see. Then we shall begin."; mes "Woombahsokasabahah!"; mes "Woombah woombah hoombabah!"; mes "Yeeeeep!"; next; .@nif_revive1 = rand(1,100); if (.@nif_revive1 > 0) && (.@nif_revive1 < 88) { mes "[Feylin]"; mes "...I am sorry."; mes "I have failed to summon"; mes "who you wish to see. I am"; mes "really sorry for this result."; emotion e_omg; delitem Witherless_Rose,1; delitem Leaf_Of_Yggdrasil,10; nif_revive = 5; changequest 11041,11042; percentheal -99,0; next; mes "[Feylin]"; mes "Unfortunately, it may be"; mes "impossible to summon the"; mes "spirit of the person with"; mes "whom you wished to speak..."; close; } else if (.@nif_revive1 > 87) && (.@nif_revive1 < 101) { delitem Witherless_Rose,1; delitem Leaf_Of_Yggdrasil,10; percentheal -50,0; mes "[Feylin]"; mes ".........."; mes ".........."; next; mes "[Elly]"; mes ".........."; mes ".....Umm..."; mes "...Wasn't I just dead?"; mes "Um, do I know you?"; next; select("I brought a message from your husband."); mes "[Elly]"; mes "Oh...I see...I'm sorry that I could not meet him before I died..."; mes "So what is his message for me?"; next; select("Forgive him for what happened a month ago."); mes "[Elly]"; mes "*Sigh* He's such a nice husband..."; mes "He pays such attention, even to"; mes "the little things. Though, I"; mes "should be the one apologizing"; mes "to him..."; next; mes "[Elly]"; mes "Please give him this box, and tell"; mes "him to forget about me. He should"; mes "live the rest of his life happily"; mes "with someone else. Oh, also let"; mes "him know that I forgive him."; nif_revive = 6; changequest 11040,11043; getitem Mementos,1; next; mes "[Elly]"; mes "I am glad to hear from my"; mes "husband one more time. But I"; mes "think I have to go now."; mes "Thank you for your trouble."; mes "Farewell..."; next; mes "[Elly]"; mes "....................."; mes "...................."; next; mes "[Feylin]"; mes "I guess you have accomplished what"; mes "you wanted. Well then, be careful"; mes "when you go back..."; close; } } else { mes "[Feylin]"; mes "If you don't have the"; mes "items, we cannot proceed."; mes "Remember, I need 10 Yggdrasil"; mes "Leaves to perform this spell."; mes "Please bring them as soon"; mes "as possible."; close; } } mes "[Feylin]"; mes "I hope you will bring the items"; mes "first. But... I don't have the"; mes "confidence to promise that"; mes "this spell will cast successfully."; close; } mes "[Feylin]"; mes "Hmm... You don't seem to have"; mes "the strength to endure the"; mes "casting of this spell. At"; mes "your current strength, this"; mes "spell will kill you."; mes "I cannot take that risk."; close; } mes "[Feylin]"; mes "You made a good decision."; mes "It's not a good idea to perform"; mes "this kind of sorcery in the"; mes "first place because of the"; mes "risks involved..."; close; } mes "[Feylin]"; mes "No matter how many times you ask"; mes "me, I cannot help you. Please"; mes "leave this place as soon as you can."; close; } mes "[Feylin]"; mes "What makes you to come to such"; mes "a dangerous town? Please leave"; mes "this place as soon as you can."; close; }