diff options
52 files changed, 2886 insertions, 2240 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..c8c0c178 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.wlk binary diff --git a/client-data b/client-data -Subproject a0909e6576a7365e4eebd1a6863e803d59e7698 +Subproject bd0440247217888096d2ab195493c1d4ed96135 diff --git a/world/map/data/011-3.wlk b/world/map/data/011-3.wlk Binary files differindex 074f710e..6ab5e57d 100644 --- a/world/map/data/011-3.wlk +++ b/world/map/data/011-3.wlk diff --git a/world/map/data/012-3.wlk b/world/map/data/012-3.wlk Binary files differindex 2067e6fe..e510b20a 100644 --- a/world/map/data/012-3.wlk +++ b/world/map/data/012-3.wlk diff --git a/world/map/data/024-3.wlk b/world/map/data/024-3.wlk Binary files differnew file mode 100644 index 00000000..a73afbf6 --- /dev/null +++ b/world/map/data/024-3.wlk diff --git a/world/map/data/024-4.wlk b/world/map/data/024-4.wlk new file mode 100644 index 00000000..7b0e8cd5 --- /dev/null +++ b/world/map/data/024-4.wlk @@ -0,0 +1 @@ +ôô diff --git a/world/map/data/033-1.wlk b/world/map/data/033-1.wlk Binary files differindex 2a099a66..d9f0609b 100644 --- a/world/map/data/033-1.wlk +++ b/world/map/data/033-1.wlk diff --git a/world/map/data/034-1.wlk b/world/map/data/034-1.wlk Binary files differindex dd1f65a1..054c37ac 100644 --- a/world/map/data/034-1.wlk +++ b/world/map/data/034-1.wlk diff --git a/world/map/data/resnametable.txt b/world/map/data/resnametable.txt index c9cad372..a86a624d 100644 --- a/world/map/data/resnametable.txt +++ b/world/map/data/resnametable.txt @@ -56,6 +56,8 @@ 023-1.gat#023-1.wlk# 024-1.gat#024-1.wlk# 024-2.gat#024-2.wlk# +024-3.gat#024-3.wlk# +024-4.gat#024-4.wlk# 025-1.gat#025-1.wlk# 025-3.gat#025-3.wlk# 025-4.gat#025-4.wlk# diff --git a/world/map/npc/001-2/casino.txt b/world/map/npc/001-2/casino.txt index b4cb7bb0..9dcbf5c5 100644 --- a/world/map/npc/001-2/casino.txt +++ b/world/map/npc/001-2/casino.txt @@ -1,181 +1,177 @@ // -001-2.gat,134,23,0 script Valdo 117,{ - mes "[Valdo the Worker]"; - mes "\"Please let me work, I'm really in a hurry!\""; - close; +001-2.gat,134,23,0|script|Valdo|117,{ + mes "[Valdo the Worker]"; + mes "\"Please let me work, I'm really in a hurry!\""; + close; } -001-2.gat,37,65,0 script Slot1 127,{ - callfunc "SlotMachine"; - close; +001-2.gat,37,65,0|script|Slot1|127,{ + callfunc "SlotMachine"; + close; } -001-2.gat,39,65,0 script Slot2 127,{ - callfunc "SlotMachine"; - close; +001-2.gat,39,65,0|script|Slot2|127,{ + callfunc "SlotMachine"; + close; } -001-2.gat,41,65,0 script Slot3 127,{ - callfunc "SlotMachine"; - close; +001-2.gat,41,65,0|script|Slot3|127,{ + callfunc "SlotMachine"; + close; } -001-2.gat,32,67,0 script MoneyChanger 124,{ - mes "[" + @npcname$ + "]"; - mes "\"I used to exchange Casino Coins for cash, but the Wizard's Council shut me down. Now the casino only runs off Casino Coins currently in circulation.\""; - next; - mes "\"I heard that many a gambler wandered onto the Beach to the South West and through to the Snake Desert to the South East. If you want to find coins already in circulation, you might find some on the monsters there.\""; - close; +001-2.gat,32,67,0|script|MoneyChanger|124,{ + mes "[" + @npcname$ + "]"; + mes "\"I used to exchange Casino Coins for cash, but the Wizard's Council shut me down. Now the casino only runs off Casino Coins currently in circulation.\""; + next; + mes "\"I heard that many a gambler wandered onto the Beach to the South West and through to the Snake Desert to the South East. If you want to find coins already in circulation, you might find some on the monsters there.\""; + close; } -001-2.gat,28,63,0 script BlackJack 107,{ - mes "[Croupier]"; - mes "\"Would you like to play Black Jack?"; - mes "You will need 15 casino coins.\""; - next; - - menu - "Yes", L_Begin, - "No", -; - mes "\"As you wish.\""; - close; +001-2.gat,28,63,0|script|BlackJack|107,{ + mes "[Croupier]"; + mes "\"Would you like to play Black Jack?"; + mes "You will need 15 casino coins.\""; + next; + menu + "Yes", L_Begin, + "No", -; + mes "\"As you wish.\""; + close; L_Begin: - if(countitem("CasinoCoins") < 15) goto L_NoCoin; - delitem "CasinoCoins", 15; - set @croupier, rand(0, 4); - set @croupier, @croupier + 17; - set @player, rand(4, 21); - mes "\"You got " + @player + " with your cards."; - if(@player == 21) goto L_End; - mes "Do you want another card?\""; - next; - - menu - "Yes", L_Another, - "No", L_End; - + if(countitem("CasinoCoins") < 15) goto L_NoCoin; + delitem "CasinoCoins", 15; + set @croupier, rand(0, 4); + set @croupier, @croupier + 17; + set @player, rand(4, 21); + mes "\"You got " + @player + " with your cards."; + if(@player == 21) goto L_End; + mes "Do you want another card?\""; + next; + menu + "Yes", L_Another, + "No", L_End; + L_Another: - set @tempace, rand(2, 11); - if (@tempace == 11) goto L_Ace; - set @player, @player + @tempace; - if (@player > 21) goto L_Lost; - if (@player == 21) goto L_End; - mes "\"You got " + @player + " with your cards."; - mes "Do you want another card?\""; - next; - - menu - "Yes", L_Another, - "No", L_End; + set @tempace, rand(2, 11); + if (@tempace == 11) goto L_Ace; + set @player, @player + @tempace; + if (@player > 21) goto L_Lost; + if (@player == 21) goto L_End; + mes "\"You got " + @player + " with your cards."; + mes "Do you want another card?\""; + next; + menu + "Yes", L_Another, + "No", L_End; + L_End: - if (@player <= @croupier) goto L_Lost; - mes "\"Congratulations, you won!"; - mes "I had " + @croupier + "."; - mes "You get 45 casino coins.\""; - getitem "CasinoCoins", 45; - close; + if (@player <= @croupier) goto L_Lost; + mes "\"Congratulations, you won!"; + mes "I had " + @croupier + "."; + mes "You get 45 casino coins.\""; + getitem "CasinoCoins", 45; + close; L_NoCoin: - mes "\"You need at least 15 coins.\""; - close; + mes "\"You need at least 15 coins.\""; + close; L_Lost: - mes "\"I'm sorry but you lost."; - mes "You got " + @player + " with your cards."; - mes "I had " + @croupier + ".\""; - close; + mes "\"I'm sorry but you lost."; + mes "You got " + @player + " with your cards."; + mes "I had " + @croupier + ".\""; + close; L_Ace: - set @player, @player + 11; - if (@player > 21) set @player, @player - 10; - if (@player > 21) goto L_Lost; - if (@player == 21) goto L_End; - mes "You got " + @player + " with your cards."; - mes "Do you want another card?"; - next; - - menu - "Yes", L_Another, - "No", L_End; - close; + set @player, @player + 11; + if (@player > 21) set @player, @player - 10; + if (@player > 21) goto L_Lost; + if (@player == 21) goto L_End; + mes "You got " + @player + " with your cards."; + mes "Do you want another card?"; + next; + menu + "Yes", L_Another, + "No", L_End; + close; } -001-2.gat,22,69,0 script Roulette 107,{ - mes "\"Good evening monsieur..."; - mes "How much would you like to bet?\""; - next; - - menu - "1 coin", L_b1, - "5 coins", L_b5, - "10 coins", L_b10, - "50 coins", L_b50, - "100 coins", L_b100, - "Maybe I'll play later", -; - mes "Come again."; - close; +001-2.gat,22,69,0|script|Roulette|107,{ + mes "\"Good evening monsieur..."; + mes "How much would you like to bet?\""; + next; + menu + "1 coin", L_b1, + "5 coins", L_b5, + "10 coins", L_b10, + "50 coins", L_b50, + "100 coins", L_b100, + "Maybe I'll play later", -; + mes "Come again."; + close; L_b1: - set @bet, 1; - goto L_Check; + set @bet, 1; + goto L_Check; L_b5: - set @bet, 5; - goto L_Check; + set @bet, 5; + goto L_Check; L_b10: - set @bet, 10; - goto L_Check; + set @bet, 10; + goto L_Check; L_b50: - set @bet, 50; - goto L_Check; + set @bet, 50; + goto L_Check; L_b100: - set @bet, 100; - goto L_Check; - + set @bet, 100; + goto L_Check; + L_Check: - if(countitem("CasinoCoins") < @bet) goto L_NoCoin; - delitem "CasinoCoins", @bet; - menu - "Choose a color", -, - "Choose a number", L_Number; - menu - "Black", -, - "Red", -; + if(countitem("CasinoCoins") < @bet) goto L_NoCoin; + delitem "CasinoCoins", @bet; + menu + "Choose a color", -, + "Choose a number", L_Number; + menu + "Black", -, + "Red", -; set @color,rand(2); - if(@color == 1) goto L_Lost; - mes "You won!"; - getitem "CasinoCoins", @bet * 2; - close; + if(@color == 1) goto L_Lost; + mes "You won!"; + getitem "CasinoCoins", @bet * 2; + close; L_Number: - menu - "0", -, "00", -, "1", -, "2", -, "3", -, "4", -, "5", -, "6", -, "7", -, "8", -, - "9", -, "10", -, "11", -, "12", -, "13", -, "14", -, "15", -, "16", -, "17", -, "18", -, - "19", -, "20", -, "21", -, "22", -, "23", -, "24", -, "25", -, "26", -, "27", -, "28", -, - "29", -, "30", -, "31", -, "32", -, "33", -, "34", -, "35", -, "36", -; - - if (@menu == 1) set @number, 0; - if (@menu == 2) set @number, 37; - if (@menu >= 3) set @number, @menu - 2; - - set @roulette, rand(38); - if (@roulette == 37) mes "The ball stopped on 00"; - if (@roulette < 37) mes "The ball stopped on " + @roulette; - if (@number != @roulette) goto L_Lost; - mes "\"You won!\""; - getitem "CasinoCoins", @bet * 10; - close; + menu + "0", -, "00", -, "1", -, "2", -, "3", -, "4", -, "5", -, "6", -, "7", -, "8", -, + "9", -, "10", -, "11", -, "12", -, "13", -, "14", -, "15", -, "16", -, "17", -, "18", -, + "19", -, "20", -, "21", -, "22", -, "23", -, "24", -, "25", -, "26", -, "27", -, "28", -, + "29", -, "30", -, "31", -, "32", -, "33", -, "34", -, "35", -, "36", -; + + if (@menu == 1) set @number, 0; + if (@menu == 2) set @number, 37; + if (@menu >= 3) set @number, @menu - 2; + + set @roulette, rand(38); + if (@roulette == 37) mes "The ball stopped on 00"; + if (@roulette < 37) mes "The ball stopped on " + @roulette; + if (@number != @roulette) goto L_Lost; + mes "\"You won!\""; + getitem "CasinoCoins", @bet * 10; + close; L_NoCoin: - mes "\"You don't have enough coins.\""; - close; + mes "\"You don't have enough coins.\""; + close; L_Lost: - mes "\"I'm sorry, you lost.\""; - close; + mes "\"I'm sorry, you lost.\""; + close; } diff --git a/world/map/npc/001-2/dedication.txt b/world/map/npc/001-2/dedication.txt index d65f47d1..1a668da7 100644 --- a/world/map/npc/001-2/dedication.txt +++ b/world/map/npc/001-2/dedication.txt @@ -1,9 +1,9 @@ // Dedication to Irene Christina -001-2.gat,76,68,0 script #IreneDedication 127,{ - mes "~ Irene Christina ~"; - mes "The song in this house is dedicated to Irene."; - next; - mes "She had seen only twenty hours of this world when she died in her father's arms."; - close; -}; +001-2.gat,76,68,0|script|#IreneDedication|127,{ + mes "~ Irene Christina ~"; + mes "The song in this house is dedicated to Irene."; + next; + mes "She had seen only twenty hours of this world when she died in her father's arms."; + close; +} diff --git a/world/map/npc/001-2/omar.txt b/world/map/npc/001-2/omar.txt index 4f75574e..37bd3307 100644 --- a/world/map/npc/001-2/omar.txt +++ b/world/map/npc/001-2/omar.txt @@ -1,348 +1,300 @@ // -function script KadiyaSubquestConsts { - set @Q_kadiya_status, (QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT; - - set @Q_STATUS_NONE, 0; - set @Q_STATUS_KNOWS_MOPOX, 1; - set @Q_STATUS_MADE_MOPOX, 2; - set @Q_STATUS_DIDNT_DRINK, 3; - set @Q_STATUS_WANTS_CHOCOCAKE, 4; - set @Q_STATUS_WANTS_ORANGECUPCAKE, 5; - set @Q_STATUS_COMPLETED, 6; - set @Q_STATUS_COMPLETED_ELANORE, 7; - set @Q_STATUS_COMPLETED_NOELANORE, 8; - set @Q_STATUS_COMPLETED_POST_ELANORE, 9; - - if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) < 4) - set @Q_kadiya_status, @Q_STATUS_NONE; - - if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) > 4) - set @Q_kadiya_status, @Q_STATUS_COMPLETED_POST_ELANORE; - - return; -} +function|script|KadiyaSubquestConsts|{ + set @Q_kadiya_status, (QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT; + + set @Q_STATUS_NONE, 0; + set @Q_STATUS_KNOWS_MOPOX, 1; + set @Q_STATUS_MADE_MOPOX, 2; + set @Q_STATUS_DIDNT_DRINK, 3; + set @Q_STATUS_WANTS_CHOCOCAKE, 4; + set @Q_STATUS_WANTS_ORANGECUPCAKE, 5; + set @Q_STATUS_COMPLETED, 6; + set @Q_STATUS_COMPLETED_ELANORE, 7; + set @Q_STATUS_COMPLETED_NOELANORE, 8; + set @Q_STATUS_COMPLETED_POST_ELANORE, 9; + if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) < 4) set @Q_kadiya_status, @Q_STATUS_NONE; -001-2.gat,70,60,0 script Omar 162,{ - callfunc "ElanoreFix"; - callfunc "KadiyaSubquestConsts"; + if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) > 4) set @Q_kadiya_status, @Q_STATUS_COMPLETED_POST_ELANORE; - set @Q_status, @Q_kadiya_status; + return; +} - if (@Q_status >= @Q_STATUS_COMPLETED) - goto L_cured; +001-2.gat,70,60,0|script|Omar|162,{ + callfunc "ElanoreFix"; + callfunc "KadiyaSubquestConsts"; - if (@Q_status == @Q_STATUS_DIDNT_DRINK) - goto L_didnt_drink; + set @Q_status, @Q_kadiya_status; - if (@Q_status > @Q_STATUS_DIDNT_DRINK) - goto L_make_food; + if (@Q_status >= @Q_STATUS_COMPLETED) goto L_cured; - mes "[Omar]"; - mes "\"Welcome to my humble abode.\""; - next; + if (@Q_status == @Q_STATUS_DIDNT_DRINK) goto L_didnt_drink; - menu - "Well met! May I ask who you are?", L_omar, - "What's wrong with your daughter?", L_kadiya_sick, - "Thank you!", -; - close; + if (@Q_status > @Q_STATUS_DIDNT_DRINK) goto L_make_food; + + mes "[Omar]"; + mes "\"Welcome to my humble abode.\""; + next; + menu + "Well met! May I ask who you are?", L_omar, + "What's wrong with your daughter?", L_kadiya_sick, + "Thank you!", -; + close; L_omar: - mes "[Omar]"; - mes "\"My name is Omar; I am a trader of oils and spices.\""; - close; + mes "[Omar]"; + mes "\"My name is Omar; I am a trader of oils and spices.\""; + close; L_kadiya_sick: - mes "[Omar]"; - mes "\"Kadiya has caught Ponderpox, I fear.\""; - mes "He sighs."; - mes "\"She's has been feverish for many days now. I wish there were something I could do.\""; - next; - - menu - "Have you asked Elanore the healer?", L_sick_elanore, - "How about the Hurnscald hospital?", L_sick_hospital, - "Can I help?", L_sick_self, - "I'm sorry to hear that.", -; - - mes "[Omar]"; - mes "\"Well, she is a strong girl. I am sure that she will get over it eventually.\""; - mes "He smiles, but you see doubt in his eyes."; - close; + mes "[Omar]"; + mes "\"Kadiya has caught Ponderpox, I fear.\""; + mes "He sighs."; + mes "\"She's has been feverish for many days now. I wish there were something I could do.\""; + next; + menu + "Have you asked Elanore the healer?", L_sick_elanore, + "How about the Hurnscald hospital?", L_sick_hospital, + "Can I help?", L_sick_self, + "I'm sorry to hear that.", -; + + mes "[Omar]"; + mes "\"Well, she is a strong girl. I am sure that she will get over it eventually.\""; + mes "He smiles, but you see doubt in his eyes."; + close; L_sick_elanore: - mes "[Omar]"; - mes "\"Elanore?\""; - mes "He frowns."; - mes "\"She knows nothing. I see no point in talking to her.\""; - close; + mes "[Omar]"; + mes "\"Elanore?\""; + mes "He frowns."; + mes "\"She knows nothing. I see no point in talking to her.\""; + close; L_sick_hospital: - mes "[Omar]"; - mes "\"Hurnscald is too far away. I don't think that it would be good for her to go on such a long trip.\""; - close; + mes "[Omar]"; + mes "\"Hurnscald is too far away. I don't think that it would be good for her to go on such a long trip.\""; + close; L_sick_self: - mes "[Omar]"; - mes "\"You are very kind, but I don't think there is anything you can do.\""; - close; + mes "[Omar]"; + mes "\"You are very kind, but I don't think there is anything you can do.\""; + close; L_didnt_drink: - mes "[Omar]"; - mes "\"So she has Mopox, not Ponderpox, you say? Hmm. That is much harder to cure, I think.\""; - mes "\"I am grateful for the effort you put into brewing a potion for her. But it does smell vile...\""; - next; - - mes "[Omar]"; - mes "\"I promised my dear wife that I would never make Kadiya eat or drink anything she doesn't like. So I won't force her to drink this.\""; - next; - - mes "[Omar]"; - set @Q_status, (@Q_STATUS_WANTS_CHOCOCAKE + rand(2)); - callsub S_update_var; - - if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE) - mes "\"If only we could make it smell and taste like orange cupcakes... she really loves those cupcakes.\""; - if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE) - mes "\"If only this were a chocolate cake and not a potion... she really loves chocolate cakes.\""; - close; + mes "[Omar]"; + mes "\"So she has Mopox, not Ponderpox, you say? Hmm. That is much harder to cure, I think.\""; + mes "\"I am grateful for the effort you put into brewing a potion for her. But it does smell vile...\""; + next; + mes "[Omar]"; + mes "\"I promised my dear wife that I would never make Kadiya eat or drink anything she doesn't like. So I won't force her to drink this.\""; + next; + mes "[Omar]"; + set @Q_status, (@Q_STATUS_WANTS_CHOCOCAKE + rand(2)); + callsub S_update_var; + if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE) + mes "\"If only we could make it smell and taste like orange cupcakes... she really loves those cupcakes.\""; + if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE) + mes "\"If only this were a chocolate cake and not a potion... she really loves chocolate cakes.\""; + close; L_make_food: - mes "[Omar]"; - mes "\"I should stay here to watch over her. I wish I could think of a way to convince her to drink the potion...\""; - if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE) - mes "\"Alas, it is not an orange cupcake.\""; - if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE) - mes "\"If only it were to smell and taste like her favourite chocolate cake...\""; - close; + mes "[Omar]"; + mes "\"I should stay here to watch over her. I wish I could think of a way to convince her to drink the potion...\""; + if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE) + mes "\"Alas, it is not an orange cupcake.\""; + if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE) + mes "\"If only it were to smell and taste like her favourite chocolate cake...\""; + close; L_cured: - if (@Q_status == @Q_STATUS_COMPLETED) - goto L_cured_choice; - mes "[Omar]"; - mes "\"She is sleeping now, but she seems to be much better. I am sure that she will be up and running around again soon.\""; - close; + if (@Q_status == @Q_STATUS_COMPLETED) goto L_cured_choice; + mes "[Omar]"; + mes "\"She is sleeping now, but she seems to be much better. I am sure that she will be up and running around again soon.\""; + close; L_cured_choice: - mes "[Omar]"; - mes "\"I am very grateful for your help. I really was sure that it was Ponderpox, not Mopox, that she had.\""; - next; - - menu - "Oh, it was nothing.", L_cured_nothing, - "I didn't do it alone; Elanore helped.", L_cured_elanore, - "That will be 5000 GP.", -; - - mes "[Omar]"; - mes "\"Ah, certainly.\""; - mes "He hands you a small bag of money."; - next; - - set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; - callsub S_update_var; - - set zeny, zeny + 5000; - close; + mes "[Omar]"; + mes "\"I am very grateful for your help. I really was sure that it was Ponderpox, not Mopox, that she had.\""; + next; + menu + "Oh, it was nothing.", L_cured_nothing, + "I didn't do it alone; Elanore helped.", L_cured_elanore, + "That will be 5000 GP.", -; + mes "[Omar]"; + mes "\"Ah, certainly.\""; + mes "He hands you a small bag of money."; + next; + set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; + callsub S_update_var; + set zeny, zeny + 5000; + close; L_cured_nothing: - mes "[Omar]"; - mes "\"No, this wasn't nothing. She is everything to me. Here, you deserve a reward.\""; - mes "He hands you a bag of money containing 10,000 GP and two pearls."; - mes "\"And feel free to drop by again whenever you would like!\""; - - set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; - callsub S_update_var; - - getitem "Pearl", 2; - set zeny, zeny + 10000; - close; + mes "[Omar]"; + mes "\"No, this wasn't nothing. She is everything to me. Here, you deserve a reward.\""; + mes "He hands you a bag of money containing 10,000 GP and two pearls."; + mes "\"And feel free to drop by again whenever you would like!\""; + set @Q_status, @Q_STATUS_COMPLETED_NOELANORE; + callsub S_update_var; + getitem "Pearl", 2; + set zeny, zeny + 10000; + close; L_cured_elanore: - mes "[Omar]"; - mes "Omar frowns."; - mes "\"That witch? You worked with her without telling me?\""; - mes "He looks over to his daughter, concern suddenly in his eyes."; - mes "\"She is looking better, though...\""; - next; - - mes "[Omar]"; - mes "Omar shakes his head."; - mes "\"I will have to think about this. Please leave me alone.\""; - next; - - set @Q_status, @Q_STATUS_COMPLETED_ELANORE; - callsub S_update_var; - - close; + mes "[Omar]"; + mes "Omar frowns."; + mes "\"That witch? You worked with her without telling me?\""; + mes "He looks over to his daughter, concern suddenly in his eyes."; + mes "\"She is looking better, though...\""; + next; + mes "[Omar]"; + mes "Omar shakes his head."; + mes "\"I will have to think about this. Please leave me alone.\""; + next; + set @Q_status, @Q_STATUS_COMPLETED_ELANORE; + callsub S_update_var; + close; S_update_var: - set QUEST_MAGIC2, - (QUEST_MAGIC2 & ~(NIBBLE_3_MASK) - | (@Q_status << NIBBLE_3_SHIFT)); - return; + set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(NIBBLE_3_MASK) | (@Q_status << NIBBLE_3_SHIFT)); + return; } - -001-2.gat,76,59,0 script _______Kadiya 174,{ - callfunc "ElanoreFix"; - set @Q_MASK, NIBBLE_3_MASK; - set @Q_SHIFT, NIBBLE_3_SHIFT; - - callfunc "KadiyaSubquestConsts"; - set @Q_status, @Q_kadiya_status; - - if (@Q_status >= @Q_STATUS_COMPLETED) - goto L_cured; - - mes "You see a young girl lying in bed. At first she doesn't seem to notice you approaching."; - mes "Finally, she turns her head towards you. Judging from the sweat on her forehead and look in her eyes, she is suffering from some kind of fever."; - next; - - mes "[Kadiya]"; - mes "\"Hello,\" she says in a tiny voice."; - next; - - set @M_NAME, 1; - set @M_CANDY, 2; - set @M_POTION, 3; - set @M_CHOCOCAKE, 4; - set @M_CUPCAKE, 5; - - setarray @choice$, "Hello! What's your name?", "Would you like some candy?", "", "", "", "", "", ""; - setarray @choice_idx, @M_NAME, @M_CANDY, 0, 0, 0, 0, 0, 0; - set @choices_nr, 2; - - if (countitem("MopoxCurePotion") == 0) - goto L_M_no_cure; - - set @choice_idx[@choices_nr], @M_POTION; - set @choice$[@choices_nr], "This potion will cure your illness!"; - set @choices_nr, @choices_nr + 1; +001-2.gat,76,59,0|script|Kadiya|174,{ + callfunc "ElanoreFix"; + set @Q_MASK, NIBBLE_3_MASK; + set @Q_SHIFT, NIBBLE_3_SHIFT; + callfunc "KadiyaSubquestConsts"; + set @Q_status, @Q_kadiya_status; + if (@Q_status >= @Q_STATUS_COMPLETED) goto L_cured; + + mes "You see a young girl lying in bed. At first she doesn't seem to notice you approaching."; + mes "Finally, she turns her head towards you. Judging from the sweat on her forehead and look in her eyes, she is suffering from some kind of fever."; + next; + mes "[Kadiya]"; + mes "\"Hello,\" she says in a tiny voice."; + next; + set @M_NAME, 1; + set @M_CANDY, 2; + set @M_POTION, 3; + set @M_CHOCOCAKE, 4; + set @M_CUPCAKE, 5; + + setarray @choice$, "Hello! What's your name?", "Would you like some candy?", "", "", "", "", "", ""; + setarray @choice_idx, @M_NAME, @M_CANDY, 0, 0, 0, 0, 0, 0; + set @choices_nr, 2; + + if (countitem("MopoxCurePotion") == 0) goto L_M_no_cure; + + set @choice_idx[@choices_nr], @M_POTION; + set @choice$[@choices_nr], "This potion will cure your illness!"; + set @choices_nr, @choices_nr + 1; L_M_no_cure: - - if ((countitem("LacedChocolateCake") == 0) || (@Q_status != @Q_STATUS_WANTS_CHOCOCAKE)) - goto L_M_no_chococake; - - set @choice_idx[@choices_nr], @M_CHOCOCAKE; - set @choice$[@choices_nr], "Would you like special chocolate cake?"; - set @choices_nr, @choices_nr + 1; + if ((countitem("LacedChocolateCake") == 0) || (@Q_status != @Q_STATUS_WANTS_CHOCOCAKE)) + goto L_M_no_chococake; + set @choice_idx[@choices_nr], @M_CHOCOCAKE; + set @choice$[@choices_nr], "Would you like special chocolate cake?"; + set @choices_nr, @choices_nr + 1; L_M_no_chococake: - - if ((countitem("LacedOrangeCupcake") == 0) || (@Q_status != @Q_STATUS_WANTS_ORANGECUPCAKE)) - goto L_M_no_cupcake; - - set @choice_idx[@choices_nr], @M_CUPCAKE; - set @choice$[@choices_nr], "Would you like special orange cupcake?"; - set @choices_nr, @choices_nr + 1; + if ((countitem("LacedOrangeCupcake") == 0) || (@Q_status != @Q_STATUS_WANTS_ORANGECUPCAKE)) + goto L_M_no_cupcake; + set @choice_idx[@choices_nr], @M_CUPCAKE; + set @choice$[@choices_nr], "Would you like special orange cupcake?"; + set @choices_nr, @choices_nr + 1; L_M_no_cupcake: - - set @choice_idx[@choices_nr], 0; - set @choice$[@choices_nr], "Goodbye."; - set @choices_nr, @choices_nr + 1; - - menu - @choice$[0], -, - @choice$[1], -, - @choice$[2], -, - @choice$[3], -, - @choice$[4], -, - @choice$[5], -; - - set @choice, @choice_idx[@menu - 1]; - - if (@choice == @M_NAME) goto L_name; - if (@choice == @M_CANDY) goto L_no_candy; - if (@choice == @M_POTION) goto L_potion; - if (@choice == @M_CHOCOCAKE) goto L_chococake; - if (@choice == @M_CUPCAKE) goto L_cupcake; - - close; + set @choice_idx[@choices_nr], 0; + set @choice$[@choices_nr], "Goodbye."; + set @choices_nr, @choices_nr + 1; + + menu + @choice$[0], -, + @choice$[1], -, + @choice$[2], -, + @choice$[3], -, + @choice$[4], -, + @choice$[5], -; + + set @choice, @choice_idx[@menu - 1]; + + if (@choice == @M_NAME) goto L_name; + if (@choice == @M_CANDY) goto L_no_candy; + if (@choice == @M_POTION) goto L_potion; + if (@choice == @M_CHOCOCAKE) goto L_chococake; + if (@choice == @M_CUPCAKE) goto L_cupcake; + close; L_name: - mes "[Kadiya]"; - mes "She smiles a faint smile."; - mes "\"My name is Kadiya.\""; - - close; + mes "[Kadiya]"; + mes "She smiles a faint smile."; + mes "\"My name is Kadiya.\""; + close; L_no_candy: - mes "[Kadiya]"; - mes "She hesitates for a moment."; - mes "\"No, thank you. I don't think I should.\""; - - close; + mes "[Kadiya]"; + mes "She hesitates for a moment."; + mes "\"No, thank you. I don't think I should.\""; + close; L_potion: - mes "[Kadiya]"; - if (@Q_status < @Q_STATUS_DIDNT_DRINK) - set @Q_status, @Q_STATUS_DIDNT_DRINK; - callsub S_update_var; - - mes "Kadiya grimaces and pushes the bottle away."; - mes "\"That smells terrible!\""; - next; - - mes "[Kadiya]"; - mes "She pulls the sheets over her head."; - mes "\"I won't drink that!\""; - next; - - close; + mes "[Kadiya]"; + if (@Q_status < @Q_STATUS_DIDNT_DRINK) set @Q_status, @Q_STATUS_DIDNT_DRINK; + callsub S_update_var; + + mes "Kadiya grimaces and pushes the bottle away."; + mes "\"That smells terrible!\""; + next; + mes "[Kadiya]"; + mes "She pulls the sheets over her head."; + mes "\"I won't drink that!\""; + next; + close; L_chococake: - delitem "LacedChocolateCake", 1; - goto L_do_cure; + delitem "LacedChocolateCake", 1; + goto L_do_cure; L_cupcake: - delitem "LacedOrangeCupcake", 1; - goto L_do_cure; + delitem "LacedOrangeCupcake", 1; + goto L_do_cure; L_do_cure: - if (@Q_status < @Q_STATUS_COMPLETED) - set @Q_status, @Q_STATUS_COMPLETED; - callsub S_update_var; - mes "[Kadiya]"; - mes "Kadiya's eyes widen."; - mes "\"Oh! Daddy, is it okay if I eat this?\""; - mes "Omar nods and smiles. \"You should eat a bit to regain your strength, sweetheart.\""; - next; - - mes "[Kadiya]"; - mes "Kadiya devours your gift in just a handful of bites."; - next; - - mes "[Kadiya]"; - mes "She smiles. \"Thank you! I feel better already!\"."; - next; - - mes "[Kadiya]"; - mes "She looks much healthier, too. Omar walks over and touches her forehead."; - mes "\"Now that is funny-- your fever has gone down quite a bit!\""; - mes "He smiles at you. \"Thank you for your help!\""; - next; - - mes "[Kadiya]"; - mes "\"You should get some sleep now, sweetheart. I'm sure that you will be better soon.\""; - close; + if (@Q_status < @Q_STATUS_COMPLETED) set @Q_status, @Q_STATUS_COMPLETED; + callsub S_update_var; + + mes "[Kadiya]"; + mes "Kadiya's eyes widen."; + mes "\"Oh! Daddy, is it okay if I eat this?\""; + mes "Omar nods and smiles. \"You should eat a bit to regain your strength, sweetheart.\""; + next; + mes "[Kadiya]"; + mes "Kadiya devours your gift in just a handful of bites."; + next; + mes "[Kadiya]"; + mes "She smiles. \"Thank you! I feel better already!\"."; + next; + mes "[Kadiya]"; + mes "She looks much healthier, too. Omar walks over and touches her forehead."; + mes "\"Now that is funny-- your fever has gone down quite a bit!\""; + mes "He smiles at you. \"Thank you for your help!\""; + next; + mes "[Kadiya]"; + mes "\"You should get some sleep now, sweetheart. I'm sure that you will be better soon.\""; + close; L_goodbye: - mes "[Kadiya]"; - mes "Goodbye!"; - - close; + mes "[Kadiya]"; + mes "Goodbye!"; + close; L_cured: - mes "[Kadiya]"; - mes "Kadiya seems to be sleeping calmly. She looks much less sweaty than earlier; unless you are very much mistaken, her fever has disappeared."; - close; + mes "[Kadiya]"; + mes "Kadiya seems to be sleeping calmly. She looks much less sweaty than earlier; unless you are very much mistaken, her fever has disappeared."; + close; S_update_var: - set QUEST_MAGIC2, - (QUEST_MAGIC2 & ~(@Q_MASK) - | (@Q_status << @Q_SHIFT)); - return; + set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); + return; } diff --git a/world/map/npc/001-2/phaet.txt b/world/map/npc/001-2/phaet.txt index e495d93d..1e37bdcb 100644 --- a/world/map/npc/001-2/phaet.txt +++ b/world/map/npc/001-2/phaet.txt @@ -1,30 +1,28 @@ // -001-2.gat,24,23,0 script Phaet 125,{ - mes "[Phaet the Royal Guard]"; - mes "\"Hey, you seem tough enough! Would you like to prove your skills? I'll let you in the arena if you give me 50 gp. You can fight against other players there.\""; - next; +001-2.gat,24,23,0|script|Phaet|125,{ + mes "[Phaet the Royal Guard]"; + mes "\"Hey, you seem tough enough! Would you like to prove your skills? I'll let you in the arena if you give me 50 gp. You can fight against other players there.\""; + next; + menu + "Yes", L_Sure, + "No", -; - menu - "Yes", L_Sure, - "No", -; - - mes "[Phaet the Royal Guard]"; - mes "\"Ha ha, coward.\""; - close; + mes "[Phaet the Royal Guard]"; + mes "\"Ha ha, coward.\""; + close; L_Sure: - if (zeny < 50) goto L_NoMoney; - set zeny, zeny - 50; - - mes "[Phaet the Royal Guard]"; - mes "\"Get ready!\""; - next; + if (zeny < 50) goto L_NoMoney; + set zeny, zeny - 50; - warp "001-3.gat", 0, 0; - close; + mes "[Phaet the Royal Guard]"; + mes "\"Get ready!\""; + next; + warp "001-3.gat", 0, 0; + close; L_NoMoney: - mes "\"Wait a second, you don't have enough money.\""; - close; + mes "\"Wait a second, you don't have enough money.\""; + close; } diff --git a/world/map/npc/001-2/shops.txt b/world/map/npc/001-2/shops.txt index e33ae53c..d4cf178b 100644 --- a/world/map/npc/001-2/shops.txt +++ b/world/map/npc/001-2/shops.txt @@ -1,10 +1,10 @@ // -001-2.gat,26,26,0 shop InnKeeper 112,Beer :-1,Cake :-1,CherryCake :-1 +001-2.gat,26,26,0|shop|InnKeeper|112,Beer :-1,Cake :-1,CherryCake :-1 -001-2.gat,103,26,0 script Rebecca 118,{ - set @npcname$, "Rebecca the Inn Keeper"; - set @cost, 100; - callfunc "Inn"; - close; +001-2.gat,103,26,0|script|Rebecca|118,{ + set @npcname$, "Rebecca the Inn Keeper"; + set @cost, 100; + callfunc "Inn"; + close; } diff --git a/world/map/npc/001-2/troupe_leader.txt b/world/map/npc/001-2/troupe_leader.txt index e7b0486e..f34408d3 100644 --- a/world/map/npc/001-2/troupe_leader.txt +++ b/world/map/npc/001-2/troupe_leader.txt @@ -1,51 +1,51 @@ // -001-2.gat,34,25,0 script Troupe Leader 165,{ - if (Inspector == 4) goto L_NohMask_Troupe; - if (Inspector == 13) goto L_NohMask_Found; +001-2.gat,34,25,0|script|Troupe Leader|165,{ + if (Inspector == 4) goto L_NohMask_Troupe; + if (Inspector == 13) goto L_NohMask_Found; - mes "[Troupe Leader]"; - mes "\"Hello. I'm the leader of a traveling theater troupe. We'll be staying here in Tulimshar for a while.\""; - close; + mes "[Troupe Leader]"; + mes "\"Hello. I'm the leader of a traveling theater troupe. We'll be staying here in Tulimshar for a while.\""; + close; L_NohMask_Troupe: - mes "[Troupe Leader]"; - mes "\"Yes, a mask was stolen from us the last night we were in Hurnscald.\""; - next; - menu - "Any ideas on who might have taken it?", L_NohMask_Idea, - "Are you sure one of your troupe members didn't hide it and commit those robberies?", L_NohMask_Accuse, - "Hmm...", -; - close; + mes "[Troupe Leader]"; + mes "\"Yes, a mask was stolen from us the last night we were in Hurnscald.\""; + next; + menu + "Any ideas on who might have taken it?", L_NohMask_Idea, + "Are you sure one of your troupe members didn't hide it and commit those robberies?", L_NohMask_Accuse, + "Hmm...", -; + close; L_NohMask_Idea: - set Inspector, 5; - mes "[Troupe Leader]"; - mes "\"Hm...I did see an old man hang out near the theater after our last show.\""; - close; + set Inspector, 5; + mes "[Troupe Leader]"; + mes "\"Hm...I did see an old man hang out near the theater after our last show.\""; + close; L_NohMask_Accuse: - mes "[Troupe Leader]"; - mes "\"I am absolutely positive. None of my troupe have left the city since we got here. Good day!\""; - close; + mes "[Troupe Leader]"; + mes "\"I am absolutely positive. None of my troupe have left the city since we got here. Good day!\""; + close; L_NohMask_Found: - mes "[Troupe Leader]"; - mes "\"Thank you for finding the mask. You did such a good job, you should keep it.\""; - getinventorylist; - if (@inventorylist_count == 100) goto L_NohMask_TooMany; - mes "[1500 experience points]"; - getexp 1500, 0; - set Inspector, 14; - getitem "NohMask", 1; - next; - mes "[Troupe Leader]"; - mes "\"We don't need it anymore. We're doing different shows here.\""; - close; + mes "[Troupe Leader]"; + mes "\"Thank you for finding the mask. You did such a good job, you should keep it.\""; + getinventorylist; + if (@inventorylist_count == 100) goto L_NohMask_TooMany; + mes "[1500 experience points]"; + getexp 1500, 0; + set Inspector, 14; + getitem "NohMask", 1; + next; + mes "[Troupe Leader]"; + mes "\"We don't need it anymore. We're doing different shows here.\""; + close; L_NohMask_TooMany: - next; - mes "[Troupe Leader]"; - mes "\"Except, you don't seem to have any room for it. I'll hold onto it for you until you do have room.\""; - close; + next; + mes "[Troupe Leader]"; + mes "\"Except, you don't seem to have any room for it. I'll hold onto it for you until you do have room.\""; + close; } diff --git a/world/map/npc/001-3/guards.txt b/world/map/npc/001-3/guards.txt index 5b42ca4f..7ff899d0 100644 --- a/world/map/npc/001-3/guards.txt +++ b/world/map/npc/001-3/guards.txt @@ -1,28 +1,26 @@ // -001-3.gat,77,37,0 script Phaet 125,{ - mes "[Phaet the Royal Guard]"; - mes "\"Do you want to go back?\""; - next; - - menu - "Yes", L_Sure, - "No", -; - mes "Have fun."; - close; +001-3.gat,77,37,0|script|Phaet|125,{ + mes "[Phaet the Royal Guard]"; + mes "\"Do you want to go back?\""; + next; + menu + "Yes", L_Sure, + "No", -; + mes "Have fun."; + close; L_Sure: - mes "[Phaet the Royal Guard]"; - mes "\"Ok.\""; - next; - - warp "001-2.gat", 25, 23; - close; + mes "[Phaet the Royal Guard]"; + mes "\"Ok.\""; + next; + warp "001-2.gat", 25, 23; + close; } -001-3.gat,69,37,0 script Aradin 126,{ - mes "[Aradin the Royal Guard]"; - mes "\"Don't touch me..."; - mes "You wouldn't enjoy the consequences.\""; - close; +001-3.gat,69,37,0|script|Aradin|126,{ + mes "[Aradin the Royal Guard]"; + mes "\"Don't touch me..."; + mes "You wouldn't enjoy the consequences.\""; + close; } diff --git a/world/map/npc/001-3/monsters.txt b/world/map/npc/001-3/monsters.txt index 04e6b11d..8f5e167c 100644 --- a/world/map/npc/001-3/monsters.txt +++ b/world/map/npc/001-3/monsters.txt @@ -2,13 +2,12 @@ // This is the Tulimshar Arena -- below Tulimshar. // -001-3.gat,0,0,0,0 monster Maggot 1002,10,0,0,Mob6::OnMaggot +001-3.gat,0,0,0,0|monster|Maggot|1002,10,0,0,Mob6::OnMaggot -001-3.gat,0,0,0 script Mob6 -1,{ +001-3.gat,0,0,0|script|Mob6|-1,{ OnMaggot: - set @mobID, 1002; - callfunc "MobPoints"; - break; - - end; -}
\ No newline at end of file + set @mobID, 1002; + callfunc "MobPoints"; + break; + end; +} diff --git a/world/map/npc/002-1/lieutenant_dausen.txt b/world/map/npc/002-1/lieutenant_dausen.txt index 0573482b..605a4d58 100644 --- a/world/map/npc/002-1/lieutenant_dausen.txt +++ b/world/map/npc/002-1/lieutenant_dausen.txt @@ -1,119 +1,118 @@ // Lieutenant in charge of monitoring the monster threat surrounding the city. -002-1.gat,54,27,0 script Lieutenant Dausen 122,{ - - if (TMW_Quest == 33) goto L_LD_Key; - if (TMW_Quest == 19) goto L_LD_Miners; - if (TMW_Quest == 18) goto L_LD_Orders; - if (TMW_Quest == 17) goto L_LD_Nickos_Waits; - if (TMW_Quest == 16) goto L_LD_Nickos; - if (TMW_Quest == 15) goto L_LD_Waits; - if (TMW_Quest == 14) goto L_LD_Woe_Is_Me; - if (TMW_Quest == 13) goto L_LD_Drinks; - if (TMW_Quest == 12) goto L_LD_Start; - if (TMW_Quest < 12) goto L_LD_Get_Rep_First; - - mes "[Lieutenant Dausen]"; - mes "\"Hello. I am Lieutenant Dausen. I monitor the monster threat around the city to ensure the safety of its citizens.\""; - close; +002-1.gat,54,27,0|script|Lieutenant Dausen|122,{ + + if (TMW_Quest == 33) goto L_LD_Key; + if (TMW_Quest == 19) goto L_LD_Miners; + if (TMW_Quest == 18) goto L_LD_Orders; + if (TMW_Quest == 17) goto L_LD_Nickos_Waits; + if (TMW_Quest == 16) goto L_LD_Nickos; + if (TMW_Quest == 15) goto L_LD_Waits; + if (TMW_Quest == 14) goto L_LD_Woe_Is_Me; + if (TMW_Quest == 13) goto L_LD_Drinks; + if (TMW_Quest == 12) goto L_LD_Start; + if (TMW_Quest < 12) goto L_LD_Get_Rep_First; + + mes "[Lieutenant Dausen]"; + mes "\"Hello. I am Lieutenant Dausen. I monitor the monster threat around the city to ensure the safety of its citizens.\""; + close; L_LD_Get_Rep_First: - mes "[Lieutenant Dausen]"; - mes "\"Hello. I am Lieutenant Dausen. I monitor the monster threat around the city to ensure the safety of its citizens.\""; - next; - mes "[Lieutenant Dausen]"; - mes "\"I may have a job for you, stranger, but first I would like to learn more about you. Go walk among the citizens of Tulimshar, see if any of them could use some help. Once you have established a good reputation, word will get to me.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"Hello. I am Lieutenant Dausen. I monitor the monster threat around the city to ensure the safety of its citizens.\""; + next; + mes "[Lieutenant Dausen]"; + mes "\"I may have a job for you, stranger, but first I would like to learn more about you. Go walk among the citizens of Tulimshar, see if any of them could use some help. Once you have established a good reputation, word will get to me.\""; + close; L_LD_Start: - set TMW_Quest, 13; - mes "[Lieutenant Dausen]"; - mes "\"Out here in the desert, it sure does get hot! My men and I get thirsty rather quickly. Cactus Drinks are our favourite; if you can get some for us, we'd surely appreciate your effort. About 10 would do.\""; - close; + set TMW_Quest, 13; + mes "[Lieutenant Dausen]"; + mes "\"Out here in the desert, it sure does get hot! My men and I get thirsty rather quickly. Cactus Drinks are our favourite; if you can get some for us, we'd surely appreciate your effort. About 10 would do.\""; + close; L_LD_Drinks: - if (countitem ("CactusDrink") < 10) goto L_LD_NotEnough_Drink; - getinventorylist; - if (@inventorylist_count - (countitem("CactusDrink") == 10) > 99) goto L_LD_TooMany; - set TMW_Quest, 14; - delitem "CactusDrink", 10; - getitem "Boots", 1; - mes "[Lieutenant Dausen]"; - mes "\"Great! This will help us make it through the hot day. As a gift for your troubles, take these boots to keep your feet from burning on the sand. Have a good day...\""; - next; - mes "Lieutenant Dausen mumbles to himself and rubs his head."; - next; - mes "\"I have another problem, though. I mixed up the orders to my men, Nickos and Stewen. Someone needs to let them know they're going to have to hold their post for a while longer instead of taking a break. However, I can't leave my post! Oh, what to do, what to do...\""; - menu - "I can help you out, since you helped me too.", L_LD_Help, - "Thanks for the boots, gotta run now.", L_LD_NoHelp; - close; + if (countitem ("CactusDrink") < 10) goto L_LD_NotEnough_Drink; + getinventorylist; + if (@inventorylist_count - (countitem("CactusDrink") == 10) > 99) goto L_LD_TooMany; + set TMW_Quest, 14; + delitem "CactusDrink", 10; + getitem "Boots", 1; + mes "[Lieutenant Dausen]"; + mes "\"Great! This will help us make it through the hot day. As a gift for your troubles, take these boots to keep your feet from burning on the sand. Have a good day...\""; + next; + mes "Lieutenant Dausen mumbles to himself and rubs his head."; + next; + mes "\"I have another problem, though. I mixed up the orders to my men, Nickos and Stewen. Someone needs to let them know they're going to have to hold their post for a while longer instead of taking a break. However, I can't leave my post! Oh, what to do, what to do...\""; + menu + "I can help you out, since you helped me too.", L_LD_Help, + "Thanks for the boots, gotta run now.", L_LD_NoHelp; + close; L_LD_NotEnough_Drink: - mes "[Lieutenant Dausen]"; - mes "\"Hi again. My men and I sure are thirsty for our favorite drink, the Cactus Drink. If we had about 10, it would help us out a great deal in this sandstorm.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"Hi again. My men and I sure are thirsty for our favorite drink, the Cactus Drink. If we had about 10, it would help us out a great deal in this sandstorm.\""; + close; L_LD_TooMany: - mes "[Lieutenant Dausen]"; - mes "\"Oh, it seems you have too many items for me to give you a reward. Come back after you drop or sell some items.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"Oh, it seems you have too many items for me to give you a reward. Come back after you drop or sell some items.\""; + close; L_LD_Woe_Is_Me: - mes "[Lieutenant Dausen]"; - mes "\"I have a problem. I mixed up the orders to my men! Someone needs to let them know they're going to have to hold their post for a while longer instead of taking a break. However, I can't leave my post. Oh, what to do, what to do...\""; - menu - "I can help you out, since you helped me out too.", L_LD_Help, - "Bye-bye.", L_LD_NoHelp; - close; + mes "[Lieutenant Dausen]"; + mes "\"I have a problem. I mixed up the orders to my men! Someone needs to let them know they're going to have to hold their post for a while longer instead of taking a break. However, I can't leave my post. Oh, what to do, what to do...\""; + menu + "I can help you out, since you helped me out too.", L_LD_Help, + "Bye-bye.", L_LD_NoHelp; + close; L_LD_Help: - set TMW_Quest, 15; - mes "[Lieutenant Dausen]"; - mes "\"Oh! Would you? You are ever most helpful! Could you let Stewen know first? I'm the most worried about the monsters from the eastern desert and he should know first to hold his post. Come back to me after you see him. Hope to hear from you soon!\""; - close; + set TMW_Quest, 15; + mes "[Lieutenant Dausen]"; + mes "\"Oh! Would you? You are ever most helpful! Could you let Stewen know first? I'm the most worried about the monsters from the eastern desert and he should know first to hold his post. Come back to me after you see him. Hope to hear from you soon!\""; + close; L_LD_NoHelp: - mes "[Lieutenant Dausen]"; - mes "\"See you later then.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"See you later then.\""; + close; L_LD_Waits: - mes "[Lieutenant Dausen]"; - mes "\"I do hope Stewen holds his post. If you could tell them to do so, it would help me out a great deal.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"I do hope Stewen holds his post. If you could tell them to do so, it would help me out a great deal.\""; + close; L_LD_Nickos: - set TMW_Quest, 17; - mes "[Lieutenant Dausen]"; - mes "\"Thanks for letting Stewen know. Can you now tell Nickos to hold his post too? He guards the mine to the south, monitoring the monster threat and protecting the miners when he can.\""; - close; + set TMW_Quest, 17; + mes "[Lieutenant Dausen]"; + mes "\"Thanks for letting Stewen know. Can you now tell Nickos to hold his post too? He guards the mine to the south, monitoring the monster threat and protecting the miners when he can.\""; + close; L_LD_Nickos_Waits: - mes "[Lieutenant Dausen]"; - mes "\"Could you let Nickos know to hold his post? It would be very helpful. He is guarding the mine south of here.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"Could you let Nickos know to hold his post? It would be very helpful. He is guarding the mine south of here.\""; + close; L_LD_Orders: - set TMW_Quest, 19; - set zeny, zeny + 500; - mes "[Lieutenant Dausen]"; - mes "\"Thank you for clearing up the orders to my men! Here's some gold for your efforts.\""; - next; - mes "\"If you think you can handle the monsters lurking out here, I'm sure Nickos and the miners could use some help. Talk to you later.\""; - close; + set TMW_Quest, 19; + set zeny, zeny + 500; + mes "[Lieutenant Dausen]"; + mes "\"Thank you for clearing up the orders to my men! Here's some gold for your efforts.\""; + next; + mes "\"If you think you can handle the monsters lurking out here, I'm sure Nickos and the miners could use some help. Talk to you later.\""; + close; L_LD_Miners: - mes "[Lieutenant Dausen]"; - mes "\"I monitor the monster threat around the city to ensure the safety of its citizens.\""; - next; - mes "\"If you think you can handle the monsters lurking out here, I'm sure Nickos and the miners could use some help. Talk to you later.\""; - close; + mes "[Lieutenant Dausen]"; + mes "\"I monitor the monster threat around the city to ensure the safety of its citizens.\""; + next; + mes "\"If you think you can handle the monsters lurking out here, I'm sure Nickos and the miners could use some help. Talk to you later.\""; + close; L_LD_Key: - set TMW_Quest, 34; - mes "[Lieutenant Dausen]"; - mes "\"Oh, Naem lost his key? Here, take this spare. It should help you get into the underground palace.\""; - close; - + set TMW_Quest, 34; + mes "[Lieutenant Dausen]"; + mes "\"Oh, Naem lost his key? Here, take this spare. It should help you get into the underground palace.\""; + close; } diff --git a/world/map/npc/002-1/merchant.txt b/world/map/npc/002-1/merchant.txt index ae7de533..b1b2c3fd 100644 --- a/world/map/npc/002-1/merchant.txt +++ b/world/map/npc/002-1/merchant.txt @@ -1,3 +1,3 @@ // -002-1.gat,19,99,0 shop Ishyah 109,MinersHat :-1,MinerGloves :-1,ShortBow :-1,Arrow :-1,LeatherShield :-1 +002-1.gat,19,99,0|shop|Ishyah|109,MinersHat :-1,MinerGloves :-1,ShortBow :-1,Arrow :-1,LeatherShield :-1 diff --git a/world/map/npc/002-1/nickos.txt b/world/map/npc/002-1/nickos.txt index bf5de510..1e469ef8 100644 --- a/world/map/npc/002-1/nickos.txt +++ b/world/map/npc/002-1/nickos.txt @@ -1,114 +1,113 @@ // Sandstorm mine guard -002-1.gat,28,94,0 script Nickos 123,{ - - if (TMW_Quest == 32) goto L_Nickos_UGQ; - if (TMW_Quest == 31) goto L_Nickos_AS_Done; - if (TMW_Quest == 30) goto L_Nickos_AS_Start; - if (TMW_Quest >= 23) && (TMW_Quest < 30) goto L_Nickos_Guards; - if (TMW_Quest == 22) goto L_Nickos_Check_Happy; - if (TMW_Quest > 19) && (TMW_Quest < 22) goto L_Nickos_Waits; - if (TMW_Quest == 19) goto L_Nickos_Mine; - if (TMW_Quest == 18) goto L_Nickos_Orders_Received; - if (TMW_Quest == 17) goto L_Nickos_Orders; - if (TMW_Quest < 17) goto L_Nickos_See_Dausen_First; - - mes "[Nickos]"; - mes "\"I'm watching this mine to make sure the monsters don't harm the miners.\""; - close; +002-1.gat,28,94,0|script|Nickos|123,{ + + if (TMW_Quest == 32) goto L_Nickos_UGQ; + if (TMW_Quest == 31) goto L_Nickos_AS_Done; + if (TMW_Quest == 30) goto L_Nickos_AS_Start; + if (TMW_Quest >= 23) && (TMW_Quest < 30) goto L_Nickos_Guards; + if (TMW_Quest == 22) goto L_Nickos_Check_Happy; + if (TMW_Quest > 19) && (TMW_Quest < 22) goto L_Nickos_Waits; + if (TMW_Quest == 19) goto L_Nickos_Mine; + if (TMW_Quest == 18) goto L_Nickos_Orders_Received; + if (TMW_Quest == 17) goto L_Nickos_Orders; + if (TMW_Quest < 17) goto L_Nickos_See_Dausen_First; + + mes "[Nickos]"; + mes "\"I'm watching this mine to make sure the monsters don't harm the miners.\""; + close; L_Nickos_See_Dausen_First: - mes "[Nickos]"; - mes "\"I'm watching this mine to make sure the monsters don't harm the miners.\""; - next; - mes "[Nickos]"; - mes "\"The mines are closed from tourists due to the monster threat. If you want to get in you will need to prove yourself first. Talk to Lieutenant Dausen, my superior, if you want to make a formal complaint.\""; - close; + mes "[Nickos]"; + mes "\"I'm watching this mine to make sure the monsters don't harm the miners.\""; + next; + mes "[Nickos]"; + mes "\"The mines are closed from tourists due to the monster threat. If you want to get in you will need to prove yourself first. Talk to Lieutenant Dausen, my superior, if you want to make a formal complaint.\""; + close; L_Nickos_Orders: - set TMW_Quest, 18; - mes "[Nickos]"; - mes "\"I have to hold my post longer? Argh! I was looking forward to my break. Oh well, thanks for letting me know.\""; - close; + set TMW_Quest, 18; + mes "[Nickos]"; + mes "\"I have to hold my post longer? Argh! I was looking forward to my break. Oh well, thanks for letting me know.\""; + close; L_Nickos_Orders_Received: - mes "[Nickos]"; - mes "\"Thanks for letting me know Lieutenant Dausen wants me to stick it out for a while longer. Even though I would've liked my break, I'm sure these miners could use my watchful eye.\""; - close; + mes "[Nickos]"; + mes "\"Thanks for letting me know Lieutenant Dausen wants me to stick it out for a while longer. Even though I would've liked my break, I'm sure these miners could use my watchful eye.\""; + close; L_Nickos_Mine: - mes "[Nickos]"; - mes "\"I haven't heard from the miners in a while, but I've got to keep to my post unless there is due reason to investigate. Normally the miners take care of themselves without any problem.\""; - next; - mes "[Nickos]"; - mes "\"Could you check on them for me, though?\""; - menu - "Yes.", L_Nickos_Mine_Open, - "No.", L_Nickos_Disappoint; - close; + mes "[Nickos]"; + mes "\"I haven't heard from the miners in a while, but I've got to keep to my post unless there is due reason to investigate. Normally the miners take care of themselves without any problem.\""; + next; + mes "[Nickos]"; + mes "\"Could you check on them for me, though?\""; + menu + "Yes.", L_Nickos_Mine_Open, + "No.", L_Nickos_Disappoint; + close; L_Nickos_Disappoint: - mes "Nickos looks disappointed."; - close; + mes "Nickos looks disappointed."; + close; L_Nickos_Mine_Open: - set TMW_Quest, 20; - mes "[Nickos]"; - mes "\"Excellent! You now have my permission to enter the mine. Your assistance helps ease my worries.\""; - close; + set TMW_Quest, 20; + mes "[Nickos]"; + mes "\"Excellent! You now have my permission to enter the mine. Your assistance helps ease my worries.\""; + close; L_Nickos_Waits: - mes "[Nickos]"; - mes "\"Please be sure to get word from Nathan and Naem to make sure everthing is okay down there. Your assistance helps ease my worries.\""; - close; + mes "[Nickos]"; + mes "\"Please be sure to get word from Nathan and Naem to make sure everthing is okay down there. Your assistance helps ease my worries.\""; + close; L_Nickos_Check_Happy: - set TMW_Quest, 23; - set zeny, zeny + 500; - mes "[Nickos]"; - mes "\"Oh, everything is okay? That's great! I think they are pretty busy and could use some help. Feel free to give them a hand. Here's some gold for your troubles.\""; - close; + set TMW_Quest, 23; + set zeny, zeny + 500; + mes "[Nickos]"; + mes "\"Oh, everything is okay? That's great! I think they are pretty busy and could use some help. Feel free to give them a hand. Here's some gold for your troubles.\""; + close; L_Nickos_Guards: - mes "[Nickos]"; - mes "\"I'm watching this mine to make sure the monsters don't harm the miners.\""; - next; - mes "\"Talk to Nathan the miner, I'm sure the miners could use some help down there.\""; - close; + mes "[Nickos]"; + mes "\"I'm watching this mine to make sure the monsters don't harm the miners.\""; + next; + mes "\"Talk to Nathan the miner, I'm sure the miners could use some help down there.\""; + close; L_Nickos_AS_Start: - set TMW_Quest, 31; - mes "[Nickos]"; - mes "\"Oh, the angry scorpions are becoming a problem? We could thin down their numbers a bit. I can make it worth your time, but of course, I'll need something to show your work. Bring me 10 Angry Scorpion Stingers to demonstrate your effectiveness, and you will be rewarded for your efforts.\""; - close; + set TMW_Quest, 31; + mes "[Nickos]"; + mes "\"Oh, the angry scorpions are becoming a problem? We could thin down their numbers a bit. I can make it worth your time, but of course, I'll need something to show your work. Bring me 10 Angry Scorpion Stingers to demonstrate your effectiveness, and you will be rewarded for your efforts.\""; + close; L_Nickos_AS_Done: - if (countitem ("AngryScorpionStinger") < 10) goto L_Nickos_AS_NotDone; - getinventorylist; - if (@inventorylist_count - (countitem("AngryScorpionStinger") == 10) > 99) goto L_Nickos_TooMany; - set TMW_Quest, 32; - delitem "AngryScorpionStinger", 10; - getitem "LeatherShield", 1; - mes "[Nickos]"; - mes "\"Ah, you are a fine combatant! Take this Leather Shield, it might be useful for your future battles.\""; - next; - mes "\"You might be ready to take on the underground palace. If you are interested, go talk to Naem about unlocking the barrier, he's got the key and the code to open it.\""; - close; + if (countitem ("AngryScorpionStinger") < 10) goto L_Nickos_AS_NotDone; + getinventorylist; + if (@inventorylist_count - (countitem("AngryScorpionStinger") == 10) > 99) goto L_Nickos_TooMany; + set TMW_Quest, 32; + delitem "AngryScorpionStinger", 10; + getitem "LeatherShield", 1; + mes "[Nickos]"; + mes "\"Ah, you are a fine combatant! Take this Leather Shield, it might be useful for your future battles.\""; + next; + mes "\"You might be ready to take on the underground palace. If you are interested, go talk to Naem about unlocking the barrier, he's got the key and the code to open it.\""; + close; L_Nickos_AS_NotDone: - mes "[Nickos]"; - mes "\"Bring me 10 Angry Scorpion Stingers and I'll know their numbers are down. You will be rewarded for your efforts.\""; - close; + mes "[Nickos]"; + mes "\"Bring me 10 Angry Scorpion Stingers and I'll know their numbers are down. You will be rewarded for your efforts.\""; + close; L_Nickos_TooMany: - mes "[Nickos]"; - mes "\"Oh, it seems you have too many items. Please get rid some some and I'll give you a reward.\""; - close; + mes "[Nickos]"; + mes "\"Oh, it seems you have too many items. Please get rid some some and I'll give you a reward.\""; + close; L_Nickos_UGQ: - mes "[Nickos]"; - mes "\"You might be ready to take on the underground palace. If you are interested, talk to the miners about unlocking the barrier, they've got the key to open it.\""; - close; - + mes "[Nickos]"; + mes "\"You might be ready to take on the underground palace. If you are interested, talk to the miners about unlocking the barrier, they've got the key to open it.\""; + close; } diff --git a/world/map/npc/002-1/nomads.txt b/world/map/npc/002-1/nomads.txt index 0b7e7426..805b8fef 100644 --- a/world/map/npc/002-1/nomads.txt +++ b/world/map/npc/002-1/nomads.txt @@ -1,16 +1,14 @@ // -002-1.gat,15,67,0 script Samuel 132,{ - mes "[Samuel the Nomad]"; - mes "\"This is really a nice place.\""; - - mes "Don't you think so?\""; - close; +002-1.gat,15,67,0|script|Samuel|132,{ + mes "[Samuel the Nomad]"; + mes "\"This is really a nice place.\""; + mes "Don't you think so?\""; + close; } -002-1.gat,18,68,0 script Elijah 128,{ - mes "[Elijah the Nomad]"; - mes "\"If I only had a tent...\""; - - close; +002-1.gat,18,68,0|script|Elijah|128,{ + mes "[Elijah the Nomad]"; + mes "\"If I only had a tent...\""; + close; } diff --git a/world/map/npc/002-1/rogue.txt b/world/map/npc/002-1/rogue.txt index e5afe354..79812bee 100644 --- a/world/map/npc/002-1/rogue.txt +++ b/world/map/npc/002-1/rogue.txt @@ -1,50 +1,49 @@ // -002-1.gat,22,21,0 script Malivox 103,{ +002-1.gat,22,21,0|script|Malivox|103,{ -// if (ResetA_charstate == 1) goto L_Multiple; +// if (ResetA_charstate == 1) goto L_Multiple; -// set @cost, 10000000 / ($ResetA_uses + 1); +// set @cost, 10000000 / ($ResetA_uses + 1); - set @cost, baselevel * 100; + set @cost, baselevel * 100; - mes "[Rogue Mage]"; - mes "\"I have come across a spell that will"; - mes "reset your status points."; - mes "Normally this spell is expensive, but"; - mes "due to an unusual constellation of the"; - mes "stars I can cast it very cheaply!"; - mes "For you it will cost only "+@cost+" gp.\""; - next; + mes "[Rogue Mage]"; + mes "\"I have come across a spell that will"; + mes "reset your status points."; + mes "Normally this spell is expensive, but"; + mes "due to an unusual constellation of the"; + mes "stars I can cast it very cheaply!"; + mes "For you it will cost only "+@cost+" gp.\""; + next; + menu + "Reset my stats",-, + "Forget about it",L_Pass; - menu "Reset my stats",-,"Forget about it",L_Pass; + if (zeny<@cost) goto L_NoMoney; - if (zeny<@cost) goto L_NoMoney; - -// set $ResetA_uses, $ResetA_uses + 1; -// set ResetA_charstate, 1; +// set $ResetA_uses, $ResetA_uses + 1; +// set ResetA_charstate, 1; L_Reset: + set zeny, zeny-@cost; + resetstatus; - set zeny, zeny-@cost; - - resetstatus; - - mes "[Rogue Mage]"; - mes "\"There you are."; - mes ""; - mes "Good as new!\""; - close; + mes "[Rogue Mage]"; + mes "\"There you are."; + mes ""; + mes "Good as new!\""; + close; L_Pass: - mes "[Rogue Mage]"; - mes "\"Very well then, see you.\""; - close; + mes "[Rogue Mage]"; + mes "\"Very well then, see you.\""; + close; L_NoMoney: - mes "[Rogue Mage]"; - mes "\"Oh dear, the price cannot be bargained."; - mes ""; - mes "Perhaps you can borrow from a friend?\""; - close; + mes "[Rogue Mage]"; + mes "\"Oh dear, the price cannot be bargained."; + mes ""; + mes "Perhaps you can borrow from a friend?\""; + close; } diff --git a/world/map/npc/002-1/sandstorm_mine_barrier.txt b/world/map/npc/002-1/sandstorm_mine_barrier.txt index 62abceac..82841bf7 100644 --- a/world/map/npc/002-1/sandstorm_mine_barrier.txt +++ b/world/map/npc/002-1/sandstorm_mine_barrier.txt @@ -1,14 +1,12 @@ //Sandstorm mine barrier -002-1.gat,20,94,0 script #Sandstorm_Mine_Barrier 127,0,0,{ +002-1.gat,20,94,0|script|#Sandstorm_Mine_Barrier|127,0,0,{ - if (TMW_Quest >= 20) goto L_Sandstorm_Barrier_Open; + if (TMW_Quest >= 20) goto L_Sandstorm_Barrier_Open; + message strcharinfo(0), "Some force seems to block your entrance."; + end; - message strcharinfo(0), "Some force seems to block your entrance."; - end; - L_Sandstorm_Barrier_Open: - warp "002-3.gat",37,31; - end; - + warp "002-3.gat",37,31; + end; } diff --git a/world/map/npc/002-1/stewen.txt b/world/map/npc/002-1/stewen.txt index 6c099b3a..b0c98ebe 100644 --- a/world/map/npc/002-1/stewen.txt +++ b/world/map/npc/002-1/stewen.txt @@ -1,23 +1,22 @@ // East sandstorm guard -002-1.gat,106,76,0 script Stewen 123,{ +002-1.gat,106,76,0|script|Stewen|123,{ - if (TMW_Quest == 16) goto L_TMW_Quest_Received; - if (TMW_Quest == 15) goto L_TMW_Quest; + if (TMW_Quest == 16) goto L_TMW_Quest_Received; + if (TMW_Quest == 15) goto L_TMW_Quest; - mes "[Stewen]"; - mes "\"I'm keeping a watchful eye on the monsters to the east so they don't threaten Tulimshar's citizens. They are pretty strong.\""; - close; + mes "[Stewen]"; + mes "\"I'm keeping a watchful eye on the monsters to the east so they don't threaten Tulimshar's citizens. They are pretty strong.\""; + close; L_TMW_Quest: - set TMW_Quest, 16; - mes "[Stewen]"; - mes "\"I don't get a break?! Lieutenant Dausen needs to ask the Wizard's Council for more help out here. Either that or give me a raise! Oh well. Thanks for letting me know.\""; - close; + set TMW_Quest, 16; + mes "[Stewen]"; + mes "\"I don't get a break?! Lieutenant Dausen needs to ask the Wizard's Council for more help out here. Either that or give me a raise! Oh well. Thanks for letting me know.\""; + close; L_TMW_Quest_Received: - mes "[Stewen]"; - mes "\"Thanks again for letting me know Lieutenant Dausen isn't letting me take a break. Once I get out of here, I'll let him know I want a raise!\""; - close; - + mes "[Stewen]"; + mes "\"Thanks again for letting me know Lieutenant Dausen isn't letting me take a break. Once I get out of here, I'll let him know I want a raise!\""; + close; } diff --git a/world/map/npc/002-3/mine_triggerone.txt b/world/map/npc/002-3/mine_triggerone.txt index d182609b..b757c453 100644 --- a/world/map/npc/002-3/mine_triggerone.txt +++ b/world/map/npc/002-3/mine_triggerone.txt @@ -1,52 +1,51 @@ //Sandstorm mine trigger 1 Trigger 002-3 35,43 (127) -002-3.gat,30,47,0 script Button 127,0,0,{ +002-3.gat,30,47,0|script|Button|127,0,0,{ - if (TMW_Quest == 36) goto L_Trigger_Wrong_1; - if (TMW_Quest == 35) goto L_Trigger_Wrong_1; - if (TMW_Quest == 34) goto L_Trigger_1; + if (TMW_Quest == 36) goto L_Trigger_Wrong_1; + if (TMW_Quest == 35) goto L_Trigger_Wrong_1; + if (TMW_Quest == 34) goto L_Trigger_1; - mes "There is a large button on the ground. A key hole appears on the button."; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + close; L_Trigger_Wrong_1: - mes "There is a large button on the ground. A key hole appears on the button."; - menu - "Put the key in, turn right.", L_Right_Wrong_1, - "Put the key in, turn left.", L_Left_Wrong_1, - "Do nothing.", L_Nothing_1; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + menu + "Put the key in, turn right.", L_Right_Wrong_1, + "Put the key in, turn left.", L_Left_Wrong_1, + "Do nothing.", L_Nothing_1; + close; L_Right_Wrong_1: - set TMW_Quest, 34; - mes "You turn the key right."; - close; + set TMW_Quest, 34; + mes "You turn the key right."; + close; L_Left_Wrong_1: - set TMW_Quest, 34; - mes "You turn the key left."; - close; + set TMW_Quest, 34; + mes "You turn the key left."; + close; L_Trigger_1: - mes "There is a large button on the ground. A key hole appears on the button."; - menu - "Put the key in, turn right.", L_Right_1, - "Put the key in, turn left.", L_Left_1, - "Do nothing.", L_Nothing_1; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + menu + "Put the key in, turn right.", L_Right_1, + "Put the key in, turn left.", L_Left_1, + "Do nothing.", L_Nothing_1; + close; L_Right_1: - set TMW_Quest, 35; - mes "You turn the key right. A clicking sound echoes throughout the mine."; - close; + set TMW_Quest, 35; + mes "You turn the key right. A clicking sound echoes throughout the mine."; + close; L_Left_1: - set TMW_Quest, 34; - mes "You turn the key left."; - close; + set TMW_Quest, 34; + mes "You turn the key left."; + close; L_Nothing_1: - mes "You leave the button alone."; - close; - + mes "You leave the button alone."; + close; } diff --git a/world/map/npc/002-3/mine_triggerthree.txt b/world/map/npc/002-3/mine_triggerthree.txt index 828eb594..c1b7b3c6 100644 --- a/world/map/npc/002-3/mine_triggerthree.txt +++ b/world/map/npc/002-3/mine_triggerthree.txt @@ -1,51 +1,51 @@ //Sandstorm mine trigger 3 Trigger 002-3 98,42 (127) -002-3.gat,91,99,0 script Button 127,0,0,{ +002-3.gat,91,99,0|script|Button|127,0,0,{ - if (TMW_Quest == 36) goto L_Trigger_Wrong_3; - if (TMW_Quest == 35) goto L_Trigger_3; - if (TMW_Quest == 34) goto L_Trigger_Wrong_3; + if (TMW_Quest == 36) goto L_Trigger_Wrong_3; + if (TMW_Quest == 35) goto L_Trigger_3; + if (TMW_Quest == 34) goto L_Trigger_Wrong_3; - mes "There is a large button on the ground. A key hole appears on the button."; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + close; L_Trigger_Wrong_3: - mes "There is a large button on the ground. A key hole appears on the button."; - menu - "Put the key in, turn right.", L_Right_Wrong_3, - "Put the key in, turn left.", L_Left_Wrong_3, - "Do nothing.", L_Nothing_3; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + menu + "Put the key in, turn right.", L_Right_Wrong_3, + "Put the key in, turn left.", L_Left_Wrong_3, + "Do nothing.", L_Nothing_3; + close; L_Right_Wrong_3: - set TMW_Quest, 34; - mes "You turn the key right."; - close; + set TMW_Quest, 34; + mes "You turn the key right."; + close; L_Left_Wrong_3: - set TMW_Quest, 34; - mes "You turn the key left."; - close; + set TMW_Quest, 34; + mes "You turn the key left."; + close; L_Trigger_3: - mes "There is a large button on the ground. A key hole appears on the button."; - menu - "Put the key in, turn right.", L_Right_3, - "Put the key in, turn left.", L_Left_3, - "Do nothing.", L_Nothing_3; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + menu + "Put the key in, turn right.", L_Right_3, + "Put the key in, turn left.", L_Left_3, + "Do nothing.", L_Nothing_3; + close; L_Right_3: - set TMW_Quest, 34; - mes "You turn the key right."; - close; + set TMW_Quest, 34; + mes "You turn the key right."; + close; L_Left_3: - set TMW_Quest, 36; - mes "You turn the key left. A clicking sound echoes throughout the mine."; - close; + set TMW_Quest, 36; + mes "You turn the key left. A clicking sound echoes throughout the mine."; + close; L_Nothing_3: - mes "You leave the button alone."; - close; + mes "You leave the button alone."; + close; } diff --git a/world/map/npc/002-3/mine_triggertwo.txt b/world/map/npc/002-3/mine_triggertwo.txt index 5d005620..478351b1 100644 --- a/world/map/npc/002-3/mine_triggertwo.txt +++ b/world/map/npc/002-3/mine_triggertwo.txt @@ -1,53 +1,52 @@ //Sandstorm mine trigger -002-3.gat,100,37,0 script Button 127,0,0,{ +002-3.gat,100,37,0|script|Button|127,0,0,{ - if (TMW_Quest == 36) goto L_Trigger_2; - if (TMW_Quest == 35) goto L_Trigger_Wrong_2; - if (TMW_Quest == 34) goto L_Trigger_Wrong_2; + if (TMW_Quest == 36) goto L_Trigger_2; + if (TMW_Quest == 35) goto L_Trigger_Wrong_2; + if (TMW_Quest == 34) goto L_Trigger_Wrong_2; - mes "There is a large button on the ground. A key hole appears on the button."; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + close; L_Trigger_Wrong_2: - mes "There is a large button on the ground. A key hole appears on the button."; - menu - "Put the key in, turn right.", L_Right_Wrong_2, - "Put the key in, turn left.", L_Left_Wrong_2, - "Do nothing.", L_Nothing_2; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + menu + "Put the key in, turn right.", L_Right_Wrong_2, + "Put the key in, turn left.", L_Left_Wrong_2, + "Do nothing.", L_Nothing_2; + close; L_Right_Wrong_2: - set TMW_Quest, 34; - mes "You turn the key right."; - close; + set TMW_Quest, 34; + mes "You turn the key right."; + close; L_Left_Wrong_2: - set TMW_Quest, 34; - mes "You turn the key left."; - close; + set TMW_Quest, 34; + mes "You turn the key left."; + close; L_Trigger_2: - mes "There is a large button on the ground. A key hole appears on the button."; - menu - "Put the key in, turn right.", L_Right_2, - "Put the key in, turn left.", L_Left_2, - "Do nothing.", L_Nothing_2; - close; + mes "There is a large button on the ground. A key hole appears on the button."; + menu + "Put the key in, turn right.", L_Right_2, + "Put the key in, turn left.", L_Left_2, + "Do nothing.", L_Nothing_2; + close; L_Right_2: - set TMW_Quest, 34; - mes "You turn the key right."; - close; + set TMW_Quest, 34; + mes "You turn the key right."; + close; L_Left_2: - set TMW_Quest, 37; - set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND; - mes "You turn the key left. A clicking sound echoes throughout the mine, followed by a loud thump."; - close; + set TMW_Quest, 37; + set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND; + mes "You turn the key left. A clicking sound echoes throughout the mine, followed by a loud thump."; + close; L_Nothing_2: - mes "You leave the button alone."; - close; - + mes "You leave the button alone."; + close; } diff --git a/world/map/npc/002-3/naem.txt b/world/map/npc/002-3/naem.txt index 5f0f9bd6..d5ddbd2b 100644 --- a/world/map/npc/002-3/naem.txt +++ b/world/map/npc/002-3/naem.txt @@ -1,132 +1,131 @@ // -002-3.gat,85,97,6 script Naem 109,{ - - if (FLAGS & FLAG_GOT_NAEM_GLOVES) goto L_Naem_Complete; - if (FLAGS & FLAG_OPENED_UNDERGROUND) goto L_Naem_Gloves; - if (TMW_Quest == 34) goto L_Naem_Code; - if (TMW_Quest == 33) goto L_Naem_Lt; - if (TMW_Quest == 32) goto L_Naem_Memory; - if (TMW_Quest > 29) && (TMW_Quest < 31)goto L_Naem_Great; - if (TMW_Quest == 29) goto L_Naem_Waits_3; - if (TMW_Quest == 28) goto L_Naem_Help_3; - if (TMW_Quest == 27) goto L_Naem_Waits_2; - if (TMW_Quest == 26) goto L_Naem_Help_2; - if (TMW_Quest == 25) goto L_Naem_Waits_1; - if (TMW_Quest == 24) goto L_Naem_Help_1; - if (TMW_Quest == 22) goto L_Naem_Cool; - if (TMW_Quest == 21) goto L_Naem_Okay; - - mes "[Naem]"; - mes "\"I'm just mining away here. Lots of work to do.\""; - close; +002-3.gat,85,97,6|script|Naem|109,{ + + if (FLAGS & FLAG_GOT_NAEM_GLOVES) goto L_Naem_Complete; + if (FLAGS & FLAG_OPENED_UNDERGROUND) goto L_Naem_Gloves; + if (TMW_Quest == 34) goto L_Naem_Code; + if (TMW_Quest == 33) goto L_Naem_Lt; + if (TMW_Quest == 32) goto L_Naem_Memory; + if (TMW_Quest > 29) && (TMW_Quest < 31)goto L_Naem_Great; + if (TMW_Quest == 29) goto L_Naem_Waits_3; + if (TMW_Quest == 28) goto L_Naem_Help_3; + if (TMW_Quest == 27) goto L_Naem_Waits_2; + if (TMW_Quest == 26) goto L_Naem_Help_2; + if (TMW_Quest == 25) goto L_Naem_Waits_1; + if (TMW_Quest == 24) goto L_Naem_Help_1; + if (TMW_Quest == 22) goto L_Naem_Cool; + if (TMW_Quest == 21) goto L_Naem_Okay; + + mes "[Naem]"; + mes "\"I'm just mining away here. Lots of work to do.\""; + close; L_Naem_Okay: - set TMW_Quest, 22; - mes "[Naem]"; - mes "\"Oh, hello there. Nickos wanted you to check on me? Yeah, you can tell him I'm okay.\""; - close; + set TMW_Quest, 22; + mes "[Naem]"; + mes "\"Oh, hello there. Nickos wanted you to check on me? Yeah, you can tell him I'm okay.\""; + close; L_Naem_Cool: - mes "[Naem]"; - mes "\"Yeah, I'm cool. Just mining away here.\""; - close; + mes "[Naem]"; + mes "\"Yeah, I'm cool. Just mining away here.\""; + close; L_Naem_Help_1: - set TMW_Quest, 25; - mes "[Naem]"; - mes "\"Oh, you are here to help move my bags? Cool, I've got a few ready to go. Go ahead and take this one!\""; - next; - mes "Naem hands you a bag of ore."; - next; - mes "[Naem]"; - mes "\"After you deliver that one to Nathan, come on back, I've got a couple more ready to go.\""; - close; + set TMW_Quest, 25; + mes "[Naem]"; + mes "\"Oh, you are here to help move my bags? Cool, I've got a few ready to go. Go ahead and take this one!\""; + next; + mes "Naem hands you a bag of ore."; + next; + mes "[Naem]"; + mes "\"After you deliver that one to Nathan, come on back, I've got a couple more ready to go.\""; + close; L_Naem_Waits_1: - mes "[Naem]"; - mes "\"After you deliver that bag of ore to Nathan, come on back, I've got a couple more ready to go.\""; - close; + mes "[Naem]"; + mes "\"After you deliver that bag of ore to Nathan, come on back, I've got a couple more ready to go.\""; + close; L_Naem_Help_2: - set TMW_Quest, 27; - mes "Naem gives you a bag of ore."; - next; - mes "[Naem]"; - mes "\"Just one more after this one and we'll be all caught up!\""; - close; + set TMW_Quest, 27; + mes "Naem gives you a bag of ore."; + next; + mes "[Naem]"; + mes "\"Just one more after this one and we'll be all caught up!\""; + close; L_Naem_Waits_2: - mes "[Naem]"; - mes "\"Just one more bag of ore after the one you got and we'll be all caught up!\""; - close; + mes "[Naem]"; + mes "\"Just one more bag of ore after the one you got and we'll be all caught up!\""; + close; L_Naem_Help_3: - set TMW_Quest, 29; - mes "[Naem]"; - mes "Hands a bag of ore to you."; - next; - mes "\"Last one!\""; - close; + set TMW_Quest, 29; + mes "[Naem]"; + mes "Hands a bag of ore to you."; + next; + mes "\"Last one!\""; + close; L_Naem_Waits_3: - mes "[Naem]"; - mes "\"You got my last sack already. Just give it to Nathan and we'll have caught up.\""; - close; + mes "[Naem]"; + mes "\"You got my last sack already. Just give it to Nathan and we'll have caught up.\""; + close; L_Naem_Great: - mes "[Naem]"; - mes "\"Hi ho! It's off to work I go! I work every day for meager pay, a miner's life for me...\""; - close; + mes "[Naem]"; + mes "\"Hi ho! It's off to work I go! I work every day for meager pay, a miner's life for me...\""; + close; L_Naem_Memory: - mes "You see Naem grimacing in pain as you approach."; - next; - mes "[Naem]"; - mes "\"Oh, my head! Some rocks fell on me and bonked me pretty good. I'm still a little sore.\""; - menu - "Don't you have a key so I can go to the underground palace?", L_Naem_Palace_No, - "You should be more careful.", L_Naem_Duh; - close; + mes "You see Naem grimacing in pain as you approach."; + next; + mes "[Naem]"; + mes "\"Oh, my head! Some rocks fell on me and bonked me pretty good. I'm still a little sore.\""; + menu + "Don't you have a key so I can go to the underground palace?", L_Naem_Palace_No, + "You should be more careful.", L_Naem_Duh; + close; L_Naem_Duh: - mes "[Naem]"; - mes "\"I guess I should...\""; - close; + mes "[Naem]"; + mes "\"I guess I should...\""; + close; L_Naem_Palace_No: - set TMW_Quest, 33; - mes "[Naem]"; - mes "\"Oh no! I lost the key! Don't worry though, talk to Lieutenant Dausen about getting the spare key.\""; - close; + set TMW_Quest, 33; + mes "[Naem]"; + mes "\"Oh no! I lost the key! Don't worry though, talk to Lieutenant Dausen about getting the spare key.\""; + close; L_Naem_Lt: - mes "[Naem]"; - mes "\"I hurt my head pretty bad. I also lost my key. If you want to get into the underground palace, you'll have to talk to Lieutenant Dausen about getting the spare.\""; - close; + mes "[Naem]"; + mes "\"I hurt my head pretty bad. I also lost my key. If you want to get into the underground palace, you'll have to talk to Lieutenant Dausen about getting the spare.\""; + close; L_Naem_Code: - mes "[Naem]"; - mes "\"Oh, you got the key. That is good! But my head still hurts... All I remember about the code is you have to put the key into the key hole buttons around the mine in a certain order and turn them in a certain order and it will unlock the underground palace. Sorry, that's all I have for you. Good luck!\""; - close; + mes "[Naem]"; + mes "\"Oh, you got the key. That is good! But my head still hurts... All I remember about the code is you have to put the key into the key hole buttons around the mine in a certain order and turn them in a certain order and it will unlock the underground palace. Sorry, that's all I have for you. Good luck!\""; + close; L_Naem_Gloves: - getinventorylist; - if (@inventorylist_count == 100) goto L_Nathan_TooMany; - set FLAGS, FLAGS | FLAG_GOT_NAEM_GLOVES; - getitem "MinerGloves", 1; - mes "[Naem]"; - mes "\"Hey, good job on getting that together! Take these gloves, they might prove useful in the underground palace.\""; - close; + getinventorylist; + if (@inventorylist_count == 100) goto L_Nathan_TooMany; + set FLAGS, FLAGS | FLAG_GOT_NAEM_GLOVES; + getitem "MinerGloves", 1; + mes "[Naem]"; + mes "\"Hey, good job on getting that together! Take these gloves, they might prove useful in the underground palace.\""; + close; L_Naem_TooMany: - mes "[Naem]"; - mes "\"You have too many items for me to give you a reward.\""; - close; + mes "[Naem]"; + mes "\"You have too many items for me to give you a reward.\""; + close; L_Naem_Complete: - mes "[Naem]"; - mes "\"Yo-ho-ho, a miner's life for me!\""; - close; - + mes "[Naem]"; + mes "\"Yo-ho-ho, a miner's life for me!\""; + close; } diff --git a/world/map/npc/002-3/nathan.txt b/world/map/npc/002-3/nathan.txt index 6eb56875..7a6b5fd5 100644 --- a/world/map/npc/002-3/nathan.txt +++ b/world/map/npc/002-3/nathan.txt @@ -1,104 +1,102 @@ // -002-3.gat,35,35,6 script Nathan 109,{ - - if (TMW_Quest >= 32) goto L_Nathan_Complete; - if (TMW_Quest == 31) goto L_Nathan_UGQ_Naem; - if (TMW_Quest == 30) goto L_Nathan_Help_Cool; - if (TMW_Quest == 29) goto L_Nathan_Help_Done; - if (TMW_Quest == 28) goto L_Nathan_Waits_3; - if (TMW_Quest == 27) goto L_Nathan_Help_3; - if (TMW_Quest == 26) goto L_Nathan_Waits_2; - if (TMW_Quest == 25) goto L_Nathan_Help_2; - if (TMW_Quest == 24) goto L_Nathan_Waits_1; - if (TMW_Quest == 23) goto L_Nathan_Help_1; - if (TMW_Quest == 21) goto L_Nathan_Cool; - if (TMW_Quest == 20) goto L_Nathan_Okay; - - - mes "[Nathan the Miner]"; - mes "\"It's very dangerous in here. We had a big earthquake here just recently, too... so be careful!\""; - close; +002-3.gat,35,35,6|script|Nathan|109,{ + + if (TMW_Quest >= 32) goto L_Nathan_Complete; + if (TMW_Quest == 31) goto L_Nathan_UGQ_Naem; + if (TMW_Quest == 30) goto L_Nathan_Help_Cool; + if (TMW_Quest == 29) goto L_Nathan_Help_Done; + if (TMW_Quest == 28) goto L_Nathan_Waits_3; + if (TMW_Quest == 27) goto L_Nathan_Help_3; + if (TMW_Quest == 26) goto L_Nathan_Waits_2; + if (TMW_Quest == 25) goto L_Nathan_Help_2; + if (TMW_Quest == 24) goto L_Nathan_Waits_1; + if (TMW_Quest == 23) goto L_Nathan_Help_1; + if (TMW_Quest == 21) goto L_Nathan_Cool; + if (TMW_Quest == 20) goto L_Nathan_Okay; + + mes "[Nathan the Miner]"; + mes "\"It's very dangerous in here. We had a big earthquake here just recently, too... so be careful!\""; + close; L_Nathan_Okay: - set TMW_Quest, 21; - mes "[Nathan]"; - mes "\"Hey there! Just mining away down here. You say Nickos was worried about us? Nothing down here we can't handle, but you should try to be safe down here yourself. The monsters can be rather aggressive. Come to think of it, you might want to check on Naem to make sure he's okay. You can find him in the southeast parts of the mine.\""; - close; + set TMW_Quest, 21; + mes "[Nathan]"; + mes "\"Hey there! Just mining away down here. You say Nickos was worried about us? Nothing down here we can't handle, but you should try to be safe down here yourself. The monsters can be rather aggressive. Come to think of it, you might want to check on Naem to make sure he's okay. You can find him in the southeast parts of the mine.\""; + close; L_Nathan_Cool: - mes "[Nathan]"; - mes "\"Hey, be careful down here, the monsters can be rather aggressive! You might want to check on Naem too. He's at the southeast parts of the mine.\""; - close; + mes "[Nathan]"; + mes "\"Hey, be careful down here, the monsters can be rather aggressive! You might want to check on Naem too. He's at the southeast parts of the mine.\""; + close; L_Nathan_Help_1: - set TMW_Quest, 24; - mes "[Nathan]"; - mes "\"Oh, hey again! Nickos told you we need some help down here too? Yeah, Naem could use a spare pair of hands moving his bags of ore to me. He's got a lot of work built up. Just go talk to him and he'll give you the bags. You might have to make a few trips, but I'll make it worth your troubles.\""; - close; + set TMW_Quest, 24; + mes "[Nathan]"; + mes "\"Oh, hey again! Nickos told you we need some help down here too? Yeah, Naem could use a spare pair of hands moving his bags of ore to me. He's got a lot of work built up. Just go talk to him and he'll give you the bags. You might have to make a few trips, but I'll make it worth your troubles.\""; + close; L_Nathan_Waits_1: - mes "[Nathan]"; - mes "\"Naem could use some help moving his bags of ore to me. He's got a lot of work built up. Just go talk to him and he'll give you the bags. You might have to make a few trips, but I'll make it worth your troubles.\""; - close; + mes "[Nathan]"; + mes "\"Naem could use some help moving his bags of ore to me. He's got a lot of work built up. Just go talk to him and he'll give you the bags. You might have to make a few trips, but I'll make it worth your troubles.\""; + close; L_Nathan_Help_2: - set TMW_Quest, 26; - mes "You give the bag of ore to Nathan"; - next; - mes "[Nathan]"; - mes "\"Ah, thank you. Just a couple more and we'll have caught up!\""; - close; + set TMW_Quest, 26; + mes "You give the bag of ore to Nathan"; + next; + mes "[Nathan]"; + mes "\"Ah, thank you. Just a couple more and we'll have caught up!\""; + close; L_Nathan_Waits_2: - mes "[Nathan]"; - mes "\"Just a couple more and we'll be all caught up!\""; - close; + mes "[Nathan]"; + mes "\"Just a couple more and we'll be all caught up!\""; + close; L_Nathan_Help_3: - set TMW_Quest, 28; - mes "You hand the bag of ore to Nathan."; - next; - mes "[Nathan]"; - mes "\"Just one more bag and you'll be done!\""; - close; + set TMW_Quest, 28; + mes "You hand the bag of ore to Nathan."; + next; + mes "[Nathan]"; + mes "\"Just one more bag and you'll be done!\""; + close; L_Nathan_Waits_3: - mes "[Nathan]"; - mes "\"Just get one more bag of ore from Naem and bring it to me and you'll be done.\""; - close; + mes "[Nathan]"; + mes "\"Just get one more bag of ore from Naem and bring it to me and you'll be done.\""; + close; L_Nathan_Help_Done: - getinventorylist; - if (@inventorylist_count == 100) goto L_Nathan_TooMany; - set TMW_Quest, 30; - getitem "MinersHat", 1; - mes "[Nathan]"; - mes "You hand the bag of ore to Nathan."; - next; - mes "\"Ah, that should be it! Thank you for your help. Here, take this Miner's Hat. You're a real miner now!\""; - next; - mes "\"Oh, and I noticed a problem with these angry scorpions down here, they seem to make things much more difficult. Maybe you could tell Nickos about it on your way out?\""; - close; + getinventorylist; + if (@inventorylist_count == 100) goto L_Nathan_TooMany; + set TMW_Quest, 30; + getitem "MinersHat", 1; + mes "[Nathan]"; + mes "You hand the bag of ore to Nathan."; + next; + mes "\"Ah, that should be it! Thank you for your help. Here, take this Miner's Hat. You're a real miner now!\""; + next; + mes "\"Oh, and I noticed a problem with these angry scorpions down here, they seem to make things much more difficult. Maybe you could tell Nickos about it on your way out?\""; + close; L_Nathan_TooMany: - mes "[Nathan]"; - mes "\"You have too many items for me to give you a reward.\""; - close; + mes "[Nathan]"; + mes "\"You have too many items for me to give you a reward.\""; + close; L_Nathan_Help_Cool: - mes "[Nathan]"; - mes "\"Be safe down here, it's dangerous for the unexperienced. Mining is a dangerous job, but somebody's got to do it!\""; - close; + mes "[Nathan]"; + mes "\"Be safe down here, it's dangerous for the unexperienced. Mining is a dangerous job, but somebody's got to do it!\""; + close; L_Nathan_UGQ_Naem: - mes "[Nathan]"; - mes "\"Thanks for thinning down the angry scorpion population. It sure has made mining a little easier down here! Oh, you say Nickos has given you permission to check out the underground palace? Talk to Naem, he's got the key and the code.\""; - close; + mes "[Nathan]"; + mes "\"Thanks for thinning down the angry scorpion population. It sure has made mining a little easier down here! Oh, you say Nickos has given you permission to check out the underground palace? Talk to Naem, he's got the key and the code.\""; + close; L_Nathan_Complete: - mes "[Nathan]"; - mes "\"Mining is a dangerous job, but somebody's got to do it!\""; - close; - + mes "[Nathan]"; + mes "\"Mining is a dangerous job, but somebody's got to do it!\""; + close; } diff --git a/world/map/npc/002-3/underground_palace_barrier.txt b/world/map/npc/002-3/underground_palace_barrier.txt index 34eeaf57..4e6e369f 100644 --- a/world/map/npc/002-3/underground_palace_barrier.txt +++ b/world/map/npc/002-3/underground_palace_barrier.txt @@ -1,14 +1,12 @@ //underground palace barrier -002-3.gat,68,98,0 script #UGP_Barrier 127,0,0,{ - - if (TMW_Quest >= 37) goto L_Underground_Palace_Barrier_Open; - message strcharinfo(0), "Some force seems to block your entrance."; - end; +002-3.gat,68,98,0|script|#UGP_Barrier|127,0,0,{ + if (TMW_Quest >= 37) goto L_Underground_Palace_Barrier_Open; + message strcharinfo(0), "Some force seems to block your entrance."; + end; L_Underground_Palace_Barrier_Open: - warp "002-4.gat",34,98; - end; - + warp "002-4.gat",34,98; + end; } diff --git a/world/map/npc/002-4/chest.txt b/world/map/npc/002-4/chest.txt index 542ce345..f61ee889 100644 --- a/world/map/npc/002-4/chest.txt +++ b/world/map/npc/002-4/chest.txt @@ -1,36 +1,36 @@ // -002-4.gat,93,37,0 script Treasure 111,{ +002-4.gat,93,37,0|script|Treasure|111,{ - if (TMW_Quest >= 38) goto L_Finished; + if (TMW_Quest >= 38) goto L_Finished; - mes "There is a chest here."; - mes "Do you want to try to open it?"; - next; - menu - "Yes.", L_Yes, - "No.", -; - close; + mes "There is a chest here."; + mes "Do you want to try to open it?"; + next; + menu + "Yes.", L_Yes, + "No.", -; + close; L_Yes: - if(countitem("TreasureKey") < 3) goto L_Not_Enough; - getinventorylist; - if (@inventorylist_count == 100 && countitem("TreasureKey") > 3) goto L_TooMany; - mes "You opened the chest and found a short bow!"; - delitem "TreasureKey", 3; - getitem "ShortBow", 1; - set TMW_Quest, 38; - close; + if(countitem("TreasureKey") < 3) goto L_Not_Enough; + getinventorylist; + if (@inventorylist_count == 100 && countitem("TreasureKey") > 3) goto L_TooMany; + mes "You opened the chest and found a short bow!"; + delitem "TreasureKey", 3; + getitem "ShortBow", 1; + set TMW_Quest, 38; + close; L_Not_Enough: - mes "It seems that you do not have the right key for this chest yet..."; - close; + mes "It seems that you do not have the right key for this chest yet..."; + close; L_Finished: - mes "You have already opened this chest."; - close; + mes "You have already opened this chest."; + close; L_TooMany: - mes "You do not have enough room to loot this chest. Maybe you should try again later."; - close; + mes "You do not have enough room to loot this chest. Maybe you should try again later."; + close; } diff --git a/world/map/npc/002-4/miners.txt b/world/map/npc/002-4/miners.txt index 6e71461d..74bedfe6 100644 --- a/world/map/npc/002-4/miners.txt +++ b/world/map/npc/002-4/miners.txt @@ -1,60 +1,59 @@ // -002-4.gat,32,94,6 script Sema 109,{ +002-4.gat,32,94,6|script|Sema|109,{ - if (TMW_Quest >= 40) goto L_Sema_Done; - if (TMW_Quest == 39) goto L_Sema_Happy; - if (TMW_Quest == 38) goto L_Sema_GCM; + if (TMW_Quest >= 40) goto L_Sema_Done; + if (TMW_Quest == 39) goto L_Sema_Happy; + if (TMW_Quest == 38) goto L_Sema_GCM; - mes "[Sema the Miner]"; - mes "\"This place is odd. There is a chest somewhere in this palace, but I don't know where. I think the archants have eaten all the spare keys for the chest, too.\""; - close; + mes "[Sema the Miner]"; + mes "\"This place is odd. There is a chest somewhere in this palace, but I don't know where. I think the archants have eaten all the spare keys for the chest, too.\""; + close; L_Sema_GCM: - mes "[Sema the Miner]"; - mes "\"I saw a giant cave maggot eat one of the other miners and it might eat me! Can you kill it?\""; - menu - "Yes.", L_Sema_Yes, - "No.", L_Sema_No; - close; + mes "[Sema the Miner]"; + mes "\"I saw a giant cave maggot eat one of the other miners and it might eat me! Can you kill it?\""; + menu + "Yes.", L_Sema_Yes, + "No.", L_Sema_No; + close; L_Sema_No: - mes "[Sema the Miner]"; - mes "\"Ahh! I am very scared now!\""; - close; + mes "[Sema the Miner]"; + mes "\"Ahh! I am very scared now!\""; + close; L_Sema_Yes: - set TMW_Quest, 39; - monster "002-4.gat", 70, 90, "", 1059, 1; - mes "[Sema the Miner]"; - mes "\"Good luck. To prove you killed it, please bring the Iten it swallowed when it ate the miner. Be careful, there could be more than one.\""; - close; + set TMW_Quest, 39; + monster "002-4.gat", 70, 90, "", 1059, 1; + mes "[Sema the Miner]"; + mes "\"Good luck. To prove you killed it, please bring the Iten it swallowed when it ate the miner. Be careful, there could be more than one.\""; + close; L_Sema_Happy: - if (countitem ("Iten") < 1) goto L_Sema_Not_Happy; - getinventorylist; - if (@inventorylist_count - (countitem ("Iten") == 1) > 99) goto L_Sema_TooMany; - delitem "Iten", 1; - getitem "DesertShirt", 1; - set TMW_Quest, 40; - mes "[Sema the Miner]"; - mes "\"You killed it! What a relief! Please accept this Desert Shirt as reward.\""; - close; + if (countitem ("Iten") < 1) goto L_Sema_Not_Happy; + getinventorylist; + if (@inventorylist_count - (countitem ("Iten") == 1) > 99) goto L_Sema_TooMany; + delitem "Iten", 1; + getitem "DesertShirt", 1; + set TMW_Quest, 40; + mes "[Sema the Miner]"; + mes "\"You killed it! What a relief! Please accept this Desert Shirt as reward.\""; + close; L_Sema_TooMany: - mes "[Sema the Miner]"; - mes "\"You have too many items for me to give you a reward. Please drop or sell something so I can give it to you.\""; - close; + mes "[Sema the Miner]"; + mes "\"You have too many items for me to give you a reward. Please drop or sell something so I can give it to you.\""; + close; L_Sema_Not_Happy: - set TMW_Quest, 38; - itemheal -Hp, 0; - mes "A stone falls on your head."; - close; + set TMW_Quest, 38; + itemheal -Hp, 0; + mes "A stone falls on your head."; + close; L_Sema_Done: - mes "[Sema the Miner]"; - mes "\"Thank you for all your help.\""; - close; - + mes "[Sema the Miner]"; + mes "\"Thank you for all your help.\""; + close; } diff --git a/world/map/npc/003-1/stranger.txt b/world/map/npc/003-1/stranger.txt index 37ecc4ab..09c81f36 100644 --- a/world/map/npc/003-1/stranger.txt +++ b/world/map/npc/003-1/stranger.txt @@ -1,520 +1,528 @@ -003-1.gat,35,25,0 script Stranger 192, { - - set @month, 5; - set @start_day, 18; - set @end_day, 25; - set @IRONINGOT, 5; - set @PINKANTENNA, 21; - set @EXP, 20000; - - if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done; - if (gettime(6) != @month) goto L_No_Event; - if (gettime(5) < @start_day) goto L_No_Event; - if (gettime(5) > @end_day) goto L_No_Event; - if ((gettimetick(2)-TUT_var < 6*7*86400) || (baselevel < 42 )) //player must be created at least 6 weeks ago and at least level 42 - goto L_No_Event; - if (FLAGS & FLAG_TOWEL_HELPED) goto L_Towel; - - mes "[Stranger]"; - mes "\"Hello, hello! It's great to see you. Maybe you can help me with a little problem I have.\""; - next; - mes "\"I need some materials to repair my spacesh- ahm, it's not important why I need it.\""; - next; - mes "\"Anyway, I'd be really happy if you can give me " + @IRONINGOT + " Iron Ingots and " + @PINKANTENNA + " Pink Antennas.\""; - next; - mes "\"Do you have that for me?\""; - menu - "Yeah, sure.",L_Items, - "No.",L_Close; - close; +003-1.gat,35,25,0|script|Stranger|192, { + + set @month, 5; + set @start_day, 18; + set @end_day, 25; + set @IRONINGOT, 5; + set @PINKANTENNA, 21; + set @EXP, 20000; + + if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done; + if (gettime(6) != @month) goto L_No_Event; + if (gettime(5) < @start_day) goto L_No_Event; + if (gettime(5) > @end_day) goto L_No_Event; + if ((gettimetick(2)-TUT_var < 6*7*86400) || (baselevel < 42 )) //player must be created at least 6 weeks ago and at least level 42 + goto L_No_Event; + if (FLAGS & FLAG_TOWEL_HELPED) goto L_Towel; + + mes "[Stranger]"; + mes "\"Hello, hello! It's great to see you. Maybe you can help me with a little problem I have.\""; + next; + mes "\"I need some materials to repair my spacesh- ahm, it's not important why I need it.\""; + next; + mes "\"Anyway, I'd be really happy if you can give me " + @IRONINGOT + " Iron Ingots and " + @PINKANTENNA + " Pink Antennas.\""; + next; + mes "\"Do you have that for me?\""; + menu + "Yeah, sure.",L_Items, + "No.",L_Close; + close; L_Items: - if (countitem("IngotIron") < @IRONINGOT) goto L_No_Item; - if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item; - delitem "IngotIron", @IRONINGOT; - delitem "PinkAntenna", @PINKANTENNA; - getexp @EXP, 0; - set FLAGS, FLAGS | FLAG_TOWEL_HELPED; - - mes "[Stranger]"; - mes "\"Great! Thank you!\""; - next; - mes "\"I have a lot of work to do now. But before you leave...\""; - next; + if (countitem("IngotIron") < @IRONINGOT) goto L_No_Item; + if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item; + delitem "IngotIron", @IRONINGOT; + delitem "PinkAntenna", @PINKANTENNA; + getexp @EXP, 0; + set FLAGS, FLAGS | FLAG_TOWEL_HELPED; + + mes "[Stranger]"; + mes "\"Great! Thank you!\""; + next; + mes "\"I have a lot of work to do now. But before you leave...\""; + next; L_Towel: - getinventorylist; - if (@inventorylist_count == 100) goto L_Full_Inv; - mes "[Stranger]"; - mes "\"On May 25th it is a very special day - Towel Day.\""; - next; - mes "\"To celebrate this I'll ask you some questions about my favourite book, The Hitchhiker's Guide to the Galaxy. If you can answer them, I'll give you something very useful.\""; - next; - mes ""; - mes "[Server]"; - mes "The answers might need to have whitespaces."; - mes "If you're using a client which confirms your answer when pressing space, change this setting before continuing."; - mes ""; - next; - mes "[Stranger]"; - mes "\"The first one is easy.\""; - next; - - setarray @easy_questions$, - "What two words are written in big friendly letters on the back cover?", - "What's the name of the paranoid robot?", - "What is the answer to life, the universe and everything?", - "What is the first name of the author of the hitchhikers guide?", - "What is the last name of the author of the hitchhikers guide?", - "Who is the male human protagonist?", - "Who is the female human protagonist?", - "According to the Guide, space is ____?", - "What is the name of the spaceship which was stolen by the president of the universe?", - "How many heads does Zaphod Beeblebrox have?"; - - setarray @easy_answers_amount,2,2,2,2,2,4,4,2,4,2; - - set @random, rand(10); - mes "\"" + @easy_questions$[@random] + "\""; - input @answer$; - - if (@easy_answers_amount[@random] < 4) - goto L_Easy_Skip4; - set @quizparam$, "towelanswer0" + @random + "d"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Easy; + getinventorylist; + if (@inventorylist_count == 100) goto L_Full_Inv; + mes "[Stranger]"; + mes "\"On May 25th it is a very special day - Towel Day.\""; + next; + mes "\"To celebrate this I'll ask you some questions about my favourite book, The Hitchhiker's Guide to the Galaxy. If you can answer them, I'll give you something very useful.\""; + next; + mes ""; + mes "[Server]"; + mes "The answers might need to have whitespaces."; + mes "If you're using a client which confirms your answer when pressing space, change this setting before continuing."; + mes ""; + next; + mes "[Stranger]"; + mes "\"The first one is easy.\""; + next; + + setarray @easy_questions$, + "What two words are written in big friendly letters on the back cover?", + "What's the name of the paranoid robot?", + "What is the answer to life, the universe and everything?", + "What is the first name of the author of the hitchhikers guide?", + "What is the last name of the author of the hitchhikers guide?", + "Who is the male human protagonist?", + "Who is the female human protagonist?", + "According to the Guide, space is ____?", + "What is the name of the spaceship which was stolen by the president of the universe?", + "How many heads does Zaphod Beeblebrox have?"; + + setarray @easy_answers_amount,2,2,2,2,2,4,4,2,4,2; + + set @random, rand(10); + mes "\"" + @easy_questions$[@random] + "\""; + input @answer$; + + if (@easy_answers_amount[@random] < 4) + goto L_Easy_Skip4; + set @quizparam$, "towelanswer0" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + L_Easy_Skip4: - if (@easy_answers_amount[@random] < 3) - goto L_Easy_Skip3; - set @quizparam$, "towelanswer0" + @random + "c"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Easy; + if (@easy_answers_amount[@random] < 3) + goto L_Easy_Skip3; + set @quizparam$, "towelanswer0" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; + L_Easy_Skip3: - set @quizparam$, "towelanswer0" + @random + "b"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Easy; + set @quizparam$, "towelanswer0" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; - set @quizparam$, "towelanswer0" + @random + "a"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Easy; + set @quizparam$, "towelanswer0" + @random + "a"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Easy; - goto L_Wrong_Answer; + goto L_Wrong_Answer; L_Right_Answer_Easy: - mes "[Stranger]"; - mes "\"You're absolutely right. The next one will be more tricky.\""; - next; - - setarray @medium_questions$, - "What is the name of the rock group claiming to be the loudest band in the universe?", - "What star is near Ford's home planet?", - "Which country does the human protagonist come from?", - "What is the name of the computer on The Heart of Gold?", - "What color is a Babel Fish?", - "What did the bowl of petunias think?", - "What body orifice should a babel fish be inserted in to work properly?", - "What is the name of the super computer?", - "What were the second most intelligent creatures on Earth?", - "What race creates the worst poetry in universe?", - "What is the name of the Vogon home planet?", - "What is the name of the Restaurant at the End of the Universe?"; - - setarray @medium_answers_amount,2,2,2,2,2,3,2,2,4,4,2,2; - - set @random, rand(12); - mes "\"" + @medium_questions$[@random] + "\""; - input @answer$; - - if (@medium_answers_amount[@random] < 4) - goto L_Medium_Skip4; - - set @quizparam$, "towelanswer1" + @random + "d"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Medium; + mes "[Stranger]"; + mes "\"You're absolutely right. The next one will be more tricky.\""; + next; + + setarray @medium_questions$, + "What is the name of the rock group claiming to be the loudest band in the universe?", + "What star is near Ford's home planet?", + "Which country does the human protagonist come from?", + "What is the name of the computer on The Heart of Gold?", + "What color is a Babel Fish?", + "What did the bowl of petunias think?", + "What body orifice should a babel fish be inserted in to work properly?", + "What is the name of the super computer?", + "What were the second most intelligent creatures on Earth?", + "What race creates the worst poetry in universe?", + "What is the name of the Vogon home planet?", + "What is the name of the Restaurant at the End of the Universe?"; + + setarray @medium_answers_amount,2,2,2,2,2,3,2,2,4,4,2,2; + + set @random, rand(12); + mes "\"" + @medium_questions$[@random] + "\""; + input @answer$; + + if (@medium_answers_amount[@random] < 4) + goto L_Medium_Skip4; + + set @quizparam$, "towelanswer1" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + L_Medium_Skip4: - if (@medium_answers_amount[@random] < 3) - goto L_Medium_Skip3; - set @quizparam$, "towelanswer1" + @random + "c"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Medium; + if (@medium_answers_amount[@random] < 3) + goto L_Medium_Skip3; + set @quizparam$, "towelanswer1" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; + L_Medium_Skip3: - set @quizparam$, "towelanswer1" + @random + "b"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Medium; + set @quizparam$, "towelanswer1" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; - set @quizparam$, "towelanswer1" + @random + "a"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Medium; + set @quizparam$, "towelanswer1" + @random + "a"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Medium; - goto L_Wrong_Answer; + goto L_Wrong_Answer; L_Right_Answer_Medium: - mes "[Stranger]"; - mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\""; - next; - - setarray @hard_questions$, - "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?", - "How many beers should you drink before hitchhiking?", - "What initials are carved into Zaphod Beeblebrox's brain?", - "What is Ford Prefect's nickname?", - "Who is responsible for the fjords of Norway?", - "What game is played on earth as a relict of memories to an ancient war?", - "What is the name of the triple-breasted whore from Eroticon VI?", - "Who will insult every living being in the universe, because he is immortal and getting bored?", - "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?"; - - setarray @hard_answers_amount,4,2,2,2,2,2,2,4,2; - - set @random, rand(9); - mes "\"" + @hard_questions$[@random] + "\""; - input @answer$; - - if (@hard_answers_amount[@random] < 4) - goto L_Hard_Skip4; - set @quizparam$, "towelanswer2" + @random + "d"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Hard; + mes "[Stranger]"; + mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\""; + next; + + setarray @hard_questions$, + "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?", + "How many beers should you drink before hitchhiking?", + "What initials are carved into Zaphod Beeblebrox's brain?", + "What is Ford Prefect's nickname?", + "Who is responsible for the fjords of Norway?", + "What game is played on earth as a relict of memories to an ancient war?", + "What is the name of the triple-breasted whore from Eroticon VI?", + "Who will insult every living being in the universe, because he is immortal and getting bored?", + "What is the name of the piteous creature that is continually reincarnated and subsequently killed, each time unknowingly, by Arthur Dent?"; + + setarray @hard_answers_amount,4,2,2,2,2,2,2,4,2; + + set @random, rand(9); + mes "\"" + @hard_questions$[@random] + "\""; + input @answer$; + + if (@hard_answers_amount[@random] < 4) + goto L_Hard_Skip4; + set @quizparam$, "towelanswer2" + @random + "d"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + L_Hard_Skip4: - if (@hard_answers_amount[@random] < 3) - goto L_Hard_Skip3; - set @quizparam$, "towelanswer2" + @random + "c"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Hard; + if (@hard_answers_amount[@random] < 3) + goto L_Hard_Skip3; + set @quizparam$, "towelanswer2" + @random + "c"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; + L_Hard_Skip3: - set @quizparam$, "towelanswer2" + @random + "b"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Hard; + set @quizparam$, "towelanswer2" + @random + "b"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; - set @quizparam$, "towelanswer2" + @random + "a"; - callfunc "StrangerQuiz"; - if (("###" + @answer$ == @quizanswer$)) - goto L_Right_Answer_Hard; + set @quizparam$, "towelanswer2" + @random + "a"; + callfunc "StrangerQuiz"; + if (("###" + @answer$ == @quizanswer$)) + goto L_Right_Answer_Hard; - goto L_Wrong_Answer; + goto L_Wrong_Answer; L_Right_Answer_Hard: - mes "[Stranger]"; - mes "\"Unbelievable! You're really a wise person.\""; - next; - mes "\"One last question, but this shouldn't be a problem for you.\""; - next; - mes "\"What is the most important item for every hitchhiker to have?\""; - input @answer$; - if (@answer$ != "Towel" && @answer != "towel") - goto L_Wrong_Answer; - - mes "[Stranger]"; - mes "\"There you are! A towel is really the most important item for a hitchhiker to have.\""; - next; - mes "\"Please take this.\""; // no full inventory check, this is done before the game - getitem "GreyWarpTowel", 1; - set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED; - next; + mes "[Stranger]"; + mes "\"Unbelievable! You're really a wise person.\""; + next; + mes "\"One last question, but this shouldn't be a problem for you.\""; + next; + mes "\"What is the most important item for every hitchhiker to have?\""; + input @answer$; + if (@answer$ != "Towel" && @answer != "towel") + goto L_Wrong_Answer; + + mes "[Stranger]"; + mes "\"There you are! A towel is really the most important item for a hitchhiker to have.\""; + next; + mes "\"Please take this.\""; // no full inventory check, this is done before the game + getitem "GreyWarpTowel", 1; + set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED; + next; + L_Explain: - mes "[Stranger]"; - mes "\"This towel is even more useful than usual towels are. If you change its color, it uses a special techno-, ahm, let's say, it can help you to get to other places.\""; - next; - mes "\"Bring me some powder made from gemstones and a bottle of water, and I can prepare it for you.\""; - next; - mes "\"Depending on the color it will bring you to different places. It might wear out after a while and it'll loose its color, but I can prepare it for you again.\""; - next; - mes "\"Since I'm not familar with this plane-, ahm, with this area, I can't tell which places you will end up in.\""; - close; + mes "[Stranger]"; + mes "\"This towel is even more useful than usual towels are. If you change its color, it uses a special techno-, ahm, let's say, it can help you to get to other places.\""; + next; + mes "\"Bring me some powder made from gemstones and a bottle of water, and I can prepare it for you.\""; + next; + mes "\"Depending on the color it will bring you to different places. It might wear out after a while and it'll loose its color, but I can prepare it for you again.\""; + next; + mes "\"Since I'm not familar with this plane-, ahm, with this area, I can't tell which places you will end up in.\""; + close; L_No_Event: - mes "[Stranger]"; - mes "\"Hello. Isn't this a beautiful place?\""; - next; - mes "\"And it really comes in handy that I have my towel with me. A towel is about the most massively useful thing an inte- ahm, a person can have.\""; - next; - mes "\"You can read more about that in my favourite book, 'The Hitchhiker's Guide to the Galaxy'.\""; - if (countitem("GreyWarpTowel") > 0) - menu - "Thanks for the advice.",-, - "I have my towel with me too.",L_Dye; - close; + mes "[Stranger]"; + mes "\"Hello. Isn't this a beautiful place?\""; + next; + mes "\"And it really comes in handy that I have my towel with me. A towel is about the most massively useful thing an inte- ahm, a person can have.\""; + next; + mes "\"You can read more about that in my favourite book, 'The Hitchhiker's Guide to the Galaxy'.\""; + if (countitem("GreyWarpTowel") > 0) + menu + "Thanks for the advice.",-, + "I have my towel with me too.",L_Dye; + close; L_Dye: - mes "[Stranger]"; - mes "\"Wonderful! Let me have a look.\""; - mes "He's taking a very interested look at your towel."; - next; - mes "[Stranger]"; - mes "\"I'm impressed. This is not an usual towel.\""; - next; - menu - "Oh? Can you explain about it?",L_Explain, - "I know. Could you dye it for me?",L_Dye_Towel, - "It's great, isn't it? I have to go now.",-; - close; + mes "[Stranger]"; + mes "\"Wonderful! Let me have a look.\""; + mes "He's taking a very interested look at your towel."; + next; + mes "[Stranger]"; + mes "\"I'm impressed. This is not an usual towel.\""; + next; + menu + "Oh? Can you explain about it?",L_Explain, + "I know. Could you dye it for me?",L_Dye_Towel, + "It's great, isn't it? I have to go now.",-; + close; L_No_Item: - mes "[Stranger]"; - mes "\"Hu? It seems you haven't.\""; - close; + mes "[Stranger]"; + mes "\"Hu? It seems you haven't.\""; + close; L_Wrong_Answer: - mes "[Stranger]"; - mes "\"Nah, that's wrong. Come back if you want to try again.\""; - close; + mes "[Stranger]"; + mes "\"Nah, that's wrong. Come back if you want to try again.\""; + close; L_Event_Done: - mes "[Stranger]"; - mes "\"Ah, welcome back. Thanks again for your help.\""; - next; - mes "\"Shall I dye your towel?\""; - menu - "That would be great!",-, - "No, thanks.", L_Close; + mes "[Stranger]"; + mes "\"Ah, welcome back. Thanks again for your help.\""; + next; + mes "\"Shall I dye your towel?\""; + menu + "That would be great!",-, + "No, thanks.", L_Close; + L_Dye_Towel: - mes "[Stranger]"; - mes "\"Alright, which color do you want?\""; + mes "[Stranger]"; + mes "\"Alright, which color do you want?\""; // the other colors should be added when more places are released - menu - "Red",L_Red, - "Yellow",L_Yellow, - "White",L_White, -// "Blue",L_Blue, -// "Green",L_Green, -// "Purple",L_Purple, - "Orange",L_Orange, - "Pink",L_Pink, -// "Lime",L_Lime, -// "Teal",L_Teal, - "I changed my mind.", L_Close; - close; + menu + "Red",L_Red, + "Yellow",L_Yellow, + "White",L_White, +// "Blue",L_Blue, +// "Green",L_Green, +// "Purple",L_Purple, + "Orange",L_Orange, + "Pink",L_Pink, +// "Lime",L_Lime, +// "Teal",L_Teal, + "I changed my mind.", L_Close; + close; L_Red: - mes "[Stranger]"; - mes "\"Ok, I'll need two bags of Ruby Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderRed") < 2) goto L_No_Powder; - delitem "GemPowderRed", 2; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "RedWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Ruby Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderRed") < 2) goto L_No_Powder; + delitem "GemPowderRed", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "RedWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Yellow: - mes "[Stranger]"; - mes "\"Ok, I'll need two bags of Topaz Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderYellow") < 2) goto L_No_Powder; - delitem "GemPowderYellow", 2; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "YellowWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Topaz Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderYellow") < 2) goto L_No_Powder; + delitem "GemPowderYellow", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "YellowWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_White: - mes "[Stranger]"; - mes "\"Ok, I'll need two bags of Diamond Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderWhite") < 2) goto L_No_Powder; - delitem "GemPowderWhite", 2; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "WhiteWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Diamond Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderWhite") < 2) goto L_No_Powder; + delitem "GemPowderWhite", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "WhiteWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Blue: - mes "[Stranger]"; - mes "\"Ok, I'll need two bags of Sapphire Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderBlue") < 2) goto L_No_Powder; - delitem "GemPowderBlue", 2; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "BlueWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Sapphire Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderBlue") < 2) goto L_No_Powder; + delitem "GemPowderBlue", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "BlueWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Green: - mes "[Stranger]"; - mes "\"Ok, I'll need two bags of Emerald Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderGreen") < 2) goto L_No_Powder; - delitem "GemPowderGreen", 2; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "GreenWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Emerald Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderGreen") < 2) goto L_No_Powder; + delitem "GemPowderGreen", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "GreenWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Purple: - mes "[Stranger]"; - mes "\"Ok, I'll need two bags of Amethyst Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderPurple") < 2) goto L_No_Powder; - delitem "GemPowderPurple", 2; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "PurpleWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need two bags of Amethyst Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderPurple") < 2) goto L_No_Powder; + delitem "GemPowderPurple", 2; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "PurpleWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Orange: - mes "[Stranger]"; - mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Topaz Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderRed") < 1) goto L_No_Powder; - if (countitem("GemPowderYellow") < 1) goto L_No_Powder; - delitem "GemPowderRed", 1; - delitem "GemPowderYellow", 1; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "OrangeWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Topaz Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderRed") < 1) goto L_No_Powder; + if (countitem("GemPowderYellow") < 1) goto L_No_Powder; + delitem "GemPowderRed", 1; + delitem "GemPowderYellow", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "OrangeWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Pink: - mes "[Stranger]"; - mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Diamond Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderRed") < 1) goto L_No_Powder; - if (countitem("GemPowderWhite") < 1) goto L_No_Powder; - delitem "GemPowderRed", 1; - delitem "GemPowderWhite", 1; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "PinkWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Ruby Powder, one bag of Diamond Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderRed") < 1) goto L_No_Powder; + if (countitem("GemPowderWhite") < 1) goto L_No_Powder; + delitem "GemPowderRed", 1; + delitem "GemPowderWhite", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "PinkWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Lime: - mes "[Stranger]"; - mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Topaz Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderGreen") < 1) goto L_No_Powder; - if (countitem("GemPowderYellow") < 1) goto L_No_Powder; - delitem "GemPowderGreen", 1; - delitem "GemPowderYellow", 1; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "LimeWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Topaz Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderGreen") < 1) goto L_No_Powder; + if (countitem("GemPowderYellow") < 1) goto L_No_Powder; + delitem "GemPowderGreen", 1; + delitem "GemPowderYellow", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "LimeWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_Teal: - mes "[Stranger]"; - mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Sapphire Powder and a bottle of water for that.\""; - next; - if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; - getinventorylist; - if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; - if (countitem("BottleOfWater") < 1) goto L_No_Water; - if (countitem("GemPowderGreen") < 1) goto L_No_Powder; - if (countitem("GemPowderBlue") < 1) goto L_No_Powder; - delitem "GemPowderGreen", 1; - delitem "GemPowderBlue", 1; - delitem "GreyWarpTowel", 1; - delitem "BottleOfWater", 1; - getitem "TealWarpTowel", 1; - mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; - next; - mes "[Stranger]"; - mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; - close; + mes "[Stranger]"; + mes "\"Ok, I'll need one bag of Emerald Powder, one bag of Sapphire Powder and a bottle of water for that.\""; + next; + if (countitem("GreyWarpTowel") < 1) goto L_No_Towel; + getinventorylist; + if ((countitem("GreyWarpTowel") > 1) && (@inventorylist_count == 100)) goto L_Full_Inv; + if (countitem("BottleOfWater") < 1) goto L_No_Water; + if (countitem("GemPowderGreen") < 1) goto L_No_Powder; + if (countitem("GemPowderBlue") < 1) goto L_No_Powder; + delitem "GemPowderGreen", 1; + delitem "GemPowderBlue", 1; + delitem "GreyWarpTowel", 1; + delitem "BottleOfWater", 1; + getitem "TealWarpTowel", 1; + mes "He takes your towel, the water and the gem powder, then he turns away and does something you can't see. After a few minutes, he turns to you again."; + next; + mes "[Stranger]"; + mes "\"Done! It'll use its color after being used, but just come back and I can dye it again for you.\""; + close; L_No_Water: - mes "[Stranger]"; - mes "\"You don't have water.\""; - close; + mes "[Stranger]"; + mes "\"You don't have water.\""; + close; L_No_Powder: - mes "[Stranger]"; - mes "\"You need to bring me enough gem powder in that color. Maybe someone used to mining can help you with that.\""; - close; + mes "[Stranger]"; + mes "\"You need to bring me enough gem powder in that color. Maybe someone used to mining can help you with that.\""; + close; L_No_Towel: - mes "[Stranger]"; - mes "\"Where's your towel? It is really useful, you should always keep it with you.\""; - close; + mes "[Stranger]"; + mes "\"Where's your towel? It is really useful, you should always keep it with you.\""; + close; L_Full_Inv: - mes "[Stranger]"; - mes "\"You carry a lot of stuff with you, don't you? Maybe you should get rid of something.\""; - close; + mes "[Stranger]"; + mes "\"You carry a lot of stuff with you, don't you? Maybe you should get rid of something.\""; + close; L_Close: - close; + close; } diff --git a/world/map/npc/005-1/npcs.txt b/world/map/npc/005-1/npcs.txt index d8f08cc1..2c40697f 100644 --- a/world/map/npc/005-1/npcs.txt +++ b/world/map/npc/005-1/npcs.txt @@ -1,15 +1,15 @@ // -005-1.gat,69,76,0 shop George 115,ShortBow :-1,Arrow :1,IronArrow :-1,Beer :-1,ChickenLeg :-2 +005-1.gat,69,76,0|shop|George|115,ShortBow :-1,Arrow :1,IronArrow :-1,Beer :-1,ChickenLeg :-2 -005-1.gat,66,75,0 script Kieron 132,{ +005-1.gat,66,75,0|script|Kieron|132,{ mes "[Kieron]"; mes "\"Be careful if you're going in that cave,"; mes "it's packed full of monsters.\""; close; } -005-1.gat,91,23,0 script William 131,{ +005-1.gat,91,23,0|script|William|131,{ mes "[William]"; mes "\"Going in the cave?"; mes "You better watch your step, last time I checked it was full of monsters!\""; diff --git a/world/map/npc/005-1/spirit.txt b/world/map/npc/005-1/spirit.txt index d6723c8e..dd0f9e65 100644 --- a/world/map/npc/005-1/spirit.txt +++ b/world/map/npc/005-1/spirit.txt @@ -1,305 +1,270 @@ -function script EarthImpTouch { - if (getskilllv(SKILL_MAGIC)) - goto L_message; +function|script|EarthImpTouch|{ + if (getskilllv(SKILL_MAGIC)) goto L_message; - mes "[Well]"; - mes "You hear noises from within the well."; - close; + mes "[Well]"; + mes "You hear noises from within the well."; + close; L_message: - set @Q_MASK, NIBBLE_0_MASK; - set @Q_SHIFT, NIBBLE_0_SHIFT; - set @Q_status, (QUEST_MAGIC2 & @Q_MASK) >> @Q_SHIFT; + set @Q_MASK, NIBBLE_0_MASK; + set @Q_SHIFT, NIBBLE_0_SHIFT; + set @Q_status, (QUEST_MAGIC2 & @Q_MASK) >> @Q_SHIFT; + + // Set up SkillUp function + set @SUP_id, SKILL_MAGIC_NATURE; + set @SUP_name$, "Nature Magic"; + set @Q_STATUS_INITIAL, 0; + set @Q_STATUS_ONQUEST, 1; + set @Q_STATUS_STUDENT0, 2; + set @Q_STATUS_STUDENT1, 3; + set @Q_STATUS_STUDENT2, 4; + set @Q_STATUS_STUDENT3, 5; + + set @s$, "girl"; + if (Sex) set @s$, "boy"; + + if (MAGIC_FLAGS & MFLAG_KNOWS_IMP) goto L_wb; + + mes "[Well]"; + mes "Something is inside that well, and now that you have turned your attention towards it, it seems to be talking to you!"; + next; + + mes "[Well]"; + mes "\"Hey! You there! Yes, I'm talking to you!\""; + mes "That strange voice seems to be coming from inside your head!"; + next; + menu + "Who, me?", -, + "Leave me alone!", L_close, + "Aaah! I'm hearing voices!", L_silly_close; + mes "[Well]"; + mes "\"I'm in here, in the well, talking to you! If I'm not very mistaken, you are a powerful wizard-to-be, except that nobody has showed you how to properly do magic yet!\""; + next; + menu + "Who are you?", -, + "Aaaah! The voices are after me!", L_silly_close, + "Whatever it is, I'm not interested.", L_close; + mes "[Earth Spirit]"; + mes "\"I'm an earth spirit; my name isn't important... all that matters is that I like you, and that I will help you become a powerful wizard if you help me. Just a fair deal, no more than that...\""; + next; + + set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_IMP; + + goto L_main; - // Set up SkillUp function - set @SUP_id, SKILL_MAGIC_NATURE; - set @SUP_name$, "Nature Magic"; - - set @Q_STATUS_INITIAL, 0; - set @Q_STATUS_ONQUEST, 1; - set @Q_STATUS_STUDENT0, 2; - set @Q_STATUS_STUDENT1, 3; - set @Q_STATUS_STUDENT2, 4; - set @Q_STATUS_STUDENT3, 5; - - set @s$, "girl"; - if (Sex) - set @s$, "boy"; - - if (MAGIC_FLAGS & MFLAG_KNOWS_IMP) - goto L_wb; - - mes "[Well]"; - mes "Something is inside that well, and now that you have turned your attention towards it, it seems to be talking to you!"; - next; - - mes "[Well]"; - mes "\"Hey! You there! Yes, I'm talking to you!\""; - mes "That strange voice seems to be coming from inside your head!"; - next; - - menu - "Who, me?", -, - "Leave me alone!", L_close, - "Aaah! I'm hearing voices!", L_silly_close; - - mes "[Well]"; - mes "\"I'm in here, in the well, talking to you! If I'm not very mistaken, you are a powerful wizard-to-be, except that nobody has showed you how to properly do magic yet!\""; - next; - - menu - "Who are you?", -, - "Aaaah! The voices are after me!", L_silly_close, - "Whatever it is, I'm not interested.", L_close; - - mes "[Earth Spirit]"; - mes "\"I'm an earth spirit; my name isn't important... all that matters is that I like you, and that I will help you become a powerful wizard if you help me. Just a fair deal, no more than that...\""; - next; - - set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_IMP; - - goto L_main; L_wb: - mes "[Earth Spirit]"; - mes "\"It's excellent to see you again!\""; - next; + mes "[Earth Spirit]"; + mes "\"It's excellent to see you again!\""; + next; L_main: - menu - "How did you get trapped?", L_Q_trapped, - "Can you teach me magic and spells?", L_Q_magic, - "What do you know about...", L_Q, - "Goodbye!", -; - close; - + menu + "How did you get trapped?", L_Q_trapped, + "Can you teach me magic and spells?", L_Q_magic, + "What do you know about...", L_Q, + "Goodbye!", -; + close; + L_Q_trapped: - mes "[Earth Spirit]"; - mes "\"Oh, a wicked witch grew jealous of my power and locked me up in this well.\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Oh, a wicked witch grew jealous of my power and locked me up in this well.\""; + next; + goto L_main; L_Q: - mes "[Earth Spirit]"; - mes "\"Stop bothering me with your questions, will you? I'm trying to make you a powerful wizard, after all!\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Stop bothering me with your questions, will you? I'm trying to make you a powerful wizard, after all!\""; + next; + goto L_main; L_Q_magic: - if (@Q_status == @Q_STATUS_ONQUEST) - goto L_Q_magic_1; - if (@Q_status == @Q_STATUS_STUDENT0) - goto L_Q_magic_2; - if (@Q_status == @Q_STATUS_STUDENT1) - goto L_Q_magic_3; - if (@Q_status == @Q_STATUS_STUDENT2) - goto L_Q_magic_4; - - mes "[Earth Spirit]"; - mes "\"Good, good... that's the right attitude! Yes, I can teach you magic, but first you must prove that you are worthy to be my student!\""; - next; - - mes "[Earth Spirit]"; - mes "\"North-west of here sits and old, dead tree. Well, not completely dead, not yet, but almost. It's nothing special. Well, maybe a little, but not really. I want you to cut off one of its branches.\""; - next; - - menu - "No way.", L_silly_close, - "Sure.", L_Q_tree_ok, - "Why that particular tree?", -; - - mes "[Earth Spirit]"; - mes "\"Oh, you and your questions! Well, that tree was a druid once, so the branches contain a bit of its lifeforce. And that's useful.\""; - next; - - menu - "Yuck.", L_silly_close, - "Sure, whatever.", L_Q_tree_ok, - "Isn't that like cutting off someone's arm?", -; - - mes "[Earth Spirit]"; - mes "\"Oooh... now come on! Don't be so sentimental. He turned himself into a tree, he can hardly expect everyone to leave him alone.\""; - next; - - mes "[Earth Spirit]"; - mes "\"Who knows if he can even feel anything anymore? I'm sure he can't, being wooden and all. Besides, it's only a measly tree. Not like I'm asking you to cut him down!.\""; - next; - - menu - "No way.", L_silly_close, - "Alright, that makes sense.", L_Q_tree_ok; + if (@Q_status == @Q_STATUS_ONQUEST) goto L_Q_magic_1; + if (@Q_status == @Q_STATUS_STUDENT0) goto L_Q_magic_2; + if (@Q_status == @Q_STATUS_STUDENT1) goto L_Q_magic_3; + if (@Q_status == @Q_STATUS_STUDENT2) goto L_Q_magic_4; + + mes "[Earth Spirit]"; + mes "\"Good, good... that's the right attitude! Yes, I can teach you magic, but first you must prove that you are worthy to be my student!\""; + next; + mes "[Earth Spirit]"; + mes "\"North-west of here sits and old, dead tree. Well, not completely dead, not yet, but almost. It's nothing special. Well, maybe a little, but not really. I want you to cut off one of its branches.\""; + next; + menu + "No way.", L_silly_close, + "Sure.", L_Q_tree_ok, + "Why that particular tree?", -; + mes "[Earth Spirit]"; + mes "\"Oh, you and your questions! Well, that tree was a druid once, so the branches contain a bit of its lifeforce. And that's useful.\""; + next; + menu + "Yuck.", L_silly_close, + "Sure, whatever.", L_Q_tree_ok, + "Isn't that like cutting off someone's arm?", -; + mes "[Earth Spirit]"; + mes "\"Oooh... now come on! Don't be so sentimental. He turned himself into a tree, he can hardly expect everyone to leave him alone.\""; + next; + mes "[Earth Spirit]"; + mes "\"Who knows if he can even feel anything anymore? I'm sure he can't, being wooden and all. Besides, it's only a measly tree. Not like I'm asking you to cut him down!.\""; + next; + menu + "No way.", L_silly_close, + "Alright, that makes sense.", L_Q_tree_ok; L_Q_tree_ok: - mes "[Earth Spirit]"; - mes "\"Good, good, good! Yes, that will be very good! So, come back when you have the branch. Oh, and bring 100,000 GP, too, as an enrollment fee.\""; - set @Q_status, @Q_STATUS_ONQUEST; - callsub S_update_var; - set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_CUTTREE; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Good, good, good! Yes, that will be very good! So, come back when you have the branch. Oh, and bring 100,000 GP, too, as an enrollment fee.\""; + set @Q_status, @Q_STATUS_ONQUEST; + callsub S_update_var; + set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_CUTTREE; + next; + goto L_main; L_Q_magic_1: - mes "[Earth Spirit]"; - mes "\"Yes, yes, if you bring me the branch and the money, then I will!\""; - next; - menu - "Here are the branch and the money.", -, - "How much money did you want again?", L_Q_tree_howmuch, - "How can I cut it?", L_Q_tree_how, - "Where was the tree again?", L_Q_tree_where, - "What is that tree?", L_Q_tree_what; - - if (countitem("DruidTreeBranch") < 1) - goto L_Q_tree_none; - if (!(MAGIC_FLAGS & MFLAG_DID_CUTTREE)) - goto L_Q_tree_dry; - if (zeny < 100000) - goto L_Q_tree_nomoney; - - set zeny, zeny - 100000; - delitem "DruidTreeBranch", 1; - - mes "[Earth Spirit]"; - mes "Following the earth sprite's instructions, you throw branch and GP into the well."; - next; - - mes "[Earth Spirit]"; - mes "\"Well done, very well done! Consider yourself my student now.\""; - - set @SUP_xp, 5000; - set @SUP_lvl, 2; - callfunc "SkillUp"; - next; - - set @Q_status, @Q_STATUS_STUDENT0; - callsub S_update_var; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Yes, yes, if you bring me the branch and the money, then I will!\""; + next; + menu + "Here are the branch and the money.", -, + "How much money did you want again?", L_Q_tree_howmuch, + "How can I cut it?", L_Q_tree_how, + "Where was the tree again?", L_Q_tree_where, + "What is that tree?", L_Q_tree_what; + + if (countitem("DruidTreeBranch") < 1) goto L_Q_tree_none; + if (!(MAGIC_FLAGS & MFLAG_DID_CUTTREE)) goto L_Q_tree_dry; + if (zeny < 100000) goto L_Q_tree_nomoney; + + set zeny, zeny - 100000; + delitem "DruidTreeBranch", 1; + mes "[Earth Spirit]"; + mes "Following the earth sprite's instructions, you throw branch and GP into the well."; + next; + mes "[Earth Spirit]"; + mes "\"Well done, very well done! Consider yourself my student now.\""; + set @SUP_xp, 5000; + set @SUP_lvl, 2; + callfunc "SkillUp"; + next; + set @Q_status, @Q_STATUS_STUDENT0; + callsub S_update_var; + goto L_main; L_Q_magic_finish: - mes "[1000 experience points]"; - set @Q_status, @Q_status + 1; - callsub S_update_var; - getexp 1000,0; - next; - goto L_main; + mes "[1000 experience points]"; + set @Q_status, @Q_status + 1; + callsub S_update_var; + getexp 1000,0; + next; + goto L_main; L_Q_magic_2: - mes "[Earth Spirit]"; - mes "\"Yes, of course! For just 20,000 GP I will teach you your first spell!\""; - next; - - menu - "Here you are.", -, - "No.", L_main; - - if (zeny < 20000) - goto L_no20k; - - set zeny, zeny - 20000; - - mes "[Earth Spirit]"; - mes "\"Kekeke... excellent! Yes, here goes your first spell, the flying backpack! If you are overloaded, it will take the load off your shoulders.\""; - next; - - mes "[Earth Spirit]"; - mes "\"Take a cocoon, living or dead, and suffuse it in magic. Whisper '" + getspellinvocation("flying-backpack") + "', and feel it float!\""; - goto L_Q_magic_finish; + mes "[Earth Spirit]"; + mes "\"Yes, of course! For just 20,000 GP I will teach you your first spell!\""; + next; + menu + "Here you are.", -, + "No.", L_main; + + if (zeny < 20000) goto L_no20k; + + set zeny, zeny - 20000; + mes "[Earth Spirit]"; + mes "\"Kekeke... excellent! Yes, here goes your first spell, the flying backpack! If you are overloaded, it will take the load off your shoulders.\""; + next; + mes "[Earth Spirit]"; + mes "\"Take a cocoon, living or dead, and suffuse it in magic. Whisper '" + getspellinvocation("flying-backpack") + "', and feel it float!\""; + goto L_Q_magic_finish; L_Q_magic_3: - mes "[Earth Spirit]"; - mes "\"But yes, yes! Only 20,000 GP, once again, and I will teach you a far more useful spell!\""; - next; - - menu - "Here you are.", -, - "No.", L_main; - - if (zeny < 20000) - goto L_no20k; - - set zeny, zeny - 20000; - - mes "[Earth Spirit]"; - mes "\"Yeees, good! This one is a protection spell, making your skin harder. You need a hard spike for it, though. Hold that spike in your hands, and focus on it.\""; - next; - - mes "[Earth Spirit]"; - mes "\"Next, say '" + getspellinvocation("protect") + "', and feel your skin grow rigid! Very useful against stings and stabs and pokes and pricks and that sort of stuff.\""; - goto L_Q_magic_finish; + mes "[Earth Spirit]"; + mes "\"But yes, yes! Only 20,000 GP, once again, and I will teach you a far more useful spell!\""; + next; + menu + "Here you are.", -, + "No.", L_main; + + if (zeny < 20000) goto L_no20k; + set zeny, zeny - 20000; + mes "[Earth Spirit]"; + mes "\"Yeees, good! This one is a protection spell, making your skin harder. You need a hard spike for it, though. Hold that spike in your hands, and focus on it.\""; + next; + mes "[Earth Spirit]"; + mes "\"Next, say '" + getspellinvocation("protect") + "', and feel your skin grow rigid! Very useful against stings and stabs and pokes and pricks and that sort of stuff.\""; + goto L_Q_magic_finish; L_Q_magic_4: - mes "[Earth Spirit]"; - mes "\"Naah, you're too weak now! Come back later when you have grown!\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Naah, you're too weak now! Come back later when you have grown!\""; + next; + goto L_main; L_no20k: - mes "[Earth Spirit]"; - mes "\"You can't pay me 20,000 if you don't have that much!\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"You can't pay me 20,000 if you don't have that much!\""; + next; + goto L_main; L_Q_tree_none: - mes "[Earth Spirit]"; - mes "\"Where is your branch?\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Where is your branch?\""; + next; + goto L_main; L_Q_tree_dry: - mes "[Earth Spirit]"; - mes "\"That won't do. This branch is completely dead; you'll have to get another.\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"That won't do. This branch is completely dead; you'll have to get another.\""; + next; + goto L_main; L_Q_tree_nomoney: - mes "[Earth Spirit]"; - mes "\"No, you don't have enough money! Come back when you have 100,000.\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"No, you don't have enough money! Come back when you have 100,000.\""; + next; + goto L_main; L_Q_tree_howmuch: - mes "[Earth Spirit]"; - mes "\"It's only 100,000 GP to become my student.\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"It's only 100,000 GP to become my student.\""; + next; + goto L_main; L_Q_tree_how: - mes "[Earth Spirit]"; - mes "\"Oh... right, the tree might be protected. Only a bone knife will cut that. No idea where you can find one, but I'm sure you will manage!\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Oh... right, the tree might be protected. Only a bone knife will cut that. No idea where you can find one, but I'm sure you will manage!\""; + next; + goto L_main; L_Q_tree_where: - mes "[Earth Spirit]"; - mes "\"North-west of here.\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"North-west of here.\""; + next; + goto L_main; L_Q_tree_what: - mes "[Earth Spirit]"; - mes "\"Just some silly druid who turned himself into a tree; nothing important.\""; - next; - goto L_main; + mes "[Earth Spirit]"; + mes "\"Just some silly druid who turned himself into a tree; nothing important.\""; + next; + goto L_main; L_silly_close: - if (MAGIC_FLAGS & MFLAG_KNOWS_IMP) - mes "[Earth Spirit]"; - if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP)) - mes "[Well]"; + if (MAGIC_FLAGS & MFLAG_KNOWS_IMP) + mes "[Earth Spirit]"; + if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP)) + mes "[Well]"; mes "\"Silly " + @s$ + ".\""; + L_close: - close; + close; S_update_var: - set QUEST_MAGIC2, - (QUEST_MAGIC2 & ~(@Q_MASK) - | (@Q_status << @Q_SHIFT)); - return; + set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT)); + return; } -005-1.gat,118,70,0 script #EarthImp0#_M 127,{ - callfunc "EarthImpTouch"; +005-1.gat,118,70,0|script|#EarthImp0#_M|127,{ + callfunc "EarthImpTouch"; } -005-1.gat,119,70,0 script #EarthImp1#_M 127,{ - callfunc "EarthImpTouch"; +005-1.gat,119,70,0|script|#EarthImp1#_M|127,{ + callfunc "EarthImpTouch"; } diff --git a/world/map/npc/005-1/tree.txt b/world/map/npc/005-1/tree.txt index 54b7ed1c..bd7a0a6d 100644 --- a/world/map/npc/005-1/tree.txt +++ b/world/map/npc/005-1/tree.txt @@ -1,162 +1,149 @@ -function script QuestTreeTrigger { - set @Q_MASK, NIBBLE_2_MASK; - set @Q_SHIFT, NIBBLE_2_SHIFT; +function|script|QuestTreeTrigger|{ + set @Q_MASK, NIBBLE_2_MASK; + set @Q_SHIFT, NIBBLE_2_SHIFT; - set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; - set @Q_status_lower, @Q_status & 3; - set @Q_status, (@Q_status & 12) >> 2; + set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; + set @Q_status_lower, @Q_status & 3; + set @Q_status, (@Q_status & 12) >> 2; - if (@Q_status & @flag) - close; // already did that + if (@Q_status & @flag) close; // already did that - if (@flag == 2) - goto L_hug; + if (@flag == 2) goto L_hug; L_cont: - set @Q_status, @Q_status | @flag; - callsub S_update_var; + set @Q_status, @Q_status | @flag; + callsub S_update_var; - if (@Q_status != 3) - close; + if (@Q_status != 3) close; - if (MAGIC_FLAGS & MFLAG_DID_CUTTREE) - close; + if (MAGIC_FLAGS & MFLAG_DID_CUTTREE) close; - mes "Maybe it is just a trick of the light, but you can't help but think that the tree looks different... healthier, almost younger."; - mes "[20000 experience points]"; - getexp 20000, 0; - set @value, 15; - callfunc "QuestSagathaHappy"; - close; + mes "Maybe it is just a trick of the light, but you can't help but think that the tree looks different... healthier, almost younger."; + mes "[20000 experience points]"; + getexp 20000, 0; + set @value, 15; + callfunc "QuestSagathaHappy"; + close; L_hug: - mes "You hug the tree."; - next; - goto L_cont; + mes "You hug the tree."; + next; + goto L_cont; S_update_var: - set @Q_wr_status, (@Q_status << 2) | @Q_status_lower; - set QUEST_MAGIC, - (QUEST_MAGIC & ~(@Q_MASK) - | (@Q_wr_status << @Q_SHIFT)); - return; + set @Q_wr_status, (@Q_status << 2) | @Q_status_lower; + set QUEST_MAGIC, (QUEST_MAGIC & ~(@Q_MASK) | (@Q_wr_status << @Q_SHIFT)); + return; } -function script QuestTreeTouch { - set @Q_MASK, NIBBLE_2_MASK; - set @Q_SHIFT, NIBBLE_2_SHIFT; +function|script|QuestTreeTouch|{ + set @Q_MASK, NIBBLE_2_MASK; + set @Q_SHIFT, NIBBLE_2_SHIFT; - set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; - set @Q_status, (@Q_status & 12) >> 2; + set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT; + set @Q_status, (@Q_status & 12) >> 2; - if (@Q_status == 3) - goto L_happy; + if (@Q_status == 3) goto L_happy; - if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) == MFLAG_KNOWS_CUTTREE) - goto L_cut; + if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) == MFLAG_KNOWS_CUTTREE) goto L_cut; - if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) == MFLAG_KNOWS_DRUIDTREE) - goto L_water; + if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) == MFLAG_KNOWS_DRUIDTREE) goto L_water; - if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) > 0) //i.e., both are set - goto L_both; + if ((MAGIC_FLAGS & (MFLAG_KNOWS_DRUIDTREE | MFLAG_KNOWS_CUTTREE)) > 0) //i.e., both are set + goto L_both; - mes "[Dying Tree]"; - mes "You see a strange tree."; - close; + mes "[Dying Tree]"; + mes "You see a strange tree."; + close; L_cut: - mes "[Dying Tree]"; - mes "This must be the tree that the earth spirit was referring to."; - next; - menu - "Cut off a branch", L_do_cut, - "Leave it alone", -; - close; + mes "[Dying Tree]"; + mes "This must be the tree that the earth spirit was referring to."; + next; + menu + "Cut off a branch", L_do_cut, + "Leave it alone", -; + close; L_water: - mes "[Dying Tree]"; - mes "This must be the druid tree."; - next; - menu - "Water the tree", L_givewater, - "Kiss tree", L_kiss, - "Leave it alone", -; - close; + mes "[Dying Tree]"; + mes "This must be the druid tree."; + next; + menu + "Water the tree", L_givewater, + "Kiss tree", L_kiss, + "Leave it alone", -; + close; L_both: - mes "[Dying Tree]"; - mes "This must be the druid tree that Wyara and the earth spirit were talking about."; - next; - menu - "Water the tree", L_givewater, - "Kiss tree", L_kiss, - "Cut off a branch", L_do_cut, - "Leave it alone", -; - close; + mes "[Dying Tree]"; + mes "This must be the druid tree that Wyara and the earth spirit were talking about."; + next; + menu + "Water the tree", L_givewater, + "Kiss tree", L_kiss, + "Cut off a branch", L_do_cut, + "Leave it alone", -; + close; L_givewater: - if (countitem("BottleOfWater") < 1) - goto L_no_water; - delitem "BottleOfWater", 1; - getitem "EmptyBottle", 1; + if (countitem("BottleOfWater") < 1) goto L_no_water; + delitem "BottleOfWater", 1; + getitem "EmptyBottle", 1; - mes "[Dying Tree]"; - mes "You pour a bottle of water into the sand. The water dissipates quickly, without any effect."; - close; + mes "[Dying Tree]"; + mes "You pour a bottle of water into the sand. The water dissipates quickly, without any effect."; + close; L_no_water: - mes "[Dying Tree]"; - mes "You don't have any water."; - close; + mes "[Dying Tree]"; + mes "You don't have any water."; + close; L_kiss: - mes "[Dying Tree]"; - mes "You pluck out a splinter from your lip."; - mes "Somehow, you don't think that this helped."; - close; + mes "[Dying Tree]"; + mes "You pluck out a splinter from your lip."; + mes "Somehow, you don't think that this helped."; + close; L_do_cut: - if (countitem(570) < 1) - goto L_no_boneknife; + if (countitem(570) < 1) goto L_no_boneknife; - if (MAGIC_FLAGS & MFLAG_DID_CUTTREE) - goto L_really_cut; + if (MAGIC_FLAGS & MFLAG_DID_CUTTREE) goto L_really_cut; - mes "[Dying Tree]"; - mes "You find a suitable branch and put your bone knife in position."; - mes "Holding the branch, you have an uneasy feeling-- as if something inside the tree were trying to resist you..."; - mes "Do you want to continue cutting?"; - next; - - menu - "Nah... better not.", -, - "Yes, let's cut!", L_really_cut; - close; + mes "[Dying Tree]"; + mes "You find a suitable branch and put your bone knife in position."; + mes "Holding the branch, you have an uneasy feeling-- as if something inside the tree were trying to resist you..."; + mes "Do you want to continue cutting?"; + next; + menu + "Nah... better not.", -, + "Yes, let's cut!", L_really_cut; + close; L_really_cut: - set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DID_CUTTREE; - getitem "DruidTreeBranch", 1; - mes "[Dying Tree]"; - mes "You cut off a branch from the tree."; - mes "For an instant, you have an uneasy feeling, as if the branch were writhing in your hand..."; - close; + set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DID_CUTTREE; + getitem "DruidTreeBranch", 1; + mes "[Dying Tree]"; + mes "You cut off a branch from the tree."; + mes "For an instant, you have an uneasy feeling, as if the branch were writhing in your hand..."; + close; L_no_boneknife: - mes "[Dying Tree]"; - mes "Try as you might, you can't seem to find a way to cut off a branch. Perhaps you need a different tool for cutting?"; - close; + mes "[Dying Tree]"; + mes "Try as you might, you can't seem to find a way to cut off a branch. Perhaps you need a different tool for cutting?"; + close; L_happy: - mes "[Druid Tree]"; - mes "The tree looks younger and healthier now."; - close; + mes "[Druid Tree]"; + mes "The tree looks younger and healthier now."; + close; } -005-1.gat,79,41,0 script #DruidTree0#_M 127,{ - callfunc "QuestTreeTouch"; +005-1.gat,79,41,0|script|#DruidTree0#_M|127,{ + callfunc "QuestTreeTouch"; } -005-1.gat,80,41,0 script #DruidTree1#_M 127,{ - callfunc "QuestTreeTouch"; +005-1.gat,80,41,0|script|#DruidTree1#_M|127,{ + callfunc "QuestTreeTouch"; } diff --git a/world/map/npc/005-3/monsters.txt b/world/map/npc/005-3/monsters.txt index 439b6300..a52d0dc3 100644 --- a/world/map/npc/005-3/monsters.txt +++ b/world/map/npc/005-3/monsters.txt @@ -2,13 +2,12 @@ // This is the Snake Pit, a cave in the Snake Desert. // -005-3.gat,0,0,0,0 monster Snake 1010,175,0,0,Mob22::OnSnake +005-3.gat,0,0,0,0|monster|Snake|1010,175,0,0,Mob22::OnSnake -005-3.gat,0,0,0 script Mob22 -1,{ +005-3.gat,0,0,0|script|Mob22|-1,{ OnSnake: - set @mobID, 1010; - callfunc "MobPoints"; - break; - - end; + set @mobID, 1010; + callfunc "MobPoints"; + break; + end; } diff --git a/world/map/npc/006-1/mika.txt b/world/map/npc/006-1/mika.txt index fc2e6f44..b4e2d69c 100644 --- a/world/map/npc/006-1/mika.txt +++ b/world/map/npc/006-1/mika.txt @@ -1,4 +1,4 @@ -006-1.gat,39,27,0 script Mika 114,{ +006-1.gat,39,27,0|script|Mika|114,{ mes "[Mika]"; mes "\"My father told me about a man living in this desert who makes clothes out of snake skin.\""; next; diff --git a/world/map/npc/006-1/pachua.txt b/world/map/npc/006-1/pachua.txt index c1bfb83f..ace4ba9a 100644 --- a/world/map/npc/006-1/pachua.txt +++ b/world/map/npc/006-1/pachua.txt @@ -1,311 +1,309 @@ -006-1.gat,23,100,0 script Pachua 143,{ +006-1.gat,23,100,0|script|Pachua|143,{ - set @LEATHER_PATCH_PRICE, 300; - set @wants_leather_patch, QUEST_Forestbow_state & NIBBLE_4_MASK; + set @LEATHER_PATCH_PRICE, 300; + set @wants_leather_patch, QUEST_Forestbow_state & NIBBLE_4_MASK; // 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 (QUEST_MIRIAM_cheat != 0) goto L_warp_cheat; - if (QUEST_MIRIAM_start != 0) goto L_smoke; + if (QUEST_MIRIAM_cheat != 0) goto L_warp_cheat; + if (QUEST_MIRIAM_start != 0) goto L_smoke; // lines belong to easter 2011: -// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 1) goto L_Basket; -// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 2) goto L_MakeBasket; -// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 3) goto L_SeeBunny; +// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 1) goto L_Basket; +// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 2) goto L_MakeBasket; +// if (gettime(6) == @month && gettime(5) >= @start_day && gettime(5) <= @end_day && QUEST_Easter11 == 3) goto L_SeeBunny; L_Begin: - mes "[Chief Pachua]"; - mes ""; - mes "\"How!\""; - next; + mes "[Chief Pachua]"; + mes ""; + mes "\"How!\""; + next; - if (getequipid(equip_head) == 643 || getequipid(equip_head) == 644) goto L_WearingCowboy; - if (getequipid(equip_legs) == 642) goto L_WearingChaps; + if (getequipid(equip_head) == 643 || getequipid(equip_head) == 644) goto L_WearingCowboy; + if (getequipid(equip_legs) == 642) goto L_WearingChaps; - mes "[Chief Pachua]"; - mes ""; - mes "\"For generations my tribe has been crafting special clothes out of different items.\""; - next; + mes "[Chief Pachua]"; + mes ""; + mes "\"For generations my tribe has been crafting special clothes out of different items.\""; + next; L_Check_Shops: - if((countitem("JeansShorts") > 0 && countitem("SnakeSkin") > 9) && (countitem("FancyHat") > 0 && countitem("SnakeSkin") > 1)) goto L_Super_store; - if(countitem("JeansShorts") > 0 && countitem("SnakeSkin") > 9) goto L_Chaps_store; - if(countitem("FancyHat") > 0 && countitem("SnakeSkin") > 1) goto L_Cowboy_store; - - mes "[Chief Pachua]"; - mes ""; - mes "\"Maybe if you bring me the right materials I can make something for you.\""; - next; - - if (@wants_leather_patch) - menu "Wait, can you make a leather patch for me?", L_leather_patch, - "OK, bye.", -; - - close; + if((countitem("JeansShorts") > 0 && countitem("SnakeSkin") > 9) && (countitem("FancyHat") > 0 && countitem("SnakeSkin") > 1)) goto L_Super_store; + if(countitem("JeansShorts") > 0 && countitem("SnakeSkin") > 9) goto L_Chaps_store; + if(countitem("FancyHat") > 0 && countitem("SnakeSkin") > 1) goto L_Cowboy_store; + + mes "[Chief Pachua]"; + mes ""; + mes "\"Maybe if you bring me the right materials I can make something for you.\""; + next; + if (@wants_leather_patch) + menu + "Wait, can you make a leather patch for me?", L_leather_patch, + "OK, bye.", -; + close; L_CheckStuff: - mes "[Chief Pachua]"; - mes ""; - mes "\"Let me see what you have there.\""; - next; - return; + mes "[Chief Pachua]"; + mes ""; + mes "\"Let me see what you have there.\""; + next; + return; L_Super_store: - callsub L_CheckStuff; - mes "[Chief Pachua]"; - mes ""; - mes "\"Ahh you have lots of good items to work with.\""; - mes ""; - mes "\"With them I can make you either"; - mes "a Cowboy hat or Snake Skin Chaps\""; - next; - if (@wants_leather_patch) - menu - "Cowboy hat, please.", L_BuyCowboy, - "Snake Skin Chaps sound good.", L_BuyChaps, - "Can you make a leather patch?", L_leather_patch, - "Not now, maybe later.", L_NoDeal; - if (!@wants_leather_patch) - menu - "Cowboy hat, please.", L_BuyCowboy, - "Snake Skin Chaps sound good.", L_BuyChaps, - "Not now, maybe later.", L_NoDeal; + callsub L_CheckStuff; + mes "[Chief Pachua]"; + mes ""; + mes "\"Ahh you have lots of good items to work with.\""; + mes ""; + mes "\"With them I can make you either"; + mes "a Cowboy hat or Snake Skin Chaps\""; + next; + if (@wants_leather_patch) + menu + "Cowboy hat, please.", L_BuyCowboy, + "Snake Skin Chaps sound good.", L_BuyChaps, + "Can you make a leather patch?", L_leather_patch, + "Not now, maybe later.", L_NoDeal; + if (!@wants_leather_patch) + menu + "Cowboy hat, please.", L_BuyCowboy, + "Snake Skin Chaps sound good.", L_BuyChaps, + "Not now, maybe later.", L_NoDeal; L_Cowboy_store: - callsub L_CheckStuff; - mes "[Chief Pachua]"; - mes ""; - mes "\"To make you a Cowboy hat I will need:"; - mes "1 Fancy hat"; - mes "2 Snake skins"; - mes "5.000 GP\""; - mes ""; - mes "\"Do we have a deal?\""; - next; - if (@wants_leather_patch) - menu - "Yes, that's fine.", L_BuyCowboy, - "Can you make a leather patch?", L_leather_patch, - "On second thought, maybe later.", L_NoDeal; - if (!@wants_leather_patch) - menu - "Yes, that's fine.", L_BuyCowboy, - "On second thought, maybe later.", L_NoDeal; + callsub L_CheckStuff; + mes "[Chief Pachua]"; + mes ""; + mes "\"To make you a Cowboy hat I will need:"; + mes "1 Fancy hat"; + mes "2 Snake skins"; + mes "5.000 GP\""; + mes ""; + mes "\"Do we have a deal?\""; + next; + if (@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyCowboy, + "Can you make a leather patch?", L_leather_patch, + "On second thought, maybe later.", L_NoDeal; + if (!@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyCowboy, + "On second thought, maybe later.", L_NoDeal; L_Chaps_store: - callsub L_CheckStuff; - mes "[Chief Pachua]"; - mes ""; - mes "\"To make you a pair of Snake Skin Chaps I will need:"; - mes "1 Jeans Shorts"; - mes "10 Snake skins"; - mes "10.000 GP\""; - mes ""; - mes "\"Do we have a deal?\""; - next; - if (!@wants_leather_patch) - menu - "Yes, that's fine.", L_BuyChaps, - "On second thought, maybe later.", L_NoDeal; - if (@wants_leather_patch) - menu - "Yes, that's fine.", L_BuyChaps, - "Can you make a leather patch?", L_leather_patch, - "On second thought, maybe later.", L_NoDeal; + callsub L_CheckStuff; + mes "[Chief Pachua]"; + mes ""; + mes "\"To make you a pair of Snake Skin Chaps I will need:"; + mes "1 Jeans Shorts"; + mes "10 Snake skins"; + mes "10.000 GP\""; + mes ""; + mes "\"Do we have a deal?\""; + next; + if (!@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyChaps, + "On second thought, maybe later.", L_NoDeal; + if (@wants_leather_patch) + menu + "Yes, that's fine.", L_BuyChaps, + "Can you make a leather patch?", L_leather_patch, + "On second thought, maybe later.", L_NoDeal; L_BuyChaps: - if (zeny < 10000) goto L_NoMoney; - if (countitem("JeansShorts") < 1) goto L_NoJeans; - if (countitem("SnakeSkin") < 10) goto L_NoSkin; - set zeny, zeny - 10000; - delitem "SnakeSkin", 10; - delitem "JeansShorts", 1; - getitem "JeansChaps", 1; - goto L_DealDone; + if (zeny < 10000) goto L_NoMoney; + if (countitem("JeansShorts") < 1) goto L_NoJeans; + if (countitem("SnakeSkin") < 10) goto L_NoSkin; + set zeny, zeny - 10000; + delitem "SnakeSkin", 10; + delitem "JeansShorts", 1; + getitem "JeansChaps", 1; + goto L_DealDone; L_BuyCowboy: - if (zeny < 5000) goto L_NoMoney; - if (countitem("FancyHat") < 1) goto L_NoFancy; - if (countitem("SnakeSkin") < 2) goto L_NoSkin; - set zeny, zeny - 5000; - delitem "SnakeSkin", 2; - delitem "FancyHat", 1; - set @temp,rand(2); - if(@temp == 0) goto L_Cowboy_white; - goto L_Cowboy_black; + if (zeny < 5000) goto L_NoMoney; + if (countitem("FancyHat") < 1) goto L_NoFancy; + if (countitem("SnakeSkin") < 2) goto L_NoSkin; + set zeny, zeny - 5000; + delitem "SnakeSkin", 2; + delitem "FancyHat", 1; + set @temp,rand(2); + if(@temp == 0) goto L_Cowboy_white; + goto L_Cowboy_black; L_Cowboy_white: - getitem "WhiteCowboyHat", 1; - goto L_DealDone; + getitem "WhiteCowboyHat", 1; + goto L_DealDone; L_Cowboy_black: - getitem "BlackCowboyHat", 1; - goto L_DealDone; + getitem "BlackCowboyHat", 1; + goto L_DealDone; L_leather_patch: - mes "[Chief Pachua]"; - mes ""; - mes "\"If you just want a piece of leather, then yes, I can make that. Bring me a snake skin and " + @LEATHER_PATCH_PRICE + " GP.\""; - next; - - menu "Here you are.", -, - "OK, I'll be back later.", L_End, - "That's too expensive!.", L_NoDeal; - - if (countitem("SnakeSkin") < 1) goto L_NoSkins; - if (zeny < @LEATHER_PATCH_PRICE) goto L_NoMoney; - getinventorylist; - if (@inventorylist_count == 100 && countitem("SnakeSkin") > 1) goto L_TooMany; - - set zeny, zeny - @LEATHER_PATCH_PRICE; - delitem "SnakeSkin", 1; - getitem "LeatherPatch", 1; - goto L_DealDone; + mes "[Chief Pachua]"; + mes ""; + mes "\"If you just want a piece of leather, then yes, I can make that. Bring me a snake skin and " + @LEATHER_PATCH_PRICE + " GP.\""; + next; + menu + "Here you are.", -, + "OK, I'll be back later.", L_End, + "That's too expensive!.", L_NoDeal; + + if (countitem("SnakeSkin") < 1) goto L_NoSkins; + if (zeny < @LEATHER_PATCH_PRICE) goto L_NoMoney; + getinventorylist; + if (@inventorylist_count == 100 && countitem("SnakeSkin") > 1) goto L_TooMany; + + set zeny, zeny - @LEATHER_PATCH_PRICE; + delitem "SnakeSkin", 1; + getitem "LeatherPatch", 1; + goto L_DealDone; L_DealDone: - mes "[Chief Pachua]"; - mes ""; - mes "\"Here you are!\""; - mes ""; - mes "\"Come back any time.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"Here you are!\""; + mes ""; + mes "\"Come back any time.\""; + close; L_NoDeal: - mes "[Chief Pachua]"; - mes ""; - mes "\"Alright, but you won't get a better deal anywhere else!\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"Alright, but you won't get a better deal anywhere else!\""; + close; L_NoMoney: - mes "[Chief Pachua]"; - mes ""; - mes "\"Oh dear, it seems you don't have enough money.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"Oh dear, it seems you don't have enough money.\""; + close; L_NoJeans: - mes "[Chief Pachua]"; - mes ""; - mes "\"Oh dear, it seems you don't have enough jeans shorts.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"Oh dear, it seems you don't have enough jeans shorts.\""; + close; L_NoFancy: - mes "[Chief Pachua]"; - mes ""; - mes "\"Oh dear, it seems you don't have enough fancy hats.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"Oh dear, it seems you don't have enough fancy hats.\""; + close; L_NoSkins: - mes "[Chief Pachua]"; - mes ""; - mes "\"Oh dear, it seems you don't have enough snake skins.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"Oh dear, it seems you don't have enough snake skins.\""; + close; L_WearingCowboy: - mes "[Chief Pachua]"; - mes ""; - mes "\"Ah, I see that you are wearing a hat made with the ancient methods of my tribe.\""; - next; - goto L_Check_Shops; + mes "[Chief Pachua]"; + mes ""; + mes "\"Ah, I see that you are wearing a hat made with the ancient methods of my tribe.\""; + next; + goto L_Check_Shops; L_WearingChaps: - mes "[Chief Pachua]"; - mes ""; - mes "\"Ah, I see that you are wearing pants made by my tribe.\""; - next; - goto L_Check_Shops; + mes "[Chief Pachua]"; + mes ""; + mes "\"Ah, I see that you are wearing pants made by my tribe.\""; + next; + goto L_Check_Shops; L_End: - close; + close; L_TooMany: - mes "[Chief Pachua]"; - mes ""; - mes "\"You don't have room for a leather patch. Come back later.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"You don't have room for a leather patch. Come back later.\""; + close; L_smoke: - message strcharinfo(0), "Pachua quickly inhales from his pipe and releases a ring of smoke towards the sky!"; - set QUEST_MIRIAM_run, gettimetick(2) - QUEST_MIRIAM_start; - set QUEST_MIRIAM_start, 0; - end; + message strcharinfo(0), "Pachua quickly inhales from his pipe and releases a ring of smoke towards the sky!"; + set QUEST_MIRIAM_run, gettimetick(2) - QUEST_MIRIAM_start; + set QUEST_MIRIAM_start, 0; + end; L_warp_cheat: - if (@warp_cheat == 1) goto L_Begin; - message strcharinfo(0), "Pachua releases a ring of smoke towards the sky! But, by the look on his face, you can tell he is suspicious about your methods..."; - set @warp_cheat, 1; - end; + if (@warp_cheat == 1) goto L_Begin; + message strcharinfo(0), "Pachua releases a ring of smoke towards the sky! But, by the look on his face, you can tell he is suspicious about your methods..."; + set @warp_cheat, 1; + end; L_Basket: - mes "[Chief Pachua]"; - mes ""; - mes "\"For generations my tribe has been crafting special clothes out of different items.\""; - mes "\"Maybe if you bring me the right materials I can make something for you.\""; - next; - menu - "Do you work only with clothes? Because I was looking for a basket.", -; - mes "\"A basket? In our tribe, we craft baskets of all kinds using only reeds. This basket, you need it to carry your items?\""; - menu - "No. It is for the Easter Bunny. I offered to get him one.", -; - mes "\"I appreciate your attitude. Maybe I can help you with that.\""; - menu - "I would be really grateful if you could do that!", -, - "Nah, I decided not to do that stupid quest.", L_End, - "I would prefer to talk to you about other stuff.", L_Begin; //should go to pachuas's regular chat - set QUEST_Easter11, 2; + mes "[Chief Pachua]"; + mes ""; + mes "\"For generations my tribe has been crafting special clothes out of different items.\""; + mes "\"Maybe if you bring me the right materials I can make something for you.\""; + next; + menu + "Do you work only with clothes? Because I was looking for a basket.", -; + mes "\"A basket? In our tribe, we craft baskets of all kinds using only reeds. This basket, you need it to carry your items?\""; + menu + "No. It is for the Easter Bunny. I offered to get him one.", -; + mes "\"I appreciate your attitude. Maybe I can help you with that.\""; + menu + "I would be really grateful if you could do that!", -, + "Nah, I decided not to do that stupid quest.", L_End, + "I would prefer to talk to you about other stuff.", L_Begin; //should go to pachuas's regular chat + set QUEST_Easter11, 2; L_MakeBasket: - mes "[Chief Pachua]"; - mes ""; - mes "\"I will need you to gather reeds for me.\""; - mes "\"5 bundles should do it.\""; - mes "\"You should be able to get those from mouboos as they graze.\""; - menu - "I have the Reeds!", -, - "Ok, I will be back soon", L_End, - "I changed my mind, forget about it", L_End, - "Can I talk to you about another stuff?", L_Begin; //should go to pachuas's regular chat - - if(countitem("ReedBundle") < 5) goto L_EasterNotEnough; - if(countitem("ReedBundle") >= 5) goto L_EasterEnough; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"I will need you to gather reeds for me.\""; + mes "\"5 bundles should do it.\""; + mes "\"You should be able to get those from mouboos as they graze.\""; + menu + "I have the Reeds!", -, + "Ok, I will be back soon", L_End, + "I changed my mind, forget about it", L_End, + "Can I talk to you about another stuff?", L_Begin; //should go to pachuas's regular chat + + if(countitem("ReedBundle") < 5) goto L_EasterNotEnough; + if(countitem("ReedBundle") >= 5) goto L_EasterEnough; + close; L_EasterNotEnough: - mes "[Chief Pachua]"; - mes ""; - mes "\"You do not have enough Reed Bundles for me to work with.\""; - mes "\"Go gather more.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"You do not have enough Reed Bundles for me to work with.\""; + mes "\"Go gather more.\""; + close; L_EasterEnough: - getinventorylist; - if (@inventorylist_count == 100 && countitem("ReedBundle") > 5) goto L_EasterTooMany; - if(countitem("ReedBundle") < 5) goto L_EasterNotEnough; - delitem "ReedBundle", 5; - getitem "EasterBasket", 1; - set QUEST_Easter11, 3; - mes "[Chief Pachua]"; - mes ""; - mes "\"You have gathered enough reeds for me to make the basket.\""; - mes "He skillfully soaks the reeds you brought him,"; - mes "then swiftly weaves them into a basket shape."; - mes "Next, he places the damp basket in the sun to dry for a minute before handing it over to you."; - mes "\"Here is your Easter Basket.\""; - close; + getinventorylist; + if (@inventorylist_count == 100 && countitem("ReedBundle") > 5) goto L_EasterTooMany; + if(countitem("ReedBundle") < 5) goto L_EasterNotEnough; + delitem "ReedBundle", 5; + getitem "EasterBasket", 1; + set QUEST_Easter11, 3; + mes "[Chief Pachua]"; + mes ""; + mes "\"You have gathered enough reeds for me to make the basket.\""; + mes "He skillfully soaks the reeds you brought him,"; + mes "then swiftly weaves them into a basket shape."; + mes "Next, he places the damp basket in the sun to dry for a minute before handing it over to you."; + mes "\"Here is your Easter Basket.\""; + close; L_EasterTooMany: - mes "[Chief Pachua]"; - mes ""; - mes "\"You don't have room for the Easter Basket. Come back later.\""; - close; + mes "[Chief Pachua]"; + mes ""; + mes "\"You don't have room for the Easter Basket. Come back later.\""; + close; L_SeeBunny: - mes "[Chief Pachua]"; - mes ""; - mes "\"You need to return to the Easter Bunny now.\""; - next; - goto L_Begin; - + mes "[Chief Pachua]"; + mes ""; + mes "\"You need to return to the Easter Bunny now.\""; + next; + goto L_Begin; } diff --git a/world/map/npc/024-3/_import.txt b/world/map/npc/024-3/_import.txt new file mode 100644 index 00000000..306ec8ee --- /dev/null +++ b/world/map/npc/024-3/_import.txt @@ -0,0 +1,5 @@ +// Map 024-3: Entry Ancient Amulets +// This file is generated automatically. All manually changes will be removed when running the Converter. +map: 024-3.gat +npc: npc/024-3/_mobs.txt +npc: npc/024-3/_warps.txt diff --git a/world/map/npc/024-3/_mobs.txt b/world/map/npc/024-3/_mobs.txt new file mode 100644 index 00000000..5dc5d7fd --- /dev/null +++ b/world/map/npc/024-3/_mobs.txt @@ -0,0 +1,8 @@ +// This file is generated automatically. All manually changes will be removed when running the Converter. +// Entry Ancient Amulets mobs + + + +024-3.gat,0,0,0|script|Mob024-3|-1,{ + end; +} diff --git a/world/map/npc/024-3/_warps.txt b/world/map/npc/024-3/_warps.txt new file mode 100644 index 00000000..eb326a51 --- /dev/null +++ b/world/map/npc/024-3/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually changes will be removed when running the Converter. +// Entry Ancient Amulets warps + diff --git a/world/map/npc/024-4/_import.txt b/world/map/npc/024-4/_import.txt new file mode 100644 index 00000000..e76b609b --- /dev/null +++ b/world/map/npc/024-4/_import.txt @@ -0,0 +1,5 @@ +// Map 024-4: Giant Maze +// This file is generated automatically. All manually changes will be removed when running the Converter. +map: 024-4.gat +npc: npc/024-4/_mobs.txt +npc: npc/024-4/_warps.txt diff --git a/world/map/npc/024-4/_mobs.txt b/world/map/npc/024-4/_mobs.txt new file mode 100644 index 00000000..c0ad131d --- /dev/null +++ b/world/map/npc/024-4/_mobs.txt @@ -0,0 +1,8 @@ +// This file is generated automatically. All manually changes will be removed when running the Converter. +// Giant Maze mobs + + + +024-4.gat,0,0,0|script|Mob024-4|-1,{ + end; +} diff --git a/world/map/npc/024-4/_warps.txt b/world/map/npc/024-4/_warps.txt new file mode 100644 index 00000000..cd46789f --- /dev/null +++ b/world/map/npc/024-4/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually changes will be removed when running the Converter. +// Giant Maze warps + diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt index f560b0d0..916d4dc4 100644 --- a/world/map/npc/033-1/birrod.txt +++ b/world/map/npc/033-1/birrod.txt @@ -1,26 +1,21 @@ 033-1.gat,72,27,0|script|Birrod|217,{ -//TODO: minimum level for quests? +// TODO: check name of wolf monster after it has been added to the mob_db set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); -//TODO: think about amount - set @candy, 25; - set @chocolate, 20; - set @candycane, 15; - set @sweet_exp, 10000; - -// different idea: wolf ambushs on 034-1 -//TODO set @wolfdrop, ; -//TODO set @wolf_exp, ; +// TODO: determine values: + set @wolvern_level, 40; // minimum level to do the wolvern hunting + set @wolvern_amount, 10; // number of script spawned wolverns to kill + set @wolvern_exp, 5000; set @minigame_exp, 5000; if (@state >= 6) goto L_Impressed; if (@state == 5) goto L_Questions; - if (@state == 4) goto L_Warrior; - if (@state == 3) goto L_Sweets; + if (@state == 4) goto L_Wolverns; + if (@state == 3) goto L_Hunting; if (@state == 2) goto L_Kimarr; if (@state == 1) goto L_Fluffy; @@ -45,62 +40,46 @@ L_Kimarr: mes "\"But I think, Kimarr has something for you.\""; close; -// TODO: decide whether to leave out this part or not -L_Sweets: - mes "Birrod speaks with a lowered voice."; +L_Hunting: + if (baselevel < @wolvern_level) + goto L_Weak; mes "[Birrod]"; - mes "\"" + strcharinfo(0) + ", can I ask you for a favor?\""; + mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\""; next; - mes "\"I noticed those slime things with the funny hats. And they have so tasty stuff with them!\""; + mes "\"I noticed some groups of wolverns in the forest west of here which are unusually aggressive."; + mes "This makes dangerous to all the small people from the town nearby to go there.\""; next; - mes "He blushes."; - mes "[Birrod]"; - mes "\"A warrior shouldn't get excited about sweets, so ahm, it would be great if you don't tell Yerrnk and Kimarr about it.\""; + mes "\"To prove your skills, go to the forest and hunt down " + @wolvern_amount + " of the very aggressive wolverns.\""; next; - mes "\"Do you have " + @candy + " Candys, " + @chocolate + " Chocolate Bars and " + @candycane + " Candy Canes for me?\""; - menu - "Sure.",-, - "I'll see what I can do.",L_Close, - "I'm a great warrior, I don't have sweets with me!",L_Close; - - if ((countitem("Candy") < @candy) || (countitem("ChocolateBar") < @chocolate) || (countitem("CandyCane") < @candycane)) goto L_No_Items; - delitem "Candy", @candy; - delitem "ChocolateBar", @chocolate; - delitem "CandyCane", @candycane; - getexp @sweet_exp, 0; + mes "\"There are also some wolverns that behave normally attacking you when you come to close to them."; + mes "Those are not the ones I mean, but those that seek the battle themselves.\""; set @state, 4; callsub S_Update_Mask; - mes "[Birrod]"; - mes "\"Thank you!\""; - mes "He puts the sweets in his pockets covertly."; - mes "Then takes one candy and eats it with such a delighted look on his face that's really hard not to burst out in laughter."; close; -L_Warrior: -// TODO: player can show his fighting abilities by bringing some drop of wolve monsters -// different idea: wolf ambushs on 034-1 -// wolve monsters are more dangerous and harder to hunt than fluffies -> harder task -// reason to hunt them: there unusual aggressive and are a danger for the people living in that area -// also use of the items the drop (e.g. fur -> clothes) +L_Wolverns: + if (wolvern_count >= @wolvern_amount) + goto L_Wolverns_Done; mes "[Birrod]"; - mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\""; + mes "\"Greetings, my friend."; + mes "The aggressive wolverns are still roaming the forest west of here.\""; next; -// TODO: check name of monster - mes "\"I noticed many wolverns in this area. When there are so many of them, they reduce the fluffy population too much."; - mes "Also they are dangerous to all the small people who live in the town nearby.\""; - next; - mes "\"Bring me (amount) (TODO:drop of wolvern)."; - mes "alternative: hunt (amount) of the aggressive wolverns in forest in the west."; - mes "TODO: add story about what useful can be done with that drop."; - menu - "Debug succes",-, - "Debug no succes",L_Close; + mes "\"This is your chance to prove your worth.\""; + close; + +L_Wolverns_Done: set @state, 5; callsub S_Update_Mask; - if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; + set wolvern_count, 0; mes "[Birrod]"; + mes "\"" + strcharinfo(0) + "!"; + mes "Good work. Now this area is much safer.\""; + next; + getexp @wolvern_exp, 0; + if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; mes "\"Your skills are impressing. You are worthy to be called a warrior of the Mangarr, if you accept.\""; next; + goto L_Questions; L_Questions: if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; @@ -251,7 +230,13 @@ L_No_Member: mes "Come back when you feel better prepared.\""; close; +L_Weak: + mes "[Birrod]"; + mes "\"Hello, " + strcharinfo(0) + "! I might have a task for you when you've grown up a bit.\""; + close; + L_Close: + // TODO: set all variables to 0 close; S_Update_Mask: diff --git a/world/map/npc/033-1/debug.txt b/world/map/npc/033-1/debug.txt index 7db90195..5fab2310 100644 --- a/world/map/npc/033-1/debug.txt +++ b/world/map/npc/033-1/debug.txt @@ -5,17 +5,27 @@ menu "Reset all records", -, "Reset quest",L_Reset, + "Set Fluffy Hunting done", L_Fluffy, "Close", L_Close; cleararray $Record_Fluffy_Kills, 0, MAX_HIGH_SCORES; cleararray $Record_Fluffy_Name$, "", MAX_HIGH_SCORES; cleararray $Record_Fluffy_Date$, "", MAX_HIGH_SCORES; +L_Fluffy: + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, 3; + callsub S_Update_Mask; + set wolvern_count, 0; + close; + L_Reset: set @Q_Barbarians_MASK, NIBBLE_0_MASK; set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; set @state, 0; callsub S_Update_Mask; + set wolvern_count, 0; close; S_Update_Mask: diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt index b2a7d2e6..c59d1036 100644 --- a/world/map/npc/033-1/kimarr.txt +++ b/world/map/npc/033-1/kimarr.txt @@ -64,8 +64,6 @@ "Sure! What shall I do?", -, "No, I don't need to prove anything.", L_Close; -L_Explain: - mes "[Kimarr]"; mes "\"Every young member of our tribe proves his or her worth by hunting monsters.\""; next; mes "\"The first monsters to hunt are fluffies. Fluffies give a good meal for a young person and the fur can be used to make clothes and blankets.\""; @@ -114,7 +112,7 @@ L_Reward1: // as far as I can tell, this fails because it won't resume from the "next" // when the script is executed via the "OnFluffyDeath" callback // (I haven't tried via the 301st call of OnTimer1000) - message strcharinfo(0), "Kimarr: talk to me for your reward"; + message strcharinfo(0), "Kimarr: Talk to me for your reward."; goto L_Close; // this label is reached on completion of the quest, or, if you inventory was @@ -128,7 +126,7 @@ L_Reward: if (@inventorylist_count == 100) goto L_Full_Inv; set @inventorylist_count, 0; - mes "[Kimarr]"; + mes "\"Take this as a symbol of your strength. You're a member of our tribe now.\""; getitem "YetiSkinShirt", 1; set @state, 3; @@ -137,7 +135,6 @@ L_Reward: goto L_Close; L_Full_Inv: - mes "[Kimarr]"; mes "\"You can't carry the reward I want to give you.\""; goto L_Close; @@ -212,7 +209,6 @@ L_ContinueTimer: end; L_GotOut: - // TODO: this is the only use of $@Fluffy_Fighter$, can we remove it? npctalk "What a strange thing... " + $@Fluffy_Fighter$ + " just disappeared!"; callsub S_Clean; end; diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt index a474a759..4e13a169 100644 --- a/world/map/npc/033-1/yerrnk.txt +++ b/world/map/npc/033-1/yerrnk.txt @@ -50,6 +50,8 @@ L_Sorrow: mes "\"I noticed that you're getting along with Kimarr and Birrod very well. That's good.\""; mes "He smiles, but then an expression of worry gets back to his face."; next; + +L_Mission: mes "[Yerrnk]"; mes "\"Our tribe is going through dire straits. We used to live in harmony with the mountain ever since."; mes "Life is hard in the snowy mountains, but this life suits our nature.\""; @@ -71,14 +73,21 @@ L_Birrod: mes "[Yerrnk]"; mes "\"" + strcharinfo(0) + ", I have to admit that I'm surprised by your skills."; mes "You've proved your braveness and strength.\""; + next; if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready; mes "\"Please talk to Birrod to receive the initiation ritual to become a warrior of the Mangarr.\""; + menu + "Alright.",-, + "Can you tell me again what are you here for?",L_Mission; close; L_Not_Ready: mes "[Yerrnk]"; mes "\"But you're not yet ready to become a fully accepted warrior of our tribe."; mes "You should travel the world to gain the ability to focus on your inner strength.\""; + menu + "Alright.",-, + "What are you doing down here?",L_Mission; close; L_Warrior: diff --git a/world/map/npc/034-1/_import.txt b/world/map/npc/034-1/_import.txt index e4b39026..e88cbd7a 100644 --- a/world/map/npc/034-1/_import.txt +++ b/world/map/npc/034-1/_import.txt @@ -3,3 +3,4 @@ map: 034-1.gat npc: npc/034-1/_mobs.txt npc: npc/034-1/_warps.txt +npc: npc/034-1/ambushs.txt diff --git a/world/map/npc/034-1/ambushs.txt b/world/map/npc/034-1/ambushs.txt new file mode 100644 index 00000000..31d6cebb --- /dev/null +++ b/world/map/npc/034-1/ambushs.txt @@ -0,0 +1,723 @@ +// This file belongs to the wolvern hunting quest given by 033-1/birrod.txt +// Author: Jenalya +// TODO: add more ambushs all over the map + +034-1.gat,118,59,0|script|#Ambush0Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + +// if (rand(50) > wolvern_count) // TODO: eventally use different argument for rand +// end; + + if ($@Ambush0_Active != 0) + end; + set $@Ambush0VictimID, getcharid(3); + set $@Ambush0_Active, 1; + donpcevent "#Ambush0::OnAmbush"; + end; +} + +034-1.gat,118,59,0|script|#Ambush0|45,{ +end; + +OnAmbush: + attachrid($@Ambush0VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush0_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 113, 55, 122, 63, "", 1089, $@Ambush0_Spawn, "#Ambush0::OnWolvernDeath"; + set $@Ambush0VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush0_Spawn, $@Ambush0_Spawn - 1; + if ($@Ambush0_Spawn == 0) + set $@Ambush0_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,94,91,0|script|#Ambush1Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush1_Active != 0) + end; + set $@Ambush1VictimID, getcharid(3); + set $@Ambush1_Active, 1; + donpcevent "#Ambush1::OnAmbush"; + end; +} + +034-1.gat,94,91,0|script|#Ambush1|45,{ +end; + +OnAmbush: + attachrid($@Ambush1VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush1_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 91, 89, 98, 94, "", 1089, $@Ambush1_Spawn, "#Ambush1::OnWolvernDeath"; + set $@Ambush1VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush1_Spawn, $@Ambush1_Spawn - 1; + if ($@Ambush1_Spawn == 0) + set $@Ambush1_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,122,35,0|script|#Ambush2Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush2_Active != 0) + end; + set $@Ambush2VictimID, getcharid(3); + set $@Ambush2_Active, 1; + donpcevent "#Ambush2::OnAmbush"; + end; +} + +034-1.gat,122,35,0|script|#Ambush2|45,{ +end; + +OnAmbush: + attachrid($@Ambush2VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush2_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 118, 32, 126, 39, "", 1089, $@Ambush2_Spawn, "#Ambush2::OnWolvernDeath"; + set $@Ambush2VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush2_Spawn, $@Ambush2_Spawn - 1; + if ($@Ambush2_Spawn == 0) + set $@Ambush2_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,83,44,0|script|#Ambush3Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush3_Active != 0) + end; + set $@Ambush3VictimID, getcharid(3); + set $@Ambush3_Active, 1; + donpcevent "#Ambush3::OnAmbush"; + end; +} + +034-1.gat,83,44,0|script|#Ambush3|45,{ +end; + +OnAmbush: + attachrid($@Ambush3VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush3_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 79, 41, 86, 47, "", 1089, $@Ambush3_Spawn, "#Ambush3::OnWolvernDeath"; + set $@Ambush3VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush3_Spawn, $@Ambush3_Spawn - 1; + if ($@Ambush3_Spawn == 0) + set $@Ambush3_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,74,28,0|script|#Ambush4Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush4_Active != 0) + end; + set $@Ambush4VictimID, getcharid(3); + set $@Ambush4_Active, 1; + donpcevent "#Ambush4::OnAmbush"; + end; +} + +034-1.gat,74,28,0|script|#Ambush4|45,{ +end; + +OnAmbush: + attachrid($@Ambush4VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush4_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 69, 25, 77, 31, "", 1089, $@Ambush4_Spawn, "#Ambush4::OnWolvernDeath"; + set $@Ambush4VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush4_Spawn, $@Ambush4_Spawn - 1; + if ($@Ambush4_Spawn == 0) + set $@Ambush4_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,26,44,0|script|#Ambush5Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush5_Active != 0) + end; + set $@Ambush5VictimID, getcharid(3); + set $@Ambush5_Active, 1; + donpcevent "#Ambush5::OnAmbush"; + end; +} + +034-1.gat,26,44,0|script|#Ambush5|45,{ +end; + +OnAmbush: + attachrid($@Ambush5VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush5_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 22, 40, 30, 48, "", 1089, $@Ambush5_Spawn, "#Ambush5::OnWolvernDeath"; + set $@Ambush5VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush5_Spawn, $@Ambush5_Spawn - 1; + if ($@Ambush5_Spawn == 0) + set $@Ambush5_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,50,47,0|script|#Ambush6Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush6_Active != 0) + end; + set $@Ambush6VictimID, getcharid(3); + set $@Ambush6_Active, 1; + donpcevent "#Ambush6::OnAmbush"; + end; +} + +034-1.gat,50,47,0|script|#Ambush6|45,{ +end; + +OnAmbush: + attachrid($@Ambush6VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush6_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 46, 45, 54, 50, "", 1089, $@Ambush6_Spawn, "#Ambush6::OnWolvernDeath"; + set $@Ambush6VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush6_Spawn, $@Ambush6_Spawn - 1; + if ($@Ambush6_Spawn == 0) + set $@Ambush6_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,36,62,0|script|#Ambush7Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush7_Active != 0) + end; + set $@Ambush7VictimID, getcharid(3); + set $@Ambush7_Active, 1; + donpcevent "#Ambush7::OnAmbush"; + end; +} + +034-1.gat,36,62,0|script|#Ambush7|45,{ +end; + +OnAmbush: + attachrid($@Ambush7VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush7_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 31, 59, 39, 65, "", 1089, $@Ambush7_Spawn, "#Ambush7::OnWolvernDeath"; + set $@Ambush7VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush7_Spawn, $@Ambush7_Spawn - 1; + if ($@Ambush7_Spawn == 0) + set $@Ambush7_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,26,95,0|script|#Ambush8Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush8_Active != 0) + end; + set $@Ambush8VictimID, getcharid(3); + set $@Ambush8_Active, 1; + donpcevent "#Ambush8::OnAmbush"; + end; +} + +034-1.gat,26,95,0|script|#Ambush8|45,{ +end; + +OnAmbush: + attachrid($@Ambush8VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush8_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 21, 90, 32, 100, "", 1089, $@Ambush8_Spawn, "#Ambush8::OnWolvernDeath"; + set $@Ambush8VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush8_Spawn, $@Ambush8_Spawn - 1; + if ($@Ambush8_Spawn == 0) + set $@Ambush8_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,56,91,0|script|#Ambush9Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush9_Active != 0) + end; + set $@Ambush9VictimID, getcharid(3); + set $@Ambush9_Active, 1; + donpcevent "#Ambush9::OnAmbush"; + end; +} + +034-1.gat,56,91,0|script|#Ambush9|45,{ +end; + +OnAmbush: + attachrid($@Ambush9VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush9_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 52, 88, 61, 96, "", 1089, $@Ambush9_Spawn, "#Ambush9::OnWolvernDeath"; + set $@Ambush9VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush9_Spawn, $@Ambush9_Spawn - 1; + if ($@Ambush9_Spawn == 0) + set $@Ambush9_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,65,66,0|script|#Ambush10Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush10_Active != 0) + end; + set $@Ambush10VictimID, getcharid(3); + set $@Ambush10_Active, 1; + donpcevent "#Ambush10::OnAmbush"; + end; +} + +034-1.gat,65,66,0|script|#Ambush10|45,{ +end; + +OnAmbush: + attachrid($@Ambush10VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush10_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 60, 63, 69, 69, "", 1089, $@Ambush10_Spawn, "#Ambush10::OnWolvernDeath"; + set $@Ambush10VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush10_Spawn, $@Ambush10_Spawn - 1; + if ($@Ambush10_Spawn == 0) + set $@Ambush10_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,86,68,0|script|#Ambush11Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush11_Active != 0) + end; + set $@Ambush11VictimID, getcharid(3); + set $@Ambush11_Active, 1; + donpcevent "#Ambush11::OnAmbush"; + end; +} + +034-1.gat,86,68,0|script|#Ambush11|45,{ +end; + +OnAmbush: + attachrid($@Ambush11VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush11_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 82, 65, 90, 72, "", 1089, $@Ambush11_Spawn, "#Ambush11::OnWolvernDeath"; + set $@Ambush11VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush11_Spawn, $@Ambush11_Spawn - 1; + if ($@Ambush11_Spawn == 0) + set $@Ambush11_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,101,79,0|script|#Ambush12Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush12_Active != 0) + end; + set $@Ambush12VictimID, getcharid(3); + set $@Ambush12_Active, 1; + donpcevent "#Ambush12::OnAmbush"; + end; +} + +034-1.gat,101,79,0|script|#Ambush12|45,{ +end; + +OnAmbush: + attachrid($@Ambush12VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush12_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 98, 76, 104, 81, "", 1089, $@Ambush12_Spawn, "#Ambush12::OnWolvernDeath"; + set $@Ambush12VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush12_Spawn, $@Ambush12_Spawn - 1; + if ($@Ambush12_Spawn == 0) + set $@Ambush12_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,124,88,0|script|#Ambush13Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush13_Active != 0) + end; + set $@Ambush13VictimID, getcharid(3); + set $@Ambush13_Active, 1; + donpcevent "#Ambush13::OnAmbush"; + end; +} + +034-1.gat,124,88,0|script|#Ambush13|45,{ +end; + +OnAmbush: + attachrid($@Ambush13VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush13_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 120, 86, 127, 90, "", 1089, $@Ambush13_Spawn, "#Ambush13::OnWolvernDeath"; + set $@Ambush13VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush13_Spawn, $@Ambush13_Spawn - 1; + if ($@Ambush13_Spawn == 0) + set $@Ambush13_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} + +034-1.gat,117,103,0|script|#Ambush14Trigger|45,1,1,{ + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state != 4) + end; + + if (rand(50) > wolvern_count) + end; + + if ($@Ambush14_Active != 0) + end; + set $@Ambush14VictimID, getcharid(3); + set $@Ambush14_Active, 1; + donpcevent "#Ambush14::OnAmbush"; + end; +} + +034-1.gat,117,103,0|script|#Ambush14|45,{ +end; + +OnAmbush: + attachrid($@Ambush14VictimID); + set @wolvern_amount, 10; // has to be same value as in birrod.txt + set $@Ambush14_Spawn, 4 + rand(3); + message strcharinfo(0), "An ambush!"; + areamonster "034-1.gat", 114, 100, 120, 106, "", 1089, $@Ambush14_Spawn, "#Ambush14::OnWolvernDeath"; + set $@Ambush14VictimID, 0; + end; + +OnWolvernDeath: + set @MobID, 1089; // TODO: adapt + + set @Q_Barbarians_MASK, NIBBLE_0_MASK; + set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; + set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT); + if (@state == 4) + set wolvern_count, wolvern_count + 1; + + set $@Ambush14_Spawn, $@Ambush14_Spawn - 1; + if ($@Ambush14_Spawn == 0) + set $@Ambush14_Active, 0; + + if (wolvern_count >= @wolvern_amount) + message strcharinfo(0), "You've hunted down a lot of Wolverns. Maybe you should talk to Birrod?"; + end; +} diff --git a/world/map/npc/_import.txt b/world/map/npc/_import.txt index 15563bfd..0ca266d1 100644 --- a/world/map/npc/_import.txt +++ b/world/map/npc/_import.txt @@ -55,6 +55,8 @@ import: npc/021-2/_import.txt import: npc/022-1/_import.txt import: npc/024-1/_import.txt import: npc/024-2/_import.txt +import: npc/024-3/_import.txt +import: npc/024-4/_import.txt import: npc/025-1/_import.txt import: npc/025-3/_import.txt import: npc/025-4/_import.txt |