diff options
41 files changed, 3015 insertions, 2887 deletions
diff --git a/world/map/npc/014-1/wedding-officiator.txt b/world/map/npc/014-1/wedding-officiator.txt index 61810504..617a99ae 100644 --- a/world/map/npc/014-1/wedding-officiator.txt +++ b/world/map/npc/014-1/wedding-officiator.txt @@ -1,255 +1,247 @@ // Wedding officiator: Marriages and divorces -014-1.gat,31,31,0 script Wedding Officiator 164,{ - mes "[Wedding Officiator]"; - mes "A young lady in a long, green dress is overseeing the park. As she notices you looking at her, she gives you a broad and happy smile."; - mes "\"Hi there! I'm Wendy, here for all your marriage needs!\""; - next; +014-1.gat,31,31,0|script|Wedding Officiator|164,{ + mes "[Wedding Officiator]"; + mes "A young lady in a long, green dress is overseeing the park. As she notices you looking at her, she gives you a broad and happy smile."; + mes "\"Hi there! I'm Wendy, here for all your marriage needs!\""; + next; L_main: - if (getpartnerid2()) - goto L_main_married; + if (getpartnerid2()) + goto L_main_married; - menu "What exactly do you do?", L_explain_self, - "How do I get married?", L_explain_marriage, - "I would like to get married.", L_get_married, - "Goodbye.", L_end; - close; + menu + "What exactly do you do?", L_explain_self, + "How do I get married?", L_explain_marriage, + "I would like to get married.", L_get_married, + "Goodbye.", L_end; + close; L_explain_self: - mes "[Wedding Officiator]"; - mes "\"I'm responsible for marriage and divorce proceedings. Every married couple must be registered, so I keep a looong list of couples and send that to the magistrates every now and then.\""; - next; - mes "[Wedding Officiator]"; - mes "\"So if you have a sweetheart and the two of you are getting along particularly well, and you think that you are ready to make that big final step-- well, then come here and talk to me!\""; - next; - goto L_main; + mes "[Wedding Officiator]"; + mes "\"I'm responsible for marriage and divorce proceedings. Every married couple must be registered, so I keep a looong list of couples and send that to the magistrates every now and then.\""; + next; + mes "[Wedding Officiator]"; + mes "\"So if you have a sweetheart and the two of you are getting along particularly well, and you think that you are ready to make that big final step-- well, then come here and talk to me!\""; + next; + goto L_main; L_explain_marriage: - mes "[Wedding Officiator]"; - mes "\"If you are sure that you are ready to get married, then first you come and talk to me here-- I need to register you, after all. You will first have to pay me a small fee of " + WEDDING_FEE + " GP.\""; - next; - mes "[Wedding Officiator]"; - mes "\"Both you and your partner must be at least " + WEDDING_MIN_LEVEL + " levels of age, though; the law is very firm on that. But if all of that works out, I will give you two wedding rings for the ceremony.\""; - next; - mes "[Wedding Officiator]"; - mes "\"To complete the marriage, each of you has to put on one of these rings, and you have to stand next to each other in the southern part of this park. Then one of you says `marry' and then the other person's name.\""; - next; - mes "[Wedding Officiator]"; - mes "\"So if you would want to marry me, for example, you would say `marry Wendy'. Just like that. Your partner then has to decide whether he or she wants that. And if you both agree, then you're married!\""; - mes "She again smiles that broad smile of hers."; - next; - goto L_main; + mes "[Wedding Officiator]"; + mes "\"If you are sure that you are ready to get married, then first you come and talk to me here-- I need to register you, after all. You will first have to pay me a small fee of " + WEDDING_FEE + " GP.\""; + next; + mes "[Wedding Officiator]"; + mes "\"Both you and your partner must be at least " + WEDDING_MIN_LEVEL + " levels of age, though; the law is very firm on that. But if all of that works out, I will give you two wedding rings for the ceremony.\""; + next; + mes "[Wedding Officiator]"; + mes "\"To complete the marriage, each of you has to put on one of these rings, and you have to stand next to each other in the southern part of this park. Then one of you says `marry' and then the other person's name.\""; + next; + mes "[Wedding Officiator]"; + mes "\"So if you would want to marry me, for example, you would say `marry Wendy'. Just like that. Your partner then has to decide whether he or she wants that. And if you both agree, then you're married!\""; + mes "She again smiles that broad smile of hers."; + next; + goto L_main; L_get_married: - if (zeny < WEDDING_FEE) - goto L_too_poor; - if (BaseLevel < WEDDING_MIN_LEVEL) - goto L_too_young; - - mes "[Wedding Officiator]"; - mes "Wendy's eyes are sparkling."; - mes "\"Wow. So you and your sweetheart are ready to take the big step, then?\""; - next; - - menu "Yes, we are ready.", -, - "On second thought, perhaps not.", L_end; - - mes "[Wedding Officiator]"; - mes "She bounces."; - mes "\"That's so sweet! You must really love each other, then...?\""; - next; - - menu "We certainly do.", -, - "Yes, of course.", -, - "Please get on with it.", -, - "Hmm. Let me think about this some more.", L_end; - - mes "[Wedding Officiator]"; - mes "Wendy blushes."; - mes "\"Sorry if I am asking so many questions, but I have to make sure, you see... rules and all. Where were we...\""; - next; - - mes "[Wedding Officiator]"; - mes "She composes herself again."; - mes "\"OK. Now, what vows you exchange precisely is your choice. But a marriage is really something that is meant to last. So please take a moment to think.\""; - next; - - mes "[Wedding Officiator]"; - mes "\"Is your partner really someone you are serious about, someone you want to be with even when things get nasty, someone whom you will stick your head out for no matter how bad things get?"; - mes "And do both of you feel that you could spend the rest of your time in this mana world together?\""; - next; - - menu "Yes.", -, - "YES.", -, - "Absolutely.", -, - "Yes. We love each other.", -, - "This is taking too long.", L_end, - "No.", L_end; - - if (zeny < WEDDING_FEE) - goto L_too_poor; - if (BaseLevel < WEDDING_MIN_LEVEL) - goto L_too_young; - getinventorylist; - if (@inventorylist_count > 98) goto L_No_Room_For_Rings; - - set zeny, zeny - WEDDING_FEE; - getitem "WeddingRing", 1; - getitem "WeddingRing", 1; - - mes "[Wedding Officiator]"; - mes "Wendy collects the fee."; - mes "\"Okay... here are your wedding rings. Each of you has to have one. Put them on, stand next to each other in the southern part of this park and say `marry ...' and the name of your partner."; - mes "So your partner might just say `marry " + strcharinfo(0) + "' to marry you.\""; - next; - - mes "[Wedding Officiator]"; - mes "Wendy hesitates, then gives you a quick hug. There are tears are in her eyes."; - mes "\"Sorry, I always get a bit... emotional, I think... but I'm so happy for you!\""; - mes "She smiles and wipes the tears from her eyes."; - next; - - mes "[Wedding Officiator]"; - mes "\"So... I wish you the very, very best, a wonderful and happy and successful marriage!\""; - mes "She smiles at you again."; - close; + if (zeny < WEDDING_FEE) + goto L_too_poor; + if (BaseLevel < WEDDING_MIN_LEVEL) + goto L_too_young; + + mes "[Wedding Officiator]"; + mes "Wendy's eyes are sparkling."; + mes "\"Wow. So you and your sweetheart are ready to take the big step, then?\""; + next; + menu + "Yes, we are ready.", -, + "On second thought, perhaps not.", L_end; + mes "[Wedding Officiator]"; + mes "She bounces."; + mes "\"That's so sweet! You must really love each other, then...?\""; + next; + menu + "We certainly do.", -, + "Yes, of course.", -, + "Please get on with it.", -, + "Hmm. Let me think about this some more.", L_end; + mes "[Wedding Officiator]"; + mes "Wendy blushes."; + mes "\"Sorry if I am asking so many questions, but I have to make sure, you see... rules and all. Where were we...\""; + next; + mes "[Wedding Officiator]"; + mes "She composes herself again."; + mes "\"OK. Now, what vows you exchange precisely is your choice. But a marriage is really something that is meant to last. So please take a moment to think.\""; + next; + mes "[Wedding Officiator]"; + mes "\"Is your partner really someone you are serious about, someone you want to be with even when things get nasty, someone whom you will stick your head out for no matter how bad things get?"; + mes "And do both of you feel that you could spend the rest of your time in this mana world together?\""; + next; + menu + "Yes.", -, + "YES.", -, + "Absolutely.", -, + "Yes. We love each other.", -, + "This is taking too long.", L_end, + "No.", L_end; + + if (zeny < WEDDING_FEE) + goto L_too_poor; + if (BaseLevel < WEDDING_MIN_LEVEL) + goto L_too_young; + getinventorylist; + if (@inventorylist_count > 98) + goto L_No_Room_For_Rings; + + set zeny, zeny - WEDDING_FEE; + getitem "WeddingRing", 1; + getitem "WeddingRing", 1; + + mes "[Wedding Officiator]"; + mes "Wendy collects the fee."; + mes "\"Okay... here are your wedding rings. Each of you has to have one. Put them on, stand next to each other in the southern part of this park and say `marry ...' and the name of your partner."; + mes "So your partner might just say `marry " + strcharinfo(0) + "' to marry you.\""; + next; + mes "[Wedding Officiator]"; + mes "Wendy hesitates, then gives you a quick hug. There are tears are in her eyes."; + mes "\"Sorry, I always get a bit... emotional, I think... but I'm so happy for you!\""; + mes "She smiles and wipes the tears from her eyes."; + next; + mes "[Wedding Officiator]"; + mes "\"So... I wish you the very, very best, a wonderful and happy and successful marriage!\""; + mes "She smiles at you again."; + close; L_end: - close; + close; L_too_young: - mes "[Wedding Officiator]"; - mes "Wendy looks at her notes, shaking her head; pain is evident in her eyes."; - mes "\"I'm really, really sorry-- I wish I could allow that, but you are still too young. You have to be at least " + WEDDING_MIN_LEVEL + " levels of age.\""; - close; + mes "[Wedding Officiator]"; + mes "Wendy looks at her notes, shaking her head; pain is evident in her eyes."; + mes "\"I'm really, really sorry-- I wish I could allow that, but you are still too young. You have to be at least " + WEDDING_MIN_LEVEL + " levels of age.\""; + close; L_too_poor: - mes "[Wedding Officiator]"; - mes "\"Oh, this is so sad... you want to get married but don't have the money!\""; - mes "Wendy is visibly unhappy."; - mes "\"I wish I could help you, but the rules... you see... Well, I'm afraid that you will just have to come back when you have " + WEDDING_FEE + " GP.\""; - close; + mes "[Wedding Officiator]"; + mes "\"Oh, this is so sad... you want to get married but don't have the money!\""; + mes "Wendy is visibly unhappy."; + mes "\"I wish I could help you, but the rules... you see... Well, I'm afraid that you will just have to come back when you have " + WEDDING_FEE + " GP.\""; + close; L_main_married: - - mes "[Wedding Officiator]"; - mes "\"I hope that you and your partner are doing well?\""; - next; - - menu "We are very happy, thanks for asking!", L_farewell, - "Actually, things aren't so good...", L_talk_divorce; - close; + mes "[Wedding Officiator]"; + mes "\"I hope that you and your partner are doing well?\""; + next; + menu + "We are very happy, thanks for asking!", L_farewell, + "Actually, things aren't so good...", L_talk_divorce; + close; L_farewell: - mes "[Wedding Officiator]"; - mes "Wendy is beaming."; - mes "\"That's wonderful! Please do say `hi' to your spouse from me!\""; - close; + mes "[Wedding Officiator]"; + mes "Wendy is beaming."; + mes "\"That's wonderful! Please do say `hi' to your spouse from me!\""; + close; L_talk_divorce: - mes "[Wedding Officiator]"; - mes "\"Oh... I am sorry to hear that. What's the problem, then?\""; - next; - - menu "We don't love each other anymore.", L_nolove, - "My partner loves someone else.", L_partner_otherlove, - "I think I love someone else.", L_self_otherlove, - "We can't agree on who carries the loot.", L_loot; - close; + mes "[Wedding Officiator]"; + mes "\"Oh... I am sorry to hear that. What's the problem, then?\""; + next; + menu + "We don't love each other anymore.", L_nolove, + "My partner loves someone else.", L_partner_otherlove, + "I think I love someone else.", L_self_otherlove, + "We can't agree on who carries the loot.", L_loot; + close; L_nolove: - mes "[Wedding Officiator]"; - mes "Wendy sighs."; - mes "\"I am really sorry to hear that. Have you tried talking to your partner? Tried some new dungeons? Solved some quests together?\""; - next; - - mes "[Wedding Officiator]"; - mes "\"I mean... I am sure that you have many things in common that you are not aware of. If you just do something new, perhaps you will learn something about each other that you will like?\""; - next; - - menu "We tried that, it didn't work.", L_makesure_divorce, - "Perhaps we should give it another try.", -; - close; + mes "[Wedding Officiator]"; + mes "Wendy sighs."; + mes "\"I am really sorry to hear that. Have you tried talking to your partner? Tried some new dungeons? Solved some quests together?\""; + next; + mes "[Wedding Officiator]"; + mes "\"I mean... I am sure that you have many things in common that you are not aware of. If you just do something new, perhaps you will learn something about each other that you will like?\""; + next; + menu + "We tried that, it didn't work.", L_makesure_divorce, + "Perhaps we should give it another try.", -; + close; L_partner_otherlove: - mes "[Wedding Officiator]"; - mes "Wendy frowns."; - mes "\"Are you really sure? Perhaps that other person is just a friend, or even if it isn't, perhaps it was just a small mistake on your partner's side... nobody is perfect, after all!\""; - next; - - menu "I'm sure. I want a divorce.", L_makesure_divorce, - "Perhaps we should discuss this some more first.", -; - close; + mes "[Wedding Officiator]"; + mes "Wendy frowns."; + mes "\"Are you really sure? Perhaps that other person is just a friend, or even if it isn't, perhaps it was just a small mistake on your partner's side... nobody is perfect, after all!\""; + next; + menu + "I'm sure. I want a divorce.", L_makesure_divorce, + "Perhaps we should discuss this some more first.", -; + close; L_self_otherlove: - mes "[Wedding Officiator]"; - mes "Wendy sighs."; - mes "\"Oh dear... well, I suppose that happens. You don't have any children, I think, but still, you made a promise to your partner.\""; - next; - mes "[Wedding Officiator]"; - mes "\"Are you really sure that you love the new person so much that you want to leave your partner? Perhaps it would be good to take some time off first to make sure that you are not making a mistake here.\""; - next; - - menu "I'm sure. I want a divorce.", L_makesure_divorce, - "Let me think about this more.", -; - close; + mes "[Wedding Officiator]"; + mes "Wendy sighs."; + mes "\"Oh dear... well, I suppose that happens. You don't have any children, I think, but still, you made a promise to your partner.\""; + next; + mes "[Wedding Officiator]"; + mes "\"Are you really sure that you love the new person so much that you want to leave your partner? Perhaps it would be good to take some time off first to make sure that you are not making a mistake here.\""; + next; + menu + "I'm sure. I want a divorce.", L_makesure_divorce, + "Let me think about this more.", -; + close; L_loot: - mes "[Wedding Officiator]"; - mes "Wendy blinks."; - mes "\"Err... have you thought about just splitting it up?\""; - next; - - menu "No way. I want a divorce.", L_makesure_divorce, - "Oh... oh! But of course!", -; - close; + mes "[Wedding Officiator]"; + mes "Wendy blinks."; + mes "\"Err... have you thought about just splitting it up?\""; + next; + menu + "No way. I want a divorce.", L_makesure_divorce, + "Oh... oh! But of course!", -; + close; L_makesure_divorce: - set @divorce_cost, DIVORCE_FEE_PER_LEVEL * BaseLevel; - - mes "[Wedding Officiator]"; - mes "Resigned, Wendy looks down at her notes."; - mes "\"Okay. I suppose that if you are sure, I will get your divorce underway. But that will cost you " + @divorce_cost + " in administrative fees.\""; - next; - - menu "Let me think about this again.", L_end, - "HOW much? Never mind, then.", L_end, - "That's OK. I want the divorce.", L_do_divorce; - close; + set @divorce_cost, DIVORCE_FEE_PER_LEVEL * BaseLevel; + + mes "[Wedding Officiator]"; + mes "Resigned, Wendy looks down at her notes."; + mes "\"Okay. I suppose that if you are sure, I will get your divorce underway. But that will cost you " + @divorce_cost + " in administrative fees.\""; + next; + menu + "Let me think about this again.", L_end, + "HOW much? Never mind, then.", L_end, + "That's OK. I want the divorce.", L_do_divorce; + close; L_divorce_nomoney: - mes "[Wedding Officiator]"; - mes "\"I am sorry, but you can't seem to afford the " + @divorce_cost + " GP for a divorce at this time. Please come back later.\""; - close; + mes "[Wedding Officiator]"; + mes "\"I am sorry, but you can't seem to afford the " + @divorce_cost + " GP for a divorce at this time. Please come back later.\""; + close; L_do_divorce: - if (zeny < @divorce_cost) - goto L_divorce_nomoney; - - - if (divorce()) goto L_DidDivorce; - - mes "[Wedding Officiator]"; - mes "The officiator searches through her records for your partner."; - mes "\"I can't find your partner's record, you'll have to come back later.\""; - next; - - mes "[Server]"; - mes "Try again when your partner is online too."; - close; + if (zeny < @divorce_cost) + goto L_divorce_nomoney; + if (divorce()) + goto L_DidDivorce; + + mes "[Wedding Officiator]"; + mes "The officiator searches through her records for your partner."; + mes "\"I can't find your partner's record, you'll have to come back later.\""; + next; + mes "[Server]"; + mes "Try again when your partner is online too."; + close; L_DidDivorce: - set zeny, zeny - @divorce_cost; + set zeny, zeny - @divorce_cost; - mes "[Wedding Officiator]"; - mes "After collecting her fee, Wendy licks her quill and writes down some notes."; - mes "Then she sighs heavily."; - mes "\"You are divorced now. Thank you for your business.\""; - close; + mes "[Wedding Officiator]"; + mes "After collecting her fee, Wendy licks her quill and writes down some notes."; + mes "Then she sighs heavily."; + mes "\"You are divorced now. Thank you for your business.\""; + close; L_No_Room_For_Rings: - mes "[Wedding Officiator]"; - mes "\"You don't have room to carry the rings.\""; - close; -} + mes "[Wedding Officiator]"; + mes "\"You don't have room to carry the rings.\""; + close; +}
\ No newline at end of file diff --git a/world/map/npc/015-1/alice.txt b/world/map/npc/015-1/alice.txt index 125cc104..18fdb4ba 100644 --- a/world/map/npc/015-1/alice.txt +++ b/world/map/npc/015-1/alice.txt @@ -1,82 +1,83 @@ // A herb collector giving the players some hints about finding and brewing // herbs. -015-1.gat,52,53,0 script Alice 106, { - mes "[Alice]"; - mes "\"Greeting, fellow wanderer."; - mes "Are you collecting herbs, too?\""; - next; - if (LastHiss == 2 && Katze < 4) - menu - "Yes, sure.", L_findmany, - "Herbs?", L_herbs, - "Nope, just enjoying the scenery.", L_close, - "I saw the cat, but it doesn't like me.", L_cat; - if (LastHiss == 1) - menu - "Yes, sure.", L_findmany, - "Herbs?", L_herbs, - "Nope, just enjoying the scenery.", L_close, - "There is a monster in that cave!", L_cave; - menu - "Yes, sure.", L_findmany, - "Herbs?", L_herbs, - "Nope, just enjoying the scenery.", L_close; +015-1.gat,52,53,0|script|Alice|106,{ + mes "[Alice]"; + mes "\"Greeting, fellow wanderer."; + mes "Are you collecting herbs, too?\""; + next; + if (LastHiss == 2 && Katze < 4) + menu + "Yes, sure.", L_findmany, + "Herbs?", L_herbs, + "Nope, just enjoying the scenery.", L_close, + "I saw the cat, but it doesn't like me.", L_cat; + if (LastHiss == 1) + menu + "Yes, sure.", L_findmany, + "Herbs?", L_herbs, + "Nope, just enjoying the scenery.", L_close, + "There is a monster in that cave!", L_cave; + menu + "Yes, sure.", L_findmany, + "Herbs?", L_herbs, + "Nope, just enjoying the scenery.", L_close; L_close: - close; + close; L_findmany: - mes "[Alice]"; - mes "\"And? Did you already find a lot?\""; - next; - menu - "Yes, I already got plenty of them.", L_plenty, - "No, I am out of luck.", -; - mes "[Alice]"; - mes "\"Oooh, how sad. Let me give you a little tip:"; - mes "Herbs are often growing in places where they can't be spotted that easily. Don't forget to look behind the trees, too.\""; - close; + mes "[Alice]"; + mes "\"And? Did you already find a lot?\""; + next; + menu + "Yes, I already got plenty of them.", L_plenty, + "No, I am out of luck.", -; + mes "[Alice]"; + mes "\"Oooh, how sad. Let me give you a little tip:"; + mes "Herbs are often growing in places where they can't be spotted that easily. Don't forget to look behind the trees, too.\""; + close; L_plenty: - mes "[Alice]"; - mes "\"That's great."; - mes "When you are not that good at brewing you should consider letting someone else brew them for you."; - mes "Good brewers get much better healing potions from them."; - mes "The most important characteristic of a good brewer is intelligence.\""; - close; + mes "[Alice]"; + mes "\"That's great."; + mes "When you are not that good at brewing you should consider letting someone else brew them for you."; + mes "Good brewers get much better healing potions from them."; + mes "The most important characteristic of a good brewer is intelligence.\""; + close; L_herbs: - mes "[Alice]"; - mes "\"Yes, some powerful magic herbs started to grow around here and a mile to the southeast."; - mes "Caul in Hurnscald found a way to brew magical healing potions from them, and I have heard a rumor that they may also be good for making colors."; - mes "Now everyone is running around in the woods to harvest the herbs.\""; - close; + mes "[Alice]"; + mes "\"Yes, some powerful magic herbs started to grow around here and a mile to the southeast."; + mes "Caul in Hurnscald found a way to brew magical healing potions from them, and I have heard a rumor that they may also be good for making colors."; + mes "Now everyone is running around in the woods to harvest the herbs.\""; + close; L_cave: - mes "[Alice]"; - mes "\"Haha, that is no monster! It's just a sweet little cat.\""; - next; - menu - "But it wanted to kill me!", -, - "A cat!? I'll go and kill it!", -; - mes "[Alice]"; - mes "\"No no, I'm sure it was only frightened. It gets upset when you've got clothes or weapons on you.\""; - next; - menu - "Ok, let's try it without clothes then", -, - "What a stupid cat!", -; - mes "[Alice]"; - mes "\"Please don't do her any harm. See you later!\""; - close; + mes "[Alice]"; + mes "\"Haha, that is no monster! It's just a sweet little cat.\""; + next; + menu + "But it wanted to kill me!", -, + "A cat!? I'll go and kill it!", -; + mes "[Alice]"; + mes "\"No no, I'm sure it was only frightened. It gets upset when you've got clothes or weapons on you.\""; + next; + menu + "Ok, let's try it without clothes then", -, + "What a stupid cat!", -; + mes "[Alice]"; + mes "\"Please don't do her any harm. See you later!\""; + close; L_cat: - mes "[Alice]"; - mes "\"You would have to tame her first. Maybe she's thirsty or hungry. Cats also tend to get bored without something to play with. Good luck!\""; - next; - menu "Thank you so much!", L_close, - "Are you crazy? Taming a cat?", -; - mes "[Alice]"; - mes "\"Well, it's up to you.\""; - close; + mes "[Alice]"; + mes "\"You would have to tame her first. Maybe she's thirsty or hungry. Cats also tend to get bored without something to play with. Good luck!\""; + next; + menu + "Thank you so much!", L_close, + "Are you crazy? Taming a cat?", -; + mes "[Alice]"; + mes "\"Well, it's up to you.\""; + close; } diff --git a/world/map/npc/015-1/barrier.txt b/world/map/npc/015-1/barrier.txt index 0ba82ec9..f17a19fb 100644 --- a/world/map/npc/015-1/barrier.txt +++ b/world/map/npc/015-1/barrier.txt @@ -1,7 +1,7 @@ // This barrier is for checking whether the player went outside after // progressing with the cat quest. -015-1.gat,59,32,0 script #CatOutsideBarrier 0,1,1,{ +015-1.gat,59,32,0|script|#CatOutsideBarrier|0,1,1,{ set KatzeBeenOutside, 1; // No close here, as this doesn't open any client windows } diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt index f5f0cd17..8af20f17 100644 --- a/world/map/npc/015-1/sword.txt +++ b/world/map/npc/015-1/sword.txt @@ -1,351 +1,327 @@ -015-1.gat,97,97,0 script #MagicSword#_M 127,{ - if (getskilllv(SKILL_MAGIC)) - goto L_message; - mes "It appears to be an ordinary sword."; - close; +015-1.gat,97,97,0|script|#MagicSword#_M|127,{ + if (getskilllv(SKILL_MAGIC)) + goto L_message; + mes "It appears to be an ordinary sword."; + close; L_message: - set @Q_MASK, (NIBBLE_6_MASK | NIBBLE_7_MASK); - set @Q_SHIFT, NIBBLE_6_SHIFT; - set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; - - // Set up SkillUp function - set @SUP_id, SKILL_MAGIC_WAR; - set @SUP_name$, "War Magic"; - - set @STATUS_INITIAL, 0; - set @STATUS_LEARNED_FLAREDART, 1; - set @STATUS_LEARNED_MAGICBLADE, 2; - set @STATUS_LEVEL2, 3; - set @STATUS_W11, 4; - set @STATUS_W12, 5; - set @STATUS_W11_12, 6; - set @STATUS_L2_ALLSPELLS, 7; - - if (@Q_status == @STATUS_INITIAL) goto L_Initial; - if (@Q_status == @STATUS_LEARNED_FLAREDART) goto L_FlareStage; - if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_MagicBladeStage; - if (@Q_status == @STATUS_LEVEL2) goto L_L2_W12; - if (@Q_status == @STATUS_W11) goto L_L2_W12; - if (@Q_status == @STATUS_W12) goto L_L2_almost_done; - if (@Q_status == @STATUS_W11_12) goto L_L2_W10; - - mes "[Mystic Sword]"; - mes "\"I have taught thee all I can teach for now.\""; - close; + set @Q_MASK, (NIBBLE_6_MASK | NIBBLE_7_MASK); + set @Q_SHIFT, NIBBLE_6_SHIFT; + set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; + + // Set up SkillUp function + set @SUP_id, SKILL_MAGIC_WAR; + set @SUP_name$, "War Magic"; + + set @STATUS_INITIAL, 0; + set @STATUS_LEARNED_FLAREDART, 1; + set @STATUS_LEARNED_MAGICBLADE, 2; + set @STATUS_LEVEL2, 3; + set @STATUS_W11, 4; + set @STATUS_W12, 5; + set @STATUS_W11_12, 6; + set @STATUS_L2_ALLSPELLS, 7; + + if (@Q_status == @STATUS_INITIAL) goto L_Initial; + if (@Q_status == @STATUS_LEARNED_FLAREDART) goto L_FlareStage; + if (@Q_status == @STATUS_LEARNED_MAGICBLADE) goto L_MagicBladeStage; + if (@Q_status == @STATUS_LEVEL2) goto L_L2_W12; + if (@Q_status == @STATUS_W11) goto L_L2_W12; + if (@Q_status == @STATUS_W12) goto L_L2_almost_done; + if (@Q_status == @STATUS_W11_12) goto L_L2_W10; + + mes "[Mystic Sword]"; + mes "\"I have taught thee all I can teach for now.\""; + close; L_Initial: - mes "[Mystic Sword]"; - mes "At this point, the river deepens, slowing down to a leisurely pace. In its center you notice an unusual stone, waves breaking around it."; - mes "Sticking out of the rock is a sword hilt."; - next; - - mes "[Mystic Sword]"; - mes "Suddenly, you hear a strange, metallic voice in your head, the voice of a woman."; - mes "\"A blissful day to thee, mortal!\""; - next; - - mes "[Mystic Sword]"; - mes "\"What is it is that brings thee to this place?\""; - next; - - menu - "Who are you?", L_noq, - "Nothing in particular.", L_Initial_nothing, - "I was just exploring...", L_Initial_nothing, - "I am trying to learn magic!", L_Initial_learn; - close; + mes "[Mystic Sword]"; + mes "At this point, the river deepens, slowing down to a leisurely pace. In its center you notice an unusual stone, waves breaking around it."; + mes "Sticking out of the rock is a sword hilt."; + next; + mes "[Mystic Sword]"; + mes "Suddenly, you hear a strange, metallic voice in your head, the voice of a woman."; + mes "\"A blissful day to thee, mortal!\""; + next; + mes "[Mystic Sword]"; + mes "\"What is it is that brings thee to this place?\""; + next; + menu + "Who are you?", L_noq, + "Nothing in particular.", L_Initial_nothing, + "I was just exploring...", L_Initial_nothing, + "I am trying to learn magic!", L_Initial_learn; + close; L_noq: - mes "[Mystic Sword]"; - mes "The voice sounds slightly amused."; - mes "\"How sad to hear how manners have degenerated in recent centuries. Farewell for now, dear mortal.\""; - close; + mes "[Mystic Sword]"; + mes "The voice sounds slightly amused."; + mes "\"How sad to hear how manners have degenerated in recent centuries. Farewell for now, dear mortal.\""; + close; L_Initial_nothing: - mes "[Mystic Sword]"; - mes "\"Then I wish thee well in thy travels, wanderer!\""; - close; + mes "[Mystic Sword]"; + mes "\"Then I wish thee well in thy travels, wanderer!\""; + close; L_Initial_learn: - mes "[Mystic Sword]"; - mes "\"Magic? Unless I am very mistaken thou already possessest some magic. Yet perhaps I can grant thee some slight aid by providing a magical invocation?\""; - next; - - mes "[Mystic Sword]"; - mes "\"Alas, my nature is not quite conductive for spells of healing or protection, though I can bestow upon thee the powers for a rather more martial kind of power.\""; - next; - - menu - "I am not interested in that.", L_Farewell, - "It might be good for me to learn that.", -, - "I am quite interested.", -; - - mes "[Mystic Sword]"; - mes "\"Why is it that thou seekest this power?\""; - next; - - menu - "Never mind.", L_Farewell, - "To become stronger!", L_Initial_selfish, - "To kill!", L_Initial_selfish, - "I don't know yet...", L_Initial_dontknow, - "To protect the ones I love!", L_Initial_protect; - close; + mes "[Mystic Sword]"; + mes "\"Magic? Unless I am very mistaken thou already possessest some magic. Yet perhaps I can grant thee some slight aid by providing a magical invocation?\""; + next; + mes "[Mystic Sword]"; + mes "\"Alas, my nature is not quite conductive for spells of healing or protection, though I can bestow upon thee the powers for a rather more martial kind of power.\""; + next; + menu + "I am not interested in that.", L_Farewell, + "It might be good for me to learn that.", -, + "I am quite interested.", -; + mes "[Mystic Sword]"; + mes "\"Why is it that thou seekest this power?\""; + next; + menu + "Never mind.", L_Farewell, + "To become stronger!", L_Initial_selfish, + "To kill!", L_Initial_selfish, + "I don't know yet...", L_Initial_dontknow, + "To protect the ones I love!", L_Initial_protect; + close; L_Initial_selfish: - mes "[Mystic Sword]"; - mes "\"Please return when thou art taking thy quest for magic a little more seriously.\""; - close; + mes "[Mystic Sword]"; + mes "\"Please return when thou art taking thy quest for magic a little more seriously.\""; + close; L_Initial_dontknow: - mes "[Mystic Sword]"; - mes "\"A fair and honest thought at so early a point in thine quest.\""; - goto L_Initial_ok; + mes "[Mystic Sword]"; + mes "\"A fair and honest thought at so early a point in thine quest.\""; + goto L_Initial_ok; L_Initial_protect: - mes "[Mystic Sword]"; - mes "\"Quite a high and laundable goal thou hast chosen for thyself! I do hope that thou canst live up to it.\""; + mes "[Mystic Sword]"; + mes "\"Quite a high and laundable goal thou hast chosen for thyself! I do hope that thou canst live up to it.\""; L_Initial_ok: - mes "\"Hark, then, mortal! For I shall bestow upon thee the secret of the flare dart spell!\""; - next; - - mes "[Mystic Sword]"; - mes "\"Oh, my apologies-- that was a little overly dramatic. But I do not get to talk to thy kin anymore all that often.\""; - next; - - mes "[Mystic Sword]"; - mes "\"For the flare dart spell throw a handful of sulphur powder up into the air, and say, '" + getspellinvocation("flare-dart") + "'.\""; - set @Q_status, @STATUS_LEARNED_FLAREDART; - callsub S_update_var; - next; - - mes "[Mystic Sword]"; - mes "\"From then on, thou canst shoot fiery missiles from thy fingers, for a limited time.\""; - next; - - mes "[Mystic Sword]"; - mes "\"Use it wisely, mortal!.\""; - next; - - goto L_Farewell; + mes "\"Hark, then, mortal! For I shall bestow upon thee the secret of the flare dart spell!\""; + next; + mes "[Mystic Sword]"; + mes "\"Oh, my apologies-- that was a little overly dramatic. But I do not get to talk to thy kin anymore all that often.\""; + next; + mes "[Mystic Sword]"; + mes "\"For the flare dart spell throw a handful of sulphur powder up into the air, and say, '" + getspellinvocation("flare-dart") + "'.\""; + set @Q_status, @STATUS_LEARNED_FLAREDART; + callsub S_update_var; + next; + mes "[Mystic Sword]"; + mes "\"From then on, thou canst shoot fiery missiles from thy fingers, for a limited time.\""; + next; + mes "[Mystic Sword]"; + mes "\"Use it wisely, mortal!.\""; + next; + goto L_Farewell; L_FlareStage: - menu - "Uhm... Hello, Sword?", L_FlareStage_hello, - "Can you teach me more magic?", L_FlareStage_impolite, - "Where can I get sulphur powder?", L_FlareStage_impolite; - close; + menu + "Uhm... Hello, Sword?", L_FlareStage_hello, + "Can you teach me more magic?", L_FlareStage_impolite, + "Where can I get sulphur powder?", L_FlareStage_impolite; + close; L_FlareStage_impolite: - mes "[Mystic Sword]"; - mes "You hear a metallic chime in your head. After a second, you come to the conclusion that it was probably the sword sighing."; - mes "\"Greetings to thee, too, mortal, and farewell until thou hast learned some proper manners.\""; - close; + mes "[Mystic Sword]"; + mes "You hear a metallic chime in your head. After a second, you come to the conclusion that it was probably the sword sighing."; + mes "\"Greetings to thee, too, mortal, and farewell until thou hast learned some proper manners.\""; + close; L_FlareStage_hello: - mes "[Mystic Sword]"; - mes "\"Well met once more, mortal! What brings thee here?\""; - next; - - menu - "Can you teach me more magic?", L_FlareStage_moremagic, - "Where can I find sulphur powder?", L_FlareStage_sulphur, - "Farewell!", L_Farewell; - close; + mes "[Mystic Sword]"; + mes "\"Well met once more, mortal! What brings thee here?\""; + next; + menu + "Can you teach me more magic?", L_FlareStage_moremagic, + "Where can I find sulphur powder?", L_FlareStage_sulphur, + "Farewell!", L_Farewell; + close; L_FlareStage_moremagic: - mes "[Mystic Sword]"; - mes "\"I can indeed! But first I must see if thou art worthy. Find my brother, and talk to him! If thou canst find him, he shall teach thee another spell.\""; - next; - goto L_Farewell; + mes "[Mystic Sword]"; + mes "\"I can indeed! But first I must see if thou art worthy. Find my brother, and talk to him! If thou canst find him, he shall teach thee another spell.\""; + next; + goto L_Farewell; L_FlareStage_sulphur: - mes "[Mystic Sword]"; - mes "\"I do not know, though I suggest to seek out a local alchemist, if there is any.\""; - next; - goto L_Farewell; + mes "[Mystic Sword]"; + mes "\"I do not know, though I suggest to seek out a local alchemist, if there is any.\""; + next; + goto L_Farewell; L_MagicBladeStage: - mes "[Mystic Sword]"; - mes "\"Welcome back! Thou hast now learned two basic spells of War magic.\""; - next; - - mes "[Mystic Sword]"; - mes "\"Dost thou wish to continue thy pursuits of this school of magic?\""; - next; - - menu - "No.", -, - "Yes.", L_Levelup2_yes; - - goto L_Farewell; + mes "[Mystic Sword]"; + mes "\"Welcome back! Thou hast now learned two basic spells of War magic.\""; + next; + mes "[Mystic Sword]"; + mes "\"Dost thou wish to continue thy pursuits of this school of magic?\""; + next; + menu + "No.", -, + "Yes.", L_Levelup2_yes; + goto L_Farewell; L_Levelup2_yes: - mes "[Mystic Sword]"; - mes "\"Beware of what thou wishest for, mortal...\""; - next; - - if (!MPQUEST) goto L_Levelup2_must_reg; - if (MPQUEST && (Mobpt < 1000)) goto L_Levelup2_must_practice; - - mes "[Mystic Sword]"; - mes "\"Thou hast collected " + Mobpt + " Monster Points. For one thousand of them, I shall admit thee to the school of war magic.\""; - next; - - menu - "OK!", -, - "No... never mind.", L_Farewell; - - set Mobpt, Mobpt - 1000; - - mes "[Mystic Sword]"; - mes "The sword begins to chant in your head!"; - mes "\"Lords of Thunder, Fire, Rage!\""; - mes "\"Grant thy powers to this mage,\""; - mes "\"Rising with thy dreadful roar,\""; - if (Sex) - mes "\"Answer to his call to War!\""; - if (!Sex) - mes "\"Answer to her call to War!\""; - next; - - mes "[Mystic Sword]"; - mes "Your heart starts pounding, and suddenly you can hear the sound of drums in your head."; - mes "You smell something metallic..."; - next; - - mes "[Mystic Sword]"; - mes "The sensation and the noises vanish as quickly as they came."; - - set @Q_status, @STATUS_LEVEL2; - callsub S_update_var; - - set @SUP_xp, 5000; - set @SUP_lvl, 2; - callfunc "SkillUp"; - next; - - mes "[Mystic Sword]"; - mes "\"Thou hast now taken thy first true step down the path of war magic.\""; - if (getskilllv(SKILL_MAGIC) < 2) - mes "\"When thou returnest, I shall teach thee another spell, but beware: thou must increase thy overall grasp of magic before thou canst wield it!\""; - next; - goto L_Farewell; + mes "[Mystic Sword]"; + mes "\"Beware of what thou wishest for, mortal...\""; + next; + + if (!MPQUEST) + goto L_Levelup2_must_reg; + if (MPQUEST && (Mobpt < 1000)) + goto L_Levelup2_must_practice; + + mes "[Mystic Sword]"; + mes "\"Thou hast collected " + Mobpt + " Monster Points. For one thousand of them, I shall admit thee to the school of war magic.\""; + next; + menu + "OK!", -, + "No... never mind.", L_Farewell; + + set Mobpt, Mobpt - 1000; + + mes "[Mystic Sword]"; + mes "The sword begins to chant in your head!"; + mes "\"Lords of Thunder, Fire, Rage!\""; + mes "\"Grant thy powers to this mage,\""; + mes "\"Rising with thy dreadful roar,\""; + if (Sex) + mes "\"Answer to his call to War!\""; + if (!Sex) + mes "\"Answer to her call to War!\""; + next; + mes "[Mystic Sword]"; + mes "Your heart starts pounding, and suddenly you can hear the sound of drums in your head."; + mes "You smell something metallic..."; + next; + mes "[Mystic Sword]"; + mes "The sensation and the noises vanish as quickly as they came."; + + set @Q_status, @STATUS_LEVEL2; + callsub S_update_var; + + set @SUP_xp, 5000; + set @SUP_lvl, 2; + callfunc "SkillUp"; + next; + + mes "[Mystic Sword]"; + mes "\"Thou hast now taken thy first true step down the path of war magic.\""; + if (getskilllv(SKILL_MAGIC) < 2) + mes "\"When thou returnest, I shall teach thee another spell, but beware: thou must increase thy overall grasp of magic before thou canst wield it!\""; + next; + goto L_Farewell; L_Levelup2_must_reg: - mes "[Mystic Sword]"; - mes "\"To learn further magic, thou must advance in the school of war magic. I shall grant thee this advance if thou provest thy worthiness as a warrior.\""; - next; - mes "[Mystic Sword]"; - mes "\"Travel to the city of Tulimshar, and talk to Aidan. Then, collect one thousand Monster Points and return to me.\""; - next; - goto L_Farewell; + mes "[Mystic Sword]"; + mes "\"To learn further magic, thou must advance in the school of war magic. I shall grant thee this advance if thou provest thy worthiness as a warrior.\""; + next; + mes "[Mystic Sword]"; + mes "\"Travel to the city of Tulimshar, and talk to Aidan. Then, collect one thousand Monster Points and return to me.\""; + next; + goto L_Farewell; L_Levelup2_must_practice: - mes "[Mystic Sword]"; - mes "\"To advance thy magical powers, I must admit thee to the school of war magic. Prove to me that thou art a worthy warrior by collecting one thousand Monster Points, and return.\""; - next; - goto L_Farewell; + mes "[Mystic Sword]"; + mes "\"To advance thy magical powers, I must admit thee to the school of war magic. Prove to me that thou art a worthy warrior by collecting one thousand Monster Points, and return.\""; + next; + goto L_Farewell; L_Farewell: - mes "[Mystic Sword]"; - mes "\"Farewell for now!\""; - close; + mes "[Mystic Sword]"; + mes "\"Farewell for now!\""; + close; L_L2_W12: - mes "[Mystic Sword]"; - mes "\"Welcome back, traveler! Hast thou returned to advance in thy quest for magic?\""; - next; - menu - "No.", L_farewell, - "Yes.", -; - - mes "[Mystic Sword]"; - mes "\"Very well. I shall teach thee another spell, if thou provest thy progress by sacrificing another five thousand monster points.\""; - next; - menu - "No, I don't want that.", L_farewell, - "So be it.", -; - - if (Mobpt < 5000) goto L_lacking_mobpoints; - - mes "[Mystic Sword]"; - mes "\"Indeed thou art worthy. The next spell I shall teach thee will enchant thy knuckles to turn them into powerful weapons; the component is a mere beer.\""; - mes "[1000 experience points]"; - set Mobpt, Mobpt - 5000; - getexp 1000, 0; - set @Q_status, @Q_status + 2; - callsub S_update_var; - next; - - mes "[Mystic Sword]"; - mes "\"Speak '" + getspellinvocation("magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off thy lips. This will harden and enchant thy fists, turning them into powerful weapons.\""; - close; + mes "[Mystic Sword]"; + mes "\"Welcome back, traveler! Hast thou returned to advance in thy quest for magic?\""; + next; + menu + "No.", L_farewell, + "Yes.", -; + mes "[Mystic Sword]"; + mes "\"Very well. I shall teach thee another spell, if thou provest thy progress by sacrificing another five thousand monster points.\""; + next; + menu + "No, I don't want that.", L_farewell, + "So be it.", -; + if (Mobpt < 5000) + goto L_lacking_mobpoints; + mes "[Mystic Sword]"; + mes "\"Indeed thou art worthy. The next spell I shall teach thee will enchant thy knuckles to turn them into powerful weapons; the component is a mere beer.\""; + mes "[1000 experience points]"; + set Mobpt, Mobpt - 5000; + getexp 1000, 0; + set @Q_status, @Q_status + 2; + callsub S_update_var; + next; + mes "[Mystic Sword]"; + mes "\"Speak '" + getspellinvocation("magic-knuckles") + "' and take a glass of beer and drink it, without ever taking it off thy lips. This will harden and enchant thy fists, turning them into powerful weapons.\""; + close; L_L2_almost_done: - mes "[Mystic Sword]"; - mes "\"Greetings once more, traveler! I have another spell I wish to teach thee, but first thou must learn my brother's arrow spell.\""; - close; + mes "[Mystic Sword]"; + mes "\"Greetings once more, traveler! I have another spell I wish to teach thee, but first thou must learn my brother's arrow spell.\""; + close; L_L2_W10: - mes "[Mystic Sword]"; - mes "\"Welcome back!\""; - next; - - mes "[Mystic Sword]"; - mes "\"I shall now teach thee the final spell of this level of war magic. For further spells thou wilt have to increase thy magical powers more.\""; - next; - - mes "[Mystic Sword]"; - mes "\"For this spell, I ask that thou bringest a lump of iron ore. Thou must also sacrifice ten thousand monster points.\""; - next; - - menu - "OK.", -, - "No way.", L_farewell; - - if (countitem("IronOre") < 1) - goto L_no_ore; - if (MPQUEST && (Mobpt < 10000)) goto L_lacking_mobpoints; - - mes "[Mystic Sword]"; - mes "\"Raise up the ore, mortal!\""; - mes "As you do so, the ore begins to crumble, leaving only iron powder behind."; - mes "[1000 experience points]"; - set Mobpt, Mobpt - 10000; - getexp 1000, 0; - delitem "IronOre", 1; - getitem "IronPowder", 5; - set @Q_status, @STATUS_L2_ALLSPELLS; - callsub S_update_var; - next; - - mes "[Mystic Sword]"; - mes "\"This powder thou shalst need to cast the lightning spell. Throw it up into the air and shout '" + getspellinvocation("lightning-strike") + "', and smite thine enemies with lightning.\""; - next; - goto L_farewell; + mes "[Mystic Sword]"; + mes "\"Welcome back!\""; + next; + mes "[Mystic Sword]"; + mes "\"I shall now teach thee the final spell of this level of war magic. For further spells thou wilt have to increase thy magical powers more.\""; + next; + mes "[Mystic Sword]"; + mes "\"For this spell, I ask that thou bringest a lump of iron ore. Thou must also sacrifice ten thousand monster points.\""; + next; + menu + "OK.", -, + "No way.", L_farewell; + if (countitem("IronOre") < 1) + goto L_no_ore; + if (MPQUEST && (Mobpt < 10000)) + goto L_lacking_mobpoints; + + mes "[Mystic Sword]"; + mes "\"Raise up the ore, mortal!\""; + mes "As you do so, the ore begins to crumble, leaving only iron powder behind."; + mes "[1000 experience points]"; + set Mobpt, Mobpt - 10000; + getexp 1000, 0; + delitem "IronOre", 1; + getitem "IronPowder", 5; + set @Q_status, @STATUS_L2_ALLSPELLS; + callsub S_update_var; + next; + mes "[Mystic Sword]"; + mes "\"This powder thou shalst need to cast the lightning spell. Throw it up into the air and shout '" + getspellinvocation("lightning-strike") + "', and smite thine enemies with lightning.\""; + next; + goto L_farewell; L_no_ore: - mes "[Mystic Sword]"; - mes "\"Thou dost appear to lack ore. We cannot continue; please fare well and return swiftly!\""; - close; + mes "[Mystic Sword]"; + mes "\"Thou dost appear to lack ore. We cannot continue; please fare well and return swiftly!\""; + close; L_farewell: - mes "[Mystic Sword]"; - mes "\"Then I bid thee farewell for now!\""; - close; + mes "[Mystic Sword]"; + mes "\"Then I bid thee farewell for now!\""; + close; L_lacking_mobpoints: - mes "[Mystic Sword]"; - mes "\"Thou dost not have enough monster points to prove thy worthiness. Return when thou hast slain more monsters!\""; - close; + mes "[Mystic Sword]"; + mes "\"Thou dost not have enough monster points to prove thy worthiness. Return when thou hast slain more monsters!\""; + close; S_update_var: - set QUEST_MAGIC, - (QUEST_MAGIC & ~(@Q_MASK) - | (@Q_status << @Q_SHIFT)); - return; -} + set QUEST_MAGIC, + (QUEST_MAGIC & ~(@Q_MASK) + | (@Q_status << @Q_SHIFT)); + return; +}
\ No newline at end of file diff --git a/world/map/npc/015-3/barrier.txt b/world/map/npc/015-3/barrier.txt index 27a18bc3..32b0a6c3 100644 --- a/world/map/npc/015-3/barrier.txt +++ b/world/map/npc/015-3/barrier.txt @@ -1,20 +1,23 @@ // You can only enter the cat cave naked, otherwise the cat's reaction scares // you away. You can also get in while wearing the cat ears. -015-3.gat,31,42,0 script #CatCaveBarrier 127,1,1,{ +015-3.gat,31,42,0|script|#CatCaveBarrier|127,1,1,{ - if (getequipid(equip_head) != 1217 && (getequipid(equip_head) > 0 || - getequipid(equip_shield) > 0 || - getequipid(equip_hand1) > 0 || - getequipid(equip_hand2) > 0 || - getequipid(equip_gloves) > 0 || - getequipid(equip_shoes) > 0 || - getequipid(equip_misc1) > 0 || - getequipid(equip_misc2) > 0 || - getequipid(equip_torso) > 0 || - getequipid(equip_legs) > 0)) goto L_Not_Naked; + if (getequipid(equip_head) != 1217 + && (getequipid(equip_head) > 0 + || getequipid(equip_shield) > 0 + || getequipid(equip_hand1) > 0 + || getequipid(equip_hand2) > 0 + || getequipid(equip_gloves) > 0 + || getequipid(equip_shoes) > 0 + || getequipid(equip_misc1) > 0 + || getequipid(equip_misc2) > 0 + || getequipid(equip_torso) > 0 + || getequipid(equip_legs) > 0)) + goto L_Not_Naked; - if (LastHiss != 2) mes "\"Hissss...\""; + if (LastHiss != 2) + mes "\"Hissss...\""; set LastHiss, 2; close; diff --git a/world/map/npc/015-3/katze.txt b/world/map/npc/015-3/katze.txt index f1433ed6..89b508b0 100644 --- a/world/map/npc/015-3/katze.txt +++ b/world/map/npc/015-3/katze.txt @@ -16,24 +16,18 @@ // * 2 Hard spikes // * 2 Tiny potions -015-3.gat,32,25,0 script Katze 172, { +015-3.gat,32,25,0|script|Katze|172,{ if (Katze == 1 && KatzeBeenOutside == 1) goto L_NeedsFood; if (Katze == 1) goto L_PreNeedsFood; - if (Katze == 2 && KatzeBeenOutside == 1) goto L_NeedsFur; if (Katze == 2) goto L_PreNeedsFur; - if (Katze == 3) goto L_NeedsWood; - if (Katze == 4 && KatzeBeenOutside == 1) goto L_NeedsStuff; if (Katze == 4) goto L_PreNeedsStuff; - if (Katze == 5) goto L_NeedsStuff2; - if (Katze == 6 && KatzeBeenOutside == 1) goto L_GainEars; if (Katze == 6) goto L_PreGainEars; - if (Katze == 7) goto L_Finished; L_NeedsMilk: @@ -59,23 +53,26 @@ L_NeedsFood: mes "[Katze]"; mes "\"Meow, prrrr...\""; next; - menu "Throw a stone at the cat", L_ThrowStone, - "Leave the cat alone", -; + menu + "Throw a stone at the cat", L_ThrowStone, + "Leave the cat alone", -; close; L_PreNeedsFur: + L_NeedsFur: mes "[Katze]"; mes "\"Prrr. Meow, prrr...\""; next; - if (countitem("WhiteFur") > 0) - menu "Make funny movements with the fur near the ground", L_MoveFur, - "Throw a stone at the cat", L_ThrowStone, - "Leave the cat alone", -; + menu + "Make funny movements with the fur near the ground", L_MoveFur, + "Throw a stone at the cat", L_ThrowStone, + "Leave the cat alone", -; if (countitem("WhiteFur") == 0) - menu "Throw a stone at the cat", L_ThrowStone, - "Leave the cat alone", -; + menu + "Throw a stone at the cat", L_ThrowStone, + "Leave the cat alone", -; close; L_MoveFur: @@ -92,8 +89,9 @@ L_NeedsWood: next; if (countitem("RawLog") > 0) - menu "Want this piece of wood?", L_GiveWood, - "Ok, see you later", -; + menu + "Want this piece of wood?", L_GiveWood, + "Ok, see you later", -; close; L_GiveWood: @@ -121,17 +119,19 @@ L_NeedsStuff2: mes "[Katze]"; mes "\"Did you bring what I asked you for?\""; next; - menu "Look here", L_CatChecksStuff, - "What do you need again?", L_WhatsNeeded, - "No, I haven't got everything yet", -; + menu + "Look here", L_CatChecksStuff, + "What do you need again?", L_WhatsNeeded, + "No, I haven't got everything yet", -; close; L_WhatsNeeded: mes "[Katze]"; mes "\"Actually, you should have remembered yourself.\""; next; - menu "Please tell me", L_Please, - "Never mind", -; + menu + "Please tell me", L_Please, + "Never mind", -; close; L_Please: @@ -146,13 +146,13 @@ L_Please: close; L_CatChecksStuff: - if (countitem("SnakeSkin") > 1 && - countitem("SnakeTongue") > 1 && - countitem("MaggotSlime") > 1 && - countitem("WhiteFur") > 1 && - countitem("HardSpike") > 1 && - countitem("TinyHealingPotion") > 1) - goto L_GiveStuff; + if (countitem("SnakeSkin") > 1 + && countitem("SnakeTongue") > 1 + && countitem("MaggotSlime") > 1 + && countitem("WhiteFur") > 1 + && countitem("HardSpike") > 1 + && countitem("TinyHealingPotion") > 1) + goto L_GiveStuff; mes "[Katze]"; mes "\"You don't seem to have everything yet. Come back later when you do.\""; close; diff --git a/world/map/npc/015-3/pot.txt b/world/map/npc/015-3/pot.txt index a965223d..ae843863 100644 --- a/world/map/npc/015-3/pot.txt +++ b/world/map/npc/015-3/pot.txt @@ -1,6 +1,6 @@ // The pot where the player can deposit stuff for the cat. -015-3.gat,37,29,0 script Pot 127, { +015-3.gat,37,29,0|script|Pot|127,{ if (Katze > 0) mes "It's that old pot again."; @@ -8,16 +8,20 @@ mes "It's a pot."; next; - if (Katze == 1 && KatzeBeenOutside == 1) goto L_NeedsFood; - if (Katze == 1) goto L_HasMilk; - - if (Katze == 2 && KatzeBeenOutside == 1) goto L_NeedsFur; - if (Katze == 2) goto L_HasFood; - - if (Katze == 3) goto L_NeedsWood; - - if (Katze == 4 && KatzeBeenOutside == 0) goto L_HasWood; - if (Katze >= 4) goto L_Finished; + if (Katze == 1 && KatzeBeenOutside == 1) + goto L_NeedsFood; + if (Katze == 1) + goto L_HasMilk; + if (Katze == 2 && KatzeBeenOutside == 1) + goto L_NeedsFur; + if (Katze == 2) + goto L_HasFood; + if (Katze == 3) + goto L_NeedsWood; + if (Katze == 4 && KatzeBeenOutside == 0) + goto L_HasWood; + if (Katze >= 4) + goto L_Finished; L_NeedsMilk: if (countitem("Milk") > 0) @@ -76,8 +80,9 @@ L_NeedsFur: next; if (countitem("WhiteFur") > 0) - menu "Put a white fur next to the pot", L_GiveFur, - "Leave it alone", -; + menu + "Put a white fur next to the pot", L_GiveFur, + "Leave it alone", -; close; L_GiveFur: @@ -86,8 +91,9 @@ L_GiveFur: L_NeedsWood: if (countitem("RawLog") > 0) - menu "Put a wooden log next to the pot", L_GiveWood, - "Leave it alone", -; + menu + "Put a wooden log next to the pot", L_GiveWood, + "Leave it alone", -; close; L_GiveWood: diff --git a/world/map/npc/016-1/gwendolyn.txt b/world/map/npc/016-1/gwendolyn.txt index 469b720a..6e11e5ac 100644 --- a/world/map/npc/016-1/gwendolyn.txt +++ b/world/map/npc/016-1/gwendolyn.txt @@ -23,7 +23,7 @@ //# 6, state6: you did the minigame //################################################################################# -016-1.gat,33,45,0 script Gwendolyn 182, { +016-1.gat,33,45,0|script|Gwendolyn|182,{ // schoolfee in gp set @SCHOOLFEE, 25000; // how many eggs do you need of each kind? @@ -65,6 +65,7 @@ state0: menu "I want to become an archer!", -, "I'm not interested right now.", no_student; + fee: mes "[Gwendolyn Bowmaker]"; mes "\"Wonderful! The school's fee is " + @SCHOOLFEE + ".\""; @@ -73,7 +74,8 @@ fee: "That's a lot, but I think it will be worth it.", -, "I'm not sure I want to spend that much.", no_student; - if (zeny < @SCHOOLFEE) goto no_money; + if (zeny < @SCHOOLFEE) + goto no_money; set zeny, zeny - @SCHOOLFEE; set @Q_hawkseye, 2; @@ -82,7 +84,8 @@ fee: mes "[Gwendolyn Bowmaker]"; mes "\"The first thing you need is, obviously, a bow. You should not use any you come across, but a high quality one. I think it would be best to go to Alan in Hurnscald. He is my cousin, and knows how to make Forest Bows of exquisite quality. \""; - if (countitem("ForestBow") < 1) close; + if (countitem("ForestBow") < 1) + close; next; menu "I already have a Forest Bow.", -; @@ -92,9 +95,10 @@ state2: mes "\"Let me see your bow.\""; next; - if (countitem("ForestBow") < 1) goto no_bow; - - if (@FORESTBOW < 5) goto bow_bought; + if (countitem("ForestBow") < 1) + goto no_bow; + if (@FORESTBOW < 5) + goto bow_bought; set @Q_hawkseye, 3; callsub S_Update_Var; @@ -119,13 +123,16 @@ state3: mes "[Gwendolyn Bowmaker]"; mes "\"To demonstrate that you understood what I'm trying to teach you, you should go and fight against some snakes. To prove me your results, bring me ten each of cave snake eggs, snake eggs, mountain snake eggs and grass snake eggs.\""; next; - menu "Can you please repeat your lesson?", lesson, "I will go and hunt some snakes.", quit, "I have what you want.", -; - if (countitem("CaveSnakeEgg") < @EGGS_AMOUNT ||countitem("SnakeEgg") < @EGGS_AMOUNT ||countitem("MountainSnakeEgg") < @EGGS_AMOUNT ||countitem("GrassSnakeEgg") < @EGGS_AMOUNT) goto not_enough_eggs; + if (countitem("CaveSnakeEgg") < @EGGS_AMOUNT + ||countitem("SnakeEgg") < @EGGS_AMOUNT + ||countitem("MountainSnakeEgg") < @EGGS_AMOUNT + ||countitem("GrassSnakeEgg") < @EGGS_AMOUNT) + goto not_enough_eggs; delitem "CaveSnakeEgg", @EGGS_AMOUNT; delitem "SnakeEgg", @EGGS_AMOUNT; @@ -142,8 +149,10 @@ state3: next; state4: - if (baselevel < @BASELEVEL_GAME) goto not_ready; - if (!(getskilllv(SKILL_POOL))) goto not_ready; + if (baselevel < @BASELEVEL_GAME) + goto not_ready; + if (!(getskilllv(SKILL_POOL))) + goto not_ready; mes "Gwendolyn takes an analyzing look at you. Then she nods."; next; @@ -179,15 +188,16 @@ state5: mes "[Gwendolyn Bowmaker]"; mes "\"Show me what you can!\""; next; - menu "Can you please explain the task again?", game_explain, "I'm ready, let's start!", -, "I'm sorry, I will come back later.", quit; game: - if (countitem("ForestBow") < 1) goto no_bow; - if (countitem("Arrow") < 1) goto no_arrows; + if (countitem("ForestBow") < 1) + goto no_bow; + if (countitem("Arrow") < 1) + goto no_arrows; delitem "Arrow", 1; mes "You go to the training field and stand exactly on the same level with the target. The target is located about 43 feet north of you.You take one arrow and look at Gwendolyn."; next; @@ -214,10 +224,14 @@ game: set @wp_sq, (@wdX * @wdX) + (@wdY * @wdY); - if (@wp_sq == 0) goto wp0; - if (@wp_sq < 3) goto wp1; - if (@wp_sq < 9) goto wp2; - if (@wp_sq < 19) goto wp3; + if (@wp_sq == 0) + goto wp0; + if (@wp_sq < 3) + goto wp1; + if (@wp_sq < 9) + goto wp2; + if (@wp_sq < 19) + goto wp3; goto wp4; @@ -250,12 +264,11 @@ wp4: choose_start_pos: mes "Do you want to go to the left, the right or stay where you are?"; next; - menu "I want to move left.", step_left, "I go right.", step_right, "I stay.", step_no, - "I will try it later.", quit; + "I will try it later.", quit; step_no: set @spX, 0; @@ -271,21 +284,25 @@ step_left: "2", step_left2, "3", step_left3, "4", step_left4; + step_left1: set @spX, -1; mes "You take one step to the left."; next; goto choose_shotpower; + step_left2: set @spX, -2; mes "You take two steps to the left."; next; goto choose_shotpower; + step_left3: set @spX, -3; mes "You take three steps to the left."; next; goto choose_shotpower; + step_left4: set @spX, -4; mes "You take four steps to the left."; @@ -300,21 +317,25 @@ step_right: "2", step_right2, "3", step_right3, "4", step_right4; + step_right1: set @spX, 1; mes "You take one step to the right."; next; goto choose_shotpower; + step_right2: set @spX, 2; mes "You take two steps to the right."; next; goto choose_shotpower; + step_right3: set @spX, 3; mes "You take three steps to the right."; next; goto choose_shotpower; + step_right4: set @spX, 4; mes "You take four steps to the right."; @@ -324,7 +345,6 @@ step_right4: choose_shotpower: mes "How powerfully do you want to shoot?"; next; - menu "very weak shot", -, "rather weak shot", -, @@ -364,8 +384,10 @@ choose_shotpower: // rest is a quite fucking shot set @target_dist_sq, (@pointX * @pointX) + (@pointY*@pointY); - if (@target_dist_sq < 5) goto target_veryclose; - if (@target_dist_sq < 17) goto target_close; + if (@target_dist_sq < 5) + goto target_veryclose; + if (@target_dist_sq < 17) + goto target_close; //here are bad shots: mes "[Gwendolyn Bowmaker]"; @@ -407,7 +429,8 @@ target_hit: next; mes "\"Let me inspect it...\" She walks to the target."; next; - if( rand(500) > (2*readparam(bDex) + readparam(bAgi))) goto target_nohit; + if( rand(500) > (2*readparam(bDex) + readparam(bAgi))) + goto target_nohit; set @Q_hawkseye, 6; callsub S_Update_Var; diff --git a/world/map/npc/017-1/monsters.txt b/world/map/npc/017-1/monsters.txt index 28f2d7e2..21f4939a 100644 --- a/world/map/npc/017-1/monsters.txt +++ b/world/map/npc/017-1/monsters.txt @@ -2,82 +2,82 @@ // This is North Woodlands Mountains. // -017-1.gat,0,0,0,0 monster Bat 1017,5,0,0,Mob33::OnBat -017-1.gat,0,0,0,0 monster FireGoblin 1011,5,0,0,Mob33::OnFireGoblin -017-1.gat,0,0,0,0 monster Mouboo 1028,5,0,0,Mob33::OnMouboo -017-1.gat,0,0,0,0 monster PinkFlower 1014,5,0,0,Mob33::OnPinkFlower -017-1.gat,0,0,0,0 monster SpikyMushroom 1019,5,0,0,Mob33::OnSpikyMushroom -017-1.gat,0,0,0,0 monster EvilMushshroom 1013,10,0,0,Mob33::OnEvilMushroom +017-1.gat,0,0,0,0|monster|Bat|1017,5,0,0,Mob33::OnBat +017-1.gat,0,0,0,0|monster|FireGoblin|1011,5,0,0,Mob33::OnFireGoblin +017-1.gat,0,0,0,0|monster|Mouboo|1028,5,0,0,Mob33::OnMouboo +017-1.gat,0,0,0,0|monster|PinkFlower|1014,5,0,0,Mob33::OnPinkFlower +017-1.gat,0,0,0,0|monster|SpikyMushroom|1019,5,0,0,Mob33::OnSpikyMushroom +017-1.gat,0,0,0,0|monster|EvilMushshroom|1013,10,0,0,Mob33::OnEvilMushroom -017-1.gat,0,0,0,0 monster Alizarin 1032,3,0,0,Mob33::OnAlizarin -017-1.gat,0,0,0,0 monster Gamboge 1031,3,0,0,Mob33::OnGamboge -017-1.gat,0,0,0,0 monster Cobalt 1030,3,0,0,Mob33::OnCobalt -017-1.gat,0,0,0,0 monster Mauve 1029,5,0,0,Mob33::OnMauve +017-1.gat,0,0,0,0|monster|Alizarin|1032,3,0,0,Mob33::OnAlizarin +017-1.gat,0,0,0,0|monster|Gamboge|1031,3,0,0,Mob33::OnGamboge +017-1.gat,0,0,0,0|monster|Cobalt|1030,3,0,0,Mob33::OnCobalt +017-1.gat,0,0,0,0|monster|Mauve|1029,5,0,0,Mob33::OnMauve -017-1.gat,0,0,0,0 monster SilkWorm 1035,10,0,0,Mob33::OnSilkWorm +017-1.gat,0,0,0,0|monster|SilkWorm|1035,10,0,0,Mob33::OnSilkWorm -017-1.gat,0,0,0,0 monster Squirrel 1038,30,20,10,Mob33::OnSquirrel +017-1.gat,0,0,0,0|monster|Squirrel|1038,30,20,10,Mob33::OnSquirrel -017-1.gat,0,0,0 script Mob33 -1,{ +017-1.gat,0,0,0|script|Mob33|-1,{ OnBat: - set @mobID, 1017; - callfunc "MobPoints"; - break; + set @mobID, 1017; + callfunc "MobPoints"; + break; OnFireGoblin: - set @mobID, 1011; - callfunc "MobPoints"; - break; + set @mobID, 1011; + callfunc "MobPoints"; + break; OnMouboo: - set @mobID, 1028; - callfunc "MobPoints"; - break; + set @mobID, 1028; + callfunc "MobPoints"; + break; OnPinkFlower: - set @mobID, 1014; - callfunc "MobPoints"; - break; + set @mobID, 1014; + callfunc "MobPoints"; + break; OnSpikyMushroom: - set @mobID, 1019; - callfunc "MobPoints"; - break; + set @mobID, 1019; + callfunc "MobPoints"; + break; OnEvilMushroom: - set @mobID, 1013; - callfunc "MobPoints"; - break; + set @mobID, 1013; + callfunc "MobPoints"; + break; OnAlizarin: - set @mobID, 1032; - callfunc "MobPoints"; - break; + set @mobID, 1032; + callfunc "MobPoints"; + break; OnGamboge: - set @mobID, 1031; - callfunc "MobPoints"; - break; + set @mobID, 1031; + callfunc "MobPoints"; + break; OnCobalt: - set @mobID, 1030; - callfunc "MobPoints"; - break; + set @mobID, 1030; + callfunc "MobPoints"; + break; OnMauve: - set @mobID, 1029; - callfunc "MobPoints"; - break; + set @mobID, 1029; + callfunc "MobPoints"; + break; OnSilkWorm: - set @mobID, 1035; - callfunc "MobPoints"; - break; + set @mobID, 1035; + callfunc "MobPoints"; + break; OnSquirrel: - set @mobID, 1038; - callfunc "MobPoints"; - break; + set @mobID, 1038; + callfunc "MobPoints"; + break; - end; + end; } diff --git a/world/map/npc/018-1/mike.txt b/world/map/npc/018-1/mike.txt index 7e0d296c..33c33c52 100644 --- a/world/map/npc/018-1/mike.txt +++ b/world/map/npc/018-1/mike.txt @@ -1,22 +1,20 @@ -018-1.gat,77,60,0 script Mike 113,{ +018-1.gat,77,60,0|script|Mike|113,{ - mes "[Mike]"; - mes "\"I need black stingers to make some medicine to cure my sister.\""; - next; + mes "[Mike]"; + mes "\"I need black stingers to make some medicine to cure my sister.\""; + next; - set @dq_level, 40; - set @dq_cost, 16; - set @dq_count, 4; - set @dq_name$, "BlackScorpionStinger"; - set @dq_friendly_name$, "black stingers"; - set @dq_money, 2500; - set @dq_exp, 500; + set @dq_level, 40; + set @dq_cost, 16; + set @dq_count, 4; + set @dq_name$, "BlackScorpionStinger"; + set @dq_friendly_name$, "black stingers"; + set @dq_money, 2500; + set @dq_exp, 500; - callfunc "DailyQuest"; - - next; - - mes "\"Hopefully I'll have enough soon.\""; - close; + callfunc "DailyQuest"; + next; + mes "\"Hopefully I'll have enough soon.\""; + close; } diff --git a/world/map/npc/018-1/miners.txt b/world/map/npc/018-1/miners.txt index f16b8bd7..f372b120 100644 --- a/world/map/npc/018-1/miners.txt +++ b/world/map/npc/018-1/miners.txt @@ -1,7 +1,7 @@ // -018-1.gat,80,61,0 script Miner 109,{ - mes "[Miner]"; - mes "\"Be careful in there.\""; - close; +018-1.gat,80,61,0|script|Miner|109,{ + mes "[Miner]"; + mes "\"Be careful in there.\""; + close; } diff --git a/world/map/npc/018-1/sword.txt b/world/map/npc/018-1/sword.txt index 78cad244..16804a02 100644 --- a/world/map/npc/018-1/sword.txt +++ b/world/map/npc/018-1/sword.txt @@ -1,11 +1,10 @@ -018-1.gat,110,43,0 script #IceSword#_M 127,{ - if (getskilllv(SKILL_MAGIC)) - goto L_message; - - close; +018-1.gat,110,43,0|script|#IceSword#_M|127,{ + if (getskilllv(SKILL_MAGIC)) + goto L_message; + close; L_message: - mes "[Sword in Pond]"; - mes "\"Zzzzzz.....\""; - close; + mes "[Sword in Pond]"; + mes "\"Zzzzzz.....\""; + close; } diff --git a/world/map/npc/018-2/angus.txt b/world/map/npc/018-2/angus.txt index 846bed7d..d5b9ad08 100644 --- a/world/map/npc/018-2/angus.txt +++ b/world/map/npc/018-2/angus.txt @@ -1,18 +1,18 @@ // Angus the craftsman -018-2.gat,31,39,0 script Angus 147,{ - set @honorific$, "lad"; - if (Sex == 0) set @honorific$, "lass"; +018-2.gat,31,39,0|script|Angus|147,{ + set @honorific$, "lad"; + if (Sex == 0) set @honorific$, "lass"; - if (Inspector == 10) goto L_NohMask; + if (Inspector == 10) goto L_NohMask; - mes "[Angus]"; - mes "Angus is tinkering with some mechanical concoction."; - mes "\"It keeps breakin' left an' right... fortunat'ly I put in redundancies everywhere, but I haf' to keep repairin'.\""; - close; + mes "[Angus]"; + mes "Angus is tinkering with some mechanical concoction."; + mes "\"It keeps breakin' left an' right... fortunat'ly I put in redundancies everywhere, but I haf' to keep repairin'.\""; + close; L_NohMask: - mes "[Angus]"; - mes "\"I'm sorry, " + @honorific$ + ", I truely am, but I stay in the town. One o' the miners might have heard something.\""; - close; + mes "[Angus]"; + mes "\"I'm sorry, " + @honorific$ + ", I truely am, but I stay in the town. One o' the miners might have heard something.\""; + close; } diff --git a/world/map/npc/018-2/books.txt b/world/map/npc/018-2/books.txt index 22364c6d..260b670d 100644 --- a/world/map/npc/018-2/books.txt +++ b/world/map/npc/018-2/books.txt @@ -1,18 +1,15 @@ // -018-2.gat,112,19,0 script #Bookcase38 127,0,1{ - if (Inspector == 11) goto L_NohMask; - - mes "Looking over the bookcase, you find nothing strange or out of order."; - close; +018-2.gat,112,19,0|script|#Bookcase38|127,0,1{ + if (Inspector == 11) goto L_NohMask; + mes "Looking over the bookcase, you find nothing strange or out of order."; + close; L_NohMask: - mes "Looking over the bookcase closely, you find a book is upside down."; - next; - - mes "The book has been hollowed out. Inside is a theater mask and a note that you cannot even begin to read."; - next; - - set Inspector, 12; - close; + mes "Looking over the bookcase closely, you find a book is upside down."; + next; + mes "The book has been hollowed out. Inside is a theater mask and a note that you cannot even begin to read."; + next; + set Inspector, 12; + close; } diff --git a/world/map/npc/018-2/caul.txt b/world/map/npc/018-2/caul.txt index 51196583..11197ef3 100644 --- a/world/map/npc/018-2/caul.txt +++ b/world/map/npc/018-2/caul.txt @@ -7,1012 +7,1065 @@ //# //################################################################################# -018-2.gat,37,22,0 script Caul 107,{ - set @SETZER_INITIAL, 0; - set @SETZER_KNOWS_OIL, 1; - set @SETZER_KNOWS_STINGER, 2; - set @SETZER_FLAG_MADE_OIL, 4; +018-2.gat,37,22,0|script|Caul|107,{ + set @SETZER_INITIAL, 0; + set @SETZER_KNOWS_OIL, 1; + set @SETZER_KNOWS_STINGER, 2; + set @SETZER_FLAG_MADE_OIL, 4; - set @MONSTER_OIL_XP, 100000; - set @MOPOX_CURE_XP, 30000; + set @MONSTER_OIL_XP, 100000; + set @MOPOX_CURE_XP, 30000; - set @Q_MASK, NIBBLE_3_MASK; - set @Q_SHIFT, NIBBLE_3_SHIFT; + set @Q_MASK, NIBBLE_3_MASK; + set @Q_SHIFT, NIBBLE_3_SHIFT; - set @Q_status, (QUEST_Forestbow_state & @Q_MASK) >> @Q_SHIFT; + set @Q_status, (QUEST_Forestbow_state & @Q_MASK) >> @Q_SHIFT; - set @Q_knows_mopox_cure, ((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) >= 4; // Elanore's quest for curing Kadiya + set @Q_knows_mopox_cure, ((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) >= 4; // Elanore's quest for curing Kadiya - // Can the player get XP for brewing the cure? - set @Q_can_score_mopox_cure, (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) == 4) // Elanore's quest for curing Kadiya + // Can the player get XP for brewing the cure? + set @Q_can_score_mopox_cure, (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) == 4) // Elanore's quest for curing Kadiya && (((QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT) < 2); // Haven't brewed it yet - mes "[Caul]"; - mes "\"I can help you to brew healing potions out of mauve, cobalt, gamboge and alizarin herbs."; - mes "How many potions do you want to brew?\""; - next; + mes "[Caul]"; + mes "\"I can help you to brew healing potions out of mauve, cobalt, gamboge and alizarin herbs."; + mes "How many potions do you want to brew?\""; + next; - set @C_monster_oil, 20; - set @C_mopox_cure, 21; - set @C_nohmask, 22; - set @C_dementiapotion, 23; - set @C_bye, 24; + set @C_monster_oil, 20; + set @C_mopox_cure, 21; + set @C_nohmask, 22; + set @C_dementiapotion, 23; + set @C_bye, 24; - setarray @choice$, "One.", "Five.", "Ten.", "Fifty.", "", "", "", "", ""; - setarray @choice_idx, 1, 5, 10, 50, 0, 0, 0, 0, 0; - set @choices_nr, 4; + setarray @choice$, "One.", "Five.", "Ten.", "Fifty.", "", "", "", "", ""; + setarray @choice_idx, 1, 5, 10, 50, 0, 0, 0, 0, 0; + set @choices_nr, 4; - if !(@Q_status) - goto L_M_no_monster_oil; + if !(@Q_status) + goto L_M_no_monster_oil; - set @choice_idx[@choices_nr], @C_monster_oil; - set @choice$[@choices_nr], "I would like to brew Monster Oil."; - set @choices_nr, @choices_nr + 1; + set @choice_idx[@choices_nr], @C_monster_oil; + set @choice$[@choices_nr], "I would like to brew Monster Oil."; + set @choices_nr, @choices_nr + 1; L_M_no_monster_oil: + if (!@Q_knows_mopox_cure) + goto L_M_no_mopox_cure; - if (!@Q_knows_mopox_cure) - goto L_M_no_mopox_cure; - - set @choice_idx[@choices_nr], @C_mopox_cure; - set @choice$[@choices_nr], "I would like to brew a Mopox Cure Potion."; - set @choices_nr, @choices_nr + 1; + set @choice_idx[@choices_nr], @C_mopox_cure; + set @choice$[@choices_nr], "I would like to brew a Mopox Cure Potion."; + set @choices_nr, @choices_nr + 1; L_M_no_mopox_cure: + if (Inspector != 10) + goto L_M_no_inspector; - if (Inspector != 10) - goto L_M_no_inspector; - - set @choice_idx[@choices_nr], @C_nohmask; - set @choice$[@choices_nr], "Actually..."; - set @choices_nr, @choices_nr + 1; + set @choice_idx[@choices_nr], @C_nohmask; + set @choice$[@choices_nr], "Actually..."; + set @choices_nr, @choices_nr + 1; L_M_no_inspector: + if (!(MAGIC_FLAGS & MFLAG_KNOWS_UNFOCUS_RECIPE)) + goto L_M_no_dempo; - if (!(MAGIC_FLAGS & MFLAG_KNOWS_UNFOCUS_RECIPE)) - goto L_M_no_dempo; - - set @choice_idx[@choices_nr], @C_dementiapotion; - set @choice$[@choices_nr], "I would like to brew a Dementia Potion."; - set @choices_nr, @choices_nr + 1; + set @choice_idx[@choices_nr], @C_dementiapotion; + set @choice$[@choices_nr], "I would like to brew a Dementia Potion."; + set @choices_nr, @choices_nr + 1; L_M_no_dempo: + set @choice_idx[@choices_nr], @C_bye; + set @choice$[@choices_nr], "Never mind."; + set @choices_nr, @choices_nr + 1; + + menu + @choice$[0], -, + @choice$[1], -, + @choice$[2], -, + @choice$[3], -, + @choice$[4], -, + @choice$[5], -, + @choice$[6], -, + @choice$[7], -; + + set @choice, @choice_idx[@menu - 1]; + + if (@choice == @C_monster_oil) + goto L_monster_oil_start; + if (@choice == @C_mopox_cure) + goto L_mopox_cure_start; + if (@choice == @C_nohmask) + goto L_NohMask; + if (@choice == @C_dementiapotion) + goto L_DemPotion; + if (@choice == @C_bye) + goto L_close; - set @choice_idx[@choices_nr], @C_bye; - set @choice$[@choices_nr], "Never mind."; - set @choices_nr, @choices_nr + 1; - - menu - @choice$[0], -, - @choice$[1], -, - @choice$[2], -, - @choice$[3], -, - @choice$[4], -, - @choice$[5], -, - @choice$[6], -, - @choice$[7], -; - - set @choice, @choice_idx[@menu - 1]; - - if (@choice == @C_monster_oil) - goto L_monster_oil_start; - if (@choice == @C_mopox_cure) - goto L_mopox_cure_start; - if (@choice == @C_nohmask) - goto L_NohMask; - if (@choice == @C_dementiapotion) - goto L_DemPotion; - if (@choice == @C_bye) - goto L_close; - - // otherwise the choice is the number of potions-to-brew - set @num, @choice; - if (@num == 0) - goto L_close; + // otherwise the choice is the number of potions-to-brew + set @num, @choice; + if (@num == 0) + goto L_close; L_brew: - mes "[Caul]"; - mes "\"Now put " + @num + " herbs of each kind into the cauldron, stir, and concentrate all your mental energy on it.\""; - next; - - if (countitem("MauveHerb") < @num) goto L_NotEnough; - if (countitem("CobaltHerb") < @num) goto L_NotEnough; - if (countitem("GambogeHerb") < @num) goto L_NotEnough; - if (countitem("AlizarinHerb") < @num) goto L_NotEnough; - - set @a, @num; - set @result1, 0; - set @result2, 0; - set @result3, 0; - set @result4, 0; + mes "[Caul]"; + mes "\"Now put " + @num + " herbs of each kind into the cauldron, stir, and concentrate all your mental energy on it.\""; + next; + + if (countitem("MauveHerb") < @num) + goto L_NotEnough; + if (countitem("CobaltHerb") < @num) + goto L_NotEnough; + if (countitem("GambogeHerb") < @num) + goto L_NotEnough; + if (countitem("AlizarinHerb") < @num) + goto L_NotEnough; + + set @a, @num; + set @result1, 0; + set @result2, 0; + set @result3, 0; + set @result4, 0; L_CraftLoop: - set @throw, rand(readparam(bInt)); - set @result, 1; - if (@throw >= 5) set @result, 2; - if (@throw >= 15) set @result, 3; - if (@throw >= 35) set @result, 4; - - if (@result == 1) set @result1, @result1 + 1; - if (@result == 2) set @result2, @result2 + 1; - if (@result == 3) set @result3, @result3 + 1; - if (@result == 4) set @result4, @result4 + 1; - - set @a, @a - 1; - if (@a > 0) goto L_CraftLoop; - - delitem "MauveHerb", @num; - delitem "CobaltHerb", @num; - delitem "GambogeHerb", @num; - delitem "AlizarinHerb", @num; - - getitem 684, @result1; - getitem 685, @result2; - getitem 686, @result3; - getitem 687, @result4; - - mes "[Caul]"; - mes "\"Well done! You made:"; - if (@result1 > 0) mes @result1 + " tiny potions"; - if (@result2 > 0) mes @result2 + " small potions"; - if (@result3 > 0) mes @result3 + " medium potions"; - if (@result4 > 0) mes @result4 + " large potions"; - mes "Come again.\""; - close; + set @throw, rand(readparam(bInt)); + set @result, 1; + if (@throw >= 5) set @result, 2; + if (@throw >= 15) set @result, 3; + if (@throw >= 35) set @result, 4; + + if (@result == 1) set @result1, @result1 + 1; + if (@result == 2) set @result2, @result2 + 1; + if (@result == 3) set @result3, @result3 + 1; + if (@result == 4) set @result4, @result4 + 1; + + set @a, @a - 1; + if (@a > 0) goto L_CraftLoop; + + delitem "MauveHerb", @num; + delitem "CobaltHerb", @num; + delitem "GambogeHerb", @num; + delitem "AlizarinHerb", @num; + + getitem 684, @result1; + getitem 685, @result2; + getitem 686, @result3; + getitem 687, @result4; + + mes "[Caul]"; + mes "\"Well done! You made:"; + if (@result1 > 0) + mes @result1 + " tiny potions"; + if (@result2 > 0) + mes @result2 + " small potions"; + if (@result3 > 0) + mes @result3 + " medium potions"; + if (@result4 > 0) + mes @result4 + " large potions"; + mes "Come again.\""; + close; L_NotEnough: - mes "[Caul]"; - mes "\"Oh, it seems like you don't have enough herbs. You can find herbs in deep forests.\""; - close; + mes "[Caul]"; + mes "\"Oh, it seems like you don't have enough herbs. You can find herbs in deep forests.\""; + close; L_monster_oil_start: - mes "[Caul]"; - mes "\"Monster oil? Hmm, I have heard of it, but I don't remember the precise recipe to make it...\""; - next; - if (@Q_status == @SETZER_KNOWS_OIL) - menu "OK, I'll ask around, perhaps someone else knows.", L_close; - if (@Q_status > @SETZER_KNOWS_OIL) - menu "Rauk told me the recipe.", L_monster_oil_knows_recipe; - close; + mes "[Caul]"; + mes "\"Monster oil? Hmm, I have heard of it, but I don't remember the precise recipe to make it...\""; + next; + if (@Q_status == @SETZER_KNOWS_OIL) + menu + "OK, I'll ask around, perhaps someone else knows.", L_close; + if (@Q_status > @SETZER_KNOWS_OIL) + menu + "Rauk told me the recipe.", L_monster_oil_knows_recipe; + close; L_monster_oil_knows_recipe: - mes "[Caul]"; - mes "\"Ah, but of course! Yes, we should be able to brew that here. Except that... hmm. Pearl and three black scorpion stingers? This sounds very dangerous;"; - mes "I fear that I will have to ask you to do this yourself.\""; - next; + mes "[Caul]"; + mes "\"Ah, but of course! Yes, we should be able to brew that here. Except that... hmm. Pearl and three black scorpion stingers? This sounds very dangerous;"; + mes "I fear that I will have to ask you to do this yourself.\""; + next; L_monster_oil_main_menu: - set @main_menu, 1; - menu - "What do you mean by 'dangerous'?", L_monster_oil_why_dangerous, - "What do I need, again?", L_monster_oil_ingredients, - "How does this work?", L_monster_oil_explain, - "Let's start!", L_monster_oil_start_brew, - "Where can I get a golden scorpion stinger?", L_monster_oil_where_gold, - "I've changed my mind.", L_close; - close; + set @main_menu, 1; + menu + "What do you mean by 'dangerous'?", L_monster_oil_why_dangerous, + "What do I need, again?", L_monster_oil_ingredients, + "How does this work?", L_monster_oil_explain, + "Let's start!", L_monster_oil_start_brew, + "Where can I get a golden scorpion stinger?", L_monster_oil_where_gold, + "I've changed my mind.", L_close; + close; L_monster_oil_why_dangerous: - mes "[Caul]"; - mes "\"Well, with those two reagents in there at that ratio, you risk an explosion-- quite possibly a fatal one. So be prepared to duck if the brew gets too bubbly-- it's better to lose the ingredients than your head!\""; - next; - goto L_monster_oil_main_menu; + mes "[Caul]"; + mes "\"Well, with those two reagents in there at that ratio, you risk an explosion-- quite possibly a fatal one. So be prepared to duck if the brew gets too bubbly-- it's better to lose the ingredients than your head!\""; + next; + goto L_monster_oil_main_menu; L_monster_oil_ingredients: - mes "[Caul]"; - mes "\"You will need one pearl, two snake skins, three black scorpion stingers, two piles of ash, and a golden scorpion stinger. The golden stinger goes in last, after the dangerous part, so you won't lose it if your brew blows up.\""; - next; - mes "[Caul]"; - mes "\"You should also bring gamboge, mauve, alizarin and cobalt leaves. You will have to stabilize the brew, and they will help with that.\""; - next; - goto L_monster_oil_main_menu; + mes "[Caul]"; + mes "\"You will need one pearl, two snake skins, three black scorpion stingers, two piles of ash, and a golden scorpion stinger. The golden stinger goes in last, after the dangerous part, so you won't lose it if your brew blows up.\""; + next; + mes "[Caul]"; + mes "\"You should also bring gamboge, mauve, alizarin and cobalt leaves. You will have to stabilize the brew, and they will help with that.\""; + next; + goto L_monster_oil_main_menu; L_monster_oil_explain: - mes "[Caul]"; - mes "\"After you have put in the monster parts-- except for the golden stinger-- the brew will take on some random color; this can be a light, dark, or medium color. You have to stabilize this color by adding leaves to it.\""; - next; - mes "[Caul]"; - mes "\"Of course, with such a violent brew the mixture will change color by itself, too, probably faster than your leaves can affect it. It will randomly add or remove colors, and might even get lighter.\""; - next; - mes "[Caul]"; - mes "\"From what I have seen, it seems to go through phases-- for each alternate leaf it adds a colour, then removes a color, then adds again and so on. Of course, if the color is there already it can't add any more.\""; - next; - mes "[Caul]"; - mes "\"I haven't figured out yet precisely when it gets lighter, though.\""; - next; - mes "[Caul]"; - mes "\"By adding Mauve, you can make it darker. Alizarin adds red, Gamboge yellow, Cobalt blue. To make it a proper black, you have to get it to be dark gray, then add one Mauve leaf.\""; - next; - mes "[Caul]"; - mes "\"Unfortunately the brew changes randomly before your leaves dissolve, so sometimes you can't help but add the wrong color...\""; - next; - mes "[Caul]"; - mes "\"Since the brew changes its color first, you might want to add the Mauve when your color is a dark purple or dark green or dark orange and hope for the best.\""; - next; - mes "[Caul]"; - mes "\"But don't add too much! If you add a color that is already there, or try to make it darker at the wrong spot, it may backfire.\""; - next; - if (@main_menu) - goto L_monster_oil_main_menu; - goto L_monster_oil_loop; + mes "[Caul]"; + mes "\"After you have put in the monster parts-- except for the golden stinger-- the brew will take on some random color; this can be a light, dark, or medium color. You have to stabilize this color by adding leaves to it.\""; + next; + mes "[Caul]"; + mes "\"Of course, with such a violent brew the mixture will change color by itself, too, probably faster than your leaves can affect it. It will randomly add or remove colors, and might even get lighter.\""; + next; + mes "[Caul]"; + mes "\"From what I have seen, it seems to go through phases-- for each alternate leaf it adds a colour, then removes a color, then adds again and so on. Of course, if the color is there already it can't add any more.\""; + next; + mes "[Caul]"; + mes "\"I haven't figured out yet precisely when it gets lighter, though.\""; + next; + mes "[Caul]"; + mes "\"By adding Mauve, you can make it darker. Alizarin adds red, Gamboge yellow, Cobalt blue. To make it a proper black, you have to get it to be dark gray, then add one Mauve leaf.\""; + next; + mes "[Caul]"; + mes "\"Unfortunately the brew changes randomly before your leaves dissolve, so sometimes you can't help but add the wrong color...\""; + next; + mes "[Caul]"; + mes "\"Since the brew changes its color first, you might want to add the Mauve when your color is a dark purple or dark green or dark orange and hope for the best.\""; + next; + mes "[Caul]"; + mes "\"But don't add too much! If you add a color that is already there, or try to make it darker at the wrong spot, it may backfire.\""; + next; + if (@main_menu) + goto L_monster_oil_main_menu; + goto L_monster_oil_loop; L_monster_oil_where_gold: - mes "[Caul]"; - mes "\"Good question. There aren't any golden scorpions nearby. Perhaps you can find a trader or an adventurer who have travelled further south and ask them to help?\""; - next; - goto L_monster_oil_main_menu; + mes "[Caul]"; + mes "\"Good question. There aren't any golden scorpions nearby. Perhaps you can find a trader or an adventurer who have travelled further south and ask them to help?\""; + next; + goto L_monster_oil_main_menu; L_monster_oil_start_brew: - set @main_menu, 0; - if (countitem ("Pearl") < 1) goto L_monster_oil_missing; - if (countitem ("SnakeSkin") < 2) goto L_monster_oil_missing; - if (countitem ("BlackScorpionStinger") < 3) goto L_monster_oil_missing; - if (countitem ("PileOfAsh") < 2) goto L_monster_oil_missing; - if (countitem ("GoldenScorpionStinger") < 1) goto L_monster_oil_missing_gold; - - delitem "Pearl", 1; - delitem "SnakeSkin", 2; - delitem "BlackScorpionStinger", 3; - delitem "PileOfAsh", 2; - - set @bubble_mode, 0; - setarray @bubble_modes$, - "The brew is calm.", - "The brew is bubbling.", - "The brew is bubbling violently."; - - set @color, 1 << (rand(3)); - setarray @colors$, - "white", - "red", - "yellow", - "orange", - "blue", - "purple", - "green", - "gray"; - - set @intensity, 1; - setarray @intensities$, - "light", - "medium", - "dark"; - - set @auto_mode, 0; // Start by adding a colour or going lighter - - goto L_monster_oil_loop; + set @main_menu, 0; + if (countitem ("Pearl") < 1) + goto L_monster_oil_missing; + if (countitem ("SnakeSkin") < 2) + goto L_monster_oil_missing; + if (countitem ("BlackScorpionStinger") < 3) + goto L_monster_oil_missing; + if (countitem ("PileOfAsh") < 2) + goto L_monster_oil_missing; + if (countitem ("GoldenScorpionStinger") < 1) + goto L_monster_oil_missing_gold; + + delitem "Pearl", 1; + delitem "SnakeSkin", 2; + delitem "BlackScorpionStinger", 3; + delitem "PileOfAsh", 2; + + set @bubble_mode, 0; + setarray @bubble_modes$, + "The brew is calm.", + "The brew is bubbling.", + "The brew is bubbling violently."; + + set @color, 1 << (rand(3)); + setarray @colors$, + "white", + "red", + "yellow", + "orange", + "blue", + "purple", + "green", + "gray"; + + set @intensity, 1; + setarray @intensities$, + "light", + "medium", + "dark"; + + set @auto_mode, 0; // Start by adding a colour or going lighter + + goto L_monster_oil_loop; L_monster_oil_missing: - mes "[Caul]"; - mes "\"You don't seem to have all of the ingredients. You need one pearl, two snake skins, three black stingers, two piles of ash, and one golden stinger.\""; - close; + mes "[Caul]"; + mes "\"You don't seem to have all of the ingredients. You need one pearl, two snake skins, three black stingers, two piles of ash, and one golden stinger.\""; + close; L_monster_oil_missing_gold: - mes "[Caul]"; - mes "\"You seem to have everything except for the golden stinger. I understand that this one is hard to get, but I'm sure that you can find one somewhere.\""; - close; + mes "[Caul]"; + mes "\"You seem to have everything except for the golden stinger. I understand that this one is hard to get, but I'm sure that you can find one somewhere.\""; + close; L_monster_oil_loop: - mes "[Brewing monster oil]"; - mes @bubble_modes$[@bubble_mode]; - mes "It is currently a " + @intensities$[@intensity] + " " + @colors$[@color] + "."; - next; - - menu - "Add alizarin leaf", L_monster_oil_alizarin, - "Add gamboge leaf", L_monster_oil_gamboge, - "Add cobalt leaf", L_monster_oil_cobalt, - "Add mauve leaf", L_monster_oil_mauve, - "Ask Caul for advice", L_monster_oil_explain, - "Duck!", -; - - mes "[Brewing monster oil]"; - mes "You throw yourself onto the ground. Seconds later, the cauldron shakes, and your entire mixture explodes upwards."; - mes "Caul crawls out from underneath a char."; - next; - mes "[Caul]"; - mes "\"I'm glad to see that you chose to brew another day... perhaps it might be best if you give up on this dangerous concoction, though!\""; - close; + mes "[Brewing monster oil]"; + mes @bubble_modes$[@bubble_mode]; + mes "It is currently a " + @intensities$[@intensity] + " " + @colors$[@color] + "."; + next; + + menu + "Add alizarin leaf", L_monster_oil_alizarin, + "Add gamboge leaf", L_monster_oil_gamboge, + "Add cobalt leaf", L_monster_oil_cobalt, + "Add mauve leaf", L_monster_oil_mauve, + "Ask Caul for advice", L_monster_oil_explain, + "Duck!", -; + + mes "[Brewing monster oil]"; + mes "You throw yourself onto the ground. Seconds later, the cauldron shakes, and your entire mixture explodes upwards."; + mes "Caul crawls out from underneath a char."; + next; + mes "[Caul]"; + mes "\"I'm glad to see that you chose to brew another day... perhaps it might be best if you give up on this dangerous concoction, though!\""; + close; L_monster_oil_out_of_leaves: - mes "[Brewing monster oil]"; - mes "You don't have any of these leaves left!"; - next; - goto L_monster_oil_loop; + mes "[Brewing monster oil]"; + mes "You don't have any of these leaves left!"; + next; + goto L_monster_oil_loop; L_monster_oil_alizarin: - set @use_leaf$, "AlizarinHerb"; - set @use_color, 1; - goto L_monster_oil_leaf_color; + set @use_leaf$, "AlizarinHerb"; + set @use_color, 1; + goto L_monster_oil_leaf_color; L_monster_oil_gamboge: - set @use_leaf$, "GambogeHerb"; - set @use_color, 2; - goto L_monster_oil_leaf_color; + set @use_leaf$, "GambogeHerb"; + set @use_color, 2; + goto L_monster_oil_leaf_color; L_monster_oil_cobalt: - set @use_leaf$, "CobaltHerb"; - set @use_color, 4; - goto L_monster_oil_leaf_color; + set @use_leaf$, "CobaltHerb"; + set @use_color, 4; + goto L_monster_oil_leaf_color; L_monster_oil_leaf_color: - if (countitem (@use_leaf$) < 1) goto L_monster_oil_out_of_leaves; + if (countitem (@use_leaf$) < 1) + goto L_monster_oil_out_of_leaves; - callsub S_monster_oil_random_move; - if (@color & @use_color) goto L_monster_oil_pc_bad; - set @color, @color | @use_color; - delitem @use_leaf$, 1; + callsub S_monster_oil_random_move; + if (@color & @use_color) + goto L_monster_oil_pc_bad; + set @color, @color | @use_color; + delitem @use_leaf$, 1; - mes "The brew changes its hue as your leaf dissolves."; - next; - goto L_monster_oil_loop; + mes "The brew changes its hue as your leaf dissolves."; + next; + goto L_monster_oil_loop; L_monster_oil_mauve: - if (countitem("MauveHerb") < 1) goto L_monster_oil_out_of_leaves; - delitem "MauveHerb", 1; + if (countitem("MauveHerb") < 1) + goto L_monster_oil_out_of_leaves; + delitem "MauveHerb", 1; - callsub S_monster_oil_random_move; - if (@intensity == 2 && @color == 7) goto L_monster_oil_done; - if (@intensity == 2) goto L_monster_oil_pc_bad; + callsub S_monster_oil_random_move; + if (@intensity == 2 && @color == 7) + goto L_monster_oil_done; + if (@intensity == 2) + goto L_monster_oil_pc_bad; - set @intensity, @intensity + 1; - mes "The brew darkens as your mauve leaf dissolves."; - next; - goto L_monster_oil_loop; + set @intensity, @intensity + 1; + mes "The brew darkens as your mauve leaf dissolves."; + next; + goto L_monster_oil_loop; S_monster_oil_random_move: - mes "[Brewing monster oil]"; - mes "You throw in a leaf and stir."; + mes "[Brewing monster oil]"; + mes "You throw in a leaf and stir."; - if (@auto_mode == 1) - goto L_monster_oil_random_1; + if (@auto_mode == 1) + goto L_monster_oil_random_1; L_monster_oil_random_0: // mode 0: add colour or lighten up - set @auto_mode, 1; - if (rand(3) == 0) - goto L_monster_oil_random_0_lighten; + set @auto_mode, 1; + if (rand(3) == 0) + goto L_monster_oil_random_0_lighten; - set @choice, 1 << (rand(3)); - if (@color & @choice) - goto L_monster_oil_auto_bad; - set @color, @color | @choice; + set @choice, 1 << (rand(3)); + if (@color & @choice) + goto L_monster_oil_auto_bad; + set @color, @color | @choice; - mes "Before your leaf has a chance to dissolve, the brew changes to a " + @colors$[@color] + " hue."; - return; + mes "Before your leaf has a chance to dissolve, the brew changes to a " + @colors$[@color] + " hue."; + return; L_monster_oil_random_0_lighten: - if (@intensity == 0) - goto L_monster_oil_auto_bad; - set @intensity, @intensity - 1; - mes "Before your leaf has a chance to dissolve, the brew takes on a lighter shade of " + @colors$[@color] + "."; - return; + if (@intensity == 0) + goto L_monster_oil_auto_bad; + set @intensity, @intensity - 1; + mes "Before your leaf has a chance to dissolve, the brew takes on a lighter shade of " + @colors$[@color] + "."; + return; L_monster_oil_random_1: // mode 1: remove colour - set @auto_mode, 0; - set @choice, 1 << (rand(3)); - if (!(@color & @choice)) - goto L_monster_oil_auto_bad; - set @color, @color & (~@choice); - mes "Before your leaf has a chance to dissolve, the brew changes to a " + @colors$[@color] + " hue."; - return; + set @auto_mode, 0; + set @choice, 1 << (rand(3)); + if (!(@color & @choice)) + goto L_monster_oil_auto_bad; + set @color, @color & (~@choice); + mes "Before your leaf has a chance to dissolve, the brew changes to a " + @colors$[@color] + " hue."; + return; L_monster_oil_pc_bad: - if (rand(readparam(bInt) + 100) > 60) goto L_monster_oil_pc_bad_ok; - if (@bubble_mode) - mes "As your leaf dissolves, the intensity of the bubbling increases."; - if (!@bubble_mode) - mes "As your leaf dissolves, the brew begins to bubble."; - next; - set @bubble_mode, @bubble_mode + 1; - if (@bubble_mode > 2) - goto L_monster_oil_explode; - goto L_monster_oil_loop; + if (rand(readparam(bInt) + 100) > 60) + goto L_monster_oil_pc_bad_ok; + if (@bubble_mode) + mes "As your leaf dissolves, the intensity of the bubbling increases."; + if (!@bubble_mode) + mes "As your leaf dissolves, the brew begins to bubble."; + next; + set @bubble_mode, @bubble_mode + 1; + if (@bubble_mode > 2) + goto L_monster_oil_explode; + goto L_monster_oil_loop; L_monster_oil_pc_bad_ok: - mes "Your leaf dissolves but seems to have no effect."; - next; - goto L_monster_oil_loop; + mes "Your leaf dissolves but seems to have no effect."; + next; + goto L_monster_oil_loop; L_monster_oil_auto_bad: - if (rand(3) == 0) - return; - if (rand(readparam(bInt) + 100) > 70) - return; - mes "The brew begins to bubble more violently."; - set @bubble_mode, @bubble_mode + 1; - if (@bubble_mode > 2) - next; - if (@bubble_mode > 2) - goto L_monster_oil_explode; - return; + if (rand(3) == 0) + return; + if (rand(readparam(bInt) + 100) > 70) + return; + mes "The brew begins to bubble more violently."; + set @bubble_mode, @bubble_mode + 1; + if (@bubble_mode > 2) + next; + if (@bubble_mode > 2) + goto L_monster_oil_explode; + return; L_monster_oil_explode: - mes "[Exploding monster oil]"; - mes "Your brew explodes!"; - if (rand(readparam(bAgi)) > 40) - goto L_monster_oil_explode_dodge; - mes "The burst of boiling monster brew hits you."; - next; - itemheal (15 * rand(readparam(bVit))) - 1500, 0; - close; + mes "[Exploding monster oil]"; + mes "Your brew explodes!"; + if (rand(readparam(bAgi)) > 40) + goto L_monster_oil_explode_dodge; + mes "The burst of boiling monster brew hits you."; + next; + itemheal (15 * rand(readparam(bVit))) - 1500, 0; + close; L_monster_oil_explode_dodge: - mes "You throw yourself to the ground at the very last moment, barely avoiding the burst of boiling monster brew."; - next; - mes "[Caul]"; - mes "Caul nods at you from underneath a chair."; - mes "\"I told you, it's dangerous!!\""; - close; + mes "You throw yourself to the ground at the very last moment, barely avoiding the burst of boiling monster brew."; + next; + mes "[Caul]"; + mes "Caul nods at you from underneath a chair."; + mes "\"I told you, it's dangerous!!\""; + close; L_monster_oil_done: - mes "As you throw in another mauve leaf, the brew takes on a deep black color and calms down."; - next; - - mes "[Brewing monster oil]"; - mes "As instructed, you toss in your golden scorpion stinger."; + mes "As you throw in another mauve leaf, the brew takes on a deep black color and calms down."; + next; + mes "[Brewing monster oil]"; + mes "As instructed, you toss in your golden scorpion stinger."; - if (countitem ("GoldenScorpionStinger") < 1) goto L_monster_oil_no_gold_end; + if (countitem ("GoldenScorpionStinger") < 1) + goto L_monster_oil_no_gold_end; - mes "The brew bubbles once more, then calms completely."; + mes "The brew bubbles once more, then calms completely."; - delitem "GoldenScorpionStinger", 1; - getitem "MonsterOilPotion", 1; + delitem "GoldenScorpionStinger", 1; + getitem "MonsterOilPotion", 1; - if (!(@Q_status & @SETZER_FLAG_MADE_OIL)) - getexp @MONSTER_OIL_XP, 0; - if (!(@Q_status & @SETZER_FLAG_MADE_OIL)) - mes "[" + @MONSTER_OIL_XP + " experience points]"; + if (!(@Q_status & @SETZER_FLAG_MADE_OIL)) + getexp @MONSTER_OIL_XP, 0; + if (!(@Q_status & @SETZER_FLAG_MADE_OIL)) + mes "[" + @MONSTER_OIL_XP + " experience points]"; - set @Q_status, @Q_status | @SETZER_FLAG_MADE_OIL; - callsub S_Update_Var; - next; - - mes "[Caul]"; - mes "Caul gets up from underneath the cover he was taking and looks at your brew. He is visibly impressed."; - mes "\"Well done! This should be just enough for one potion of monster oil. Let me get you a bottle.\""; - mes "He hands you the monster oil."; - close; + set @Q_status, @Q_status | @SETZER_FLAG_MADE_OIL; + callsub S_Update_Var; + next; + mes "[Caul]"; + mes "Caul gets up from underneath the cover he was taking and looks at your brew. He is visibly impressed."; + mes "\"Well done! This should be just enough for one potion of monster oil. Let me get you a bottle.\""; + mes "He hands you the monster oil."; + close; L_monster_oil_no_gold_end: - mes "But where is your golden stinger? Didn't you have one earlier?"; - mes "Frustrated, you give up."; - close; + mes "But where is your golden stinger? Didn't you have one earlier?"; + mes "Frustrated, you give up."; + close; L_mopox_cure_start: - mes "[Caul]"; - mes "\"The mopox cure potion? Certainly, if you have all of the ingredients... oh, and make sure to bring water, roots, sulphur powder and Mauve leaves.\""; - mes "\"This is a very easy one, so I think I should let you do this yourself. It is very good exercise.\""; - next; + mes "[Caul]"; + mes "\"The mopox cure potion? Certainly, if you have all of the ingredients... oh, and make sure to bring water, roots, sulphur powder and Mauve leaves.\""; + mes "\"This is a very easy one, so I think I should let you do this yourself. It is very good exercise.\""; + next; L_mopox_cure_overview_menu: - menu - "I'm ready!", L_mopox_cure_setup, - "What are the ingredients?", L_mopox_cure_ingredients, - "How does this work?", L_mopox_cure_howto, - "I'd rather not try.", -; - close; + menu + "I'm ready!", L_mopox_cure_setup, + "What are the ingredients?", L_mopox_cure_ingredients, + "How does this work?", L_mopox_cure_howto, + "I'd rather not try.", -; + close; L_mopox_cure_ingredients: - mes "[Caul]"; - mes "\"You will need one concentration potion, one iron potion, a lifestone, and one gamboge leaf.\""; - next; - goto L_mopox_cure_overview_menu; + mes "[Caul]"; + mes "\"You will need one concentration potion, one iron potion, a lifestone, and one gamboge leaf.\""; + next; + goto L_mopox_cure_overview_menu; L_mopox_cure_howto: - mes "[Caul]"; - mes "\"When you start brewing, the liquid very rarely has the proper consistency and color. You need to make it gooey and medium dark.\""; - next; - - mes "[Caul]"; - mes "\"You can affect the consistency by adding ground roots and water, and you can change the color by adding mauve leaves (to darken it) and sulphur powder (to make it brighter).\""; - next; - - mes "[Caul]"; - mes "\"The ingredients have some side effects, though, so you will have to experiment a little.\""; - next; - - mes "[Caul]"; - mes "\"Oh, and be careful: water will evaporate over time, too.\""; - next; - goto L_mopox_cure_overview_menu; + mes "[Caul]"; + mes "\"When you start brewing, the liquid very rarely has the proper consistency and color. You need to make it gooey and medium dark.\""; + next; + mes "[Caul]"; + mes "\"You can affect the consistency by adding ground roots and water, and you can change the color by adding mauve leaves (to darken it) and sulphur powder (to make it brighter).\""; + next; + mes "[Caul]"; + mes "\"The ingredients have some side effects, though, so you will have to experiment a little.\""; + next; + mes "[Caul]"; + mes "\"Oh, and be careful: water will evaporate over time, too.\""; + next; + goto L_mopox_cure_overview_menu; L_mopox_cure_no_lifestone: - mes "[Caul]"; - mes "\"You will need a lifestone.\""; - goto L_mopox_cure_overview_menu; + mes "[Caul]"; + mes "\"You will need a lifestone.\""; + goto L_mopox_cure_overview_menu; L_mopox_cure_no_gamboge: - mes "[Caul]"; - mes "\"You will need a gamboge leaf.\""; - goto L_mopox_cure_overview_menu; + mes "[Caul]"; + mes "\"You will need a gamboge leaf.\""; + goto L_mopox_cure_overview_menu; L_mopox_cure_no_concentration: - mes "[Caul]"; - mes "\"You will need a concentration potion.\""; - goto L_mopox_cure_overview_menu; + mes "[Caul]"; + mes "\"You will need a concentration potion.\""; + goto L_mopox_cure_overview_menu; L_mopox_cure_no_iron: - mes "[Caul]"; - mes "\"You will need an iron potion.\""; - goto L_mopox_cure_overview_menu; + mes "[Caul]"; + mes "\"You will need an iron potion.\""; + goto L_mopox_cure_overview_menu; L_mopox_cure_setup: - if (countitem("IronPotion") < 1) goto L_mopox_cure_no_iron; - if (countitem("ConcentrationPotion") < 1) goto L_mopox_cure_no_concentration; - if (countitem("GambogeHerb") < 1) goto L_mopox_cure_no_gamboge; - if (countitem("Lifestone") < 1) goto L_mopox_cure_no_lifestone; - - delitem "IronPotion", 1; - delitem "ConcentrationPotion", 1; - delitem "GambogeHerb", 1; - delitem "Lifestone", 1; - - mes "[Brewing Mopox Cure]"; - mes "You pour your two potions into the cauldron, then add a gamboge herb and a lifestone. Caul heats up the cauldron and you wait until it begins to boil."; - - setarray @colours$, "white", "almost white", "light", "medium-dark", "dark", "very dark", "almost black", "black"; - setarray @stickinesses$, "watery", "very runny", "runny", "gooey", "sticky", "very sticky", "almost solid"; - set @stickiness, rand(7); - set @colour, 2 + rand(5); - - // Target: (@stickiness, @colour) = (3, 3) - - if (@stickiness == 3 && @colour == 3) - set @colour, 4; // don't allow insta-win; it's easy enough. - set @rounds, 0; + if (countitem("IronPotion") < 1) + goto L_mopox_cure_no_iron; + if (countitem("ConcentrationPotion") < 1) + goto L_mopox_cure_no_concentration; + if (countitem("GambogeHerb") < 1) + goto L_mopox_cure_no_gamboge; + if (countitem("Lifestone") < 1) + goto L_mopox_cure_no_lifestone; + + delitem "IronPotion", 1; + delitem "ConcentrationPotion", 1; + delitem "GambogeHerb", 1; + delitem "Lifestone", 1; + + mes "[Brewing Mopox Cure]"; + mes "You pour your two potions into the cauldron, then add a gamboge herb and a lifestone. Caul heats up the cauldron and you wait until it begins to boil."; + + setarray @colours$, "white", "almost white", "light", "medium-dark", "dark", "very dark", "almost black", "black"; + setarray @stickinesses$, "watery", "very runny", "runny", "gooey", "sticky", "very sticky", "almost solid"; + set @stickiness, rand(7); + set @colour, 2 + rand(5); + + // Target: (@stickiness, @colour) = (3, 3) + + if (@stickiness == 3 && @colour == 3) + set @colour, 4; // don't allow insta-win; it's easy enough. + set @rounds, 0; L_mopox_cure_loop: - mes "[Brewing Mopox Cure]"; - mes "The brew is " + @colours$[@colour] + " and " + @stickinesses$[@stickiness] + "."; + mes "[Brewing Mopox Cure]"; + mes "The brew is " + @colours$[@colour] + " and " + @stickinesses$[@stickiness] + "."; - if (@colour == 3 && @stickiness == 3) - goto L_mopox_cure_win; - next; + if (@colour == 3 && @stickiness == 3) + goto L_mopox_cure_win; + next; - set @colour, @colour + 10; - set @stickiness, @stickiness + 10; + set @colour, @colour + 10; + set @stickiness, @stickiness + 10; - menu - "Add root", L_mopox_B_root, - "Add water", L_mopox_B_water, - "Add sulphur powder", L_mopox_B_sulphur, - "Add mauve", L_mopox_B_mauve, - "...what should I do again?", L_mopox_reexplain, - "Wait", -; + menu + "Add root", L_mopox_B_root, + "Add water", L_mopox_B_water, + "Add sulphur powder", L_mopox_B_sulphur, + "Add mauve", L_mopox_B_mauve, + "...what should I do again?", L_mopox_reexplain, + "Wait", -; L_mopox_cure_next: - set @stickiness, @stickiness + @rounds; - set @rounds, 1 - @rounds; + set @stickiness, @stickiness + @rounds; + set @rounds, 1 - @rounds; - if (@stickiness < 10) - set @stickiness, 10; - if (@colour < 10) goto L_mopox_failed_badcolour; - if (@colour > 17) goto L_mopox_failed_badcolour; - if (@stickiness > 16) goto L_mopox_failed_hard; - if (@colour > 17) goto L_mopox_failed_badcolour; + if (@stickiness < 10) + set @stickiness, 10; + if (@colour < 10) + goto L_mopox_failed_badcolour; + if (@colour > 17) + goto L_mopox_failed_badcolour; + if (@stickiness > 16) + goto L_mopox_failed_hard; + if (@colour > 17) + goto L_mopox_failed_badcolour; - set @colour, @colour - 10; - set @stickiness, @stickiness - 10; + set @colour, @colour - 10; + set @stickiness, @stickiness - 10; - goto L_mopox_cure_loop; + goto L_mopox_cure_loop; L_mopox_reexplain: - mes "[Caul]"; - mes "\"Make this brew gooey and medium dark.\""; - mes "\"(Gooey is right between runny and sticky.)\""; - mes "\"You can add different items that will affect both color and stickiness.\""; - next; - mes "[Caul]"; - mes "\"Water and ground roots mostly affect stickiness.\""; - mes "\"Mauve and sulphur powder mostly affect color, with Mauve darkening the brew.\""; - next; - goto L_mopox_cure_next; + mes "[Caul]"; + mes "\"Make this brew gooey and medium dark.\""; + mes "\"(Gooey is right between runny and sticky.)\""; + mes "\"You can add different items that will affect both color and stickiness.\""; + next; + mes "[Caul]"; + mes "\"Water and ground roots mostly affect stickiness.\""; + mes "\"Mauve and sulphur powder mostly affect color, with Mauve darkening the brew.\""; + next; + goto L_mopox_cure_next; L_mopox_B_none: - mes "[Brewing Mopox Cure]"; - mes "You don't have any left!"; - next; - goto L_mopox_cure_next; + mes "[Brewing Mopox Cure]"; + mes "You don't have any left!"; + next; + goto L_mopox_cure_next; L_mopox_B_root: - if (countitem ("Root") < 1) goto L_mopox_B_none; - delitem "Root", 1; + if (countitem ("Root") < 1) + goto L_mopox_B_none; + delitem "Root", 1; - mes "[Brewing Mopox Cure]"; - mes "You grind a root and pour it into the brew."; - next; - set @colour, @colour + 1; - set @stickiness, @stickiness + 3; - goto L_mopox_cure_next; + mes "[Brewing Mopox Cure]"; + mes "You grind a root and pour it into the brew."; + next; + set @colour, @colour + 1; + set @stickiness, @stickiness + 3; + goto L_mopox_cure_next; L_mopox_B_water: - if (countitem ("BottleOfWater") < 1) goto L_mopox_B_none; - delitem "BottleOfWater", 1; - getitem "EmptyBottle", 1; - - mes "[Brewing Mopox Cure]"; - mes "You pour a bottle of water into the brew."; - next; - set @colour, @colour; - set @stickiness, @stickiness - 2; - goto L_mopox_cure_next; + if (countitem ("BottleOfWater") < 1) + goto L_mopox_B_none; + delitem "BottleOfWater", 1; + getitem "EmptyBottle", 1; + + mes "[Brewing Mopox Cure]"; + mes "You pour a bottle of water into the brew."; + next; + set @colour, @colour; + set @stickiness, @stickiness - 2; + goto L_mopox_cure_next; L_mopox_B_sulphur: - if (countitem ("SulphurPowder") < 1) goto L_mopox_B_none; - delitem "SulphurPowder", 1; + if (countitem ("SulphurPowder") < 1) + goto L_mopox_B_none; + delitem "SulphurPowder", 1; - mes "[Brewing Mopox Cure]"; - mes "You mix some sulphur powder into the brew."; - next; - set @colour, @colour - 3; - set @stickiness, @stickiness + 1; - goto L_mopox_cure_next; + mes "[Brewing Mopox Cure]"; + mes "You mix some sulphur powder into the brew."; + next; + set @colour, @colour - 3; + set @stickiness, @stickiness + 1; + goto L_mopox_cure_next; L_mopox_B_mauve: - if (countitem ("MauveHerb") < 1) goto L_mopox_B_none; - delitem "MauveHerb", 1; + if (countitem ("MauveHerb") < 1) + goto L_mopox_B_none; + delitem "MauveHerb", 1; - mes "[Brewing Mopox Cure]"; - mes "You grind a mauve herb and toss it in."; - next; - set @colour, @colour + 2; - set @stickiness, @stickiness + 1; - goto L_mopox_cure_next; + mes "[Brewing Mopox Cure]"; + mes "You grind a mauve herb and toss it in."; + next; + set @colour, @colour + 2; + set @stickiness, @stickiness + 1; + goto L_mopox_cure_next; L_mopox_failed_badcolour: - mes "[Brewing Mopox Cure]"; - mes "The brew suddenly begins to bubble again, turning green."; - mes "\"Oh dear,\" Caul remarks, \"you let the color stray too much.\""; - next; - mes "[Caul]"; - mes "\"Better luck next time!\""; - close; + mes "[Brewing Mopox Cure]"; + mes "The brew suddenly begins to bubble again, turning green."; + mes "\"Oh dear,\" Caul remarks, \"you let the color stray too much.\""; + next; + mes "[Caul]"; + mes "\"Better luck next time!\""; + close; L_mopox_failed_hard: - mes "[Brewing Mopox Cure]"; - mes "You find it almost impossible to stir the brew."; - mes "Suddenly, the thick mass bends outwards, a huge bubble bursting open right in your face!"; - next; - - if (rand(readparam(bVit)) < 40) - sc_start sc_poison, 1, 20; - - mes "[Brewing Mopox Cure]"; - mes "Yeech. That smelled bad."; - mes "\"Don't worry, I'll clean up the cauldron,\", interrupts Caul. \"You should wipe that off your face and make sure that you didn't get poisoned.\""; - next; - - mes "[Caul]"; - mes "\"Better luck next time!\""; - close; + mes "[Brewing Mopox Cure]"; + mes "You find it almost impossible to stir the brew."; + mes "Suddenly, the thick mass bends outwards, a huge bubble bursting open right in your face!"; + next; + + if (rand(readparam(bVit)) < 40) + sc_start sc_poison, 1, 20; + + mes "[Brewing Mopox Cure]"; + mes "Yeech. That smelled bad."; + mes "\"Don't worry, I'll clean up the cauldron,\", interrupts Caul. \"You should wipe that off your face and make sure that you didn't get poisoned.\""; + next; + mes "[Caul]"; + mes "\"Better luck next time!\""; + close; L_mopox_cure_win: - mes "Caul looks pleased. \"Well done! This looks very good to me.\""; - next; + mes "Caul looks pleased. \"Well done! This looks very good to me.\""; + next; + mes "[Caul]"; + mes "Caul picks a bottle from a shelf and fills it with your brew."; + mes "\"One potion of Mopox cure, here you are. Good luck!\""; + getitem "MopoxCurePotion", 1; + if (!@Q_can_score_mopox_cure) + goto L_mopox_cure_win_quick; + getexp @MOPOX_CURE_XP, 0; + mes "[" + @MOPOX_CURE_XP + " experience points]"; + set QUEST_MAGIC2, (QUEST_MAGIC2 & ~NIBBLE_3_MASK) | (2 << NIBBLE_3_SHIFT); // Make sure we can only get XP for brewing this once - mes "[Caul]"; - mes "Caul picks a bottle from a shelf and fills it with your brew."; - mes "\"One potion of Mopox cure, here you are. Good luck!\""; - getitem "MopoxCurePotion", 1; - if (!@Q_can_score_mopox_cure) - goto L_mopox_cure_win_quick; - getexp @MOPOX_CURE_XP, 0; - mes "[" + @MOPOX_CURE_XP + " experience points]"; - set QUEST_MAGIC2, (QUEST_MAGIC2 & ~NIBBLE_3_MASK) | (2 << NIBBLE_3_SHIFT); // Make sure we can only get XP for brewing this once L_mopox_cure_win_quick: - close; + close; L_DemPotion: - mes "[Caul]"; - mes "\"Ok, you do know this potion is one of the most dangerous potions brewed? My cauldron is empty, you can try it yourself.\""; - next; - mes "Caul goes three steps away and watches your actions carefully."; - menu - "Please explain to me what you know about that potion.", L_explain_dempo, - "Ok, I will start brewing.", L_brew_dempo_init, - "Nevermind", -; - close; + mes "[Caul]"; + mes "\"Ok, you do know this potion is one of the most dangerous potions brewed? My cauldron is empty, you can try it yourself.\""; + next; + mes "Caul goes three steps away and watches your actions carefully."; + menu + "Please explain to me what you know about that potion.", L_explain_dempo, + "Ok, I will start brewing.", L_brew_dempo_init, + "Nevermind", -; + close; + L_explain_dempo: - mes "[Caul]"; - mes "\"Hrrm. I have heard of that potion. I hope I can remember all the stuff needed.\""; - next; - mes "\"Basically this potion is a balancing between death and life; between knowledge and forgetting.\""; - next; - mes "\"So, to get it balanced, we need ingredients for both sides.\""; - next; - mes "\"For the death and forgetting side we can use bones. Although, bones do not work well. We would get the best results with a diseased heart of zombies. Of course, we can use undead ears and skulls as well.\""; - next; - mes "\"For the life and knowledge side we can use fresh mauve herbs. Lifestones would be even better. Roots will do as well, although these must be really fresh to show effect.\""; - next; - mes "\"Brewing such a powerful potion is dangerous. That is why you will need to do it yourself. I will try to assist you as best as I can.\""; - next; - mes "\"I don't know exactly, but there is a slight chance of exploding all time.\""; - next; - mes "\"The color of the mixture will give you a very good impression of what you need to do.\""; - mes "\"And to get that potion working, we need to stabilize it with a pearl at the end.\""; - next; - mes "\"The color will be in a range of really dark black to bright shining white. In between it is grey in different nuances.\""; - mes "\"When it is calm grey, the finalisation with a pearl will work best, so I have heard.\""; - next; - goto L_DemPotion; + mes "[Caul]"; + mes "\"Hrrm. I have heard of that potion. I hope I can remember all the stuff needed.\""; + next; + mes "\"Basically this potion is a balancing between death and life; between knowledge and forgetting.\""; + next; + mes "\"So, to get it balanced, we need ingredients for both sides.\""; + next; + mes "\"For the death and forgetting side we can use bones. Although, bones do not work well. We would get the best results with a diseased heart of zombies. Of course, we can use undead ears and skulls as well.\""; + next; + mes "\"For the life and knowledge side we can use fresh mauve herbs. Lifestones would be even better. Roots will do as well, although these must be really fresh to show effect.\""; + next; + mes "\"Brewing such a powerful potion is dangerous. That is why you will need to do it yourself. I will try to assist you as best as I can.\""; + next; + mes "\"I don't know exactly, but there is a slight chance of exploding all time.\""; + next; + mes "\"The color of the mixture will give you a very good impression of what you need to do.\""; + mes "\"And to get that potion working, we need to stabilize it with a pearl at the end.\""; + next; + mes "\"The color will be in a range of really dark black to bright shining white. In between it is grey in different nuances.\""; + mes "\"When it is calm grey, the finalisation with a pearl will work best, so I have heard.\""; + next; + goto L_DemPotion; L_brew_dempo_init: - if ((countitem("BottleOfWater") == 0) || (countitem("Bone") == 0) || (countitem("Lifestone") == 0) || (countitem("Pearl") == 0)) + if ((countitem("BottleOfWater") == 0) + || (countitem("Bone") == 0) + || (countitem("Lifestone") == 0) + || (countitem("Pearl") == 0)) goto L_dempo_noinit; - delitem "BottleOfWater", 1; - delitem "Bone", 1; - delitem "Lifestone", 1; - - set @finish_dempo, 0; - // color can be either black or white at the beginning. - // with a slight randomness in there. - set @dempo_color, rand(10); - if (rand(2)==0) - set @dempo_color, @dempo_color + 90 ; - mes "To start that potion you put in the cauldron a bone, a bottle of water and a lifestone."; - next; - goto L_brew_dempo; + delitem "BottleOfWater", 1; + delitem "Bone", 1; + delitem "Lifestone", 1; + + set @finish_dempo, 0; + // color can be either black or white at the beginning. + // with a slight randomness in there. + set @dempo_color, rand(10); + if (rand(2)==0) + set @dempo_color, @dempo_color + 90 ; + mes "To start that potion you put in the cauldron a bone, a bottle of water and a lifestone."; + next; + goto L_brew_dempo; L_dempo_noinit: - mes "[Caul]"; - mes "\"Hrrm. Usually you start that potion with a bone, a bottle of water and a lifestone.\""; - mes "\"I'd propose you do it exactly that way. You see, maybe it would even work with a skull and a healing potion, but since we don't know, and I don't want to repair my cauldron again, please don't try other solutions.\""; - next; - mes "\"Please use only this way to start the recipe: a bone, a bottle of water and a lifestone. In that order!\""; - mes "\"Ah, and of course you will need at least one pearl with you. This pearl is needed to finalize the potion.\""; - close; + mes "[Caul]"; + mes "\"Hrrm. Usually you start that potion with a bone, a bottle of water and a lifestone.\""; + mes "\"I'd propose you do it exactly that way. You see, maybe it would even work with a skull and a healing potion, but since we don't know, and I don't want to repair my cauldron again, please don't try other solutions.\""; + next; + mes "\"Please use only this way to start the recipe: a bone, a bottle of water and a lifestone. In that order!\""; + mes "\"Ah, and of course you will need at least one pearl with you. This pearl is needed to finalize the potion.\""; + close; L_brew_dempo: - callsub L_check_explosion; - - callsub L_calc_dempo_color; - mes "After a little while of cooking you see its color turning into " + @dempo_color_S$+ "."; - next; + callsub L_check_explosion; + + callsub L_calc_dempo_color; + mes "After a little while of cooking you see its color turning into " + @dempo_color_S$+ "."; + next; + + setarray @choice_idx, 0,0,0,0,0,0,0,0,0,0,0; + setarray @choice$, "","","","","","","","","","",""; + + set @C_root, 12; + set @C_mauve, 13; + set @C_lifestone, 14; + set @C_diseasedheart, 15; + set @C_bone, 16; + set @C_skull, 17; + set @C_undeadear, 18; + set @C_pearl, 19; + set @C_nevermind, 20; + + // counter of avalable answers + set @choices_nr, 0; + + if (countitem("Root") == 0) + goto L_noroots; + set @choice_idx[@choices_nr], @C_root; + set @choice$[@choices_nr], "Add a root"; + set @choices_nr, @choices_nr + 1; - setarray @choice_idx, 0,0,0,0,0,0,0,0,0,0,0; - setarray @choice$, "","","","","","","","","","",""; - - set @C_root, 12; - set @C_mauve, 13; - set @C_lifestone, 14; - set @C_diseasedheart, 15; - set @C_bone, 16; - set @C_skull, 17; - set @C_undeadear, 18; - set @C_pearl, 19; - set @C_nevermind, 20; - - // counter of avalable answers - set @choices_nr, 0; - - if (countitem("Root") == 0) goto L_noroots; - set @choice_idx[@choices_nr], @C_root; - set @choice$[@choices_nr], "Add a root"; - set @choices_nr, @choices_nr + 1; L_noroots: - if (countitem("MauveHerb") == 0) goto L_nomauve; - set @choice_idx[@choices_nr], @C_mauve; - set @choice$[@choices_nr], "Add a mauve herb"; - set @choices_nr, @choices_nr + 1; + if (countitem("MauveHerb") == 0) + goto L_nomauve; + set @choice_idx[@choices_nr], @C_mauve; + set @choice$[@choices_nr], "Add a mauve herb"; + set @choices_nr, @choices_nr + 1; + L_nomauve: - if (countitem("Lifestone") == 0) goto L_nolifestone; - set @choice_idx[@choices_nr], @C_lifestone; - set @choice$[@choices_nr], "Add a lifestone"; - set @choices_nr, @choices_nr + 1; + if (countitem("Lifestone") == 0) + goto L_nolifestone; + set @choice_idx[@choices_nr], @C_lifestone; + set @choice$[@choices_nr], "Add a lifestone"; + set @choices_nr, @choices_nr + 1; + L_nolifestone: - if (countitem("DiseasedHeart") == 0) goto L_noheart; - set @choice_idx[@choices_nr], @C_diseasedheart; - set @choice$[@choices_nr], "Add a diseased heart"; - set @choices_nr, @choices_nr + 1; + if (countitem("DiseasedHeart") == 0) + goto L_noheart; + set @choice_idx[@choices_nr], @C_diseasedheart; + set @choice$[@choices_nr], "Add a diseased heart"; + set @choices_nr, @choices_nr + 1; + L_noheart: - if (countitem("Bone") == 0) goto L_nobone; - set @choice_idx[@choices_nr], @C_bone; - set @choice$[@choices_nr], "Add a bone"; - set @choices_nr, @choices_nr + 1; + if (countitem("Bone") == 0) + goto L_nobone; + set @choice_idx[@choices_nr], @C_bone; + set @choice$[@choices_nr], "Add a bone"; + set @choices_nr, @choices_nr + 1; + L_nobone: - if (countitem("Skull") == 0) goto L_noskull; - set @choice_idx[@choices_nr], @C_skull; - set @choice$[@choices_nr], "Add a skull"; - set @choices_nr, @choices_nr + 1; + if (countitem("Skull") == 0) + goto L_noskull; + set @choice_idx[@choices_nr], @C_skull; + set @choice$[@choices_nr], "Add a skull"; + set @choices_nr, @choices_nr + 1; + L_noskull: - if (countitem("UndeadEar") == 0) goto L_noear; - set @choice_idx[@choices_nr], @C_undeadear; - set @choice$[@choices_nr], "Add an undead ear"; - set @choices_nr, @choices_nr + 1; + if (countitem("UndeadEar") == 0) + goto L_noear; + set @choice_idx[@choices_nr], @C_undeadear; + set @choice$[@choices_nr], "Add an undead ear"; + set @choices_nr, @choices_nr + 1; + L_noear: - if (countitem("Pearl") == 0) goto L_nopearl; - set @choice_idx[@choices_nr], @C_pearl; - set @choice$[@choices_nr], "Finalize with a pearl."; - set @choices_nr, @choices_nr + 1; -L_nopearl: - set @choice_idx[@choices_nr], @C_nevermind; - set @choice$[@choices_nr], "Nevermind and leave"; + if (countitem("Pearl") == 0) + goto L_nopearl; + set @choice_idx[@choices_nr], @C_pearl; + set @choice$[@choices_nr], "Finalize with a pearl."; + set @choices_nr, @choices_nr + 1; - menu - @choice$[0],-, - @choice$[1],-, - @choice$[2],-, - @choice$[3],-, - @choice$[4],-, - @choice$[5],-, - @choice$[6],-, - @choice$[7],-, - @choice$[8],-, - @choice$[9],-, - @choice$[10],-; - - set @menu, @menu - 1; - if (@choice_idx[@menu] == 0) - goto L_brew_dempo; - if ((countitem("Root") != 0) && (@choice_idx[@menu] == @C_root)) +L_nopearl: + set @choice_idx[@choices_nr], @C_nevermind; + set @choice$[@choices_nr], "Nevermind and leave"; + + menu + @choice$[0],-, + @choice$[1],-, + @choice$[2],-, + @choice$[3],-, + @choice$[4],-, + @choice$[5],-, + @choice$[6],-, + @choice$[7],-, + @choice$[8],-, + @choice$[9],-, + @choice$[10],-; + + set @menu, @menu - 1; + if (@choice_idx[@menu] == 0) + goto L_brew_dempo; + if ((countitem("Root") != 0) + && (@choice_idx[@menu] == @C_root)) goto L_useroot; - if ((countitem("MauveHerb") != 0) && (@choice_idx[@menu] == @C_mauve)) + if ((countitem("MauveHerb") != 0) + && (@choice_idx[@menu] == @C_mauve)) goto L_usemauve; - if ((countitem("Lifestone") != 0) && (@choice_idx[@menu] == @C_lifestone)) + if ((countitem("Lifestone") != 0) + && (@choice_idx[@menu] == @C_lifestone)) goto L_uselifestone; - if ((countitem("DiseasedHeart") != 0) && (@choice_idx[@menu] == @C_diseasedheart)) + if ((countitem("DiseasedHeart") != 0) + && (@choice_idx[@menu] == @C_diseasedheart)) goto L_usediseasedheart; - if ((countitem("Bone") != 0) && (@choice_idx[@menu] == @C_bone)) + if ((countitem("Bone") != 0) + && (@choice_idx[@menu] == @C_bone)) goto L_usebone; - if ((countitem("Skull") != 0) && (@choice_idx[@menu] == @C_skull)) + if ((countitem("Skull") != 0) + && (@choice_idx[@menu] == @C_skull)) goto L_useskull; - if ((countitem("UndeadEar") != 0) && (@choice_idx[@menu] == @C_undeadear)) + if ((countitem("UndeadEar") != 0) + && (@choice_idx[@menu] == @C_undeadear)) goto L_useear; - if ((countitem("Pearl") != 0) && (@choice_idx[@menu] == @C_pearl)) + if ((countitem("Pearl") != 0) + && (@choice_idx[@menu] == @C_pearl)) goto L_usepearl; - if ((@choice_idx[@menu] == @C_nevermind)) - goto L_ask_quit; + if ((@choice_idx[@menu] == @C_nevermind)) + goto L_ask_quit; - // fallthrough only when player remove the items while in menu, trying to cheat - // the potion will be lost then - mes "\"Do not try to betray me. Come back when you have a better morale.\""; - close; + // fallthrough only when player remove the items while in menu, trying to cheat + // the potion will be lost then + mes "\"Do not try to betray me. Come back when you have a better morale.\""; + close; L_useroot: - delitem "Root", 1; - set @dempo_color, @dempo_color + 9 + rand(9); - goto L_brew_dempo; + delitem "Root", 1; + set @dempo_color, @dempo_color + 9 + rand(9); + goto L_brew_dempo; L_usemauve: - delitem "MauveHerb", 1; - set @dempo_color, @dempo_color + 1 + rand(2); - goto L_brew_dempo; + delitem "MauveHerb", 1; + set @dempo_color, @dempo_color + 1 + rand(2); + goto L_brew_dempo; L_uselifestone: - delitem "Lifestone", 1; - set @dempo_color, @dempo_color + 3 + rand(4); - goto L_brew_dempo; + delitem "Lifestone", 1; + set @dempo_color, @dempo_color + 3 + rand(4); + goto L_brew_dempo; L_usediseasedheart: - delitem "DiseasedHeart", 1; - set @dempo_color, @dempo_color - 35 - rand(25); - goto L_brew_dempo; + delitem "DiseasedHeart", 1; + set @dempo_color, @dempo_color - 35 - rand(25); + goto L_brew_dempo; L_usebone: - delitem "Bone", 1; - set @dempo_color, @dempo_color - 3 - rand(3); - goto L_brew_dempo; + delitem "Bone", 1; + set @dempo_color, @dempo_color - 3 - rand(3); + goto L_brew_dempo; L_useskull: - delitem "Skull", 1; - set @dempo_color, @dempo_color - 9 - rand(9); - goto L_brew_dempo; + delitem "Skull", 1; + set @dempo_color, @dempo_color - 9 - rand(9); + goto L_brew_dempo; L_useear: - delitem "UndeadEar", 1; - set @dempo_color, @dempo_color - 15 - rand(13); - goto L_brew_dempo; + delitem "UndeadEar", 1; + set @dempo_color, @dempo_color - 15 - rand(13); + goto L_brew_dempo; L_usepearl: - delitem "Pearl", 1; - //ending it is a little dangerous as well, - // stay calm, when it smashes your fine tuned well done potion. - set @finish_dempo, 1; - callsub L_check_explosion; - // ok now you really did it. Here is your potion: - getitem "DementiaPotion",1; - - mes "[Caul]"; - mes "\"The potion is now ready. It seems as if it worked fine.\""; - next; - mes "\"Ok here is a flask of that potion. I'll care for the rest.\""; - mes "\"I mean it is a very dangerous fluid.\""; - next; - mes "\"See you later, alligator!\""; - close; + delitem "Pearl", 1; + //ending it is a little dangerous as well, + // stay calm, when it smashes your fine tuned well done potion. + set @finish_dempo, 1; + callsub L_check_explosion; + // ok now you really did it. Here is your potion: + getitem "DementiaPotion",1; + + mes "[Caul]"; + mes "\"The potion is now ready. It seems as if it worked fine.\""; + next; + mes "\"Ok here is a flask of that potion. I'll care for the rest.\""; + mes "\"I mean it is a very dangerous fluid.\""; + next; + mes "\"See you later, alligator!\""; + close; L_ask_quit: - mes "[Caul]"; - mes "\"The potion is not ready. You can't just leave now!\""; - menu - "Please throw away that stupid potion, I'm in a hurry!", -, - "Oh you are right, let me finish it.", L_brew_dempo; - close; + mes "[Caul]"; + mes "\"The potion is not ready. You can't just leave now!\""; + menu + "Please throw away that stupid potion, I'm in a hurry!", -, + "Oh you are right, let me finish it.", L_brew_dempo; + close; L_check_explosion: - // set to range [-50 50]; - set @prob, @dempo_color - 50; + // set to range [-50 50]; + set @prob, @dempo_color - 50; - set @prob, ((@prob * @prob) / 80) + 4; - if (@finish_dempo == 0) - goto L_check_exp_nof; + set @prob, ((@prob * @prob) / 80) + 4; + if (@finish_dempo == 0) + goto L_check_exp_nof; + + // square again, so you must be in the middle to get it work there; + // and multiply with 3 so there is definitly no chance to get it directly after starting + set @prob, (@prob * @prob) * 2; - // square again, so you must be in the middle to get it work there; - // and multiply with 3 so there is definitly no chance to get it directly after starting - set @prob, (@prob * @prob) * 2; L_check_exp_nof: - // in about 95% of the cases anything is fine, so return. - if (rand(1000) > @prob) return; - // in some cases it is not: - // kabooom! - close2; - heal -(Hp/2), 0; - misceffect 5; - misceffect 16; - heal -Hp, 0; - end; + // in about 95% of the cases anything is fine, so return. + if (rand(1000) > @prob) return; + // in some cases it is not: + // kabooom! + close2; + heal -(Hp/2), 0; + misceffect 5; + misceffect 16; + heal -Hp, 0; + end; L_calc_dempo_color: - // @dempo_color_S$ is set in here: + // @dempo_color_S$ is set in here: - //really dark black 0-11 - if (@dempo_color < 12) - set @dempo_color_S$, "really dark black"; + //really dark black 0-11 + if (@dempo_color < 12) + set @dempo_color_S$, "really dark black"; - //dark black 12-23 - if ((@dempo_color > 11) && (@dempo_color < 24)) - set @dempo_color_S$, "dark black"; + //dark black 12-23 + if ((@dempo_color > 11) && (@dempo_color < 24)) + set @dempo_color_S$, "dark black"; - //black 24-34 - if ((@dempo_color > 23) && (@dempo_color < 35)) - set @dempo_color_S$, "black"; + //black 24-34 + if ((@dempo_color > 23) && (@dempo_color < 35)) + set @dempo_color_S$, "black"; - //dark grey with little dark spots 35-41 - if ((@dempo_color > 34) && (@dempo_color < 42)) - set @dempo_color_S$, "dark grey with little dark spots"; + //dark grey with little dark spots 35-41 + if ((@dempo_color > 34) && (@dempo_color < 42)) + set @dempo_color_S$, "dark grey with little dark spots"; - //dark grey 42-47 - if ((@dempo_color > 41) && (@dempo_color < 48)) - set @dempo_color_S$, "dark grey"; + //dark grey 42-47 + if ((@dempo_color > 41) && (@dempo_color < 48)) + set @dempo_color_S$, "dark grey"; - //calm grey 48-52 - if ((@dempo_color > 47) && (@dempo_color < 53)) - set @dempo_color_S$, "calm grey"; + //calm grey 48-52 + if ((@dempo_color > 47) && (@dempo_color < 53)) + set @dempo_color_S$, "calm grey"; - //light grey 53-58 - if ((@dempo_color > 52) && (@dempo_color < 59)) - set @dempo_color_S$, "light grey"; + //light grey 53-58 + if ((@dempo_color > 52) && (@dempo_color < 59)) + set @dempo_color_S$, "light grey"; - //light grey with little light spots 59-65 - if ((@dempo_color > 58) && (@dempo_color < 66)) - set @dempo_color_S$, "light grey with little light spots"; + //light grey with little light spots 59-65 + if ((@dempo_color > 58) && (@dempo_color < 66)) + set @dempo_color_S$, "light grey with little light spots"; - //white 66-76 - if ((@dempo_color > 65) && (@dempo_color < 77)) - set @dempo_color_S$, "white"; + //white 66-76 + if ((@dempo_color > 65) && (@dempo_color < 77)) + set @dempo_color_S$, "white"; - //shining white 77-88 - if ((@dempo_color > 76) && (@dempo_color < 89)) - set @dempo_color_S$, "shining white"; + //shining white 77-88 + if ((@dempo_color > 76) && (@dempo_color < 89)) + set @dempo_color_S$, "shining white"; - //bright shining white 77-100 - if (@dempo_color > 88) - set @dempo_color_S$, "bright shining white"; + //bright shining white 77-100 + if (@dempo_color > 88) + set @dempo_color_S$, "bright shining white"; - return; + return; L_NohMask: - mes "[Caul]"; - mes "\"I'm sorry, but I didn't. I'm staying in town. Try asking one of the miners.\""; - close; + mes "[Caul]"; + mes "\"I'm sorry, but I didn't. I'm staying in town. Try asking one of the miners.\""; + close; L_close: close; S_Update_Var: - set QUEST_Forestbow_state, - (QUEST_Forestbow_state & ~(@Q_MASK) - | (@Q_status << @Q_SHIFT)); - return; + set QUEST_Forestbow_state, + (QUEST_Forestbow_state & ~(@Q_MASK) + | (@Q_status << @Q_SHIFT)); + return; } diff --git a/world/map/npc/018-2/miners.txt b/world/map/npc/018-2/miners.txt index ef641f49..03be24c0 100644 --- a/world/map/npc/018-2/miners.txt +++ b/world/map/npc/018-2/miners.txt @@ -1,145 +1,162 @@ // This NPC makes gem powders out of gemstones // Authors: Ali-G, enchilado, Jenalya -018-2.gat,85,23,0 script Malek 109,{ +018-2.gat,85,23,0|script|Malek|109,{ - set @MIN_GEM_AMOUNT, 7; + set @MIN_GEM_AMOUNT, 7; - if (Inspector == 10) goto L_NohMask; + if (Inspector == 10) goto L_NohMask; - mes "[Malek]"; - mes "\"Hi, can I help you at all?\""; - - menu - "I'm looking for someone able to make gem powder.", L_GemPowder, - "I was just having a look, have a nice day.", L_abort; + mes "[Malek]"; + mes "\"Hi, can I help you at all?\""; + menu + "I'm looking for someone able to make gem powder.", L_GemPowder, + "I was just having a look, have a nice day.", L_abort; L_NohMask: - mes "[Malek]"; - mes "\"Hi, can I help you at all?\""; - - menu - "I'm looking for someone able to make gem powder.", L_GemPowder, - "I was just having a look, have a nice day.", L_abort, - "The inspector sent me here to investigate.", L_Investigation; + mes "[Malek]"; + mes "\"Hi, can I help you at all?\""; + menu + "I'm looking for someone able to make gem powder.", L_GemPowder, + "I was just having a look, have a nice day.", L_abort, + "The inspector sent me here to investigate.", L_Investigation; L_Investigation: - set Inspector, 11; - mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\""; - close; + set Inspector, 11; + mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\""; + close; L_GemPowder: - mes "[Malek]"; - mes "\"My father taught me how to make that sort of powder. Put the gem on a firm surface, hold your pickaxe tight and whack that gem hard. It'll be crushed into powder pretty soon if you keep at it.\""; - mes "\"Do you want me to make any for you?\""; - - menu - "Yes, I really need some.", L_GemPowderStart, - "Actually, I don't want anything. Have a nice day.", L_abort; + mes "[Malek]"; + mes "\"My father taught me how to make that sort of powder. Put the gem on a firm surface, hold your pickaxe tight and whack that gem hard. It'll be crushed into powder pretty soon if you keep at it.\""; + mes "\"Do you want me to make any for you?\""; + menu + "Yes, I really need some.", L_GemPowderStart, + "Actually, I don't want anything. Have a nice day.", L_abort; L_GemPowderStart: - mes "[Malek]"; - mes "\"Well, I can do that. Bring me a gem and I'll make you some powder - hope you don't mind if I keep a little as payment!\""; - - menu - "I've got some gems.", L_Check_Gems, - "I'll be back with a gem soon.", L_abort, - "Actually, I prefer my gems whole. Thanks anyway.", L_abort; + mes "[Malek]"; + mes "\"Well, I can do that. Bring me a gem and I'll make you some powder - hope you don't mind if I keep a little as payment!\""; + menu + "I've got some gems.", L_Check_Gems, + "I'll be back with a gem soon.", L_abort, + "Actually, I prefer my gems whole. Thanks anyway.", L_abort; L_Check_Gems: - mes "[Malek]"; - mes "\"Which gem do you want me to powder for you?\""; - next; - setarray @menuitems$, "", "", "", "", "", "", ""; - set @c, 0; + mes "[Malek]"; + mes "\"Which gem do you want me to powder for you?\""; + next; + setarray @menuitems$, "", "", "", "", "", "", ""; + set @c, 0; L_Check_Diamond: - if (countitem("GemRawWhite") < 1) goto L_Check_Ruby; - set @menuitems$[@c], "A diamond."; - set @menuid[@c], 0; - set @c, @c + 1; + if (countitem("GemRawWhite") < 1) + goto L_Check_Ruby; + set @menuitems$[@c], "A diamond."; + set @menuid[@c], 0; + set @c, @c + 1; L_Check_Ruby: - if (countitem("GemRawRed") < 1) goto L_Check_Emerald; - set @menuitems$[@c], "A ruby."; - set @menuid[@c], 1; - set @c, @c + 1; + if (countitem("GemRawRed") < 1) + goto L_Check_Emerald; + set @menuitems$[@c], "A ruby."; + set @menuid[@c], 1; + set @c, @c + 1; L_Check_Emerald: - if (countitem("GemRawGreen") < 1) goto L_Check_Sapphire; - set @menuitems$[@c], "An emerald."; - set @menuid[@c], 2; - set @c, @c + 1; + if (countitem("GemRawGreen") < 1) + goto L_Check_Sapphire; + set @menuitems$[@c], "An emerald."; + set @menuid[@c], 2; + set @c, @c + 1; L_Check_Sapphire: - if (countitem("GemRawBlue") < 1) goto L_Check_Topaz; - set @menuitems$[@c], "A sapphire."; - set @menuid[@c], 3; - set @c, @c + 1; + if (countitem("GemRawBlue") < 1) + goto L_Check_Topaz; + set @menuitems$[@c], "A sapphire."; + set @menuid[@c], 3; + set @c, @c + 1; L_Check_Topaz: - if (countitem("GemRawYellow") < 1) goto L_Check_Amethyst; - set @menuitems$[@c], "A topaz."; - set @menuid[@c], 4; - set @c, @c + 1; + if (countitem("GemRawYellow") < 1) + goto L_Check_Amethyst; + set @menuitems$[@c], "A topaz."; + set @menuid[@c], 4; + set @c, @c + 1; L_Check_Amethyst: - if (countitem("GemRawPurple") < 1) goto L_Choose_Gem; - set @menuitems$[@c], "An amethyst."; - set @menuid[@c], 5; - set @c, @c + 1; + if (countitem("GemRawPurple") < 1) + goto L_Choose_Gem; + set @menuitems$[@c], "An amethyst."; + set @menuid[@c], 5; + set @c, @c + 1; L_Choose_Gem: - set @menuitems$[@c], "None right now, thanks."; - set @menuid[@c], 6; - set @c, @c + 1; - menu - @menuitems$[0], -, - @menuitems$[1], -, - @menuitems$[2], -, - @menuitems$[3], -, - @menuitems$[4], -, - @menuitems$[5], -, - @menuitems$[6], -; - set @menu, @menu - 1; - if (@menu >= @c) close; - if (@menuid[@menu] == 0) set @gem$, "GemRawWhite"; - if (@menuid[@menu] == 1) set @gem$, "GemRawRed"; - if (@menuid[@menu] == 2) set @gem$, "GemRawGreen"; - if (@menuid[@menu] == 3) set @gem$, "GemRawBlue"; - if (@menuid[@menu] == 4) set @gem$, "GemRawYellow"; - if (@menuid[@menu] == 5) set @gem$, "GemRawPurple"; - if (@menuid[@menu] == 6) goto L_abort; - - getinventorylist; - if (countitem(@gem$) < 1) goto L_no_gem; - if (@inventorylist_count == 100 && countitem(@gem$) > 1) goto L_TooMany; - delitem @gem$, 1; - if (@gem$ == "GemRawWhite") getitem "GemPowderWhite", @MIN_GEM_AMOUNT + rand(6) + rand(6); - if (@gem$ == "GemRawRed") getitem "GemPowderRed", @MIN_GEM_AMOUNT + rand(6); - if (@gem$ == "GemRawGreen") getitem "GemPowderGreen", @MIN_GEM_AMOUNT + rand(6); - if (@gem$ == "GemRawBlue") getitem "GemPowderBlue", @MIN_GEM_AMOUNT + rand(6); - if (@gem$ == "GemRawYellow") getitem "GemPowderYellow", @MIN_GEM_AMOUNT + rand(6); - if (@gem$ == "GemRawPurple") getitem "GemPowderPurple", @MIN_GEM_AMOUNT + rand(6); - - mes "[Malek]"; - mes "\"Here's your powder. Hope it's fine enough for you.\""; - mes "\"Do you need me to make any more?\""; - - menu - "Yes please.", L_Check_Gems, - "No thank you, this is enough.", L_abort; + set @menuitems$[@c], "None right now, thanks."; + set @menuid[@c], 6; + set @c, @c + 1; + menu + @menuitems$[0], -, + @menuitems$[1], -, + @menuitems$[2], -, + @menuitems$[3], -, + @menuitems$[4], -, + @menuitems$[5], -, + @menuitems$[6], -; + set @menu, @menu - 1; + if (@menu >= @c) close; + if (@menuid[@menu] == 0) + set @gem$, "GemRawWhite"; + if (@menuid[@menu] == 1) + set @gem$, "GemRawRed"; + if (@menuid[@menu] == 2) + set @gem$, "GemRawGreen"; + if (@menuid[@menu] == 3) + set @gem$, "GemRawBlue"; + if (@menuid[@menu] == 4) + set @gem$, "GemRawYellow"; + if (@menuid[@menu] == 5) + set @gem$, "GemRawPurple"; + if (@menuid[@menu] == 6) + goto L_abort; + + getinventorylist; + if (countitem(@gem$) < 1) + goto L_no_gem; + if (@inventorylist_count == 100 + && countitem(@gem$) > 1) + goto L_TooMany; + delitem @gem$, 1; + if (@gem$ == "GemRawWhite") + getitem "GemPowderWhite", @MIN_GEM_AMOUNT + rand(6) + rand(6); + if (@gem$ == "GemRawRed") + getitem "GemPowderRed", @MIN_GEM_AMOUNT + rand(6); + if (@gem$ == "GemRawGreen") + getitem "GemPowderGreen", @MIN_GEM_AMOUNT + rand(6); + if (@gem$ == "GemRawBlue") + getitem "GemPowderBlue", @MIN_GEM_AMOUNT + rand(6); + if (@gem$ == "GemRawYellow") + getitem "GemPowderYellow", @MIN_GEM_AMOUNT + rand(6); + if (@gem$ == "GemRawPurple") + getitem "GemPowderPurple", @MIN_GEM_AMOUNT + rand(6); + + mes "[Malek]"; + mes "\"Here's your powder. Hope it's fine enough for you.\""; + mes "\"Do you need me to make any more?\""; + menu + "Yes please.", L_Check_Gems, + "No thank you, this is enough.", L_abort; L_TooMany: - mes "[Malek]"; - mes "\"Doesn't look like you've got room for this powder. Come back when you do.\""; - close; + mes "[Malek]"; + mes "\"Doesn't look like you've got room for this powder. Come back when you do.\""; + close; L_no_gem: - mes "[Malek]"; - mes "\"You don't have that gem.\""; - close; + mes "[Malek]"; + mes "\"You don't have that gem.\""; + close; L_abort: - close; + close; } diff --git a/world/map/npc/018-2/receptionist.txt b/world/map/npc/018-2/receptionist.txt index ee735d14..f49f68db 100644 --- a/world/map/npc/018-2/receptionist.txt +++ b/world/map/npc/018-2/receptionist.txt @@ -1,65 +1,60 @@ // -018-2.gat,50,24,0 script Receptionist 108,{ - mes "[Receptionist]"; - mes "\"Welcome to the mining camp!"; - mes "Do you need anything?\""; - next; +018-2.gat,50,24,0|script|Receptionist|108,{ + mes "[Receptionist]"; + mes "\"Welcome to the mining camp!"; + mes "Do you need anything?\""; + next; L_Menu: - if (Inspector == 10) - menu - "Why was a mine setup here?", L_Mine, - "Can I go into the mine?", L_Enter, - "Did the company build this building?", L_Building, - "Did you hear a commotion here the other night?", L_NohMask, - "Thank you, no.", -; - if (Inspector != 10) - menu - "Why was a mine setup here?", L_Mine, - "Can I go into the mine?", L_Enter, - "Did the company build this building?", L_Building, - "Thank you, no.", -; - close; + if (Inspector == 10) + menu + "Why was a mine setup here?", L_Mine, + "Can I go into the mine?", L_Enter, + "Did the company build this building?", L_Building, + "Did you hear a commotion here the other night?", L_NohMask, + "Thank you, no.", -; + if (Inspector != 10) + menu + "Why was a mine setup here?", L_Mine, + "Can I go into the mine?", L_Enter, + "Did the company build this building?", L_Building, + "Thank you, no.", -; + close; L_Mine: - mes "[Receptionist]"; - mes "\"Minerals have been easy to find in this area historically. The mine entrance we're using collapsed from the mountain side when the volcano errupted. Plenty of minerals were exposed then.\""; - next; - goto L_Question_End; + mes "[Receptionist]"; + mes "\"Minerals have been easy to find in this area historically. The mine entrance we're using collapsed from the mountain side when the volcano errupted. Plenty of minerals were exposed then.\""; + next; + goto L_Question_End; L_Enter: - mes "[Receptionist]"; - mes "\"If you think you can handle all the monsters that have appeared there.\""; - next; - goto L_Question_End; + mes "[Receptionist]"; + mes "\"If you think you can handle all the monsters that have appeared there.\""; + next; + goto L_Question_End; L_Building: - mes "[Receptionist]"; - mes "\"No, the company bought this building. It's been abandoned for a while. The villagers think it's haunted, but we haven't seen anything, except for the basement. None of us have been able to stay there for very long.\""; - next; - - menu - "Why not?", -, - "Not my problem", L_Question_End; - - mes "[Receptionist]"; - mes "\"I haven't been down there myself, and the ones who have haven't been able to describe why at all.\""; - next; - - goto L_Question_End; + mes "[Receptionist]"; + mes "\"No, the company bought this building. It's been abandoned for a while. The villagers think it's haunted, but we haven't seen anything, except for the basement. None of us have been able to stay there for very long.\""; + next; + menu + "Why not?", -, + "Not my problem", L_Question_End; + mes "[Receptionist]"; + mes "\"I haven't been down there myself, and the ones who have haven't been able to describe why at all.\""; + next; + goto L_Question_End; L_NohMask: - mes "[Receptionist]"; - mes "\"I stay in town, and so couldn't have heard anything over here. One of the miners might be able to help you.\""; - next; - - goto L_Question_End; + mes "[Receptionist]"; + mes "\"I stay in town, and so couldn't have heard anything over here. One of the miners might be able to help you.\""; + next; + goto L_Question_End; L_Question_End: - mes "[Receptionist]"; - mes "\"Do you need anything else?\""; - next; - - goto L_Menu; + mes "[Receptionist]"; + mes "\"Do you need anything else?\""; + next; + goto L_Menu; } diff --git a/world/map/npc/018-3/bookcase.txt b/world/map/npc/018-3/bookcase.txt index 843c94ae..2e04c06b 100644 --- a/world/map/npc/018-3/bookcase.txt +++ b/world/map/npc/018-3/bookcase.txt @@ -1,65 +1,56 @@ // -018-3.gat,75,123,0 script #DemonMineBookcase1 127,{ - if (QUEST_demon_mines == 0) goto L_Search; +018-3.gat,75,123,0|script|#DemonMineBookcase1|127,{ + if (QUEST_demon_mines == 0) goto L_Search; - mes "You see nothing different about the bookcase."; - mes "Do you want to search it again anyways?"; - next; - menu - "Yes", L_Search, - "No", -; - close; + mes "You see nothing different about the bookcase."; + mes "Do you want to search it again anyways?"; + next; + menu + "Yes", L_Search, + "No", -; + close; L_Search: - mes "After searching the bookcase, you were able to find a few passages that you can read."; - next; - - mes "One of the describes an ancient barrier that guards a great treasure."; - mes ""; - mes "To get through it, you need to consume the soul of a great pumpkin ghost."; - next; - - mes "Another passage describes a ritual needed to open a certain cursed chest."; - mes ""; - mes "It looks like a lot of items will be needed."; - next; - - mes "The slime of a maggot."; - mes "A mushroom, big or small."; - mes "The petal of a pink flower."; - next; - - mes "A pearl from the sea."; - mes "A spike; the harder, the better."; - mes "Some raw wood. One log should do."; - next; - - mes "An antenna. Preferably pink."; - mes "The tongues of four different snakes."; - mes "A key to a treasure chest."; - next; - - mes "A pile of ash."; - mes "Four different herbs."; - mes "A bug, or part of one."; - next; - - mes "A lamp for the dark."; - mes "Rock and metal, as one."; - mes "Three different deaths dealt by three different scorpions."; - next; - - mes "The womb that gives birth to butterflies."; - mes "The gentle caress of a creature without blemish."; - mes "A single piece of darkness."; - next; - - mes "And a bottle's worth of water."; - mes ""; - mes "You begin to wonder if you read that list right."; - next; - - if (QUEST_demon_mines == 0) set QUEST_demon_mines, 1; - close; + mes "After searching the bookcase, you were able to find a few passages that you can read."; + next; + mes "One of the describes an ancient barrier that guards a great treasure."; + mes ""; + mes "To get through it, you need to consume the soul of a great pumpkin ghost."; + next; + mes "Another passage describes a ritual needed to open a certain cursed chest."; + mes ""; + mes "It looks like a lot of items will be needed."; + next; + mes "The slime of a maggot."; + mes "A mushroom, big or small."; + mes "The petal of a pink flower."; + next; + mes "A pearl from the sea."; + mes "A spike; the harder, the better."; + mes "Some raw wood. One log should do."; + next; + mes "An antenna. Preferably pink."; + mes "The tongues of four different snakes."; + mes "A key to a treasure chest."; + next; + mes "A pile of ash."; + mes "Four different herbs."; + mes "A bug, or part of one."; + next; + mes "A lamp for the dark."; + mes "Rock and metal, as one."; + mes "Three different deaths dealt by three different scorpions."; + next; + mes "The womb that gives birth to butterflies."; + mes "The gentle caress of a creature without blemish."; + mes "A single piece of darkness."; + next; + mes "And a bottle's worth of water."; + mes ""; + mes "You begin to wonder if you read that list right."; + next; + if (QUEST_demon_mines == 0) + set QUEST_demon_mines, 1; + close; } diff --git a/world/map/npc/018-3/evil-obelisk.txt b/world/map/npc/018-3/evil-obelisk.txt index 4893cfeb..c80e3b59 100644 --- a/world/map/npc/018-3/evil-obelisk.txt +++ b/world/map/npc/018-3/evil-obelisk.txt @@ -1,10 +1,10 @@ // -018-3.gat,67,28,0 script Evil Obelisk 185, { - callfunc "ClearVariables"; - set @map$, "018-3.gat"; - set @x, 67; - set @y, 28; - callfunc "EvilObelisk"; - close; +018-3.gat,67,28,0|script|Evil Obelisk|185,{ + callfunc "ClearVariables"; + set @map$, "018-3.gat"; + set @x, 67; + set @y, 28; + callfunc "EvilObelisk"; + close; } diff --git a/world/map/npc/018-3/sword.txt b/world/map/npc/018-3/sword.txt index f8ee7725..48150330 100644 --- a/world/map/npc/018-3/sword.txt +++ b/world/map/npc/018-3/sword.txt @@ -1,11 +1,10 @@ -018-3.gat,71,127,0 script #DemonSword#_M 127,{ - if (getskilllv(SKILL_MAGIC)) - goto L_message; - - close; +018-3.gat,71,127,0|script|#DemonSword#_M|127,{ + if (getskilllv(SKILL_MAGIC)) + goto L_message; + close; L_message: - mes "[Sword in Rock]"; - mes "\"Ouch... my head...\""; - close; + mes "[Sword in Rock]"; + mes "\"Ouch... my head...\""; + close; } diff --git a/world/map/npc/019-1/santa_helper.txt b/world/map/npc/019-1/santa_helper.txt index d2c5bcf9..c383c93c 100644 --- a/world/map/npc/019-1/santa_helper.txt +++ b/world/map/npc/019-1/santa_helper.txt @@ -1,65 +1,69 @@ -019-1.gat,74,75,0 script Santa's Helper 105,{ - if (ChristmasQuest2 == 1) goto L_Done; - mes "[Santa's Helper]"; - mes "\"Hello my young friend."; - mes "Would you like to help me?\""; - next; - mes "[Santa's Helper]"; - mes "\"Those monsters stole Santa's presents."; - mes "If you help me, I'll give you something very nice\""; - next; +019-1.gat,74,75,0|script|Santa's Helper|105,{ + if (ChristmasQuest2 == 1) goto L_Done; + mes "[Santa's Helper]"; + mes "\"Hello my young friend."; + mes "Would you like to help me?\""; + next; + mes "[Santa's Helper]"; + mes "\"Those monsters stole Santa's presents."; + mes "If you help me, I'll give you something very nice\""; + next; L_M: - menu - "I have some present boxes", L_Y, - "Hmm, see you later", L_N, - "What you need exactly?", L_R; + menu + "I have some present boxes", L_Y, + "Hmm, see you later", L_N, + "What you need exactly?", L_R; L_Y: - mes "[Santa's Helper]"; - mes "\"Hmm, let me check what you have.\""; - next; - if (countitem("PurplePresentBox") < 25) goto L_NoItem; - if (countitem("BluePresentBox") < 20) goto L_NoItem; - if (countitem("GreenPresentBox") < 5) goto L_NoItem; - getinventorylist; - if (@inventorylist_count > 99) goto L_TooMany; - mes "[Santa's Helper]"; - mes "\"Great! Here is something for you\""; - delitem "PurplePresentBox", 25; - delitem "BluePresentBox", 20; - delitem "GreenPresentBox", 5; - getitem "TurtleneckSweater", 1; - set ChristmasQuest2,1; - close; + mes "[Santa's Helper]"; + mes "\"Hmm, let me check what you have.\""; + next; + if (countitem("PurplePresentBox") < 25) + goto L_NoItem; + if (countitem("BluePresentBox") < 20) + goto L_NoItem; + if (countitem("GreenPresentBox") < 5) + goto L_NoItem; + getinventorylist; + if (@inventorylist_count > 99) + goto L_TooMany; + mes "[Santa's Helper]"; + mes "\"Great! Here is something for you\""; + delitem "PurplePresentBox", 25; + delitem "BluePresentBox", 20; + delitem "GreenPresentBox", 5; + getitem "TurtleneckSweater", 1; + set ChristmasQuest2,1; + close; L_R: - mes "[Santa's Helper]"; - mes "\"I need:"; - mes "25 Purple Present Boxes"; - mes "20 Blue Present Boxes"; - mes "5 Green Present Boxes\""; - next; - goto L_M; + mes "[Santa's Helper]"; + mes "\"I need:"; + mes "25 Purple Present Boxes"; + mes "20 Blue Present Boxes"; + mes "5 Green Present Boxes\""; + next; + goto L_M; L_N: - mes "[Santa's Helper]"; - mes "\"Enjoy your holidays and I wish you a happy Christmas!\""; - close; + mes "[Santa's Helper]"; + mes "\"Enjoy your holidays and I wish you a happy Christmas!\""; + close; L_NoItem: - mes "[Santa's Helper]"; - mes "\"You dont seem to have enough presents.\""; - close; + mes "[Santa's Helper]"; + mes "\"You dont seem to have enough presents.\""; + close; L_Done: - mes "[Santa's Helper]"; - mes "\"All the children got their Christmas presents."; - mes "Thank you for your help.\""; - close; + mes "[Santa's Helper]"; + mes "\"All the children got their Christmas presents."; + mes "Thank you for your help.\""; + close; L_TooMany: - mes "[Santa's Helper]"; - mes "\"It doesn't look like you have room for this. Come back later.\""; - close; + mes "[Santa's Helper]"; + mes "\"It doesn't look like you have room for this. Come back later.\""; + close; } diff --git a/world/map/npc/019-1/snowman.txt b/world/map/npc/019-1/snowman.txt index 11831356..28f030f4 100644 --- a/world/map/npc/019-1/snowman.txt +++ b/world/map/npc/019-1/snowman.txt @@ -1,62 +1,66 @@ // -019-1.gat,77,44,0 script Snowman 129,{ - if( ChristmasQuest == 1) goto L_Done; +019-1.gat,77,44,0|script|Snowman|129,{ + if( ChristmasQuest == 1) goto L_Done; - mes "[Snowman]"; - mes "\"Hello there young man."; - mes "Would you like a Christmas hat?\""; - next; + mes "[Snowman]"; + mes "\"Hello there young man."; + mes "Would you like a Christmas hat?\""; + next; L_Menu: - menu - "Yes", L_Sure, - "No", -, - "What do you need?", L_Need; - mes "[Snowman]"; - mes "\"Well, thats too bad, but make sure to have the holiday spirit!\""; - close; + menu + "Yes", L_Sure, + "No", -, + "What do you need?", L_Need; + mes "[Snowman]"; + mes "\"Well, thats too bad, but make sure to have the holiday spirit!\""; + close; L_Sure: - mes "[Snowman]"; - mes "\"Hmm, let me see what you have.\""; - next; - if(countitem("Candy") < 15) goto L_NoItem; - if(countitem("ChocolateBar") < 10) goto L_NoItem; - if(countitem("CactusPotion") < 5) goto L_NoItem; - getinventorylist; - if (@inventorylist_count > 99) goto L_TooMany; - delitem "Candy", 15; - delitem "ChocolateBar", 10; - delitem "CactusPotion", 5; - mes "[Snowman]"; - mes "\"Here you go, enjoy your new hat!\""; - getitem "SantaHat", 1; - set ChristmasQuest, 1; - close; + mes "[Snowman]"; + mes "\"Hmm, let me see what you have.\""; + next; + if(countitem("Candy") < 15) + goto L_NoItem; + if(countitem("ChocolateBar") < 10) + goto L_NoItem; + if(countitem("CactusPotion") < 5) + goto L_NoItem; + getinventorylist; + if (@inventorylist_count > 99) + goto L_TooMany; + delitem "Candy", 15; + delitem "ChocolateBar", 10; + delitem "CactusPotion", 5; + mes "[Snowman]"; + mes "\"Here you go, enjoy your new hat!\""; + getitem "SantaHat", 1; + set ChristmasQuest, 1; + close; L_Need: - mes "[Snowman]"; - mes "\"For this special hat, I need a pint of magic and a little help."; - mes "Just kidding. I would like to get some food:"; - mes "15 pieces of Candy"; - mes "10 Chocolate Bars"; - mes "5 Cactus Potions\""; - next; - goto L_Menu; + mes "[Snowman]"; + mes "\"For this special hat, I need a pint of magic and a little help."; + mes "Just kidding. I would like to get some food:"; + mes "15 pieces of Candy"; + mes "10 Chocolate Bars"; + mes "5 Cactus Potions\""; + next; + goto L_Menu; L_NoItem: - mes "[Snowman]"; - mes "\"Well, I am interested in some food and you don't have enought to get a hat.\""; - close; + mes "[Snowman]"; + mes "\"Well, I am interested in some food and you don't have enought to get a hat.\""; + close; L_Done: - mes "[Snowman]"; - mes "\"Thank you for your help!\""; - close; + mes "[Snowman]"; + mes "\"Thank you for your help!\""; + close; L_TooMany: - mes "[Snowman]"; - mes "\"It doesn't look like you have room for this. Come back later.\""; - close; + mes "[Snowman]"; + mes "\"It doesn't look like you have room for this. Come back later.\""; + close; } diff --git a/world/map/npc/020-1/KrickKrackKrock.txt b/world/map/npc/020-1/KrickKrackKrock.txt index 20b2d6c6..6cbe6ac8 100644 --- a/world/map/npc/020-1/KrickKrackKrock.txt +++ b/world/map/npc/020-1/KrickKrackKrock.txt @@ -3,7 +3,7 @@ //To enable: sed 's_^// __' -i npc/020-1/KrickKrackKrock.txt -// 020-1.gat,82,82,0 script Criker 192, { +// 020-1.gat,82,82,0|script|Criker|192,{ // L_Main: // //Var diff --git a/world/map/npc/020-1/rockscissor.txt b/world/map/npc/020-1/rockscissor.txt index 7ab9b42f..7a558014 100644 --- a/world/map/npc/020-1/rockscissor.txt +++ b/world/map/npc/020-1/rockscissor.txt @@ -11,7 +11,7 @@ //To enable: sed 's_^// __' -i npc/020-1/rockscissor.txt -// 020-1.gat,74,78,0 script Gobmel 189, { +// 020-1.gat,74,78,0|script|Gobmel|189,{ // //var // set @NPC_name$, "[Gobmel]"; // set @NPC_point, 0; diff --git a/world/map/npc/020-1/soul-menhir.txt b/world/map/npc/020-1/soul-menhir.txt index f6e52869..9139d884 100644 --- a/world/map/npc/020-1/soul-menhir.txt +++ b/world/map/npc/020-1/soul-menhir.txt @@ -1,12 +1,12 @@ // -020-1.gat,63,89,0 script Soul Menhir 144, { - callfunc "ClearVariables"; - set @map$, "020-1.gat"; - setarray @Xs, 62, 63, 64, 62, 64, 62, 63, 64; - setarray @Ys, 88, 88, 88, 89, 89, 90, 90, 90; - set @x, 0; - set @y, 0; - callfunc "SoulMenhir"; - close; +020-1.gat,63,89,0|script|Soul Menhir|144,{ + callfunc "ClearVariables"; + set @map$, "020-1.gat"; + setarray @Xs, 62, 63, 64, 62, 64, 62, 63, 64; + setarray @Ys, 88, 88, 88, 89, 89, 90, 90, 90; + set @x, 0; + set @y, 0; + callfunc "SoulMenhir"; + close; } diff --git a/world/map/npc/020-1/well.txt b/world/map/npc/020-1/well.txt index ed025a0f..da4aa86d 100644 --- a/world/map/npc/020-1/well.txt +++ b/world/map/npc/020-1/well.txt @@ -14,106 +14,117 @@ //# used variables: QUEST_Nivalis_state Nibble4 //############################################ -020-1.gat,99,83,0 script #Well 127, { +020-1.gat,99,83,0|script|#Well|127,{ - set @Q_MASK, NIBBLE_4_MASK; - set @Q_SHIFT, NIBBLE_4_SHIFT; + set @Q_MASK, NIBBLE_4_MASK; + set @Q_SHIFT, NIBBLE_4_SHIFT; set @Q_status, ((QUEST_Nivalis_state) & @Q_MASK) >> @Q_SHIFT; -if(@Q_status == 2) goto L_Finished; - set @item_ID, 0; - setarray @quote_item$, "Yuck! Who has thrown that on me?","Ouch! Who hurts me?","White powder!? What's going on up there?","Ahw! It's raining ","","",""; + if(@Q_status == 2) goto L_Finished; + set @item_ID, 0; + setarray @quote_item$, "Yuck! Who has thrown that on me?","Ouch! Who hurts me?","White powder!? What's going on up there?","Ahw! It's raining ","","",""; - mes "..."; - menu "Throw something in the well.", L_trew, - "Leave it alone.", -; - close; + mes "..."; + menu + "Throw something in the well.", L_trew, + "Leave it alone.", -; + close; L_trew: - mes "What do you want to throw?"; - menu "Maggot slime", -, - "A raw log", -, - "Pile of ash", -, - "Bottle of water", -, - "Leave it alone", L_Close; - - set @menu, @menu - 1; - - // little IF to do @quote$ & @Item_ID - set @quote$, @quote_item$[@menu]; - if(@menu == 0) set @item_ID, 505; - if(@menu == 1) set @item_ID, 569; - if(@menu == 2) set @item_ID, 701; - if(@menu == 3) set @item_ID, 541; - - if(countitem(@item_ID) < 1) goto L_NO_ITEM; - if(@menu == 3) getitem 540, 1; - delitem @item_ID, 1; - - mes "[Mysterious voice inside the well]"; - mes "\" "+ @quote$ +"\""; - next; - menu - "Who are you?", -, - "How did you get there?", -, - "Do you need help?", -; - - set @menu, @menu - 1; - if(@menu == 0) set @quote$, "I'll talk about who I am after leaving the well."; - if(@menu == 1) set @quote$, "Well, someone has pushed me in the well, I don't know who did that."; - if(@menu == 2) set @quote$, ""; - mes "[Mysterious voice inside the well]"; - mes "\" "+ @quote$ +". So if you can call help for me... please do so!\""; - set @Q_status, 1; - callsub S_Update_Var; - close; + mes "What do you want to throw?"; + menu + "Maggot slime", -, + "A raw log", -, + "Pile of ash", -, + "Bottle of water", -, + "Leave it alone", L_Close; + + set @menu, @menu - 1; + + // little IF to do @quote$ & @Item_ID + set @quote$, @quote_item$[@menu]; + if(@menu == 0) + set @item_ID, 505; + if(@menu == 1) + set @item_ID, 569; + if(@menu == 2) + set @item_ID, 701; + if(@menu == 3) + set @item_ID, 541; + + if(countitem(@item_ID) < 1) + goto L_NO_ITEM; + if(@menu == 3) + getitem 540, 1; + delitem @item_ID, 1; + + mes "[Mysterious voice inside the well]"; + mes "\" "+ @quote$ +"\""; + next; + menu + "Who are you?", -, + "How did you get there?", -, + "Do you need help?", -; + + set @menu, @menu - 1; + if (@menu == 0) + set @quote$, "I'll talk about who I am after leaving the well."; + if (@menu == 1) + set @quote$, "Well, someone has pushed me in the well, I don't know who did that."; + if (@menu == 2) + set @quote$, ""; + mes "[Mysterious voice inside the well]"; + mes "\" "+ @quote$ +". So if you can call help for me... please do so!\""; + set @Q_status, 1; + callsub S_Update_Var; + close; L_NO_ITEM: - mes "You don't have such an item... Come back when you have it."; - close; + mes "You don't have such an item... Come back when you have it."; + close; L_Finished: - mes "This is a well."; - close; + mes "This is a well."; + close; L_Close: - close; + close; S_Update_Var: set QUEST_Nivalis_state, - (QUEST_Nivalis_state & ~(@Q_MASK) + (QUEST_Nivalis_state & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; } -020-2.gat,100,28,0 script Miler 100, { - set @Q_MASK, NIBBLE_4_MASK; - set @Q_SHIFT, NIBBLE_4_SHIFT; - set @Q_status, ((QUEST_Nivalis_state) & @Q_MASK) >> @Q_SHIFT; - - mes "[Miler]"; - mes "\"Hello!\""; - if(@Q_status == 2) close; - if(@Q_status == 1) - menu - "Hello.", -, - "Hello, Can you help me?", L_HELP; - close; +020-2.gat,100,28,0|script|Miler|100,{ + set @Q_MASK, NIBBLE_4_MASK; + set @Q_SHIFT, NIBBLE_4_SHIFT; + set @Q_status, ((QUEST_Nivalis_state) & @Q_MASK) >> @Q_SHIFT; + + mes "[Miler]"; + mes "\"Hello!\""; + if(@Q_status == 2) close; + if(@Q_status == 1) + menu + "Hello.", -, + "Hello, Can you help me?", L_HELP; + close; + L_HELP: - mes "[Miler]"; - mes "\"What's the problem?\""; - menu "Someone has fallen in the well.", -; - mes "[Miler]"; - mes "\"Ho! I'll help him!\""; - getexp (BaseLevel * 111), 0; - set @Q_status, 2; - callsub S_Update_Var; - close; + mes "[Miler]"; + mes "\"What's the problem?\""; + menu "Someone has fallen in the well.", -; + mes "[Miler]"; + mes "\"Ho! I'll help him!\""; + getexp (BaseLevel * 111), 0; + set @Q_status, 2; + callsub S_Update_Var; + close; S_Update_Var: set QUEST_Nivalis_state, - (QUEST_Nivalis_state & ~(@Q_MASK) + (QUEST_Nivalis_state & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); return; -} - +}
\ No newline at end of file diff --git a/world/map/npc/021-1/bakery.txt b/world/map/npc/021-1/bakery.txt index 97238904..4535395e 100644 --- a/world/map/npc/021-1/bakery.txt +++ b/world/map/npc/021-1/bakery.txt @@ -1,17 +1,17 @@ // Outside the bakery -021-1.gat,105,104,0 shop Ara 163,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,CherryCake :-1 +021-1.gat,105,104,0|shop|Ara|163,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,CherryCake :-1 -021-1.gat,108,102,0 script Itka 114,{ - mes "[Itka]"; - mes "\"This bakery is the best!\""; - close; +021-1.gat,108,102,0|script|Itka|114,{ + mes "[Itka]"; + mes "\"This bakery is the best!\""; + close; OnTimer300000: - npctalk "Come to the bakery!"; - setnpctimer 0; - end; + npctalk "Come to the bakery!"; + setnpctimer 0; + end; OnInit: - initnpctimer; + initnpctimer; } diff --git a/world/map/npc/021-1/eurni.txt b/world/map/npc/021-1/eurni.txt index 1a140e81..014d8d7a 100644 --- a/world/map/npc/021-1/eurni.txt +++ b/world/map/npc/021-1/eurni.txt @@ -1,39 +1,39 @@ // -021-1.gat,141,113,0 script Eurni 136,{ - if (BaseLevel < 10) goto L_TooYoung; - if (zeny < 10000) goto L_NoMoney; +021-1.gat,141,113,0|script|Eurni|136,{ + if (BaseLevel < 10) goto L_TooYoung; + if (zeny < 10000) goto L_NoMoney; - mes "[Eurni the Surgeon]"; - mes "\"Are you tired of being what you are?\""; - next; - - mes "[Eurni the Surgeon]"; - mes "\"Would you maybe be interested in a sex change?\""; - next; - - mes "[Server]"; - mes "Warning: All characters under this login will be changed. Once it's done, you will be kicked from the server. Don't panic, as everything is fine."; - next; - - menu - "Please do, my dear...", L_Change, - "Leave alone my family treasure!", -; - close; + mes "[Eurni the Surgeon]"; + mes "\"Are you tired of being what you are?\""; + next; + + mes "[Eurni the Surgeon]"; + mes "\"Would you maybe be interested in a sex change?\""; + next; + + mes "[Server]"; + mes "Warning: All characters under this login will be changed. Once it's done, you will be kicked from the server. Don't panic, as everything is fine."; + next; + menu + "Please do, my dear...", L_Change, + "Leave alone my family treasure!", -; + close; L_Change: - if (zeny < 10000) goto L_No_Money; - set zeny, zeny - 10000; - changesex; - close; + if (zeny < 10000) + goto L_No_Money; + set zeny, zeny - 10000; + changesex; + close; L_TooYoung: - mes "[Eurni the Surgeon]"; - mes "\"Move along, kid.\""; - close; + mes "[Eurni the Surgeon]"; + mes "\"Move along, kid.\""; + close; L_NoMoney: - mes "[Eurni the Surgeon]"; - mes "\"You don't have enough to pay for my services.\""; - close; + mes "[Eurni the Surgeon]"; + mes "\"You don't have enough to pay for my services.\""; + close; } diff --git a/world/map/npc/021-1/gate_guards.txt b/world/map/npc/021-1/gate_guards.txt index 2d0dc504..6af33f2f 100644 --- a/world/map/npc/021-1/gate_guards.txt +++ b/world/map/npc/021-1/gate_guards.txt @@ -1,41 +1,41 @@ // Various guards at gates // Guards by the gates to the port -021-1.gat,70,23,0 script Guard 104,{ - mes "[Guard]"; - mes "\"Lots of stuff happens in the port district. Those sailors can get quite rowdy.\""; - close; +021-1.gat,70,23,0|script|Guard|104,{ + mes "[Guard]"; + mes "\"Lots of stuff happens in the port district. Those sailors can get quite rowdy.\""; + close; } -021-1.gat,110,23,0 script Guard 104,{ - mes "[Guard]"; - mes "\"I'm not quite sure why I'm here, since that bridge is out.\""; - close; +021-1.gat,110,23,0|script|Guard|104,{ + mes "[Guard]"; + mes "\"I'm not quite sure why I'm here, since that bridge is out.\""; + close; } // Guard near the magic school -021-1.gat,46,65,0 script Guard 104,{ - mes "[Guard]"; - mes "\"I'm just here to provide a presence for the guards at this gate. The mages here can defend themselves without problem.\""; - close; +021-1.gat,46,65,0|script|Guard|104,{ + mes "[Guard]"; + mes "\"I'm just here to provide a presence for the guards at this gate. The mages here can defend themselves without problem.\""; + close; } // Guards by the gates to East Tulimshar -021-1.gat,156,42,0 script Guard 104,{ - mes "[Guard]"; - mes "\"It's still a mess in East Tulimshar. The volcano and earthquake did a lot of damage.\""; - close; +021-1.gat,156,42,0|script|Guard|104,{ + mes "[Guard]"; + mes "\"It's still a mess in East Tulimshar. The volcano and earthquake did a lot of damage.\""; + close; } -021-1.gat,156,95,0 script Guard 104,{ - mes "[Guard]"; - mes "\"It can get quite dangerous east of town. But for now, the passage is closed.\""; - close; +021-1.gat,156,95,0|script|Guard|104,{ + mes "[Guard]"; + mes "\"It can get quite dangerous east of town. But for now, the passage is closed.\""; + close; } // Near the bazaar, outside the government building -021-1.gat,58,135,0 script Guard 123,{ - mes "[Guard]"; - mes "\"This is a government building. They have some clerical and tax offices in here. There is also a jail in the subbasement.\""; - close; +021-1.gat,58,135,0|script|Guard|123,{ + mes "[Guard]"; + mes "\"This is a government building. They have some clerical and tax offices in here. There is also a jail in the subbasement.\""; + close; } diff --git a/world/map/npc/021-1/inac.txt b/world/map/npc/021-1/inac.txt index 15f9eca3..85580f4b 100644 --- a/world/map/npc/021-1/inac.txt +++ b/world/map/npc/021-1/inac.txt @@ -1,13 +1,13 @@ // -021-1.gat,53,103,0 script Inac 156,{ - mes "[Inac]"; - mes "\"This cities water system is amazing. It was built centuries ago after the cataclysm that turned Tonori into this desert.\""; - next; - mes "[Inac]"; - mes "\"They say that not much maintainence is needed, even though it's so old.\""; - next; - mes "[Inac]"; - mes "\"They also say monsters have moved into the underground tunnels that bring and distribute water.\""; - close; +021-1.gat,53,103,0|script|Inac|156,{ + mes "[Inac]"; + mes "\"This cities water system is amazing. It was built centuries ago after the cataclysm that turned Tonori into this desert.\""; + next; + mes "[Inac]"; + mes "\"They say that not much maintainence is needed, even though it's so old.\""; + next; + mes "[Inac]"; + mes "\"They also say monsters have moved into the underground tunnels that bring and distribute water.\""; + close; } diff --git a/world/map/npc/021-1/north_shops.txt b/world/map/npc/021-1/north_shops.txt index 9a736720..6511bc42 100644 --- a/world/map/npc/021-1/north_shops.txt +++ b/world/map/npc/021-1/north_shops.txt @@ -3,53 +3,53 @@ // More high-end stuff to satisfy the richer people in Royal Tulimshar // Some clothing -021-1.gat,136,38,0 shop Inar 108,CottonShirt :-1,CottonShorts :-1,WhiteCottonBoots :-1,DesertShirt :-1,SilkRobe :-5,DesertHat :-4 +021-1.gat,136,38,0|shop|Inar|108,CottonShirt :-1,CottonShorts :-1,WhiteCottonBoots :-1,DesertShirt :-1,SilkRobe :-5,DesertHat :-4 // Some general stuff -021-1.gat,128,36,0 script Imec 162,{ - set @npcname$, "Imec"; - mes "[" + @npcname$ + "]"; - mes "\"The Wizard's Council shut down my shop!\""; - next; - mes "\"They said I was selling illegal things, but what's so illegal about poison?\""; - next; - mes "\"Anyways, I hope to get a merchant's permit again...One of these days..\""; - close; +021-1.gat,128,36,0|script|Imec|162,{ + set @npcname$, "Imec"; + mes "[" + @npcname$ + "]"; + mes "\"The Wizard's Council shut down my shop!\""; + next; + mes "\"They said I was selling illegal things, but what's so illegal about poison?\""; + next; + mes "\"Anyways, I hope to get a merchant's permit again...One of these days..\""; + close; } // A snobby store that won't sell to the player -021-1.gat,138,29,0 script Latoy 106,{ - mes "[Latoy]"; - mes "\"There's nothing here you could want or afford.\""; - close; +021-1.gat,138,29,0|script|Latoy|106,{ + mes "[Latoy]"; + mes "\"There's nothing here you could want or afford.\""; + close; } // A barber (later we can make it so certain styles need to come from him, for a price) -021-1.gat,119,29,0 script Issay 156,{ - mes "[Issay the Barber]"; - mes "\"Do you need a change of style?\""; - next; - callfunc "Barber"; - mes "[Issay the Barber]"; - mes "\"Come again!\""; - close; +021-1.gat,119,29,0|script|Issay|156,{ + mes "[Issay the Barber]"; + mes "\"Do you need a change of style?\""; + next; + callfunc "Barber"; + mes "[Issay the Barber]"; + mes "\"Come again!\""; + close; } // Another banker -021-1.gat,122,32,0 script Hydusun 149,{ - set @npcname$, "Hydusun"; - callfunc "Banker"; - close; +021-1.gat,122,32,0|script|Hydusun|149,{ + set @npcname$, "Hydusun"; + callfunc "Banker"; + close; } -021-1.gat,129,40,0 script Well 127,{ - callfunc "WaterBottle"; +021-1.gat,129,40,0|script|Well|127,{ + callfunc "WaterBottle"; } // An officer (for security) -021-1.gat,130,38,0 script Officer 150,{ - mes "[Officer]"; - mes "I'm here for extra security for this market."; - close; +021-1.gat,130,38,0|script|Officer|150,{ + mes "[Officer]"; + mes "I'm here for extra security for this market."; + close; } diff --git a/world/map/npc/021-1/npcs.txt b/world/map/npc/021-1/npcs.txt index 154052ab..89a3111e 100644 --- a/world/map/npc/021-1/npcs.txt +++ b/world/map/npc/021-1/npcs.txt @@ -1,43 +1,43 @@ // Talk NPCs to help make trek interesting between Tutorial and Bazaar. -021-1.gat,77,42,0 script Jeric 214,{ - set @npcname$, "Jeric"; - - mes "[" + @npcname$ + "]"; - mes "\"My father is an adventurer.\""; - next; - mes "\"After he proved himself around town, the guards let him fight monsters in the Sandstorm mine.\""; - close; +021-1.gat,77,42,0|script|Jeric|214,{ + set @npcname$, "Jeric"; + + mes "[" + @npcname$ + "]"; + mes "\"My father is an adventurer.\""; + next; + mes "\"After he proved himself around town, the guards let him fight monsters in the Sandstorm mine.\""; + close; } -021-1.gat,75,67,0 script Silvia 207,{ - set @npcname$, "Silvia"; +021-1.gat,75,67,0|script|Silvia|207,{ + set @npcname$, "Silvia"; - mes "[" + @npcname$ + "]"; - mes "\"If you follow the road west, then south, you will arrive at the Bazaar in Southern Tulimshar.\""; - next; - mes "\"If you go west, then north, you'll see the Wizard Academy my parents just sent me to.\""; - next; - mes "\"The Academy is good, but I wish I had more free time. It takes a lot of intelligence to get what the teachers are talking about.\""; - close; + mes "[" + @npcname$ + "]"; + mes "\"If you follow the road west, then south, you will arrive at the Bazaar in Southern Tulimshar.\""; + next; + mes "\"If you go west, then north, you'll see the Wizard Academy my parents just sent me to.\""; + next; + mes "\"The Academy is good, but I wish I had more free time. It takes a lot of intelligence to get what the teachers are talking about.\""; + close; } -021-1.gat,45,77,0 script Pauline 208,{ - set @npcname$, "Pauline"; +021-1.gat,45,77,0|script|Pauline|208,{ + set @npcname$, "Pauline"; - mes "[" + @npcname$ + "]"; - mes "\"I've mastered several schools of magic and fought the Yeti in Kaizei.\""; - next; - mes "\"The path of magic is a long and difficult one.\""; - close; + mes "[" + @npcname$ + "]"; + mes "\"I've mastered several schools of magic and fought the Yeti in Kaizei.\""; + next; + mes "\"The path of magic is a long and difficult one.\""; + close; } -021-1.gat,49,123,0 script Michel 215,{ - set @npcname$, "Michel"; +021-1.gat,49,123,0|script|Michel|215,{ + set @npcname$, "Michel"; - mes "[" + @npcname$ + "]"; - mes "\"Elanore is a magician in Southern Tulimshar that helps young adventurers by healing their battle wounds. When they are experienced enough, she stops healing them.\""; - next; - mes "\"You can find her by going through the Bazaar and to the East.\""; - close; + mes "[" + @npcname$ + "]"; + mes "\"Elanore is a magician in Southern Tulimshar that helps young adventurers by healing their battle wounds. When they are experienced enough, she stops healing them.\""; + next; + mes "\"You can find her by going through the Bazaar and to the East.\""; + close; } diff --git a/world/map/npc/021-1/royal_guards.txt b/world/map/npc/021-1/royal_guards.txt index 02996184..1920e43b 100644 --- a/world/map/npc/021-1/royal_guards.txt +++ b/world/map/npc/021-1/royal_guards.txt @@ -1,13 +1,13 @@ // -021-1.gat,141,23,0 script Guard 126,{ - mes "[Guard]"; - mes "\"Stay away.\""; - close; +021-1.gat,141,23,0|script|Guard|126,{ + mes "[Guard]"; + mes "\"Stay away.\""; + close; } -021-1.gat,147,23,0 script Guard 126,{ - mes "[Guard]"; - mes "\"Stay away.\""; - close; +021-1.gat,147,23,0|script|Guard|126,{ + mes "[Guard]"; + mes "\"Stay away.\""; + close; } diff --git a/world/map/npc/021-1/weellos.txt b/world/map/npc/021-1/weellos.txt index 06bb8f17..2a7dcdf9 100644 --- a/world/map/npc/021-1/weellos.txt +++ b/world/map/npc/021-1/weellos.txt @@ -1,15 +1,15 @@ // A historian -021-1.gat,130,125,0 script Weellos 103,{ - if isin("021-1.gat", 130, 120, 140, 125) goto L_In; +021-1.gat,130,125,0|script|Weellos|103,{ + if isin("021-1.gat", 130, 120, 140, 125) goto L_In; - mes "[Weellos]"; - mes "\"This is a very historic building. One of the oldest in the area.\""; - close; + mes "[Weellos]"; + mes "\"This is a very historic building. One of the oldest in the area.\""; + close; // If the player is inside the fence with Weellos L_In: - mes "[Weellos]"; - mes "\"What did you think of the historic building?\""; - close; + mes "[Weellos]"; + mes "\"What did you think of the historic building?\""; + close; } diff --git a/world/map/npc/021-1/workers.txt b/world/map/npc/021-1/workers.txt index 24ea8f84..fcbed396 100644 --- a/world/map/npc/021-1/workers.txt +++ b/world/map/npc/021-1/workers.txt @@ -1,19 +1,19 @@ // -021-1.gat,144,22,0 script Construction Worker 155,{ - mes "[Construction worker]"; - mes "\"I can't let you beyond this gate. The area is closed for renovation.\""; - close; +021-1.gat,144,22,0|script|Construction Worker|155,{ + mes "[Construction worker]"; + mes "\"I can't let you beyond this gate. The area is closed for renovation.\""; + close; } -021-1.gat,156,97,0 script Construction Worker 155,{ - mes "[Construction worker]"; - mes "\"East Tulimshar is closed for repairs.\""; - close; +021-1.gat,156,97,0|script|Construction Worker|155,{ + mes "[Construction worker]"; + mes "\"East Tulimshar is closed for repairs.\""; + close; } -021-1.gat,156,44,0 script Construction Worker 155,{ - mes "[Construction worker]"; - mes "\"East Tulimshar is closed for repairs.\""; - close; +021-1.gat,156,44,0|script|Construction Worker|155,{ + mes "[Construction worker]"; + mes "\"East Tulimshar is closed for repairs.\""; + close; } diff --git a/world/map/npc/021-2/bakery.txt b/world/map/npc/021-2/bakery.txt index 1fa60134..76253c0f 100644 --- a/world/map/npc/021-2/bakery.txt +++ b/world/map/npc/021-2/bakery.txt @@ -1,234 +1,235 @@ // The bakery // The chef -021-2.gat,95,21,0 script Riskim 148,{ +021-2.gat,95,21,0|script|Riskim|148,{ // lines belong to easter 2011: -// set @month, 4; -// set @start_day, 15; -// set @end_day, 30; +// set @month, 4; +// set @start_day, 15; +// set @end_day, 30; -// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 10) goto L_ChocMouboo; -// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 11) goto L_MakeChocMouboo; -// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 12) goto L_SeeBunny; +// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 10) goto L_ChocMouboo; +// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 11) goto L_MakeChocMouboo; +// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 12) goto L_SeeBunny; L_Begin: - mes "[Riskim]"; - mes ""; - mes "\"Welcome to our bakery!\""; - - callfunc "KadiyaSubquestConsts"; - if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) && (countitem ("MopoxCurePotion") > 0)) - goto L_lace_chococake; - - if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) && (countitem ("MopoxCurePotion") > 0)) - goto L_lace_cupcake; - - mes "\"Would you mind bringing me 6 acorns please? I need them to make flour for the chocolate cakes. I will be so delicious!\""; - next; - mes "\"Um, I mean, the cakes will be delicious...\""; - emotion EMOTE_BLUSH; - next; - - set @dq_level, 15; - set @dq_cost, 3; - set @dq_count, 6; - set @dq_name$, "Acorn"; - set @dq_friendly_name$, "acorns"; - set @dq_money, 250; - set @dq_exp, 50; - - callfunc "DailyQuest"; - - next; - - mes "\"And don't forget, our bakery is the best!\""; - - close; + mes "[Riskim]"; + mes ""; + mes "\"Welcome to our bakery!\""; + + callfunc "KadiyaSubquestConsts"; + if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE) + && (countitem ("MopoxCurePotion") > 0)) + goto L_lace_chococake; + + if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE) + && (countitem ("MopoxCurePotion") > 0)) + goto L_lace_cupcake; + + mes "\"Would you mind bringing me 6 acorns please? I need them to make flour for the chocolate cakes. I will be so delicious!\""; + next; + mes "\"Um, I mean, the cakes will be delicious...\""; + emotion EMOTE_BLUSH; + next; + + set @dq_level, 15; + set @dq_cost, 3; + set @dq_count, 6; + set @dq_name$, "Acorn"; + set @dq_friendly_name$, "acorns"; + set @dq_money, 250; + set @dq_exp, 50; + + callfunc "DailyQuest"; + + next; + mes "\"And don't forget, our bakery is the best!\""; + close; L_lace_chococake: - next; - - menu - "Thanks! Let me have a look around...", L_end, - "Can you put this potion into a Chocolate Cake?", -, - "Goodbye!", L_end; - - mes "[Riskim]"; - mes ""; - mes "As you show Riskim the potion, he leans back, away from it."; - mes "\"Ooooh, I remember that smell...\""; - mes "\"Elanore's Mopox potion, right? She made me drink that, too...\""; - mes "He chuckles."; - mes "\"Yes, well, you do want to hide that somehow.\""; - next; - - mes "[Riskim]"; - mes ""; - mes "\"We'll need extra chocolate for that one. If you can give me ten pieces of chocolate and that potion, plus 400 GP, I will bake you a special Chocolate Cake that hides the taste.\""; - next; - - menu - "I will get them for you.", L_end, - "Here you are!", -, - "Maybe later.", L_end; - - if (countitem("ChocolateBar") < 10) - goto L_lacking_ingredients; - if (countitem("MopoxCurePotion") < 1) - goto L_lacking_ingredients; - if (zeny < 400) - goto L_lacking_zeny; - delitem "MopoxCurePotion", 1; - delitem "ChocolateBar", 10; - getitem "LacedChocolateCake", 1; - set zeny, zeny - 400; - - mes "[Riskim]"; - mes ""; - mes "\"Please have a seat!\""; - mes "You watch as Riskim melts the chocolate and stirs in the potion, then glazes a cake with the mixture."; - mes "\"It's a bit more chocolatey than your average chocolate cake, of course...\""; - next; - - mes "[Riskim]"; - mes ""; - mes "Riskim hands you the cake."; - mes "\"Here you are. I hope that this works.\""; - close; + next; + menu + "Thanks! Let me have a look around...", L_end, + "Can you put this potion into a Chocolate Cake?", -, + "Goodbye!", L_end; + mes "[Riskim]"; + mes ""; + mes "As you show Riskim the potion, he leans back, away from it."; + mes "\"Ooooh, I remember that smell...\""; + mes "\"Elanore's Mopox potion, right? She made me drink that, too...\""; + mes "He chuckles."; + mes "\"Yes, well, you do want to hide that somehow.\""; + next; + mes "[Riskim]"; + mes ""; + mes "\"We'll need extra chocolate for that one. If you can give me ten pieces of chocolate and that potion, plus 400 GP, I will bake you a special Chocolate Cake that hides the taste.\""; + next; + menu + "I will get them for you.", L_end, + "Here you are!", -, + "Maybe later.", L_end; + if (countitem("ChocolateBar") < 10) + goto L_lacking_ingredients; + if (countitem("MopoxCurePotion") < 1) + goto L_lacking_ingredients; + if (zeny < 400) + goto L_lacking_zeny; + delitem "MopoxCurePotion", 1; + delitem "ChocolateBar", 10; + getitem "LacedChocolateCake", 1; + set zeny, zeny - 400; + + mes "[Riskim]"; + mes ""; + mes "\"Please have a seat!\""; + mes "You watch as Riskim melts the chocolate and stirs in the potion, then glazes a cake with the mixture."; + mes "\"It's a bit more chocolatey than your average chocolate cake, of course...\""; + next; + mes "[Riskim]"; + mes ""; + mes "Riskim hands you the cake."; + mes "\"Here you are. I hope that this works.\""; + close; L_lacking_zeny: - mes "[Riskim]"; - mes ""; - mes "\"I'm sorry, but I have to charge 400 GP.\""; - close; + mes "[Riskim]"; + mes ""; + mes "\"I'm sorry, but I have to charge 400 GP.\""; + close; L_lacking_ingredients: - mes "[Riskim]"; - mes ""; - mes "\"Sorry, but I need ten Chocolate Bars AND your cure potion for this. Please come back later when you have everything.\""; - close; + mes "[Riskim]"; + mes ""; + mes "\"Sorry, but I need ten Chocolate Bars AND your cure potion for this. Please come back later when you have everything.\""; + close; L_lace_cupcake: - next; - - menu - "Thanks! Let me have a look around...", L_end, - "Can you put this potion into an Orange Cupcake?", -, - "Goodbye!", L_end; - - mes "[Riskim]"; - mes ""; - mes "\"Orange Cupcakes? Oh dear... I'm sorry, but I have a very bad orange allergy.\""; - next; - mes "[Riskim]"; - mes ""; - mes "\"Perhaps the Chef at Dimond's Cove can help you? We get all our cupcakes from him.\""; - next; + next; + menu + "Thanks! Let me have a look around...", L_end, + "Can you put this potion into an Orange Cupcake?", -, + "Goodbye!", L_end; + mes "[Riskim]"; + mes ""; + mes "\"Orange Cupcakes? Oh dear... I'm sorry, but I have a very bad orange allergy.\""; + next; + mes "[Riskim]"; + mes ""; + mes "\"Perhaps the Chef at Dimond's Cove can help you? We get all our cupcakes from him.\""; + next; L_End: - close; + close; L_ChocMouboo: - mes "[Riskim]"; - mes ""; - mes "\"Welcome to our bakery! Here you will find the best cakes in Tulimshar. And don't leave before you try one of our delicious Chocolate Pinkies!\""; - next; - menu - "Excuse me, sir? Did you say Chocolate Pinkies?", -; - mes "\"Yes! But there is no need to be alarmed, it is just plain chocolate molded in the shape of a small pinkie...\""; - next; - menu - "Do you have one in the shape of a mouboo? The Easter Bunny needs one.", -; - mes "\"The Easter Bunny? Interesting... I think I can help you make a Chocolate Mouboo.\""; - menu - "Nah, I decided not to do that stupid quest.", L_End, - "I would really appreciate that!", -; - set QUEST_Easter11, 11; + mes "[Riskim]"; + mes ""; + mes "\"Welcome to our bakery! Here you will find the best cakes in Tulimshar. And don't leave before you try one of our delicious Chocolate Pinkies!\""; + next; + menu + "Excuse me, sir? Did you say Chocolate Pinkies?", -; + mes "\"Yes! But there is no need to be alarmed, it is just plain chocolate molded in the shape of a small pinkie...\""; + next; + menu + "Do you have one in the shape of a mouboo? The Easter Bunny needs one.", -; + mes "\"The Easter Bunny? Interesting... I think I can help you make a Chocolate Mouboo.\""; + menu + "Nah, I decided not to do that stupid quest.", L_End, + "I would really appreciate that!", -; + set QUEST_Easter11, 11; L_MakeChocMouboo: - mes "[Riskim]"; - mes ""; - mes "\"I will need you to bring me some Chocolate Bars.\""; - mes "\"I think 5 bars should be enough.\""; - mes "\"Red slimes seem to have those, so try there.\""; - mes "\"I will also need a Mouboo Figurine to hollow out and use as a mold.\""; - mes "\"Any mage should be able to make you one out of a log, if you ask.\""; - menu - "I have everything you need.", -, - "Ok, I will be back soon.", L_End, - "I changed my mind, forget about it.", L_End; - - if(countitem("ChocolateBar") < 5 || countitem("MoubooFigurine") < 1) goto L_EasterNotEnough; + mes "[Riskim]"; + mes ""; + mes "\"I will need you to bring me some Chocolate Bars.\""; + mes "\"I think 5 bars should be enough.\""; + mes "\"Red slimes seem to have those, so try there.\""; + mes "\"I will also need a Mouboo Figurine to hollow out and use as a mold.\""; + mes "\"Any mage should be able to make you one out of a log, if you ask.\""; + menu + "I have everything you need.", -, + "Ok, I will be back soon.", L_End, + "I changed my mind, forget about it.", L_End; + + if(countitem("ChocolateBar") < 5 + || countitem("MoubooFigurine") < 1) + goto L_EasterNotEnough; L_EasterEnough: - getinventorylist; - if (@inventorylist_count == 100 && countitem("ChocolateBar") > 5 && countitem("MoubooFigurine") > 1) goto L_EasterTooMany; - if(countitem("ChocolateBar") < 5 || countitem("MoubooFigurine") < 1) goto L_EasterNotEnough; - delitem "ChocolateBar", 5; - delitem "MoubooFigurine", 1; - getitem "ChocolateMouboo", 1; - set QUEST_Easter11, 12; - mes "[Riskim]"; - mes ""; - mes "\"Excellent. You have brought me the chocolate and the mold.\""; - mes "He places the chocolate in a pan to melt."; - mes "Next, he pours the melted chocolate into the mold."; - mes "Finally, he dips the mold in cold water for a moment to solidify the chocolate before skillfully cracking it open and handing you the finished product."; - mes "\"Here is your Chocolate Mouboo.\""; - close; + getinventorylist; + if (@inventorylist_count == 100 + && countitem("ChocolateBar") > 5 + && countitem("MoubooFigurine") > 1) + goto L_EasterTooMany; + if (countitem("ChocolateBar") < 5 + || countitem("MoubooFigurine") < 1) + goto L_EasterNotEnough; + delitem "ChocolateBar", 5; + delitem "MoubooFigurine", 1; + getitem "ChocolateMouboo", 1; + set QUEST_Easter11, 12; + mes "[Riskim]"; + mes ""; + mes "\"Excellent. You have brought me the chocolate and the mold.\""; + mes "He places the chocolate in a pan to melt."; + mes "Next, he pours the melted chocolate into the mold."; + mes "Finally, he dips the mold in cold water for a moment to solidify the chocolate before skillfully cracking it open and handing you the finished product."; + mes "\"Here is your Chocolate Mouboo.\""; + close; L_EasterNotEnough: - mes "[Riskim]"; - mes ""; - if(countitem("ChocolateBar") < 5) mes "\"You do not have enough Chocolate Bars for me to work with yet.\""; - if(countitem("MoubooFigurine") < 1) mes "\"You do not have the Mouboo Figurine to use as a mold.\""; - mes "\"Please go get what I asked.\""; - close; + mes "[Riskim]"; + mes ""; + if(countitem("ChocolateBar") < 5) + mes "\"You do not have enough Chocolate Bars for me to work with yet.\""; + if(countitem("MoubooFigurine") < 1) + mes "\"You do not have the Mouboo Figurine to use as a mold.\""; + mes "\"Please go get what I asked.\""; + close; L_EasterTooMany: - mes "[Riskim]"; - mes ""; - mes "\"You don't have enough room for the Chocolate Mouboo. Come back later.\""; - close; + mes "[Riskim]"; + mes ""; + mes "\"You don't have enough room for the Chocolate Mouboo. Come back later.\""; + close; L_SeeBunny: - mes "[Riskim]"; - mes ""; - mes "\"You need to return to the Easter Bunny now.\""; - close; + mes "[Riskim]"; + mes ""; + mes "\"You need to return to the Easter Bunny now.\""; + close; } // Server? -021-2.gat,82,23,0 script Sara 108,{ - mes "[Sara]"; - mes ""; - mes "\"Hello!\""; - close; +021-2.gat,82,23,0|script|Sara|108,{ + mes "[Sara]"; + mes ""; + mes "\"Hello!\""; + close; } // The cashier -021-2.gat,89,21,0 shop Drabur 112,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,Cake :-1,CherryCake :-1,OrangeCupcake :-3,Milk :-5,XmasCake :-1 +021-2.gat,89,21,0|shop|Drabur|112,WhiteCake :-1,ChocolateCake :-1,OrangeCake :-1,AppleCake :-1,Cake :-1,CherryCake :-1,OrangeCupcake :-3,Milk :-5,XmasCake :-1 // Stockroom boy -021-2.gat,133,21,0 script Iormo 160,{ - mes "[Iormo]"; - mes ""; - mes "\"This stock room can get messy.\""; - close; +021-2.gat,133,21,0|script|Iormo|160,{ + mes "[Iormo]"; + mes ""; + mes "\"This stock room can get messy.\""; + close; } // An old couple eating at the bakery -021-2.gat,71,22,0 script Rynoh 159,{ - mes "[Rynoh]"; - mes ""; - mes "\"The cakes may be expensive, but they sure are delicious!\""; - close; +021-2.gat,71,22,0|script|Rynoh|159,{ + mes "[Rynoh]"; + mes ""; + mes "\"The cakes may be expensive, but they sure are delicious!\""; + close; } -021-2.gat,73,22,0 script Ontas 154,{ - mes "[Ontas]"; - mes ""; - mes "\"We come here every week. This place has some of the best bread I've ever eaten!\""; - close; -} +021-2.gat,73,22,0|script|Ontas|154,{ + mes "[Ontas]"; + mes ""; + mes "\"We come here every week. This place has some of the best bread I've ever eaten!\""; + close; +}
\ No newline at end of file diff --git a/world/map/npc/021-2/government_building.txt b/world/map/npc/021-2/government_building.txt index 52a20fbe..48ea528f 100644 --- a/world/map/npc/021-2/government_building.txt +++ b/world/map/npc/021-2/government_building.txt @@ -1,220 +1,225 @@ // The government builing in the south west // A clerk -021-2.gat,27,17,0 script Estard 107,{ - mes "[Estard]"; - mes "\"Hello what can I do for you?\""; - next; +021-2.gat,27,17,0|script|Estard|107,{ + mes "[Estard]"; + mes "\"Hello what can I do for you?\""; + next; L_main: - if (getpartnerid2()) - goto L_main_married; + if (getpartnerid2()) + goto L_main_married; - menu - "I'm looking at getting married.", L_marry, - "Nothing, I guess.", -; - close; + menu + "I'm looking at getting married.", L_marry, + "Nothing, I guess.", -; + close; L_main_married: - menu - "I'd like a divorce.", L_divorce, - "Nothing, I guess.", -; - close; + menu + "I'd like a divorce.", L_divorce, + "Nothing, I guess.", -; + close; L_marry: - if (BaseLevel < WEDDING_MIN_LEVEL) - goto L_marry_too_young; - if (zeny < WEDDING_FEE) - goto L_marry_too_poor; - - mes "[Estard]"; - mes "\"Are you sure you want to get married? It'll cost " + WEDDING_FEE + " GP.\""; - - menu - "Yes", L_marry_do, - "No", -; - close; + if (BaseLevel < WEDDING_MIN_LEVEL) + goto L_marry_too_young; + if (zeny < WEDDING_FEE) + goto L_marry_too_poor; + + mes "[Estard]"; + mes "\"Are you sure you want to get married? It'll cost " + WEDDING_FEE + " GP.\""; + menu + "Yes", L_marry_do, + "No", -; + close; L_marry_do: - callsub S_give_rings; - - mes "[Estard]"; - mes "\"Here are your rings. You can get married by standing in one of the designated places (like that small rug over there) with your partner, give them their ring, and say 'marry (their name here)'. You both need to have your rings on.\""; - close; + callsub S_give_rings; + + mes "[Estard]"; + mes "\"Here are your rings. You can get married by standing in one of the designated places (like that small rug over there) with your partner, give them their ring, and say 'marry (their name here)'. You both need to have your rings on.\""; + close; L_marry_too_young: - mes "[Estard]"; - mes "\"I'm sorry, but you are too young to get married. You must be atleast " + WEDDING_MIN_LEVEL + " levels old.\""; - next; - - menu - "Can I at least get wedding rings?", L_get_rings, - "Thanks anyways.", -; - close; + mes "[Estard]"; + mes "\"I'm sorry, but you are too young to get married. You must be atleast " + WEDDING_MIN_LEVEL + " levels old.\""; + next; + + menu + "Can I at least get wedding rings?", L_get_rings, + "Thanks anyways.", -; + close; L_marry_too_poor: - mes "[Estard]"; - mes "\"You need " + WEDDING_FEE + " GP to get married. That covers all administrative fees for the marriage and provides two wedding rings.\""; - close; + mes "[Estard]"; + mes "\"You need " + WEDDING_FEE + " GP to get married. That covers all administrative fees for the marriage and provides two wedding rings.\""; + close; L_get_rings: - mes "[Estard]"; - mes "\"Yes. They are " + WEDDING_FEE + " GP. That covers all administrative fees for the marriage.\""; - - if (zeny < WEDDING_FEE) - menu - "Thanks anyways. I don't have enough with me.", -; - - if (zeny >= WEDDING_FEE) - menu - "I'll buy a pair.", L_get_rings_pay, - "Thanks anyways.", -; - close; + mes "[Estard]"; + mes "\"Yes. They are " + WEDDING_FEE + " GP. That covers all administrative fees for the marriage.\""; + + if (zeny < WEDDING_FEE) + menu + "Thanks anyways. I don't have enough with me.", -; + if (zeny >= WEDDING_FEE) + menu + "I'll buy a pair.", L_get_rings_pay, + "Thanks anyways.", -; + close; L_get_rings_pay: - callsub S_give_rings; - - mes "[Estard]"; - mes "\"There you go. Come again.\""; - close; + callsub S_give_rings; + + mes "[Estard]"; + mes "\"There you go. Come again.\""; + close; L_divorce: - set @divorce_cost, DIVORCE_FEE_PER_LEVEL * BaseLevel; - - if (zeny < @divorce_cost) - goto L_divorce_not_enough; - - mes "[Estard]"; - mes "\"If you're sure you want a divorce, it'll cost you " + @divorce_cost + " GP.\""; - next; - - menu - "I am sure I want it.", L_do_divorce, - "I don't want it.", -; - close; + set @divorce_cost, DIVORCE_FEE_PER_LEVEL * BaseLevel; + + if (zeny < @divorce_cost) + goto L_divorce_not_enough; + + mes "[Estard]"; + mes "\"If you're sure you want a divorce, it'll cost you " + @divorce_cost + " GP.\""; + next; + menu + "I am sure I want it.", L_do_divorce, + "I don't want it.", -; + close; L_do_divorce: - if (zeny < @divorce_cost) - goto L_not_enough_money; - - if (divorce()) goto L_divorce_done; - - mes "[Estard]"; - mes "\"I'm having trouble finding the record. \""; - - mes "[Server]"; - mes "Try again when your partner is online too."; - close; + if (zeny < @divorce_cost) + goto L_not_enough_money; + + if (divorce()) + goto L_divorce_done; + + mes "[Estard]"; + mes "\"I'm having trouble finding the record. \""; + mes "[Server]"; + mes "Try again when your partner is online too."; + close; L_divorce_done: - set zeny, zeny - @divorce_cost; - - mes "[Estard]"; - mes "\"You have been divorced. Come again.\""; - close; + set zeny, zeny - @divorce_cost; + + mes "[Estard]"; + mes "\"You have been divorced. Come again.\""; + close; L_divorce_not_enough: - mes "[Estard]"; - mes "\"I'm sorry , but you don't have enough money to get a divorce. You need " + @divorce_cost + " GP.\""; - close; + mes "[Estard]"; + mes "\"I'm sorry , but you don't have enough money to get a divorce. You need " + @divorce_cost + " GP.\""; + close; L_not_enough_money: - mes "[Estard]"; - mes "\"Seems you don't have enough money.\""; - close; + mes "[Estard]"; + mes "\"Seems you don't have enough money.\""; + close; L_no_room_for_rings: - mes "[Estard]"; - mes "\"You don't have enough room to carry these rings.\""; - close; + mes "[Estard]"; + mes "\"You don't have enough room to carry these rings.\""; + close; S_give_rings: - if (zeny < WEDDING_FEE) - goto L_not_enough_money; - getinventorylist; - if (@inventorylist_count > 98) goto L_no_room_for_rings; - - set zeny, zeny - WEDDING_FEE; - getitem "WeddingRing", 1; - getitem "WeddingRing", 1; - return; + if (zeny < WEDDING_FEE) + goto L_not_enough_money; + getinventorylist; + if (@inventorylist_count > 98) + goto L_no_room_for_rings; + + set zeny, zeny - WEDDING_FEE; + getitem "WeddingRing", 1; + getitem "WeddingRing", 1; + return; } -021-2.gat,36,17,0 script Tathin 107,{ - set @PARTY_SKILL, 3; +021-2.gat,36,17,0|script|Tathin|107,{ + set @PARTY_SKILL, 3; - mes "[Tathin]"; - mes "\"Hello what Can I do for you?\""; - next; + mes "[Tathin]"; + mes "\"Hello what Can I do for you?\""; + next; - if (getskilllv(@PARTY_SKILL) == 2 ) goto L_Base_Menu; - if (BaseLevel >= 15 && getskilllv(@PARTY_SKILL) == 1) goto L_Can_Make_Party; - if (getskilllv(@PARTY_SKILL) == 1) goto L_Base_Menu; - if (BaseLevel >= 10) goto L_Can_Party; + if (getskilllv(@PARTY_SKILL) == 2 ) + goto L_Base_Menu; + if (BaseLevel >= 15 + && getskilllv(@PARTY_SKILL) == 1) + goto L_Can_Make_Party; + if (getskilllv(@PARTY_SKILL) == 1) + goto L_Base_Menu; + if (BaseLevel >= 10) + goto L_Can_Party; L_Base_Menu: - menu - "Nothing, I guess.", -; - close; + menu + "Nothing, I guess.", -; + close; L_Can_Party: - menu - "I'd like to get a party permit.", L_Get_Party, - "Nothing, I guess.", -; - close; + menu + "I'd like to get a party permit.", L_Get_Party, + "Nothing, I guess.", -; + close; L_Can_Make_Party: - menu - "I'd like to get a party creator permit.", L_Get_Make_Party, - "Nothing, I guess.", -; - close; + menu + "I'd like to get a party creator permit.", L_Get_Make_Party, + "Nothing, I guess.", -; + close; L_Get_Party: - mes "[Tathin]"; - mes "\"A permit to join parties costs 10 GP.\""; - next; - menu - "OK", L_Give_Party, - "No thank you", -; - close; + mes "[Tathin]"; + mes "\"A permit to join parties costs 10 GP.\""; + next; + menu + "OK", L_Give_Party, + "No thank you", -; + close; L_Give_Party: - if (zeny < 10) goto L_NotEnoughMoney; - set zeny, zeny - 10; - setskill @PARTY_SKILL, 1; - mes "[Tathin]"; - mes "\"Here's your permit. You'll need to be invited by an existing member of a party to join it.\""; - next; - mes "[Tathin]"; - mes "\"Remember, parties cannot share experience if any members are more than 10 levels apart.\""; - close; + if (zeny < 10) + goto L_NotEnoughMoney; + set zeny, zeny - 10; + setskill @PARTY_SKILL, 1; + mes "[Tathin]"; + mes "\"Here's your permit. You'll need to be invited by an existing member of a party to join it.\""; + next; + mes "[Tathin]"; + mes "\"Remember, parties cannot share experience if any members are more than 10 levels apart.\""; + close; L_Get_Make_Party: - mes "[Tathin]"; - mes "\"A permit to create parties costs 50 GP.\""; - next; - menu - "OK", L_Give_Make_Party, - "No thank you", -; - close; + mes "[Tathin]"; + mes "\"A permit to create parties costs 50 GP.\""; + next; + menu + "OK", L_Give_Make_Party, + "No thank you", -; + close; L_Give_Make_Party: - if (zeny < 50) goto L_NotEnoughMoney; - set zeny, zeny - 50; - setskill @PARTY_SKILL, 2; - mes "[Tathin]"; - mes "\"Here's your permit. You can create parties with the 'new' or 'create' commands on the Party tab in the client. Parties need to have unique names.\""; - close; + if (zeny < 50) + goto L_NotEnoughMoney; + set zeny, zeny - 50; + setskill @PARTY_SKILL, 2; + mes "[Tathin]"; + mes "\"Here's your permit. You can create parties with the 'new' or 'create' commands on the Party tab in the client. Parties need to have unique names.\""; + close; L_NotEnoughMoney: - mes "[Tathin]"; - mes "\"You don't have enough GP\""; - close; + mes "[Tathin]"; + mes "\"You don't have enough GP\""; + close; } // Guard -021-2.gat,20,19,0 script Guard 123,1,1,{ - mes "[Guard]"; - mes "\"You can't come back here.\""; - close; +021-2.gat,20,19,0|script|Guard|123,1,1,{ + mes "[Guard]"; + mes "\"You can't come back here.\""; + close; } diff --git a/world/map/npc/021-2/heathin.txt b/world/map/npc/021-2/heathin.txt index 567d5fee..e1684dd5 100644 --- a/world/map/npc/021-2/heathin.txt +++ b/world/map/npc/021-2/heathin.txt @@ -1,287 +1,303 @@ //Items for NPC are incomplete. Makes "simple ring" which can be crafted into a useful ring by Inya and terranite armor. -021-2.gat,29,55,0 script Heathin 147,{ - - set @TARROW_REQ_TERRA_ORE, 1; - set @TARROW_REQ_COAL, 5; - set @TARROW_REQ_GP, 3000; - - if (HEATHIN_QUEST == 14) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows_Trade; - if (HEATHIN_QUEST == 13) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows_Ready; - if (HEATHIN_QUEST == 12) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows_Forge; - if (HEATHIN_QUEST == 11) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows; - if (HEATHIN_QUEST == 10) && (baselevel >= 80) goto L_Heathin_Terranite_Chest_Armor_Ready; - if (HEATHIN_QUEST == 9) && (baselevel >= 80) goto L_Heathin_Terranite_Chest_Armor_Forge; - if (HEATHIN_QUEST == 8) && (baselevel >= 80) goto L_Heathin_Terranite_Chest_Armor; - if (HEATHIN_QUEST == 7) && (baselevel >= 80) goto L_Heathin_Terranite_Legs_Ready; - if (HEATHIN_QUEST == 6) && (baselevel >= 80) goto L_Heathin_Terranite_Legs_Forge; - if (HEATHIN_QUEST == 5) && (baselevel >= 80) goto L_Heathin_Terranite_Legs; - if (HEATHIN_QUEST == 4) && (baselevel >= 80) goto L_Heathin_Terranite_Hood_Ready; - if (HEATHIN_QUEST == 3) && (baselevel >= 80) goto L_Heathin_Terranite_Hood_Forge; - if (HEATHIN_QUEST == 2) && (baselevel >= 80) goto L_Heathin_Terranite_Hood; - if (HEATHIN_QUEST == 2) && (baselevel >= 60)goto L_Heathin_Ring_Thanks; - if (HEATHIN_QUEST == 1) && (baselevel >= 60) goto L_Heathin_Ring_Award; - if (baselevel >= 60) goto L_Heathin_Start; - - mes "[Heathin]"; - mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \""; - close; +021-2.gat,29,55,0|script|Heathin|147,{ + + set @TARROW_REQ_TERRA_ORE, 1; + set @TARROW_REQ_COAL, 5; + set @TARROW_REQ_GP, 3000; + + if (HEATHIN_QUEST == 14) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows_Trade; + if (HEATHIN_QUEST == 13) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows_Ready; + if (HEATHIN_QUEST == 12) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows_Forge; + if (HEATHIN_QUEST == 11) && (baselevel >= 80) goto L_Heathin_Terranite_Arrows; + if (HEATHIN_QUEST == 10) && (baselevel >= 80) goto L_Heathin_Terranite_Chest_Armor_Ready; + if (HEATHIN_QUEST == 9) && (baselevel >= 80) goto L_Heathin_Terranite_Chest_Armor_Forge; + if (HEATHIN_QUEST == 8) && (baselevel >= 80) goto L_Heathin_Terranite_Chest_Armor; + if (HEATHIN_QUEST == 7) && (baselevel >= 80) goto L_Heathin_Terranite_Legs_Ready; + if (HEATHIN_QUEST == 6) && (baselevel >= 80) goto L_Heathin_Terranite_Legs_Forge; + if (HEATHIN_QUEST == 5) && (baselevel >= 80) goto L_Heathin_Terranite_Legs; + if (HEATHIN_QUEST == 4) && (baselevel >= 80) goto L_Heathin_Terranite_Hood_Ready; + if (HEATHIN_QUEST == 3) && (baselevel >= 80) goto L_Heathin_Terranite_Hood_Forge; + if (HEATHIN_QUEST == 2) && (baselevel >= 80) goto L_Heathin_Terranite_Hood; + if (HEATHIN_QUEST == 2) && (baselevel >= 60)goto L_Heathin_Ring_Thanks; + if (HEATHIN_QUEST == 1) && (baselevel >= 60) goto L_Heathin_Ring_Award; + if (baselevel >= 60) goto L_Heathin_Start; + + mes "[Heathin]"; + mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \""; + close; L_Heathin_Start: - mes "[Heathin]"; - mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \""; - next; - mes "\"By the order of the Wizard's Council, I've been commissioned to forge gold ingots from gold pieces. I need to collect as many gold pieces as I can manage, forge them and give the ingots to the Council. However, I am but a simple smith and cannot complete this effort by myself.\""; - next; - mes "\"Forging gold ingots is not just a simple matter of gold falling from the sky! I need individuals that can gather not just the gold, but also help collect Coal to heat my forge.\""; - next; - mes "\"Of course it would make little sense for me to gather gold pieces from helpers just to pass them back out. However, I am willing to smith an award for any who would put an effort in towards completing my goal.\""; - next; - mes "\"Perhaps you would be interested in helping me out? Would you be willing to help me gather Coal and gold to fulfill my commission? I am asking any and all willing souls to get me 50 coal and 100,000 gold pieces, as that would put a significant dint in my goal.\""; - menu - "Sure, I'll help!", L_Heathin_Help, - "I'd rather keep my gold for my own purposes, thank you very much.", L_Heathin_No, - "Wait, what kind of award are we talking about?", L_Heathin_Interested; + mes "[Heathin]"; + mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \""; + next; + mes "\"By the order of the Wizard's Council, I've been commissioned to forge gold ingots from gold pieces. I need to collect as many gold pieces as I can manage, forge them and give the ingots to the Council. However, I am but a simple smith and cannot complete this effort by myself.\""; + next; + mes "\"Forging gold ingots is not just a simple matter of gold falling from the sky! I need individuals that can gather not just the gold, but also help collect Coal to heat my forge.\""; + next; + mes "\"Of course it would make little sense for me to gather gold pieces from helpers just to pass them back out. However, I am willing to smith an award for any who would put an effort in towards completing my goal.\""; + next; + mes "\"Perhaps you would be interested in helping me out? Would you be willing to help me gather Coal and gold to fulfill my commission? I am asking any and all willing souls to get me 50 coal and 100,000 gold pieces, as that would put a significant dint in my goal.\""; + menu + "Sure, I'll help!", L_Heathin_Help, + "I'd rather keep my gold for my own purposes, thank you very much.", L_Heathin_No, + "Wait, what kind of award are we talking about?", L_Heathin_Interested; L_Heathin_Help: - set HEATHIN_QUEST, 1; - mes "[Heathin]"; - mes "\"Excellent! I am always glad when someone can be of service not just to me, but to all of Tulimshar. Please get me 50 Coal and 100,000 gold pieces, and you will be compensated for your efforts.\""; - close; + set HEATHIN_QUEST, 1; + mes "[Heathin]"; + mes "\"Excellent! I am always glad when someone can be of service not just to me, but to all of Tulimshar. Please get me 50 Coal and 100,000 gold pieces, and you will be compensated for your efforts.\""; + close; L_Heathin_No: - mes "[Heathin]"; - mes "\"That is too bad. If you change your mind, I shall still be here, attempting to get my commission done.\""; - close; + mes "[Heathin]"; + mes "\"That is too bad. If you change your mind, I shall still be here, attempting to get my commission done.\""; + close; L_Heathin_Interested: - mes "[Heathin]"; - mes "\"Well, when I am crafting these ingots, there are always stray metals left over. Surely I could forge them into ingots again, but I'd rather ensure that my commission be completed. I am willing to forge a Simple Ring for you, which could be made more beautiful by a skilled jeweler.\""; - next; - mes "\"What you do with the ring after I am done forging it is your own business, but it could come in handy.\""; - next; - mes "\"Does this sound like something you might be interested in?\""; - menu - "Sure, I'll help!", L_Heathin_Help, - "I'd rather keep my gold.", L_Heathin_No, - "Can you repeat that again?", L_Heathin_Interested; - close; + mes "[Heathin]"; + mes "\"Well, when I am crafting these ingots, there are always stray metals left over. Surely I could forge them into ingots again, but I'd rather ensure that my commission be completed. I am willing to forge a Simple Ring for you, which could be made more beautiful by a skilled jeweler.\""; + next; + mes "\"What you do with the ring after I am done forging it is your own business, but it could come in handy.\""; + next; + mes "\"Does this sound like something you might be interested in?\""; + menu + "Sure, I'll help!", L_Heathin_Help, + "I'd rather keep my gold.", L_Heathin_No, + "Can you repeat that again?", L_Heathin_Interested; + close; L_Heathin_Ring_Award: - if ( (zeny < 100000) | (countitem ("Coal") < 50) ) goto L_Heathin_Ring_Wait; - set HEATHIN_QUEST, 2; - set zeny, zeny - 100000; - delitem "Coal", 50; - getitem "RingSimple", 1; - mes "[Heathin]"; - mes "\"You have brought the Coal and gold pieces. This is most excellent! As promised, I have crafted a ring for you. Hopefully you will find it useful.\""; - next; - mes "\"Time to smelt these gold pieces into ingots. The Council will be pleased. Thank you for your efforts!\""; - close; + if ( (zeny < 100000) + | (countitem ("Coal") < 50) ) + goto L_Heathin_Ring_Wait; + set HEATHIN_QUEST, 2; + set zeny, zeny - 100000; + delitem "Coal", 50; + getitem "RingSimple", 1; + mes "[Heathin]"; + mes "\"You have brought the Coal and gold pieces. This is most excellent! As promised, I have crafted a ring for you. Hopefully you will find it useful.\""; + next; + mes "\"Time to smelt these gold pieces into ingots. The Council will be pleased. Thank you for your efforts!\""; + close; L_Heathin_Ring_Wait: - mes "[Heathin]"; - mes "\"Hello again. Making golden ingots keeps me pretty busy. I certainly hope I can fulfill my commission soon so that I can move on to bigger and better things.\""; - next; - mes "\"The pay is good, certainly, but I am a far better smith than this. If you can bring me 100,000 gold pieces and 50 Coal, it would surely get me to my goal faster.\""; - next; - mes "\"I will be sure to provide an apt award once you are done.\""; - close; + mes "[Heathin]"; + mes "\"Hello again. Making golden ingots keeps me pretty busy. I certainly hope I can fulfill my commission soon so that I can move on to bigger and better things.\""; + next; + mes "\"The pay is good, certainly, but I am a far better smith than this. If you can bring me 100,000 gold pieces and 50 Coal, it would surely get me to my goal faster.\""; + next; + mes "\"I will be sure to provide an apt award once you are done.\""; + close; L_Heathin_Ring_Thanks: - mes "[Heathin]"; - mes "\"Thank you again for helping me fulfil my commission. It has made a signficant dint in what the Council requires of me. Perhaps I may be of service to you again one day!\""; - close; + mes "[Heathin]"; + mes "\"Thank you again for helping me fulfil my commission. It has made a signficant dint in what the Council requires of me. Perhaps I may be of service to you again one day!\""; + close; L_Heathin_Terranite_Hood: - mes "[Heathin]"; - mes "\"Hello again friend, I just found out about this great metal called terranite.\""; - next; - mes "\"This metal is almost as strong as steel, but is also very ductile.\""; - next; - mes "\"With some effort, I can make this metal form rings tighter than any chain mail. It isn't the prettiest in hue, but its uses can be many.\""; - next; - mes "\"Unfortunately, it seems to be difficult to gather. Most that have searched for Terranite Ore either cannot find it or have never returned...\""; - next; - mes "\"I may be an excellent smith, but I certainly am no combatant. However, I would enjoy turning this ore into something useful, perhaps some type of armor to help those that may be braver.\""; - next; - mes "\"So, what do you say? Are you interested?\""; - menu - "No, thank you. Maybe later.", L_Heathin_Terranite_No, - "Armor, you say? Definitely!", L_Heathin_Terranite_Yes; - close; + mes "[Heathin]"; + mes "\"Hello again friend, I just found out about this great metal called terranite.\""; + next; + mes "\"This metal is almost as strong as steel, but is also very ductile.\""; + next; + mes "\"With some effort, I can make this metal form rings tighter than any chain mail. It isn't the prettiest in hue, but its uses can be many.\""; + next; + mes "\"Unfortunately, it seems to be difficult to gather. Most that have searched for Terranite Ore either cannot find it or have never returned...\""; + next; + mes "\"I may be an excellent smith, but I certainly am no combatant. However, I would enjoy turning this ore into something useful, perhaps some type of armor to help those that may be braver.\""; + next; + mes "\"So, what do you say? Are you interested?\""; + menu + "No, thank you. Maybe later.", L_Heathin_Terranite_No, + "Armor, you say? Definitely!", L_Heathin_Terranite_Yes; + close; L_Heathin_Terranite_No: - mes "[Heathin]"; - mes "\"Ah, that is too bad. Come by again anytime.\""; - close; + mes "[Heathin]"; + mes "\"Ah, that is too bad. Come by again anytime.\""; + close; L_Heathin_Terranite_Yes: - set HEATHIN_QUEST, 3; - mes "[Heathin]"; - mes "\"Great, this is going to be fun! As I have not had much practice with this armor, I'd like to get started soon.\""; - next; - mes "Heathin thinks for a moment."; - next; - mes "\"Ah, I know! I will make a helm... Well, more like a hood, since it will be woven.\""; - next; - mes "\"It will require a great amount of heat, if the rumors are to be believed. For this, I will need 100 Coal to keep my forge burning hot. I will also need 10 Terranite Ore to make the armor. Of course, such work does not come cheap. While I may enjoy my work, my time and effort is very valuable. To compensate my efforts I will need 200,000 gold pieces. Please come back with the gold, Coal and ore and I'll make this hood for you.\""; - close; + set HEATHIN_QUEST, 3; + mes "[Heathin]"; + mes "\"Great, this is going to be fun! As I have not had much practice with this armor, I'd like to get started soon.\""; + next; + mes "Heathin thinks for a moment."; + next; + mes "\"Ah, I know! I will make a helm... Well, more like a hood, since it will be woven.\""; + next; + mes "\"It will require a great amount of heat, if the rumors are to be believed. For this, I will need 100 Coal to keep my forge burning hot. I will also need 10 Terranite Ore to make the armor. Of course, such work does not come cheap. While I may enjoy my work, my time and effort is very valuable. To compensate my efforts I will need 200,000 gold pieces. Please come back with the gold, Coal and ore and I'll make this hood for you.\""; + close; L_Heathin_Terranite_Hood_Forge: - if ( (zeny < 200000) | (countitem("Coal") < 100) | (countitem("TerraniteOre") < 10) ) goto L_Heathin_Terranite_Hood_Wait; - set HEATHIN_QUEST, 4; - delitem "Coal", 100; - delitem "TerraniteOre", 10; - set zeny, zeny - 200000; - mes "[Heathin]"; - mes "\"Great, you brought everything! Come back later and I'll have the helm ready for you.\""; - close; + if ( (zeny < 200000) + | (countitem("Coal") < 100) + | (countitem("TerraniteOre") < 10) ) + goto L_Heathin_Terranite_Hood_Wait; + set HEATHIN_QUEST, 4; + delitem "Coal", 100; + delitem "TerraniteOre", 10; + set zeny, zeny - 200000; + mes "[Heathin]"; + mes "\"Great, you brought everything! Come back later and I'll have the helm ready for you.\""; + close; L_Heathin_Terranite_Hood_Wait: - mes "[Heathin]"; - mes "\"I am very busy right now. If you could bring me 10 Terranite Ore, 100 Coal and 200,000 gold pieces, I will make that terranite hood for you.\""; - close; + mes "[Heathin]"; + mes "\"I am very busy right now. If you could bring me 10 Terranite Ore, 100 Coal and 200,000 gold pieces, I will make that terranite hood for you.\""; + close; L_Heathin_Terranite_Hood_Ready: - set HEATHIN_QUEST, 5; - getitem "TerraniteHelmet", 1; - mes "[Heathin]"; - mes "\"I am all done with your terranite hood. I hope you enjoy it! I have some work to wrap up for the Council, but come back later and I might be able to assist you again.\""; - close; + set HEATHIN_QUEST, 5; + getitem "TerraniteHelmet", 1; + mes "[Heathin]"; + mes "\"I am all done with your terranite hood. I hope you enjoy it! I have some work to wrap up for the Council, but come back later and I might be able to assist you again.\""; + close; L_Heathin_Terranite_Legs: - set HEATHIN_QUEST, 6; - mes "[Heathin]"; - mes "\"I am glad you are back! I've just finished up some more of my commission. Now I can get back to making terranite armor for you. This time I will make some pants, but they need more ore, more Coal to heat my forge and of course, more gold for my efforts.\""; - next; - mes "\"To make terranite pants, I need 200 Coal, 30 Terranite Ore and 400,000 gold pieces. The faster you bring this to me, the faster I can have your terranite pants ready.\""; - close; + set HEATHIN_QUEST, 6; + mes "[Heathin]"; + mes "\"I am glad you are back! I've just finished up some more of my commission. Now I can get back to making terranite armor for you. This time I will make some pants, but they need more ore, more Coal to heat my forge and of course, more gold for my efforts.\""; + next; + mes "\"To make terranite pants, I need 200 Coal, 30 Terranite Ore and 400,000 gold pieces. The faster you bring this to me, the faster I can have your terranite pants ready.\""; + close; L_Heathin_Terranite_Legs_Forge: - if ( (zeny < 400000) | (countitem("Coal") < 200) | (countitem("TerraniteOre") < 30) ) goto L_Heathin_Terranite_Legs_Wait; - set HEATHIN_QUEST, 7; - delitem "Coal", 200; - delitem "TerraniteOre", 30; - set zeny, zeny - 400000; - mes "[Heathin]"; - mes "\"Great, you have brought everything! Come back later and I will have those terranite pants ready for you.\""; - close; + if ( (zeny < 400000) + | (countitem("Coal") < 200) + | (countitem("TerraniteOre") < 30) ) + goto L_Heathin_Terranite_Legs_Wait; + set HEATHIN_QUEST, 7; + delitem "Coal", 200; + delitem "TerraniteOre", 30; + set zeny, zeny - 400000; + mes "[Heathin]"; + mes "\"Great, you have brought everything! Come back later and I will have those terranite pants ready for you.\""; + close; L_Heathin_Terranite_Legs_Wait: - mes "[Heathin]"; - mes "\"I am very busy right now. If you could bring me 30 Terranite Ore, 200 Coal and 400,000 gold pieces, I will make those terranite pants for you.\""; - close; + mes "[Heathin]"; + mes "\"I am very busy right now. If you could bring me 30 Terranite Ore, 200 Coal and 400,000 gold pieces, I will make those terranite pants for you.\""; + close; L_Heathin_Terranite_Legs_Ready: - set HEATHIN_QUEST, 8; - getitem "TerraniteLegs", 1; - mes "[Heathin]"; - mes "\"I am all done with your terranite pants. Hope you enjoy them! I have some more work to complete for the Council. Come back later and I might be able to assist you again.\""; - close; + set HEATHIN_QUEST, 8; + getitem "TerraniteLegs", 1; + mes "[Heathin]"; + mes "\"I am all done with your terranite pants. Hope you enjoy them! I have some more work to complete for the Council. Come back later and I might be able to assist you again.\""; + close; L_Heathin_Terranite_Chest_Armor: - set HEATHIN_QUEST, 9; - mes "[Heathin]"; - mes "\"Good to see you again. I have just finished up some more of my commission. Now I can get back to making terranite armor for you. This time, I will make some terranite chest armor, but it needs more ore, more Coal for my forge and of course, more gold to compensate for my efforts.\""; - next; - mes "\"To make terranite chest armor, I need 250 Coal, 40 Terranite Ore and 500,000 gold pieces. The faster you bring this to me, the faster I can have your terranite armor ready.\""; - close; + set HEATHIN_QUEST, 9; + mes "[Heathin]"; + mes "\"Good to see you again. I have just finished up some more of my commission. Now I can get back to making terranite armor for you. This time, I will make some terranite chest armor, but it needs more ore, more Coal for my forge and of course, more gold to compensate for my efforts.\""; + next; + mes "\"To make terranite chest armor, I need 250 Coal, 40 Terranite Ore and 500,000 gold pieces. The faster you bring this to me, the faster I can have your terranite armor ready.\""; + close; L_Heathin_Terranite_Chest_Armor_Forge: - if ( (zeny < 500000) | (countitem("Coal") < 250) | (countitem("TerraniteOre") < 40) ) goto L_Heathin_Terranite_Chest_Armor_Wait; - set HEATHIN_QUEST, 10; - delitem "Coal", 250; - delitem "TerraniteOre", 40; - set zeny, zeny - 500000; - mes "[Heathin]"; - mes "\"Splendid, you have brought everything! Come back later and I will have the terranite chest armor ready for you.\""; - close; + if ( (zeny < 500000) + | (countitem("Coal") < 250) + | (countitem("TerraniteOre") < 40) ) + goto L_Heathin_Terranite_Chest_Armor_Wait; + set HEATHIN_QUEST, 10; + delitem "Coal", 250; + delitem "TerraniteOre", 40; + set zeny, zeny - 500000; + mes "[Heathin]"; + mes "\"Splendid, you have brought everything! Come back later and I will have the terranite chest armor ready for you.\""; + close; L_Heathin_Terranite_Chest_Armor_Wait: - mes "[Heathin]"; - mes "\"I am very busy right now. If you could bring me 40 Terranite Ore, 250 Coal and 500,000 gold pieces, I will make that chest armor for you.\""; - close; + mes "[Heathin]"; + mes "\"I am very busy right now. If you could bring me 40 Terranite Ore, 250 Coal and 500,000 gold pieces, I will make that chest armor for you.\""; + close; L_Heathin_Terranite_Chest_Armor_Ready: - set HEATHIN_QUEST, 11; - getitem "TerraniteChestArmor", 1; - mes "[Heathin]"; - mes "\"I have completed your terranite chest armor. I hope you enjoy it! I have some work to wrap up for the Council again, but come back later and I might be able to assist you once more.\""; - close; + set HEATHIN_QUEST, 11; + getitem "TerraniteChestArmor", 1; + mes "[Heathin]"; + mes "\"I have completed your terranite chest armor. I hope you enjoy it! I have some work to wrap up for the Council again, but come back later and I might be able to assist you once more.\""; + close; L_Heathin_Terranite_Arrows: - mes "[Heathin]"; - mes "\"How good to see you. I have experimented a little with Terranite Ore to see what else can be done with it. It seems to have some qualities suitable for weapons, but I have only tested it with arrows. If you would like, I can make Terranite Arrows, but as as with the armor, I need Coal, Terranite Ore and payment for my efforts.\""; - next; - mes "\"Also, it might be a while until I have time to see what else I can make with terranite other than arrows, as right now the Council is keeping me rather busy with my commission. So, would you like some Terranite Arrows?\""; - menu - "No, thank you.", L_Heathin_Terranite_Arrows_No, - "Sure, I could use some arrows.", L_Heathin_Terranite_Arrows_Yes; - close; + mes "[Heathin]"; + mes "\"How good to see you. I have experimented a little with Terranite Ore to see what else can be done with it. It seems to have some qualities suitable for weapons, but I have only tested it with arrows. If you would like, I can make Terranite Arrows, but as as with the armor, I need Coal, Terranite Ore and payment for my efforts.\""; + next; + mes "\"Also, it might be a while until I have time to see what else I can make with terranite other than arrows, as right now the Council is keeping me rather busy with my commission. So, would you like some Terranite Arrows?\""; + menu + "No, thank you.", L_Heathin_Terranite_Arrows_No, + "Sure, I could use some arrows.", L_Heathin_Terranite_Arrows_Yes; + close; L_Heathin_Terranite_Arrows_No: - mes "[Heathin]"; - mes "\"Well, if you change your mind, I'm not going anywhere.\""; - close; + mes "[Heathin]"; + mes "\"Well, if you change your mind, I'm not going anywhere.\""; + close; L_Heathin_Terranite_Arrows_Yes: - set HEATHIN_QUEST, 12; - mes "[Heathin]"; - mes "\"Good, good. I shall begin crafting these arrows as soon as you come back. However, I cannot just make small handfuls as it would not be worth my time and effort to have my concentration interrupted for small tasks. I will make 1,000 Terranite Arrows per request, for which I will need "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\""; - next; - mes "\"See you soon!\""; - close; + set HEATHIN_QUEST, 12; + mes "[Heathin]"; + mes "\"Good, good. I shall begin crafting these arrows as soon as you come back. However, I cannot just make small handfuls as it would not be worth my time and effort to have my concentration interrupted for small tasks. I will make 1,000 Terranite Arrows per request, for which I will need "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\""; + next; + mes "\"See you soon!\""; + close; L_Heathin_Terranite_Arrows_Forge: - if ( (zeny < @TARROW_REQ_GP) | (countitem("Coal") < @TARROW_REQ_COAL) | (countitem("TerraniteOre") < @TARROW_REQ_TERRA_ORE) ) goto L_Heathin_Terranite_Arrows_Wait; - set HEATHIN_QUEST, 13; - delitem "Coal", @TARROW_REQ_COAL; - delitem "TerraniteOre", @TARROW_REQ_TERRA_ORE; - set zeny, zeny - @TARROW_REQ_GP; - mes "[Heathin]"; - mes "\"Wonderful! You have everything I asked for. I will start working on the arrows right away.\""; - close; + if ( (zeny < @TARROW_REQ_GP) + | (countitem("Coal") < @TARROW_REQ_COAL) + | (countitem("TerraniteOre") < @TARROW_REQ_TERRA_ORE) ) + goto L_Heathin_Terranite_Arrows_Wait; + set HEATHIN_QUEST, 13; + delitem "Coal", @TARROW_REQ_COAL; + delitem "TerraniteOre", @TARROW_REQ_TERRA_ORE; + set zeny, zeny - @TARROW_REQ_GP; + mes "[Heathin]"; + mes "\"Wonderful! You have everything I asked for. I will start working on the arrows right away.\""; + close; L_Heathin_Terranite_Arrows_Wait: - mes "[Heathin]"; - mes "\"If you want Terranite Arrows, please get me "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\""; - close; + mes "[Heathin]"; + mes "\"If you want Terranite Arrows, please get me "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\""; + close; L_Heathin_Terranite_Arrows_Ready: - getitem "TerraniteArrow", 1000; - set HEATHIN_QUEST, 14; - mes "[Heathin]"; - mes "\"All done, here you go! I hope you like them. I am still working on my commission, but if you ever need any more Terranite Arrows, just come on by with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces and I will make another 1,000 arrows for you. By now I have enough Terranite Ore in reserve that you can just trade me my requirements to keep my resources up. Thank you for all your efforts!\""; - close; + getitem "TerraniteArrow", 1000; + set HEATHIN_QUEST, 14; + mes "[Heathin]"; + mes "\"All done, here you go! I hope you like them. I am still working on my commission, but if you ever need any more Terranite Arrows, just come on by with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces and I will make another 1,000 arrows for you. By now I have enough Terranite Ore in reserve that you can just trade me my requirements to keep my resources up. Thank you for all your efforts!\""; + close; L_Heathin_Terranite_Arrows_Trade: - mes "[Heathin]"; - mes "\"Hello, there. If you have "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces, I will trade you 1,000 Terranite Arrows. Would you like some Terranite Arrows?\""; - menu - "No.", L_Heathin_Terranite_Arrows_Trade_No, - "Yes.", L_Heathin_Terranite_Arrows_Trade_Yes; - close; + mes "[Heathin]"; + mes "\"Hello, there. If you have "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces, I will trade you 1,000 Terranite Arrows. Would you like some Terranite Arrows?\""; + menu + "No.", L_Heathin_Terranite_Arrows_Trade_No, + "Yes.", L_Heathin_Terranite_Arrows_Trade_Yes; + close; L_Heathin_Terranite_Arrows_Trade_No: - mes "[Heathin]"; - mes "\"Come back again if you would like to get Terranite Arrows.\""; - close; + mes "[Heathin]"; + mes "\"Come back again if you would like to get Terranite Arrows.\""; + close; L_Heathin_Terranite_Arrows_Trade_Yes: - if ( (zeny < @TARROW_REQ_GP) | (countitem("Coal") < @TARROW_REQ_COAL) | (countitem("TerraniteOre") < @TARROW_REQ_TERRA_ORE) ) goto L_Heathin_Terranite_Arrows_Trade_Wait; - delitem "Coal", @TARROW_REQ_COAL; - delitem "TerraniteOre", @TARROW_REQ_TERRA_ORE; - set zeny, zeny - @TARROW_REQ_GP; - set @lucky, 5 * rand(readparam(bLuk)); - getitem "TerraniteArrow", 1000 + @lucky; - mes "[Heathin]"; - mes "\"Here you go! You are lucky, I could forge "+@lucky+" more arrows than expected. Come back again if you want more Terranite Arrows.\""; - close; + if ( (zeny < @TARROW_REQ_GP) + | (countitem("Coal") < @TARROW_REQ_COAL) + | (countitem("TerraniteOre") < @TARROW_REQ_TERRA_ORE) ) + goto L_Heathin_Terranite_Arrows_Trade_Wait; + delitem "Coal", @TARROW_REQ_COAL; + delitem "TerraniteOre", @TARROW_REQ_TERRA_ORE; + set zeny, zeny - @TARROW_REQ_GP; + set @lucky, 5 * rand(readparam(bLuk)); + getitem "TerraniteArrow", 1000 + @lucky; + mes "[Heathin]"; + mes "\"Here you go! You are lucky, I could forge "+@lucky+" more arrows than expected. Come back again if you want more Terranite Arrows.\""; + close; L_Heathin_Terranite_Arrows_Trade_Wait: - mes "[Heathin]"; - mes "\"It seems that you do not have the necessary resources for me to trade you. Please come back with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces if you want another 1,000 Terranite Arrows.\""; - close; - + mes "[Heathin]"; + mes "\"It seems that you do not have the necessary resources for me to trade you. Please come back with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces if you want another 1,000 Terranite Arrows.\""; + close; } diff --git a/world/map/npc/021-2/inya.txt b/world/map/npc/021-2/inya.txt index ac383e87..53d3cf0f 100644 --- a/world/map/npc/021-2/inya.txt +++ b/world/map/npc/021-2/inya.txt @@ -1,174 +1,203 @@ //Gemstones: Diamond (white) , Ruby (red), Emerald (green), Sapphire (blue), Topaz (yellow), Amethyst (purple) //The power of the gems is important to future balance of these rings. Are they related to stats, tiers of power, schools of magic? -021-2.gat,43,62,0 script Inya 106,{ - - mes "[Inya]"; - mes "\"I am Inya, a jeweler of fine rings. If you have a Simple Ring and a gem, I can make a nice ring for you for 1,000,000 gold pieces.\""; - next; - mes "\"Also, if you have a ring with gems on it, I can remove the gems and return the Simple Ring to you for 500,000 gold pieces.\""; - next; - mes "\"So, how can I help you?\""; - menu - "I have a wedding ring, will that do?", L_Inya_Wedding_Ring, - "I'd like to remove a gem (500000 GP).", L_Inya_Remove_RingGem, - "I'd like to add a gem (1000000 GP).", L_Inya_Add_RingGem, - "Not interested.", L_Inya_NotInterested; - close; +021-2.gat,43,62,0|script|Inya|106,{ + + mes "[Inya]"; + mes "\"I am Inya, a jeweler of fine rings. If you have a Simple Ring and a gem, I can make a nice ring for you for 1,000,000 gold pieces.\""; + next; + mes "\"Also, if you have a ring with gems on it, I can remove the gems and return the Simple Ring to you for 500,000 gold pieces.\""; + next; + mes "\"So, how can I help you?\""; + menu + "I have a wedding ring, will that do?", L_Inya_Wedding_Ring, + "I'd like to remove a gem (500000 GP).", L_Inya_Remove_RingGem, + "I'd like to add a gem (1000000 GP).", L_Inya_Add_RingGem, + "Not interested.", L_Inya_NotInterested; + close; L_Inya_Wedding_Ring: - mes "[Inya]"; - mes "\"No, sorry. I do not alter wedding rings at this time.\""; - close; + mes "[Inya]"; + mes "\"No, sorry. I do not alter wedding rings at this time.\""; + close; L_Inya_Remove_RingGem: - mes "[Inya]"; - mes "\"What kind of gem would you like to have removed?\""; - menu - "Diamond.", L_Inya_Remove_Diamond, - "Ruby.", L_Inya_Remove_Ruby, - "Emerald.", L_Inya_Remove_Emerald, - "Sapphire.", L_Inya_Remove_Sapphire, - "Topaz.", L_Inya_Remove_Topaz, - "Amethyst.", L_Inya_Remove_Amethyst, - "I've changed my mind.", L_Inya_NotInterested; - close; + mes "[Inya]"; + mes "\"What kind of gem would you like to have removed?\""; + menu + "Diamond.", L_Inya_Remove_Diamond, + "Ruby.", L_Inya_Remove_Ruby, + "Emerald.", L_Inya_Remove_Emerald, + "Sapphire.", L_Inya_Remove_Sapphire, + "Topaz.", L_Inya_Remove_Topaz, + "Amethyst.", L_Inya_Remove_Amethyst, + "I've changed my mind.", L_Inya_NotInterested; + close; L_Inya_Add_RingGem: - mes "[Inya]"; - mes "\"What kind of gem would you like to add?\""; - menu - "Diamond.", L_Inya_Add_Diamond, - "Ruby.", L_Inya_Add_Ruby, - "Emerald.", L_Inya_Add_Emerald, - "Sapphire.", L_Inya_Add_Sapphire, - "Topaz.", L_Inya_Add_Topaz, - "Amethyst.", L_Inya_Add_Amethyst, - "I've changed my mind.", L_Inya_NotInterested; - close; + mes "[Inya]"; + mes "\"What kind of gem would you like to add?\""; + menu + "Diamond.", L_Inya_Add_Diamond, + "Ruby.", L_Inya_Add_Ruby, + "Emerald.", L_Inya_Add_Emerald, + "Sapphire.", L_Inya_Add_Sapphire, + "Topaz.", L_Inya_Add_Topaz, + "Amethyst.", L_Inya_Add_Amethyst, + "I've changed my mind.", L_Inya_NotInterested; + close; L_Inya_Remove_Diamond: - if ( (zeny < 500000) | (countitem ("RingGemWhite") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 500000; - delitem "RingGemWhite", 1; - getitem "RingSimple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 500000) + | (countitem ("RingGemWhite") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 500000; + delitem "RingGemWhite", 1; + getitem "RingSimple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Remove_Ruby: - if ( (zeny < 500000) | (countitem ("RingGemRed") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 500000; - delitem "RingGemRed", 1; - getitem "RingSimple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 500000) + | (countitem ("RingGemRed") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 500000; + delitem "RingGemRed", 1; + getitem "RingSimple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Remove_Emerald: - if ( (zeny < 500000) | (countitem ("RingGemGreen") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 500000; - delitem "RingGemGreen", 1; - getitem "RingSimple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 500000) + | (countitem ("RingGemGreen") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 500000; + delitem "RingGemGreen", 1; + getitem "RingSimple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Remove_Sapphire: - if ( (zeny < 500000) | (countitem ("RingGemBlue") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 500000; - delitem "RingGemBlue", 1; - getitem "RingSimple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 500000) + | (countitem ("RingGemBlue") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 500000; + delitem "RingGemBlue", 1; + getitem "RingSimple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Remove_Topaz: - if ( (zeny < 500000) | (countitem ("RingGemYellow") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 500000; - delitem "RingGemYellow", 1; - getitem "RingSimple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 500000) + | (countitem ("RingGemYellow") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 500000; + delitem "RingGemYellow", 1; + getitem "RingSimple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Remove_Amethyst: - if ( (zeny < 500000) | (countitem ("RingGemPurple") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 500000; - delitem "RingGemPurple", 1; - getitem "RingSimple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 500000) + | (countitem ("RingGemPurple") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 500000; + delitem "RingGemPurple", 1; + getitem "RingSimple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Add_Diamond: - if ( (zeny < 1000000) | (countitem ("RingSimple") < 1) | (countitem ("GemRawWhite") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 1000000; - delitem "RingSimple", 1; - delitem "GemRawWhite", 1; - getitem "RingGemWhite", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 1000000) + | (countitem ("RingSimple") < 1) + | (countitem ("GemRawWhite") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 1000000; + delitem "RingSimple", 1; + delitem "GemRawWhite", 1; + getitem "RingGemWhite", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Add_Ruby: - if ( (zeny < 1000000) | (countitem ("RingSimple") < 1) | (countitem ("GemRawRed") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 1000000; - delitem "RingSimple", 1; - delitem "GemRawRed", 1; - getitem "RingGemRed", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 1000000) + | (countitem ("RingSimple") < 1) + | (countitem ("GemRawRed") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 1000000; + delitem "RingSimple", 1; + delitem "GemRawRed", 1; + getitem "RingGemRed", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Add_Emerald: - if ( (zeny < 1000000) | (countitem ("RingSimple") < 1) | (countitem ("GemRawGreen") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 1000000; - delitem "RingSimple", 1; - delitem "GemRawGreen", 1; - getitem "RingGemGreen", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 1000000) + | (countitem ("RingSimple") < 1) + | (countitem ("GemRawGreen") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 1000000; + delitem "RingSimple", 1; + delitem "GemRawGreen", 1; + getitem "RingGemGreen", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Add_Sapphire: - if ( (zeny < 1000000) | (countitem ("RingSimple") < 1) | (countitem ("GemRawBlue") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 1000000; - delitem "RingSimple", 1; - delitem "GemRawBlue", 1; - getitem "RingGemBlue", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 1000000) + | (countitem ("RingSimple") < 1) + | (countitem ("GemRawBlue") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 1000000; + delitem "RingSimple", 1; + delitem "GemRawBlue", 1; + getitem "RingGemBlue", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Add_Topaz: - if ( (zeny < 1000000) | (countitem ("RingSimple") < 1) | (countitem ("GemRawYellow") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 1000000; - delitem "RingSimple", 1; - delitem "GemRawYellow", 1; - getitem "RingGemYellow", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 1000000) + | (countitem ("RingSimple") < 1) + | (countitem ("GemRawYellow") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 1000000; + delitem "RingSimple", 1; + delitem "GemRawYellow", 1; + getitem "RingGemYellow", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_Add_Amethyst: - if ( (zeny < 1000000) | (countitem ("RingSimple") < 1) | (countitem ("GemRawPurple") < 1) ) goto L_Inya_Not_Enough; - set zeny, zeny - 1000000; - delitem "RingSimple", 1; - delitem "GemRawPurple", 1; - getitem "RingGemPurple", 1; - mes "[Inya]"; - mes "\"Here you go.\""; - close; + if ( (zeny < 1000000) + | (countitem ("RingSimple") < 1) + | (countitem ("GemRawPurple") < 1) ) + goto L_Inya_Not_Enough; + set zeny, zeny - 1000000; + delitem "RingSimple", 1; + delitem "GemRawPurple", 1; + getitem "RingGemPurple", 1; + mes "[Inya]"; + mes "\"Here you go.\""; + close; L_Inya_NotInterested: - mes "[Inya]"; - mes "\"Come back later and I will try to be of assistance.\""; - close; + mes "[Inya]"; + mes "\"Come back later and I will try to be of assistance.\""; + close; L_Inya_Not_Enough: - mes "[Inya]"; - mes "\"I am sorry, you simply do not seem to have the necessary items for me to help you. Please come back when you do, and I would be more than happy to help you out.\""; - close; - -} + mes "[Inya]"; + mes "\"I am sorry, you simply do not seem to have the necessary items for me to help you. Please come back when you do, and I would be more than happy to help you out.\""; + close; +}
\ No newline at end of file diff --git a/world/map/npc/021-2/jhedia.txt b/world/map/npc/021-2/jhedia.txt index b4ec8380..102c8598 100644 --- a/world/map/npc/021-2/jhedia.txt +++ b/world/map/npc/021-2/jhedia.txt @@ -1,54 +1,62 @@ // Ingot maker takes iron ore, gives ingots for future crafting purposes. -021-2.gat,23,55,0 script Jhedia 160,{ - - set @Cost_Per_Ingot, 1000; - set @Iron_Ore_Per, 5; - set @Coal_Per, 10; - - mes "[Jhedia]"; - mes "\"I forge Iron Ore into ingots. Ingots are more useful for skilled smiths, like armorers, because the ore is refined and made into useful units which can be worked with. To make ingots, I need " + @Iron_Ore_Per + " Iron Ore and " + @Cost_Per_Ingot + " gp per ingot. I also need " + @Coal_Per + " Coal for my forge.\""; - next; - mes "[Jhedia]"; - mes "\"How many ingots would you like?\""; - input @ingot_count; - - if (@ingot_count == 0) goto L_Jhedia_Bye; - set @Zeny_cost, @ingot_count * @Cost_Per_Ingot; - if (countitem("IronOre") < @Iron_Ore_Per * @ingot_count) goto L_Jhedia_NotEnough_Ore; - if (countitem("Coal") < @Coal_Per * @ingot_count) goto L_Jhedia_NotEnough_Coal; - if (zeny < @Zeny_cost) goto L_Jhedia_NotEnough_Zeny; - getinventorylist; - if (@inventorylist_count == 100 && countitem("IngotIron") == 0 && countitem("IronOre") > @ingot_count * @Iron_Ore_Per | countitem("Coal") > @ingot_count * @Coal_Per) goto L_Jhedia_NotEnoughSlots; - set zeny, zeny - @Zeny_cost; - delitem "IronOre", @ingot_count * @Iron_Ore_Per; - delitem "Coal", @ingot_count * @Coal_Per; - getitem "IngotIron", @ingot_count; - close; +021-2.gat,23,55,0|script|Jhedia|160,{ + + set @Cost_Per_Ingot, 1000; + set @Iron_Ore_Per, 5; + set @Coal_Per, 10; + + mes "[Jhedia]"; + mes "\"I forge Iron Ore into ingots. Ingots are more useful for skilled smiths, like armorers, because the ore is refined and made into useful units which can be worked with. To make ingots, I need " + @Iron_Ore_Per + " Iron Ore and " + @Cost_Per_Ingot + " gp per ingot. I also need " + @Coal_Per + " Coal for my forge.\""; + next; + mes "[Jhedia]"; + mes "\"How many ingots would you like?\""; + input @ingot_count; + + if (@ingot_count == 0) + goto L_Jhedia_Bye; + set @Zeny_cost, @ingot_count * @Cost_Per_Ingot; + if (countitem("IronOre") < @Iron_Ore_Per * @ingot_count) + goto L_Jhedia_NotEnough_Ore; + if (countitem("Coal") < @Coal_Per * @ingot_count) + goto L_Jhedia_NotEnough_Coal; + if (zeny < @Zeny_cost) + goto L_Jhedia_NotEnough_Zeny; + getinventorylist; + if (@inventorylist_count == 100 + && countitem("IngotIron") == 0 + && countitem("IronOre") > @ingot_count * @Iron_Ore_Per + | countitem("Coal") > @ingot_count * @Coal_Per) + goto L_Jhedia_NotEnoughSlots; + set zeny, zeny - @Zeny_cost; + delitem "IronOre", @ingot_count * @Iron_Ore_Per; + delitem "Coal", @ingot_count * @Coal_Per; + getitem "IngotIron", @ingot_count; + close; L_Jhedia_Bye: - mes "[Jhedia]"; - mes "\"Goodbye then.\""; - close; + mes "[Jhedia]"; + mes "\"Goodbye then.\""; + close; L_Jhedia_NotEnough_Ore: - mes "[Jhedia]"; - mes "\"You do not seem to have enough Iron Ore.\""; - close; + mes "[Jhedia]"; + mes "\"You do not seem to have enough Iron Ore.\""; + close; L_Jhedia_NotEnough_Coal: - mes "[Jhedia]"; - mes "\"You do not seem to have enough Coal.\""; - close; + mes "[Jhedia]"; + mes "\"You do not seem to have enough Coal.\""; + close; L_Jhedia_NotEnough_Zeny: - mes "[Jhedia]"; - mes "\"You do not seem to have enough gold pieces.\""; - close; + mes "[Jhedia]"; + mes "\"You do not seem to have enough gold pieces.\""; + close; L_Jhedia_NotEnoughSlots: - mes "[Jhedia]"; - mes "\"You do not seem to have enough room to carry this many ingots.\""; - close; + mes "[Jhedia]"; + mes "\"You do not seem to have enough room to carry this many ingots.\""; + close; } diff --git a/world/map/npc/021-2/workshop.txt b/world/map/npc/021-2/workshop.txt index ffe732b4..ed23ab5b 100644 --- a/world/map/npc/021-2/workshop.txt +++ b/world/map/npc/021-2/workshop.txt @@ -1,11 +1,11 @@ // Tulimshar's main workshop // The receptionist -021-2.gat,22,63,0 script Sonir 118,{ - mes "[Sonir]"; - mes "\"This is Tulimshar's main workshop. Much crafting happens here.\""; - next; - mes "[Sonir]"; - mes "\"We also have limited housing on the second floor.\""; - close; -} +021-2.gat,22,63,0|script|Sonir|118,{ + mes "[Sonir]"; + mes "\"This is Tulimshar's main workshop. Much crafting happens here.\""; + next; + mes "[Sonir]"; + mes "\"We also have limited housing on the second floor.\""; + close; +}
\ No newline at end of file |