summaryrefslogtreecommitdiff
path: root/world/map/npc/002-2
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/002-2')
-rw-r--r--world/map/npc/002-2/_import.txt24
-rw-r--r--world/map/npc/002-2/_mobs.txt3
-rw-r--r--world/map/npc/002-2/_nodes.txt4
-rw-r--r--world/map/npc/002-2/_warps.txt20
-rw-r--r--world/map/npc/002-2/bakery.txt159
-rw-r--r--world/map/npc/002-2/barber.txt12
-rw-r--r--world/map/npc/002-2/bleacher.txt132
-rw-r--r--world/map/npc/002-2/casino.txt202
-rw-r--r--world/map/npc/002-2/dedication.txt10
-rw-r--r--world/map/npc/002-2/hetchel.txt447
-rw-r--r--world/map/npc/002-2/imec.txt116
-rw-r--r--world/map/npc/002-2/inya.txt209
-rw-r--r--world/map/npc/002-2/kps.txt155
-rw-r--r--world/map/npc/002-2/kylian.txt403
-rw-r--r--world/map/npc/002-2/latoy.txt27
-rw-r--r--world/map/npc/002-2/mapflags.txt2
-rw-r--r--world/map/npc/002-2/omar.txt335
-rw-r--r--world/map/npc/002-2/phaet.txt30
-rw-r--r--world/map/npc/002-2/rebecca.txt84
-rw-r--r--world/map/npc/002-2/shops.txt3
-rw-r--r--world/map/npc/002-2/stranger.txt408
-rw-r--r--world/map/npc/002-2/troupe_leader.txt63
22 files changed, 0 insertions, 2848 deletions
diff --git a/world/map/npc/002-2/_import.txt b/world/map/npc/002-2/_import.txt
deleted file mode 100644
index e6688c6a..00000000
--- a/world/map/npc/002-2/_import.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-// Map 002-2: Sandstorm Desert Indoors
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-map: 002-2
-npc: npc/002-2/_mobs.txt
-npc: npc/002-2/_nodes.txt
-npc: npc/002-2/_warps.txt
-npc: npc/002-2/bakery.txt
-npc: npc/002-2/barber.txt
-npc: npc/002-2/bleacher.txt
-npc: npc/002-2/casino.txt
-npc: npc/002-2/dedication.txt
-npc: npc/002-2/hetchel.txt
-npc: npc/002-2/imec.txt
-npc: npc/002-2/inya.txt
-npc: npc/002-2/kps.txt
-npc: npc/002-2/kylian.txt
-npc: npc/002-2/latoy.txt
-npc: npc/002-2/mapflags.txt
-npc: npc/002-2/omar.txt
-npc: npc/002-2/phaet.txt
-npc: npc/002-2/rebecca.txt
-npc: npc/002-2/shops.txt
-npc: npc/002-2/stranger.txt
-npc: npc/002-2/troupe_leader.txt
diff --git a/world/map/npc/002-2/_mobs.txt b/world/map/npc/002-2/_mobs.txt
deleted file mode 100644
index 0d9b84e4..00000000
--- a/world/map/npc/002-2/_mobs.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Sandstorm Desert Indoors mobs
-
diff --git a/world/map/npc/002-2/_nodes.txt b/world/map/npc/002-2/_nodes.txt
deleted file mode 100644
index 875c3c60..00000000
--- a/world/map/npc/002-2/_nodes.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Sandstorm Desert Indoors nodes
-
-// (no nodes)
diff --git a/world/map/npc/002-2/_warps.txt b/world/map/npc/002-2/_warps.txt
deleted file mode 100644
index b3db1c6d..00000000
--- a/world/map/npc/002-2/_warps.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is generated automatically. All manually added changes will be removed when running the Converter.
-// Sandstorm Desert Indoors warps
-
-002-2,44,34|warp|-1,-1,002-1,73,36
-002-2,44,20|warp|0,-1,002-2,45,78
-002-2,46,79|warp|0,-1,002-2,43,21
-002-2,46,55|warp|0,-1,002-2,44,109
-002-2,45,110|warp|0,-1,002-2,45,56
-002-2,23,110|warp|-1,-1,002-1,67,30
-002-2,34,20|warp|-1,-1,002-2,79,69
-002-2,37,20|warp|-1,-1,002-2,72,31
-002-2,72,32|warp|-1,-1,002-2,37,21
-002-2,79,70|warp|-1,-1,002-2,34,21
-002-2,75,101|warp|-1,-1,002-1,109,46
-002-2,83,101|warp|-1,-1,002-1,115,46
-002-2,78,132|warp|-1,-1,002-1,114,36
-002-2,68,121|warp|-1,-1,002-1,110,28
-002-2,120,67|warp|-1,-1,002-1,99,44
-002-2,120,95|warp|-1,-1,002-1,57,36
-002-2,119,132|warp|-1,-1,002-1,57,27
diff --git a/world/map/npc/002-2/bakery.txt b/world/map/npc/002-2/bakery.txt
deleted file mode 100644
index 28a16b3a..00000000
--- a/world/map/npc/002-2/bakery.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-// The bakery
-
-// The chef
-002-2,21,22,0|script|Riskim|148
-{
- mes "[Riskim]";
- mes "";
- mes "\"Welcome to our bakery!\"";
-
- callfunc "KadiyaSubquestConsts";
- if ((@Q_kadiya_status == @Q_STATUS_WANTS_CHOCOCAKE)
- && (countitem ("MopoxCurePotion") > 0))
- goto L_lace_chococake;
-
- if ((@Q_kadiya_status == @Q_STATUS_WANTS_ORANGECUPCAKE)
- && (countitem ("MopoxCurePotion") > 0))
- goto L_lace_cupcake;
-
- mes "\"Would you mind bringing me ##B6 acorns##b please? I need them to make flour so I can bake some chocolate cakes. I will be so delicious!\"";
- next;
- mes "\"Uh... I mean... the cakes will be delicious...\" %%;";
- next;
-
- set @dq_level, 15;
- set @dq_cost, 3;
- set @dq_count, 6;
- set @dq_name$, "Acorn";
- set @dq_friendly_name$, "acorns";
- set @dq_money, 250;
- set @dq_exp, 50;
-
- callfunc "DailyQuest";
-
- next;
- mes "\"Don't forget: our bakery is the best!\"";
- close;
-
-L_lace_chococake:
- next;
- menu
- "Thanks! Let me have a look around...", L_End,
- "Can you put this potion into a Chocolate Cake?", L_Next,
- "Goodbye!", L_End;
-
-L_Next:
- mes "[Riskim]";
- mes "";
- mes "You take the potion out and attempt to show it to Riskim, but he takes a step back.";
- mes "\"Oh! I remember that smell...\"";
- mes "\"Elanore's Mopox potion, right? She made me drink that too...\"";
- mes "He chuckles.";
- mes "\"Yes. Well, you definitely want to hide that somehow.\"";
- next;
- mes "[Riskim]";
- mes "";
- mes "\"We'll need extra chocolate for that one. If you can give me ten pieces of chocolate, the Mopox potion, and a payment of 400 GP, I'll bake you a special Chocolate Cake that hides the taste.\"";
- next;
- menu
- "I will get them for you.", L_End,
- "Here you are!", L_Continue,
- "Maybe later.", L_End;
-
-L_Continue:
- if (countitem("ChocolateBar") < 10)
- goto L_lacking_ingredients;
- if (countitem("MopoxCurePotion") < 1)
- goto L_lacking_ingredients;
- if (Zeny < 400)
- goto L_lacking_Zeny;
- delitem "MopoxCurePotion", 1;
- delitem "ChocolateBar", 10;
- getitem "LacedChocolateCake", 1;
- set Zeny, Zeny - 400;
-
- mes "[Riskim]";
- mes "";
- mes "\"Please have a seat!\"";
- mes "You watch as Riskim melts the chocolate, stirs in the potion, and then glazes a cake with the mixture.";
- mes "\"It's a bit more chocolaty than your average chocolate cake, so it should help mask that awful taste.\"";
- next;
- mes "[Riskim]";
- mes "";
- mes "Riskim hands you the cake.";
- mes "\"Here you are! I hope this helps.\"";
- close;
-
-L_lacking_Zeny:
- mes "[Riskim]";
- mes "";
- mes "\"I'm sorry, but I have to charge 400 GP. I've got to make a living somehow.\"";
- close;
-
-L_lacking_ingredients:
- mes "[Riskim]";
- mes "";
- mes "\"Sorry, but I need both the ten Chocolate Bars and your potion for this. Please come back later when you have everything.\"";
- close;
-
-L_lace_cupcake:
- next;
- menu
- "Thanks! Let me have a look around...", L_End,
- "Can mix a potion into an Orange Cupcake?", L_More,
- "Goodbye!", L_End;
-
-L_More:
- mes "[Riskim]";
- mes "";
- mes "\"Orange Cupcakes? Oh dear... I'm sorry, but I have a very bad allergy to oranges.\"";
- next;
- mes "[Riskim]";
- mes "";
- mes "\"Perhaps the Chef at Dimond's Cove can help you. We get all of our cupcakes from him.\"";
- next;
- goto L_End;
-
-L_End:
- close;
-}
-
-// Server
-002-2,28,31,0|script|Sara|108
-{
- mes "[Sara]";
- mes "";
- mes "\"Hello!\"";
- mes "\"If you'd like to buy something, just ask Drabur.\"";
- mes "\"If you need something made-to-order, talk to Riskim.\"";
- close;
-}
-
-// The cashier
-002-2,25,22,0|shop|Drabur|112,WhiteCake:*1,ChocolateCake:*1,OrangeCake:*1,AppleCake:*1,Cake:*1,CherryCake:*1,OrangeCupcake:*1,Milk:*1,XmasCake:*1
-
-// Bus boy
-002-2,21,28,0|script|Iormo|160
-{
- mes "[Iormo]";
- mes "";
- mes "\"The cake sure is good, but this room can get messy with all the flour.\"";
- close;
-}
-
-// An old couple eating at the bakery
-002-2,24,27,0|script|Rynoh|159
-{
- mes "[Rynoh]";
- mes "";
- mes "\"The cakes may be expensive, but they sure are delicious!\"";
- close;
-}
-
-002-2,26,27,0|script|Ontas|154
-{
- mes "[Ontas]";
- mes "";
- mes "\"We come here almost every week! This place has some of the best bread I've ever eaten!\"";
- close;
-}
diff --git a/world/map/npc/002-2/barber.txt b/world/map/npc/002-2/barber.txt
deleted file mode 100644
index 3de89005..00000000
--- a/world/map/npc/002-2/barber.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// A barber (later we can make it so certain styles need to come from him, for a price)
-002-2,22,77,0|script|Issay|156
-{
- mes "[Issay the Barber]";
- mes "\"Want to change your hairstyle?\"";
- next;
- callfunc "Barber";
- mes "[Issay the Barber]";
- mes "\"Come again!\"";
- close;
-}
-
diff --git a/world/map/npc/002-2/bleacher.txt b/world/map/npc/002-2/bleacher.txt
deleted file mode 100644
index 3935fe24..00000000
--- a/world/map/npc/002-2/bleacher.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-// IMPORTANT: add your items to DyeConfig, do not edit Candide
-
-002-2,72,92,0|script|Candide|156
-{
- mes "[Candide]";
- mes "\"Greetings! I am Candide the Bleacher.";
- mes "Tulimshar is my homeland, where I learned the ancient art of bleaching.\"";
- next;
- mes "\"Bleaching was originally done by the sun, but now we use ash combined with special ingredients to remove color from fabric.\"";
- next;
- menu
- "What is needed for the bleaching process?", L_Materials,
- "I'd like to bleach something.", L_bleach_menu,
- "So long.", L_Close;
-
-L_Materials:
- mes "[Candide]";
- mes "\"For each item, I will need 3 piles of ash and 5,000 GP for the special ingredients.\"";
- next;
- menu
- "I'd like to bleach something.", L_bleach_menu,
- "So long.", L_Close;
-
-L_bleach_menu:
- if (countitem("PileOfAsh") < 3) goto L_no_ash;
- if (Zeny < 5000) goto L_no_money;
- cleararray @CANDIDE_items,0,getarraysize(@CANDIDE_items);
- cleararray @CANDIDE_color,0,getarraysize(@CANDIDE_color);
- cleararray @CANDIDE_menu$,"",getarraysize(@CANDIDE_menu$);
- set @w, 0;
- freeloop 1; // do not check for infinity loop
- callsub S_LoopArray;
- freeloop 0; // re-enable infinity loop check
- set @w, 0;
- set @c, 0;
- set @p, 0;
- if(@CANDIDE_menu$[0] == "") goto L_Nothing;
- mes "[Candide]";
- mes "\"Yes?\"";
- next;
- menu
- "Nevermind.", L_Close,
- @CANDIDE_menu$[0], L_MenuItems, // base array was too big for a dynamic menu so we can't use it
- @CANDIDE_menu$[1], L_MenuItems,
- @CANDIDE_menu$[2], L_MenuItems,
- @CANDIDE_menu$[3], L_MenuItems,
- @CANDIDE_menu$[4], L_MenuItems,
- @CANDIDE_menu$[5], L_MenuItems,
- @CANDIDE_menu$[6], L_MenuItems,
- @CANDIDE_menu$[7], L_MenuItems,
- @CANDIDE_menu$[8], L_MenuItems,
- @CANDIDE_menu$[9], L_MenuItems,
- @CANDIDE_menu$[10], L_MenuItems,
- @CANDIDE_menu$[11], L_MenuItems,
- @CANDIDE_menu$[12], L_MenuItems,
- @CANDIDE_menu$[13], L_MenuItems,
- @CANDIDE_menu$[14], L_MenuItems,
- @CANDIDE_menu$[15], L_MenuItems,
- @CANDIDE_menu$[16], L_MenuItems,
- @CANDIDE_menu$[17], L_MenuItems;
-
-S_LoopArray:
- set @c, 0;
- callsub S_LoopColor;
- set @w, @w + 1;
- if(@w < getarraysize($@DYE_items$)) goto S_LoopArray;
- return;
-
-S_LoopColor:
- if(countitem($@DYE_colors$[@c] + $@DYE_items$[@w]) > 0)
- goto L_AddToMenu;
- goto L_LoopColor2;
-
-L_AddToMenu:
- set @CANDIDE_items[@p], @w;
- set @CANDIDE_color[@p], @c;
- set @CANDIDE_menu$[@p], $@DYE_color_names$[@c]+" "+$@DYE_item_names$[@w];
- set @p, @p + 1;
- goto L_LoopColor2;
-
-L_LoopColor2:
- set @c, @c + 1;
- if(@c < getarraysize($@DYE_colors$)) goto S_LoopColor;
- return;
-
-L_Nothing:
- mes "[Candide]";
- mes "\"Sorry, you have nothing to bleach.\"";
- next;
- goto L_Close;
-
-L_MenuItems:
- if (countitem("PileOfAsh") < 3) goto L_no_ash;
- if (Zeny < 5000) goto L_no_money;
- set @m, @menu - 2;
- set @it$, $@DYE_colors$[@CANDIDE_color[@m]] + $@DYE_items$[@CANDIDE_items[@m]];
- if(getitemlink(@it$) == "Unknown Item") mapexit;
- delitem @it$, 1;
- delitem "PileOfAsh", 3;
- set Zeny, Zeny - 5000;
- getitem $@DYE_items$[@CANDIDE_items[@m]], 1;
- goto L_again;
-
-L_again:
- mes "[Candide]";
- mes "\"Would you like to bleach something else?\"";
- next;
- menu
- "Yes.", L_bleach_menu,
- "No.", L_Close;
-
-L_no_ash:
- mes "[Candide]";
- mes "\"You don't have enough ash for me to bleach anything.";
- mes "I need three piles.\"";
- next;
- goto L_Close;
-
-L_no_money:
- mes "[Candide]";
- mes "\"You don't have enough gold for me to bleach anything.";
- mes "I need 5,000 GP for supplies.\"";
- next;
- goto L_Close;
-
-L_Close:
- mes "[Candide]";
- mes "\"Come again.\"";
- close2;
- emotion EMOTE_GRIN, strcharinfo(0);
- end;
-}
diff --git a/world/map/npc/002-2/casino.txt b/world/map/npc/002-2/casino.txt
deleted file mode 100644
index 5e3999ac..00000000
--- a/world/map/npc/002-2/casino.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-002-2,79,68,0|script|#CasinoEntrance|32767,13,0
-{
- set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowCasinoNT;
- if (QL_KYLIAN != 6)
- goto L_End;
- message strcharinfo(0), "You wonder if Kylian would be interested in visiting the Casino.";
- goto L_End;
-
-L_End:
- end;
-}
-
-002-2,86,29,0|script|Valdo|117
-{
- mes "[Valdo the Worker]";
- mes "\"Please let me work. I've got a lot to do and not enough time to do it!\"";
- close;
-}
-
-002-2,84,62,0|script|Slots#1|400
-{
- callfunc "SlotMachine";
- close;
-}
-
-002-2,86,62,0|script|Slots#2|400
-{
- callfunc "SlotMachine";
- close;
-}
-
-002-2,88,62,0|script|Slots#3|400
-{
- callfunc "SlotMachine";
- close;
-}
-
-002-2,78,56,0|shop|MoneyChanger|124,CasinoCoins:*1
-
-002-2,75,60,0|script|BlackJack|107
-{
- mes "[Croupier]";
- mes "\"Would you like to play Black Jack?";
- mes "You will need 15 casino coins.\"";
- next;
- menu
- "Sure.", L_Begin,
- "Not now.", L_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 "Your cards are worth " + @player + " points.";
- if(@player == 21) goto L_End;
- mes "Do you want another card?\"";
- 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 "Your cards are worth " + @player + " points.";
- mes "Do you want another card?\"";
- menu
- "Yes.", L_Another,
- "No.", L_End;
-
-L_End:
- if (@player <= @croupier) goto L_Lost;
- mes "Your cards are worth " + @player + " points.";
- mes "\"I have " + @croupier + " points.";
- mes "Congratulations! You won!";
- mes "You get 45 casino coins!\"";
- getitem "CasinoCoins", 45;
- goto L_Close;
-
-L_NoCoin:
- mes "\"Sorry, but you need at least 15 coins to play.\"";
- goto L_Close;
-
-L_Lost:
- mes "\"I'm sorry, but you lost.";
- mes "Your cards are worth " + @player + " points.";
- mes "I have " + @croupier + " points.\"";
- goto L_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 "Your cards are worth " + @player + " points.";
- mes "Do you want to take another card?";
- menu
- "Yes", L_Another,
- "No", L_End;
-
-L_Close:
- mes "\"Be sure to come back again.\"";
- set @croupier, 0;
- set @player, 0;
- set @tempace, 0;
- close;
-}
-
-002-2,69,67,0|script|Roulette|107
-{
- mes "[Croupier]";
- 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.", L_Close;
-
-L_b1:
- set @bet, 1;
- goto L_Check;
-
-L_b5:
- set @bet, 5;
- goto L_Check;
-
-L_b10:
- set @bet, 10;
- goto L_Check;
-
-L_b50:
- set @bet, 50;
- goto L_Check;
-
-L_b100:
- set @bet, 100;
- goto L_Check;
-
-L_Check:
- if(countitem("CasinoCoins") < @bet) goto L_NoCoin;
- menu
- "Choose a color...", L_PickColor,
- "Choose a number...", L_Number;
-
-L_PickColor:
- menu
- "Black.", L_Color,
- "Red.", L_Color;
-
-L_Color:
- delitem "CasinoCoins", @bet;
- set @color,rand(2);
- if(@color == 1) goto L_Lost;
- mes "You won!";
- getitem "CasinoCoins", @bet * 2;
- goto L_Close;
-
-L_Number:
- menu
- "0", L_Menuitems, "00", L_Menuitems, "1", L_Menuitems, "2", L_Menuitems, "3", L_Menuitems, "4", L_Menuitems, "5", L_Menuitems, "6", L_Menuitems, "7", L_Menuitems, "8", L_Menuitems,
- "9", L_Menuitems, "10", L_Menuitems, "11", L_Menuitems, "12", L_Menuitems, "13", L_Menuitems, "14", L_Menuitems, "15", L_Menuitems, "16", L_Menuitems, "17", L_Menuitems, "18", L_Menuitems,
- "19", L_Menuitems, "20", L_Menuitems, "21", L_Menuitems, "22", L_Menuitems, "23", L_Menuitems, "24", L_Menuitems, "25", L_Menuitems, "26", L_Menuitems, "27", L_Menuitems, "28", L_Menuitems,
- "29", L_Menuitems, "30", L_Menuitems, "31", L_Menuitems, "32", L_Menuitems, "33", L_Menuitems, "34", L_Menuitems, "35", L_Menuitems, "36", L_Menuitems;
-
-L_Menuitems:
- delitem "CasinoCoins", @bet;
- 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;
- goto L_Close;
-
-L_NoCoin:
- mes "\"You don't have enough coins to play.\"";
- goto L_Close;
-
-L_Lost:
- mes "\"I'm sorry, but you lost.\"";
- goto L_Close;
-
-L_Close:
- mes "Come again!";
- set @number, 0;
- set @roulette, 0;
- set @color, 0;
- set @bet, 50;
- close;
-}
diff --git a/world/map/npc/002-2/dedication.txt b/world/map/npc/002-2/dedication.txt
deleted file mode 100644
index dfd507ca..00000000
--- a/world/map/npc/002-2/dedication.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-// Dedication to Irene Christina
-
-002-2,116,123,0|script|#IreneDedication|400
-{
- 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/002-2/hetchel.txt b/world/map/npc/002-2/hetchel.txt
deleted file mode 100644
index f6910149..00000000
--- a/world/map/npc/002-2/hetchel.txt
+++ /dev/null
@@ -1,447 +0,0 @@
-// Hetchel the Silk Weaver
-// bh28
-// 2013-03, GPLv2.
-//
-// Hetchel is referred to by Lora Tay.
-// She weaves and sells standard double elbow square silk sheets.
-// She could also sell, dyed sheets, Silk robes from Lora Tay.
-// (6000 with cocoons, 40000 (?) with no cocoons).
-//
-// @wg_state: variable indicating winter gloves status.
-// Lora Tay proposes silk Robe if (@wg_state>= 11).
-// @SHEET_COCOONS_NR:* Number of cocoons required per sheet.
-// Might ne calculated from @ROBE_COCOONS_NR/@ROBE_SHEETS_NR
-// Actually: 150∕6 = 25
-// @SHEET_ZENY :* Money to pay per sheet: A sixth of 10000-2*500-6000
-// @SheetCount Number of sheets to buy (variable).
-//
-// @silkpants_state: variable indicating silkpant quest status.
-
-002-2,76,92,0|script|Hetchel|376
-{
- set @wg_state, ((QUEST_WG_state & BYTE_0_MASK) >> BYTE_0_SHIFT);
- set @spants_state, ((QUEST_WG_state & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
- set @SHEET_COCOONS_NR, 25;
- set @SHEET_ZENY, 500;
- set @spants_minlvl, 45;
- setarray @spants_req_hmn$, "Silk Cocoons", "Pieces of Cotton Cloth", "Silk Headbands";
- setarray @spants_req$, "SilkCocoon", "CottonCloth", "SilkHeadband";
- setarray @spants_req_amt, 154, 14, 2;
- set @spants_reward, 45000;
- set @spants_job_reward, 10000;
- set @SheetCount, 0;
-
- if (@wg_state < 11)
- goto L_WG_quest_not_done;
- if ( BaseLevel > @spants_minlvl && @spants_state < 1 ) goto L_Spants_Cry;
- if ( @spants_state == 1 ) goto L_Spants_Cry_2;
- if ( @spants_state == 2 ) goto L_Spants_Start;
- if ( @spants_state > 2 && @spants_state < 8 ) goto L_Spants_Steal;
- if ( @spants_state == 8 ) goto L_Spants_Make;
-
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
- menu
- "Sorry to bother, I'm just visiting.", L_Close,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_main_menu;
-
-L_WG_quest_not_done:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles.";
- mes "My best client is Lora Tay, at Dimond's.";
- mes "What can I do for you?\"";
- menu
- "Sorry to bother, I'm new to this country, just visting.", L_Close,
- "What are you selling?", L_main_menu;
-
-L_Spants_Cry:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
- menu
- "Sorry to bother, I'm just visiting.", L_Close,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_Spants_Cry_Cont_1;
-
-L_Spants_Cry_2:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
- menu
- "Sorry to bother, I'm just visiting.", L_Close,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_main_menu,
- "Hey you have been crying so badly, can I help you somehow?", L_Spants_Reply_Cry,
- "Give Hetchel something to dry her tears", L_Spants_Tears;
-
-L_Spants_Start:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
- menu
- "Sorry to bother, I'm just visiting.", L_Close,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_main_menu,
- "So you are looking for new goals in your life?", L_Spants_No_Cry;
-
-L_Spants_Steal:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
- menu
- "Sorry to bother, I'm just visiting.", L_Close,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_main_menu,
- "About the Pants...", L_Spants_Steal_Cont;
-
-L_Spants_Make:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello I am Hetchel, I weave fine textiles, what can I do for you?\"";
- menu
- "Sorry to bother, I'm just visiting.", L_Close,
- "I am looking for silk sheets, Lora Tay told me that I could find some in this market. Can you help?", L_main_menu,
- "Hey what about the Pants you were planning to make?", L_Spants_Make_Cont;
-
-L_Spants_Cry_Cont_1:
- mes "You notice how the tiny woman blushes, she suddenly bursts into tears.";
- next;
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Hello\"";
- mes "Hetchel hides her face in her hands";
- mes "";
- mes "";
- menu
- "\"Hey, what is the problem?\"", L_Spants_Reply_Cry,
- "Give Hetchel something to dry her tears", L_Spants_Tears,
- "\"Oh really? Just sell me some Silk Sheets if you have them\"", L_main_menu;
-
-L_Spants_Tears:
- mes "Choose the item you want to give her.";
- next;
- cleararray @items$, "", getarraysize(@items$);
- cleararray @item_names$, "", getarraysize(@item_names$);
- setarray @items$, "RedCottonCloth", "GreenCottonCloth", "DarkBlueCottonCloth", "YellowCottonCloth", "LightBlueCottonCloth", "PinkCottonCloth", "BlackCottonCloth", "OrangeCottonCloth", "PurpleCottonCloth", "DarkGreenCottonCloth", "HitchhikersTowel", "WhiteHitchhikersTowel", "RedHitchhikersTowel", "GreenHitchhikersTowel", "BlueHitchhikersTowel", "YellowHitchhikersTowel", "PurpleHitchhikersTowel", "OrangeHitchhikersTowel", "PinkHitchhikersTowel", "TealHitchhikersTowel", "LimeHitchhikersTowel", "SnakeSkin", "LeatherPatch", "SnakeTongue", "MountainSnakeTongue", "GrassSnakeTongue", "CaveSnakeTongue", "BatWing", "RottenRags", "BrokenDoll", "RedDottedWrap", "BlueDottedWrap", "PurpleStripedWrap", "RedGoldenStripedWrap", "GreenRedStripedWrap", "YellowWrap", "WhiteWrap", "BlueWrap", "PurpleWrap", "GreenWrap", "Doll", "BookPage";
- setarray @item_names$, "Red Cotton Cloth", "Green Cotton Cloth", "Dark Blue Cotton Cloth", "Yellow Cotton Cloth", "Light Blue Cotton Cloth", "Pink Cotton Cloth", "Black Cotton Cloth", "Orange Cotton Cloth", "Purple Cotton Cloth", "Dark Green Cotton Cloth", "Hitchhiker's Towel", "White Hitchhiker's Towel", "Red Hitchhiker's Towel", "Green Hitchhiker's Towel", "Blue Hitchhiker's Towel", "Yellow Hitchhiker's Towel", "Purple Hitchhiker's Towel", "Orange Hitchhiker's Towel", "Pink Hitchhiker's Towel", "Teal Hitchhiker's Towel", "Lime Hitchhiker's Towel", "Snake Skin", "Leather Patch", "Snake Tongue", "Mountain Snake Tongue", "Grass Snake Tongue", "Cave Snake Tongue", "Bat Wing", "Rotten Rags", "Broken Doll", "Red Dotted Wrap", "Blue Dotted Wrap", "Purple Striped Wrap", "Red Golden Striped Wrap", "Green Red Striped Wrap", "Yellow Wrap", "White Wrap", "Blue Wrap", "Purple Wrap", "Green Wrap", "Doll", "Book Page";
- callfunc "DynamicItemMenu$";
- set @spants_wipe_thingy$, @item$;
- if (@spants_wipe_thingy$ == "") goto L_Close;
- if (countitem(@spants_wipe_thingy$) < 1) goto L_Spants_No_Item;
- if (@spants_wipe_thingy$ == "RedCottonCloth") goto L_Spants_Tears_Cont;
- if (@spants_wipe_thingy$ == "RedHitchhikersTowel") goto L_Spants_Tears_Towel;
- mes "Hetchel looks at you, then looks at the" + @spants_wipe_thingy$ + ".";
- mes "She hangs her head and weeps more";
- mes "Red is the only color I have ever loved, bring me something red to dry my tears";
- goto L_Close;
-
-L_Spants_Tears_Towel:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"No, I recognize this towel, it is one of those warping towels, are you trying to mess with me?\"";
- goto L_Close;
-
-L_Spants_No_Item:
- mes "Oh you do not have it.";
- goto L_Close;
-
-L_Spants_Tears_Cont:
- mes "Hetchel dries her tears with the Red Piece of Cloth you gave her.";
- mes "This seems to have consoled her.";
- delitem "RedCottonCloth", 1;
- set @spants_state, 2;
- callsub S_Update_Spants;
- goto L_Spants_No_Cry;
-
-L_Spants_No_Cry:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Oh thank you my dear friend.";
- mes "Yes, to some extent.";
- next;
- mes "I am just so sad because I realized that this is going to be the thing I will be doing for the rest of my life\"";
- menu
- "\"You are still young, Hetchel, You can still accomplish things\"", L_Spants_Cry_Cont_2,
- "\"Yes, you are probably correct.\"", L_Close;
-
-L_Spants_Cry_Cont_2:
- mes "[Hetchel the weaver]";
- mes "";
- mes "Hetchel thinks for a while";
- mes "";
- mes "\"Oh my friend, I have been dreaming of making a garment of my own.";
- mes "It always bothered me to see all those wizards and witches here being naked under their cloaks\"";
- mes "\"They must be so embarrassed - they are true heroes to give up their dignity to be able to fight the perils of this world\"";
- mes "Hetchel sobs";
- menu
- "\"So you want to make pants for mages?\"", L_Spants_Cry_Cont_3,
- "\"This sounds ridiculous. Good Bye.\"", L_Close;
-
-L_Spants_Cry_Cont_3:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Ok, so I figured I could make some trousers like Lora Tay makes but from the much finer Material the Silk Worms are making for us\"";
- mes "\"But I really need the base plans for the trousers, otherwise I do not know how to attempt this.";
- mes "Can you get me those plans from her?\"";
- menu
- "\"No, sorry I am too busy for that\"", L_Close,
- "\"Of course!\"", L_Spants_Cry_Cont_4;
-
-L_Spants_Cry_Cont_4:
- set @spants_state, 3;
- callsub S_Update_Spants;
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Oh wait! I am not sure if it is such a good idea to ask her about that, I think she would not give the plans to you anyway.";
- mes "Maybe you can find a way to get those plans on a different way?";
- mes "I think there are some people in Hurnscald who have their means of getting you every possible item there is\"";
- next;
- mes "[Hetchel the weaver]";
- mes "";
- mes "Please please please - I need those plans";
- goto L_Close;
-
-L_Spants_Reply_Cry:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"...\"";
- set @spants_state, 1;
- callsub S_Update_Spants;
- goto L_Close;
-
-
-L_Spants_Steal_Cont:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Have you gotten hold of the plans?\"";
- menu
- "Yes I have them somewhere here", L_Spants_Steal_Cont2,
- "No, not yet", L_Close;
-
-L_Spants_Steal_Cont2:
- if @spants_state < 7 goto L_Spants_No_Item;
- set @spants_state, 8;
- callsub S_Update_Spants;
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Oh this is miraculous\"";
- mes "";
- mes "Hetchel sheds some tears of joy";
- next;
- mes "You hand her the crumpled plans Crastur the Ugly gave you.";
- next;
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"I need to figure out how to do this now... \"";
- next;
- mes "Hetchel adjusts her glasses and reads carefully";
- next;
- mes "She seems to be very busy, maybe you should come back later.";
- goto L_Close;
-
-L_Spants_Make_Cont:
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Yes, I already made a prototype but it cost me a lot of time and effort.";
- mes "I can give it to you if you are willing to pay for my expenses though.\"";
- menu
- "What do you want for those silken pants?", L_Spants_Make_Cont_2,
- "No, I am not particularly interested.", L_Close;
-
-L_Spants_Make_Cont_2:
- if(getarraysize(@spants_req_amt) < 3 || getarraysize(@spants_req$) < 3 || getarraysize(@spants_req_hmn$) < 3)
- goto L_Spants_Error;
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"I need you to bring me " + @spants_req_amt[0] +" "+ @spants_req_hmn$[0] + ", " + @spants_req_amt[1] +" "+ @spants_req_hmn$[1] + " and " + @spants_req_amt[2] +" "+ @spants_req_hmn$[2];
- next;
- mes "You will not have to pay for my time, I am so proud to have accomplished this on my own!\"";
- menu
- "\"I have those items with me\"", L_Spants_Pay,
- "\"I am still looking for them\"", L_Close,
- "\"What do you need again?\"", L_Spants_Make_Cont_2;
-
-L_Spants_Pay:
- if (countitem(@spants_req$[0]) < @spants_req_amt[0] || countitem(@spants_req$[1]) < @spants_req_amt[1] || countitem(@spants_req$[2]) < @spants_req_amt[2])
- goto L_Spants_No_Item;
- getinventorylist;
- if (@inventorylist_count == 100) goto L_TooMany;
- mes "Hetchel takes your items.";
- delitem @spants_req$[0], @spants_req_amt[0];
- delitem @spants_req$[1], @spants_req_amt[1];
- delitem @spants_req$[2], @spants_req_amt[2];
- getitem "SilkPants", 1;
- set @spants_state, 9;
- callsub S_Update_Spants;
- next;
- mes "[Hetchel the weaver]";
- mes "";
- mes "\"Here are your pants my dear.";
- mes "Keep them safe I do not know if I will ever try this again.\"";
- getexp @spants_reward, @spants_job_reward;
- goto L_Close;
-
-L_Spants_Error:
- mes "Something went wrong in the script, please inform a developer about that";
- close;
-
-L_main_menu:
- mes "[Hetchel]";
- mes "\"I have some silk sheets: double-elbow squares.\"";
- menu
- "I'm not interested at the moment, maybe later; thanks anyway.", L_Close,
- "Can I buy some?", L_Next;
-// "Do you have a silk robe I could buy?", L_robe,
-// "Goodbye.", L_Close;
-
-L_Next:
- mes "[Hetchel]";
- mes "";
- mes "\"Sure but you need to provide raw materials.";
- mes "I'll need " + @SHEET_COCOONS_NR +" silk cocoons per sheet,";
- mes "and also " + @SHEET_ZENY +" GP per sheet for my work.\"";
- next;
- if (countitem("SilkCocoon") == 0)
- goto L_sheet_no_cocoon;
- goto L_sheet_menu;
-
-L_sheet_menu:
- menu
- "I have what you asked for.", L_Next1,
- "Sorry I didn't pay attention enough, what do you need?", L_how_many_cocoons,
- "Oops! Sorry, I'll come back soon with them.", L_Close;
-
-L_Next1:
- mes "[Hetchel]";
- mes "";
- mes "\"How many would you like?\"";
- input @SheetCount;
- if (@SheetCount == 0)
- goto L_zero_sheet;
- if (countitem("SilkCocoon") < @SheetCount * @SHEET_COCOONS_NR)
- goto L_sheet_missing_cocoons;
- if (Zeny < @SheetCount * @SHEET_ZENY)
- goto L_sheet_missing_Zeny;
- getinventorylist;
- if (@inventorylist_count == 100 && countitem("SilkSheet") < 1 && countitem("SilkCocoon") > @SheetCount * @SHEET_COCOONS_NR)
- goto L_TooMany;
- set Zeny, Zeny - @SheetCount * @SHEET_ZENY;
- delitem "SilkCocoon", @SheetCount * @SHEET_COCOONS_NR;
- getitem "SilkSheet", @SheetCount;
- mes "[Hetchel]";
- mes "";
- mes "\"Thank you, I hope the sheets will fit your needs.";
- mes "Please greet Lora for me when you see her.\"";
- emotion EMOTE_HAPPY, strcharinfo(0);
- goto L_Close;
-
-L_sheet_missing_cocoons:
- mes "[Hetchel]";
- mes "";
- mes "\"I'm sorry, but I need " + @SheetCount * @SHEET_COCOONS_NR + ", not " + countitem("SilkCocoon") + ".\"";
- goto L_Close;
-
-L_sheet_missing_Zeny:
- mes "[Hetchel]";
- mes "";
- mes "\"No, no no. The way this works is that you give me the GP first and I give you the sheets afterwards.";
- mes "You're " + (@SheetCount * @SHEET_ZENY - Zeny) + " GP short, so come back when you can afford the sheets you asked for!\"";
- goto L_Close;
-
-L_how_many_cocoons:
- mes "[Hetchel]";
- mes "";
- mes "\"I need an average of " + @SHEET_COCOONS_NR + " cocoons per sheet";
- mes "and also " + @SHEET_ZENY + " GP per sheet for my work.\"";
- next;
- goto L_sheet_menu;
-
-L_sheet_no_cocoon:
- mes "[Hetchel]";
- mes "";
- mes "\"You don't have any cocoon? I'm sorry I can't do anything for you.\"";
- menu
- "I'll seek for them.", L_Close,
- "Where can I get cocoons?", L_Next2;
-
-L_Next2:
- mes "[Hetchel]";
- mes "\"Silk cocoons come from Silkworms. Silkworms live in the woodland area around Hurnscald.";
- mes "Silkworms like especially woods and dark areas. You can go there by ferry.\"";
- goto L_Close;
-
-//L_robe:
-// mes "[Hetchel]";
-// mes "\"I am not a seamstress but I have a few silk robes from Lora Tay left.";
-// mes "It is not your size as Lora made them for me, but Tondar was kind enough";
-// mes "to cast a spell on it, so that it will fit to you as soon as you wear it.";
-// mes "However his prices are not that low.\"";
-// next;
-// goto L_main_menu;
-
-L_zero_sheet:
- mes "[Hetchel]";
- mes "";
- mes "\"It's the best way to get quickly served!\"";
- goto L_Close;
-
-L_TooMany:
- mes "[Hetchel]";
- mes "";
- mes "\"Your bag hasn't room enough. Store some things and come back.\"";
- goto L_Close;
-
-S_Update_Spants:
- set QUEST_WG_state, (QUEST_WG_state & ~(NIBBLE_2_MASK) | (@spants_state << NIBBLE_2_SHIFT));
- return;
-
-L_Close:
- set QUEST_WG_state, (QUEST_WG_state & ~(NIBBLE_2_MASK) | (@spants_state << NIBBLE_2_SHIFT));
- set @wg_state, 0;
- set @spants_state, 0;
- set @spants_minlvl, 0;
- set @spants_reward, 0;
- set @spants_job_reward, 0;
- set @spants_wipe_thingy, "";
- set @SHEET_COCOONS_NR, 0;
- set @SHEET_ZENY, 0;
- set @SheetCount, 0;
- set @wg_state, 0;
- cleararray @items$, "", getarraysize(@items$);
- cleararray @item_names$, "", getarraysize(@item_names$);
- close;
-}
-
-002-2,73,95,0|script|HetchelDebug|376
-{
-set @wg_state, ((QUEST_WG_state & BYTE_0_MASK) >> BYTE_0_SHIFT);
-set @spants_state, ((QUEST_WG_state & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
-
-mes "Lora Tay Quest State: "+ @wg_state;
-mes "Silk Pants Quest State: "+ @spants_state;
-
-menu
- "Set Lora Tay Quest State", L_Lora_Tay,
- "Set Silk Pants Quest State", L_Spants,
- "Close", L_Close;
-
-L_Lora_Tay:
- mes "Set Lora Tay Visited State (0 - reset , 11 - enough for SilkPants Quest)";
- input @wg_state;
- goto L_Close;
-
-L_Spants:
- mes "Set SilkPants Quest State (0 - reset)";
- input @spants_state;
- goto L_Close;
-
-L_Close:
- set QUEST_WG_state, (QUEST_WG_state & ~(BYTE_0_MASK) | (@wg_state << BYTE_0_SHIFT));
- set @wg_state, 0;
- set QUEST_WG_state, (QUEST_WG_state & ~(NIBBLE_2_MASK) | (@spants_state << NIBBLE_2_SHIFT));
- set @spants_state, 0;
- close;
-
-OnInit:
- if (!debug)
- disablenpc "HetchelDebug";
- end;
-}
diff --git a/world/map/npc/002-2/imec.txt b/world/map/npc/002-2/imec.txt
deleted file mode 100644
index 6bb00065..00000000
--- a/world/map/npc/002-2/imec.txt
+++ /dev/null
@@ -1,116 +0,0 @@
-002-2,36,75,0|script|Imec|162
-{
- set @EXP, 90;
- set @money, 500;
- set @lvl, 10;
-
- if (QL_IMEC >= 3) goto L_Stingers;
- if (QL_IMEC == 2) goto L_Return;
- if (QL_IMEC == 1) goto L_Bring;
-
- mes "[Imec]";
- mes "%%9";
- mes "\"The Wizard's Council shut down my shop!";
- mes "Why'd they have to make such a fuss over a little poison?\"";
- next;
- mes "\"Someday, I'm going to get my permit back from those self-righteous snobs!\"";
- next;
- mes "He looks at you.";
- next;
- mes "[Imec]";
- mes "%%D";
- mes "\"Hey... I've got an idea!";
- next;
- mes "I just finished writing an appeal to the Council. If you bring it to the government building near the docks, they might be less... closed-minded.\"";
- goto L_Offer;
-
-L_Offer:
- menu
- "Just tell me how to get there.",L_Explain,
- "I'll do it.",L_Next,
- "No way!",L_Close;
-
-L_Next:
- mes "";
- mes "[Imec]";
- mes "\"Great! Here's the appeal.\"";
- mes "Imec gives you a sealed letter, which you store in a safe pocket outside of your inventory.";
- set QL_IMEC, 1;
- goto L_Close;
-
-L_Explain:
- mes "";
- mes "[Imec]";
- mes "\"Head north until you get to the docks – it's just west of the ferry.\"";
- next;
- mes "\"There are a couple of other offices inside. You can form a party if you want, but don't take too long.\"";
- if (BaseLevel < WEDDING_MIN_LEVEL) mes "\"Once you're older, you can even get married there.\"";
- next;
- mes "\"So... will you submit my appeal for me?\"";
- if (QL_IMEC == 0)
- goto L_Offer;
- goto L_Close;
-
-L_Bring:
- mes "[Imec]";
- mes "\"What are you waiting for? I'm not paying you till after the job is done!\"";
- menu
- "Where is it again?",L_Explain,
- "I'm on my way.",L_Close;
-
-L_Return:
- mes "[Imec]";
- mes "\"Ah! You're back! How'd it go?\"";
- mes "You hand the letter of acknowledgment over to Imec.";
- next;
- mes "[Imec]";
- mes "\"Great! I'm sure I'll be able to open my shop again soon.\"";
- next;
- mes "It seems as though Imec has lost interest in you already.";
- menu
- "You mentioned a reward...",L_Next1;
-
-L_Next1:
- mes "";
- mes "[Imec]";
- mes "\"What? Oh, right. Here, have this.\"";
- getexp @EXP, 0;
- set Zeny, Zeny + @money;
- set QL_IMEC, 3;
- next;
- if (BaseLevel >= @lvl)
- goto L_Transition_Stingers;
- if (BaseLevel < @lvl)
- mes "\"Come back to see me once you grow stronger; I might have a job for you later on.\"";
- goto L_Close;
-
-L_Transition_Stingers:
- mes "\"Actually, you could be of further use to me.\"";
- next;
- goto L_Stingers;
-
-L_Stingers:
- mes "[Imec]";
- set @dq_level, @lvl;
- set @dq_cost, 3;
- set @dq_count, 3;
- set @dq_name$, "ScorpionStinger";
- set @dq_friendly_name$, "Scorpion Stingers";
- set @dq_money, 200;
- set @dq_exp, 40;
-
- callfunc "DailyQuest";
- goto L_Close;
-
-L_Close:
- set @money, 0;
- set @dq_level, 0;
- set @dq_cost, 0;
- set @dq_count, 0;
- set @dq_name$, "";
- set @dq_friendly_name$, "";
- set @dq_money, 0;
- set @dq_exp, 0;
- set @dq_return, 0;
- close;
-}
diff --git a/world/map/npc/002-2/inya.txt b/world/map/npc/002-2/inya.txt
deleted file mode 100644
index 475c73b6..00000000
--- a/world/map/npc/002-2/inya.txt
+++ /dev/null
@@ -1,209 +0,0 @@
-//Gemstones: Diamond (white) , Ruby (red), Emerald (green), Sapphire (blue), Topaz (yellow), Amethyst (purple)
-//The power of the gems is important to future balance of these rings. Are they related to stats, tiers of power, schools of magic?
-
-002-2,116,61,0|shop|#InyaShop|32767,SimpleRing:*1
-
-002-2,116,61,0|script|Inya|106
-{
- mes "[Inya]";
- mes "\"I am Inya, a jeweler of fine rings. I sell and make rings.\"";
- next;
- mes "\"If you have a Simple Ring and a gem, I can set the gem in it for 100,000 gold pieces.\"";
- next;
- mes "\"Also, if you have a ring with gems on it, I can remove the gems and return the Simple Ring to you for 50,000 gold pieces.\"";
- next;
- mes "\"So, how can I help you?\"";
- menu
- "What jewelry do you have for sale?", L_Inya_Shop,
- "I have a wedding ring, will that do?", L_Inya_Wedding_Ring,
- "I'd like to remove a gem (50000 GP).", L_Inya_Remove_RingGem,
- "I'd like to add a gem (100000 GP).", L_Inya_Add_RingGem,
- "Not interested.", L_Inya_NotInterested;
-
-L_Inya_Shop:
- close2;
- shop "#InyaShop";
-
-L_Inya_Wedding_Ring:
- mes "[Inya]";
- mes "\"No, sorry. I do not alter wedding rings at this time.\"";
- close;
-
-L_Inya_Remove_RingGem:
- mes "[Inya]";
- mes "\"What kind of gem would you like to have removed?\"";
- menu
- "Diamond.", L_Inya_Remove_Diamond,
- "Ruby.", L_Inya_Remove_Ruby,
- "Emerald.", L_Inya_Remove_Emerald,
- "Sapphire.", L_Inya_Remove_Sapphire,
- "Topaz.", L_Inya_Remove_Topaz,
- "Amethyst.", L_Inya_Remove_Amethyst,
- "I've changed my mind.", L_Inya_NotInterested;
-
-L_Inya_Add_RingGem:
- mes "[Inya]";
- mes "\"What kind of gem would you like to add?\"";
- menu
- "Diamond.", L_Inya_Add_Diamond,
- "Ruby.", L_Inya_Add_Ruby,
- "Emerald.", L_Inya_Add_Emerald,
- "Sapphire.", L_Inya_Add_Sapphire,
- "Topaz.", L_Inya_Add_Topaz,
- "Amethyst.", L_Inya_Add_Amethyst,
- "I've changed my mind.", L_Inya_NotInterested;
-
-L_Inya_Remove_Diamond:
- if ( (Zeny < 50000)
- | (countitem ("DiamondRing") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 50000;
- delitem "DiamondRing", 1;
- getitem "SimpleRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Remove_Ruby:
- if ( (Zeny < 50000)
- | (countitem ("RubyRing") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 50000;
- delitem "RubyRing", 1;
- getitem "SimpleRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Remove_Emerald:
- if ( (Zeny < 50000)
- | (countitem ("EmeraldRing") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 50000;
- delitem "EmeraldRing", 1;
- getitem "SimpleRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Remove_Sapphire:
- if ( (Zeny < 50000)
- | (countitem ("SapphireRing") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 50000;
- delitem "SapphireRing", 1;
- getitem "SimpleRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Remove_Topaz:
- if ( (Zeny < 50000)
- | (countitem ("TopazRing") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 50000;
- delitem "TopazRing", 1;
- getitem "SimpleRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Remove_Amethyst:
- if ( (Zeny < 50000)
- | (countitem ("AmethystRing") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 50000;
- delitem "AmethystRing", 1;
- getitem "SimpleRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Add_Diamond:
- if ( (Zeny < 100000)
- | (countitem ("SimpleRing") < 1)
- | (countitem ("Diamond") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 100000;
- delitem "SimpleRing", 1;
- delitem "Diamond", 1;
- getitem "DiamondRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Add_Ruby:
- if ( (Zeny < 100000)
- | (countitem ("SimpleRing") < 1)
- | (countitem ("Ruby") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 100000;
- delitem "SimpleRing", 1;
- delitem "Ruby", 1;
- getitem "RubyRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Add_Emerald:
- if ( (Zeny < 100000)
- | (countitem ("SimpleRing") < 1)
- | (countitem ("Emerald") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 100000;
- delitem "SimpleRing", 1;
- delitem "Emerald", 1;
- getitem "EmeraldRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Add_Sapphire:
- if ( (Zeny < 100000)
- | (countitem ("SimpleRing") < 1)
- | (countitem ("Sapphire") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 100000;
- delitem "SimpleRing", 1;
- delitem "Sapphire", 1;
- getitem "SapphireRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Add_Topaz:
- if ( (Zeny < 100000)
- | (countitem ("SimpleRing") < 1)
- | (countitem ("Topaz") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 100000;
- delitem "SimpleRing", 1;
- delitem "Topaz", 1;
- getitem "TopazRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_Add_Amethyst:
- if ( (Zeny < 100000)
- | (countitem ("SimpleRing") < 1)
- | (countitem ("Amethyst") < 1) )
- goto L_Inya_Not_Enough;
- set Zeny, Zeny - 100000;
- delitem "SimpleRing", 1;
- delitem "Amethyst", 1;
- getitem "AmethystRing", 1;
- mes "[Inya]";
- mes "\"Here you go.\"";
- close;
-
-L_Inya_NotInterested:
- mes "[Inya]";
- mes "\"Come back later and I will try to be of assistance.\"";
- close;
-
-L_Inya_Not_Enough:
- mes "[Inya]";
- mes "\"I am sorry, you simply do not seem to have the necessary items for me to help you. Please come back when you do, and I would be more than happy to help you out.\"";
- close;
-}
diff --git a/world/map/npc/002-2/kps.txt b/world/map/npc/002-2/kps.txt
deleted file mode 100644
index 176b7ba8..00000000
--- a/world/map/npc/002-2/kps.txt
+++ /dev/null
@@ -1,155 +0,0 @@
-002-2,120,89,0|script|KPS Manager|191
-{
- set @run, ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT);
- set @run_cnt, ((QUEST_NorthTulimshar & TWOBIT_9_MASK) >> TWOBIT_9_SHIFT);
- if (QL_KYLIAN == 15)
- goto L_SeeKylian;
- if (QL_KYLIAN == 14)
- goto L_RunComplete;
- if (QL_KYLIAN == 13)
- goto L_RunStarted;
- if (QL_KYLIAN == 12)
- goto L_JobSelect;
- if (QL_KYLIAN == 11)
- goto L_AcceptJob;
- if (QL_KYLIAN == 10)
- goto L_OfferJob;
- goto L_Default;
-
-L_Default:
- mes "[KPS Manager]";
- mes "\"A rich salesman named Kylian bought this shop recently.\"";
- mes "\"I'm waiting for him to give the go-ahead on opening it up, but I haven't heard from him in a while.\"";
- next;
- mes "\"I wonder if he needs any help...\"";
- next;
- mes "\"If you could go over and check on him in the inn while I tend to the store, I'd really appreciate it.\"";
- goto L_Close;
-
-L_OfferJob:
- mes "[KPS Manager]";
- mes "\"Hello! How can I help you today?\"";
- menu
- "My name is " + strcharinfo(0) + ".", L_MyName,
- "Nothing.", L_Close;
-
-L_MyName:
- set QL_KYLIAN, 11;
- mes "\"Ah. Kylian said you would be dropping by.\"";
- next;
- mes "\"I assume you are looking for some work?\"";
- menu
- "Yes.", L_StartJob,
- "No.", L_Close;
-
-L_AcceptJob:
- mes "[KPS Manager]";
- mes "\"Interested in some work?\"";
- menu
- "Yes.", L_StartJob,
- "No.", L_Close;
-
-L_StartJob:
- set @run, 0;
- callfunc "SetKylianRun";
- set @run_cnt, 0;
- callfunc "SetKylianRunCnt";
- set QL_KYLIAN, 12;
- goto L_JobSelect;
-
-L_StartJobAgain:
- set @run, 0;
- callfunc "SetKylianRun";
- set QL_KYLIAN, 12;
- goto L_JobSelect;
-
-L_JobSelect:
- if ((gettimetick(2) - Kylian_Timer) < 86400)
- goto L_NoPackages;
- mes "[KPS Manager]";
- mes "\"We have a number of deliveries that need to go all over the world.\"";
- next;
- goto L_RandJob;
-
-L_RandJob:
- set @rand_quest, rand(1,3);
- goto L_JobInfo;
-
-L_JobInfo:
- mes "\"We have a delivery for ##B" + $@random_quests$[@rand_quest] + "##b.\"";
- menu
- "I'll take it.", L_StartRun,
- "Anything else?", L_RandJob,
- "I need a break.", L_Close;
-
-L_StartRun:
- set QL_KYLIAN, 13;
- set @run, @rand_quest;
- callfunc "SetKylianRun";
- set Kylian_Timer, gettimetick(2);
- goto L_Close;
-
-L_RunStarted:
- mes "Deliver this package to ##B" + $@random_quests$[@run] + "##b.\"";
- goto L_Close;
-
-L_RunComplete:
- set @elapsed_time, (gettimetick(2) - Kylian_Timer);
- if (@elapsed_time > 600)
- goto L_Failed;
- set @run_cnt, (@run_cnt + 1);
- callfunc "SetKylianRunCnt";
- // Set Kylian wants to see you reward state
- if (@run_cnt > 3)
- goto L_KylianReward;
- goto L_RunAgain;
-
-L_SeeKylian:
- mes "\"You need to go see Kylian before I can give you any more work.\"";
- goto L_Close;
-
-L_Failed:
- mes "\"If you're faster next time, you can earn a bonus.\"";
- next;
- goto L_RunAgain;
-
-L_KylianReward:
- set Zeny, Zeny + $@delivery_money;
- getexp ($@delivery_exp_mod * BaseLevel), 0;
- callfunc "SetKylianRun";
- set QL_KYLIAN, 15;
- mes "[" + $@delivery_money + " money]";
- mes "[" + ($@delivery_exp_mod * BaseLevel) + " experience points]";
- next;
- mes "\"I've got news for you! Kylian wants me to send you over right away.\"";
- goto L_Close;
-
-L_RunAgain:
- set Zeny, Zeny + $@delivery_money;
- getexp ($@delivery_exp_mod * BaseLevel), 0;
- callfunc "SetKylianRun";
- mes "[" + $@delivery_money + " money]";
- mes "[" + ($@delivery_exp_mod * BaseLevel) + " experience points]";
- next;
- mes "\"Good job! Keep up the nice work, and I'm sure the boss will give you a bonus.\"";
- next;
- goto L_StartJobAgain;
-
-L_NoPackages:
- mes "\"Sorry, but we don't have any more jobs open right now.\"";
- mes "\"Come back tomorrow; maybe we will have some more work then.\"";
- goto L_Close;
-
-L_Close:
- close;
-}
-function|script|SetKylianRun
-{
- set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(TWOBIT_8_MASK)) | (@run << TWOBIT_8_SHIFT);
- return;
-}
-function|script|SetKylianRunCnt
-{
- set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(TWOBIT_9_MASK)) | (@run_cnt << TWOBIT_9_SHIFT);
- return;
-}
diff --git a/world/map/npc/002-2/kylian.txt b/world/map/npc/002-2/kylian.txt
deleted file mode 100644
index 33df4ba7..00000000
--- a/world/map/npc/002-2/kylian.txt
+++ /dev/null
@@ -1,403 +0,0 @@
-// Kylian is a businessman from Argeas who wants to eventually open a shop in Tulimshar
-// asks the player for several information about the city
-// Quest uses Nibble 4 and 5 of QUEST_NorthTulimshar
-// Author: Jenalya
-
-// Nibble 4 is used as flags to indicate if the player knows certain places/persons
-// Bit 0: player talked to Yanis in the government building
-// Bit 1: player talked to Latoy on the market in North Tulimshar
-// Bit 2: player talked to Weellos as the historic building
-// Bit 3: player was in the casino rooms
-
-// Nibble 5 is used to save the quest progress with Kylian
-// state 1: player has the task to get the luggage from the harbor
-// state 2: Adrian gave the luggage to the player
-// state 3: player gave luggage to Kylian and Kylian asks who to talk to for the shop license
-// after the player answered this, @KylianNTLicense is set.
-// the player can only continue the quest when logging out and therefore setting that value to 0 again
-// state 4: Kylian asks for a historical building to get some cultural knowledge
-// state 5: Kylian asks where to get some typical food
-// after the player answered this, @KylianNTSightSeeing is set.
-// the player can only continue the quest when logging out and therefore setting that value to 0 again
-// state 6: Kylian asks where to go to have some fun in the evening (casino)
-// state 7: Kylian asks where to get exquisite clothing before going out in the evening
-// after the player answered this, @KylianNTSightSeeing is set.
-// the player can only continue the quest when logging out and therefore setting that value to 0 again
-// state 8: Kylian was in the casino and gives a desert hat as reward
-// state 9: Shop approved, go talk Kylian's shopkeeper if you are looking for work.
-// state 10: Meet Shop keeper
-// state 11: Start Time Trial
-// state 12: Return
-// state 13: Start Daily Timed
-// state 14: Return
-// state 15: Completed
-// Kylian_Timer is used to denote start time.
-
-// temporary variables used to check if the player logged out or left the building in the meanwhile
-// this is to ensure some 'time in between' different actions of the quest
-// @KylianNTLicense
-// @KylianNTSightSeeing
-// @KylianNTCasino
-
--|script|#businessmanNTconfig|32767
-{
- end;
-
-OnInit:
- // Nibble 4
- // Used in Random Quest later as a Nibble
- set $@knowYanisNT, (1 << 16);
- set $@knowLatoyNT, (1 << 17);
- set $@knowWeellosNT, (1 << 18);
- set $@knowCasinoNT, (1 << 19);
-
- // Random Quests for Later
- setarray $@random_quests$, "None", "Falkurn", "Old Wizard", "Baktar";
- set $@delivery_money, 100;
- set $@delivery_exp_mod, 10;
- end;
-}
-002-2,44,107,0|script|#KylianOut|32767,1,1
-{
- set @KylianNTLicense, 0;
- set @KylianNTSightSeeing, 0;
- set @KylianNTCasino, 0;
- end;
-}
-002-2,43,101,0|script|Kylian|193
-{
- set @acorn_amount, 12;
- set @suitcase_money, 100;
- set @suitcase_exp, 50;
- set @license_money, 50;
- set @license_exp, 20;
- set @sightseeing_money, 50;
- set @sightseeing_exp, 20;
- set @food_money, 50;
- set @food_exp, 20;
- set @clothes_money, 50;
- set @clothes_exp, 20;
- set @fun_money, 50;
- set @fun_exp, 20;
-
- if (QL_KYLIAN == 15) goto L_Done;
- if (QL_KYLIAN >= 11) goto L_Helping;
- if (QL_KYLIAN == 10) goto L_OfferedJob;
- if (QL_KYLIAN == 9) goto L_Shop;
- if (@KylianNTCasino) goto L_CasinoDone;
- if (QL_KYLIAN == 8) goto L_DesertHat;
- if (QL_KYLIAN == 7) goto L_Clothes;
- if (@KylianNTSightSeeing) goto L_SightSeeingDone;
- if (QL_KYLIAN == 6) goto L_Casino;
- if (QL_KYLIAN == 5) goto L_Food;
- if (@KylianNTLicense) goto L_LicenseDone;
- if (QL_KYLIAN == 4) goto L_SightSeeing;
- if (QL_KYLIAN == 3) goto L_ShopLicense;
- if (QL_KYLIAN >= 1) goto L_Suitcase;
-
- mes "[Kylian]";
- mes "\"Ah! Are you the room service? I've some requests.\"";
- menu
- "Sure... What can I do for you?",L_Luggage,
- "No I'm not!",L_Next;
-
-L_Next:
- mes "[Kylian]";
- mes "\"Too bad. Would you be interested in earning some quick money with some errands regardless?\"";
- menu
- "I'm a great adventurer! I don't do petty errands.",L_Close,
- "No. I'm busy.",L_Close,
- "Well... OK.",L_Luggage;
-
-L_Luggage:
- mes "[Kylian]";
- mes "\"I need you to get my luggage from the docks. Just show this paper to the sailor who's watching the luggage.\"";
- mes "He gives you his ticket, which you promptly store in a safe pocket outside of your inventory.";
- set QL_KYLIAN, 1;
- goto L_Close;
-
-L_Suitcase: // QL_KYLIAN >= 1, but below 3
- mes "[Kylian]";
- mes "\"Did you get my luggage from the docks?\"";
- if (QL_KYLIAN != 2)
- goto L_Close;
- menu
- "Here it is.",L_Continue,
- "Don't worry; I'm on my way.",L_Close;
-
-L_Continue:
- if (countitem("LeatherSuitcase") < 1)
- goto L_NoItem;
- delitem "LeatherSuitcase", 1;
- set Zeny, Zeny + @suitcase_money;
- getitem "Acorn", @acorn_amount;
- getexp @suitcase_exp, 0;
- set QL_KYLIAN, 3;
- next;
- mes "[Kylian]";
- mes "\"Ah! Very good. I have some urgent paperwork that I've been needing to attend to.\"";
- mes "He gives you some money.";
- next;
- mes "[Kylian]";
- mes "\"Before you go, I also happen to have some acorns left over from my trip.\"";
- mes "\"You can have them if you wish; they're rather tasty.\"";
- mes "If, however, you don't like them, you could take them to the Tulimshar bakery. I heard they use them to make a special kind of flour.\"";
- next;
- goto L_ShopLicense;
-
-L_ShopLicense: // QL_KYLIAN == 3
- mes "[Kylian]";
- mes "\"I'm a salesman and came to Tulimshar because I'm thinking about establishing a shop here.\"";
- mes "\"While I'm going through my papers, could you find out whom I have to talk to about opening up a shop in this city?\"";
- if (!(QUEST_NorthTulimshar & $@knowYanisNT))
- goto L_Close;
- menu
- "You need to go and talk to Yanis in the government building.",L_GovBuild,
- "I'll see what I can do.",L_Close;
-
-L_GovBuild:
- set Zeny, Zeny + @license_money;
- getexp @license_exp, 0;
- set QL_KYLIAN, 4;
- set @KylianNTLicense, 1;
- mes "[Kylian]";
- mes "\"Ah... excellent! That's very helpful. Could you tell me how to get to that building?\"";
- mes "You give him directions to the building.";
- next;
- goto L_LicenseDone;
-
-L_LicenseDone: // the player didn't log out yet after telling about Yanis
- mes "[Kylian]";
- mes "\"I need to prepare my papers now. I might have some more questions later on though.\"";
- goto L_Close;
-
-L_SightSeeing: // QL_KYLIAN == 4 and logged out sometime between getting to that state and now
- mes "[Kylian]";
- mes "\"You came here at just the right moment! I have finished my business affairs, and I think I should use my time here to learn a bit about the culture in the area. Can you tell me if there are any historical places or landmarks to visit?\"";
- if (!(QUEST_NorthTulimshar & $@knowWeellosNT))
- goto L_Close;
- menu
- "There's a very old building not far from here.",L_HistBuild,
- "I don't know, but I'll have a look around.",L_Close;
-
-L_HistBuild:
- set Zeny, Zeny + @sightseeing_money;
- getexp @sightseeing_exp, 0;
- set QL_KYLIAN, 5;
- mes "[Kylian]";
- mes "\"This sounds interesting. Please tell me the way.\"";
- mes "You tell him how to get to the historic building.";
- next;
- goto L_Food;
-
-L_Food: // QL_KYLIAN == 5
- mes "[Kylian]";
- mes "\"While I'm out, I could also get something to eat. Do you have any suggestions for local cuisine?\"";
- if (QL_FIERI < 4) // didn't yet help Fieri make Tonori Delight
- goto L_Close;
- menu
- "A man named Fieri makes a tasty Tonori Delight over at the castle.",L_SoupBer,
- "No idea. I'll try to find out.",L_Close;
-
-L_SoupBer:
- set Zeny, Zeny + @food_money;
- getexp @food_exp, 0;
- set QL_KYLIAN, 6;
- set @KylianNTSightSeeing, 1;
- goto L_SightSeeingDone;
-
-L_SightSeeingDone:
- mes "[Kylian]";
- mes "\"I'm going to see the historic building you told me about and try the local food at the castle. Thank you for the suggestions.\"";
- goto L_Close;
-
-L_Casino: // QL_KYLIAN == 6 and logged out sometime between getting to that state and now
- mes "[Kylian]";
- mes "\"Hello. I just came back from my sight-seeing tour, and this Tonori Delight really was delicious. I wonder what it's made of...\"";
- next;
- mes "\"However, I was wondering if you know about some evening attractions. Maybe somewhere to have fun?\"";
- if (!(QUEST_NorthTulimshar & $@knowCasinoNT))
- goto L_Close;
- menu
- "Of course! The casino!",L_CasinoFound,
- "Not really.",L_Close;
-
-L_CasinoFound:
- set Zeny, Zeny + @casino_money;
- getexp @casino_exp, 0;
- set QL_KYLIAN, 7;
- mes "[Kylian]";
- mes "\"Oh! There's a casino in this city? That's wonderful! Where can I find it?\"";
- mes "You explain how to get to the casino.";
- next;
- goto L_Clothes;
-
-L_Clothes: // QL_KYLIAN == 7
- mes "[Kylian]";
- mes "\"I should acquire proper clothing before I go to the casino tonight. Do you know a reputable shop where high-quality clothing is sold?\"";
- if (!(QUEST_NorthTulimshar & $@knowLatoyNT))
- goto L_Close;
- menu
- "Latoy's shop. It's on the west side of Tulimshar.",L_HarborDistrict,
- "Hmmm... I don't know.",L_Close;
-
-L_HarborDistrict:
- set Zeny, Zeny + @clothes_money;
- getexp @clothes_exp, 0;
- set QL_KYLIAN, 8;
- set @KylianNTCasino, 1;
- mes "You explain about Latoy and the quality of his shop.";
- next;
- mes "[Kylian]";
- mes "\"This seems to be exactly what I need. Thanks a lot.\"";
- goto L_Close;
-
-L_CasinoDone:
- mes "[Kylian]";
- mes "\"I'm looking forward to going to the casino tonight. See me tomorrow, and I might have more requests.\"";
- goto L_Close;
-
-L_DesertHat: // QL_KYLIAN == 8
- mes "Kylian looks a bit tired.";
- next;
- mes "[Kylian]";
- mes "\"That was an interesting night. Thanks for your suggestion to visit the casino.\"";
- next;
- getinventorylist;
- mes "\"You helped me out a lot, so I bought a souvenir for you while I was out shopping.\"";
- if ((checkweight("DesertHat", 1) == 0) || (@inventorylist_count == 100))
- goto L_Inventory;
- getitem "DesertHat", 1;
- set QL_KYLIAN, 9;
- next;
- goto L_Close;
-
-L_Shop:
- mes "[Kylian]";
- mes "\"The Council of Wizards approved my shop license!\"";
- mes "\"I purchased a store just across the way from the inn.\"";
- next;
- mes "\"If you are looking for work, go see the shop keeper I have working for me there.\"";
- mes "\"Mention your name, and he will know I sent you.\"";
- set QL_KYLIAN, 10;
- goto L_Close;
-
-L_OfferedJob:
- mes "[Kylian]";
- mes "\"I spoke with the shopkeeper, and he said you haven't stopped in yet.\"";
- next;
- mes "\"I wish you would consider working for me.\"";
- next;
- mes "\"KPS needs a determined, experienced adventurer like you.\"";
- goto L_Close;
-
-L_Helping:
- mes "[Kylian]";
- mes "\"I've heard you decided to come work for me. That's great news!\"";
- mes "\"Keep up the good work, and I might have something a little extra for you.\"";
- goto L_Close;
-
-L_Done:
- mes "[Kylian]";
- mes "\"Thanks a bunch, business is booming!\"";
- mes "\"Please, take this for all your hard work.\"";
- next;
- set Zeny, Zeny + $@delivery_money;
- getexp ($@delivery_exp_mod * BaseLevel), 0;
- set @run_cnt, 0;
- callfunc "SetKylianRunCnt";
- set QL_KYLIAN, 12;
- mes "[" + $@delivery_money + " money]";
- mes "[" + ($@delivery_exp_mod * BaseLevel) + " experience points]";
- next;
- goto L_Close;
-
-L_Inventory:
- mes "[Kylian]";
- mes "\"Oh my. You're carrying quite a lot. Come back when you have more room.\"";
- goto L_Close;
-
-L_NoItem:
- mes "[Kylian]";
- mes "\"I don't see it! Are you trying to tease me? This isn't funny!\"";
- goto L_Close;
-
-L_Close:
- set @acorn_amount, 0;
- set @suitcase_money, 0;
- set @suitcase_exp, 0;
- set @license_money, 0;
- set @license_exp, 0;
- set @sightseeing_money, 0;
- set @sightseeing_exp, 0;
- set @food_money, 0;
- set @food_exp, 0;
- set @clothes_money, 0;
- set @clothes_exp, 0;
- set @fun_money, 0;
- set @fun_exp, 0;
- set @inventorylist_count, 0;
- // NOT set to zero: @KylianNTLicense, @KylianNTSightSeeing and @KylianNTCasino
- // those are used to check if the player logged out in the meanwhile
- close;
-}
-function|script|KylianDebug
-{
- set @run, ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT);
- set @run_cnt, ((QUEST_NorthTulimshar & TWOBIT_9_MASK) >> TWOBIT_9_SHIFT);
- goto L_Menu;
-
-L_Menu:
- mes "[Kylian Debug]";
- menu
- "Show Quest State", L_ShowState,
- "Set Quest State", L_SetState,
- "Reset Timer to Now", L_WorkTimer,
- "Reset Timer + 24 Hours", L_MoreWorkTimer,
- "Close.", L_Close;
-
-L_ShowState:
- mes "State: " + QL_KYLIAN;
- mes "Timer: " + Kylian_Timer;
- mes "Time: " + gettimetick(2);
- mes "Elapsed Time: " + (gettimetick(2) - Kylian_Timer);
- mes "Reset Timer: 86400 > " + (gettimetick(2) - Kylian_Timer);
- mes "Run: " + @run;
- mes "Run NPC: " + $@random_quests$[@run];
- mes "Run Count: " + @run_cnt;
- goto L_Menu;
-
-L_SetState:
- mes "\"Input the quest state desired.\"";
- input QL_KYLIAN;
- goto L_Menu;
-
-L_WorkTimer:
- set Kylian_Timer, gettimetick(2);
- goto L_Menu;
-
-L_MoreWorkTimer:
- set Kylian_Timer, (gettimetick(2) - 86401);
- goto L_Menu;
-
-L_Close:
- return;
-}
-002-2,40,101,0|script|KylianDebug#1|193
-{
- callfunc "KylianDebug";
- close;
-OnInit:
- if (!debug)
- disablenpc "KylianDebug#1";
- end;
-}
-002-2,118,89,0|script|KylianDebug#2|193
-{
- callfunc "KylianDebug";
- close;
-OnInit:
- if (!debug)
- disablenpc "KylianDebug#2";
- end;
-}
diff --git a/world/map/npc/002-2/latoy.txt b/world/map/npc/002-2/latoy.txt
deleted file mode 100644
index 90dfe9bb..00000000
--- a/world/map/npc/002-2/latoy.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-002-2,86,93,0|shop|#LatoyShop|32767,SilkHeadband:*4,SilkGloves:*4,SilkPants:*4,SilkRobe:*4
-002-2,86,93,0|script|Latoy|106
-{
- set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowLatoyNT;
-
- mes "[Latoy]";
- mes "\"Is there something I can help you with?\"";
- if (QL_KYLIAN != 7)
- goto L_Shop;
- next;
- mes "Maybe this is the kind of shop Kylian is looking for?";
- goto L_Shop;
-
-L_Shop:
- mes "[Latoy]";
- mes "\"How would you like to browse my wares?\"";
- menu
- "Yes.", L_LatoyShop,
- "No.", L_Close;
-
-L_LatoyShop:
- close2;
- shop "#LatoyShop";
-
-L_Close:
- close;
-}
diff --git a/world/map/npc/002-2/mapflags.txt b/world/map/npc/002-2/mapflags.txt
deleted file mode 100644
index 8f0bef6b..00000000
--- a/world/map/npc/002-2/mapflags.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-002-2|mapflag|resave|001-1,60,105
-002-2|mapflag|town
diff --git a/world/map/npc/002-2/omar.txt b/world/map/npc/002-2/omar.txt
deleted file mode 100644
index 6e51a706..00000000
--- a/world/map/npc/002-2/omar.txt
+++ /dev/null
@@ -1,335 +0,0 @@
-//
-function|script|KadiyaSubquestConsts
-{
- set @Q_kadiya_status, (QUEST_MAGIC2 & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
-
- set @Q_STATUS_NONE, 0;
- set @Q_STATUS_KNOWS_MOPOX, 1;
- set @Q_STATUS_MADE_MOPOX, 2;
- set @Q_STATUS_DIDNT_DRINK, 3;
- set @Q_STATUS_WANTS_CHOCOCAKE, 4;
- set @Q_STATUS_WANTS_ORANGECUPCAKE, 5;
- set @Q_STATUS_COMPLETED, 6;
- set @Q_STATUS_COMPLETED_ELANORE, 7;
- set @Q_STATUS_COMPLETED_NOELANORE, 8;
- set @Q_STATUS_COMPLETED_POST_ELANORE, 9;
-
- if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) < 4) set @Q_kadiya_status, @Q_STATUS_NONE;
-
- if (((QUEST_MAGIC2 & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT) > 4) set @Q_kadiya_status, @Q_STATUS_COMPLETED_POST_ELANORE;
-
- return;
-}
-
-002-2,117,126,0|script|Omar|162
-{
- callfunc "ElanoreFix";
- callfunc "KadiyaSubquestConsts";
-
- set @Q_status, @Q_kadiya_status;
-
- if (@Q_status >= @Q_STATUS_COMPLETED) goto L_cured;
-
- if (@Q_status == @Q_STATUS_DIDNT_DRINK) goto L_didnt_drink;
-
- if (@Q_status > @Q_STATUS_DIDNT_DRINK) goto L_make_food;
-
- mes "[Omar]";
- mes "\"Welcome to my humble abode.\"";
- next;
- menu
- "Well met! May I ask who you are?", L_omar,
- "What's wrong with your daughter?", L_kadiya_sick,
- "Thank you!", L_Close;
-
-L_omar:
- mes "[Omar]";
- mes "\"My name is Omar; I am a trader of oils and spices.\"";
- goto L_Close;
-
-L_kadiya_sick:
- mes "[Omar]";
- mes "\"Kadiya has caught Ponderpox, I fear.\"";
- mes "He sighs.";
- mes "\"She's has been feverish for many days now. I wish there were something I could do.\"";
- next;
- menu
- "Have you asked Elanore the healer?", L_sick_elanore,
- "How about the Hurnscald hospital?", L_sick_hospital,
- "Can I help?", L_sick_self,
- "I'm sorry to hear that.", L_Next;
-
-L_Next:
- mes "[Omar]";
- mes "\"Well, she is a strong girl. I am sure that she will get over it eventually.\"";
- mes "He smiles, but you see doubt in his eyes.";
- goto L_Close;
-
-L_sick_elanore:
- mes "[Omar]";
- mes "\"Elanore?\"";
- mes "He frowns.";
- mes "\"She knows nothing. I see no point in talking to her.\"";
- goto L_Close;
-
-L_sick_hospital:
- mes "[Omar]";
- mes "\"Hurnscald is too far away. I don't think that it would be good for her to go on such a long trip.\"";
- goto L_Close;
-
-L_sick_self:
- mes "[Omar]";
- mes "\"You are very kind, but I don't think there is anything you can do.\"";
- goto L_Close;
-
-L_didnt_drink:
- mes "[Omar]";
- mes "\"So she has Mopox, not Ponderpox, you say? Hmm. That is much harder to cure, I think.\"";
- mes "\"I am grateful for the effort you put into brewing a potion for her. But it does smell vile...\"";
- next;
- mes "[Omar]";
- mes "\"I promised my dear wife that I would never make Kadiya eat or drink anything she doesn't like. So I won't force her to drink this.\"";
- next;
- mes "[Omar]";
- set @Q_status, (@Q_STATUS_WANTS_CHOCOCAKE + rand(2));
- callsub S_update_var;
- if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE)
- mes "\"If only we could make it smell and taste like orange cupcakes... she really loves those cupcakes.\"";
- if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE)
- mes "\"If only this were a chocolate cake and not a potion... she really loves chocolate cakes.\"";
- goto L_Close;
-
-L_make_food:
- mes "[Omar]";
- mes "\"I should stay here to watch over her. I wish I could think of a way to convince her to drink the potion...\"";
- if (@Q_status == @Q_STATUS_WANTS_ORANGECUPCAKE)
- mes "\"Alas, it is not an orange cupcake.\"";
- if (@Q_status == @Q_STATUS_WANTS_CHOCOCAKE)
- mes "\"If only it were to smell and taste like her favourite chocolate cake...\"";
- goto L_Close;
-
-L_cured:
- if (@Q_status == @Q_STATUS_COMPLETED) goto L_cured_choice;
- mes "[Omar]";
- mes "\"She is sleeping now, but she seems to be much better. I am sure that she will be up and running around again soon.\"";
- goto L_Close;
-
-L_cured_choice:
- mes "[Omar]";
- mes "\"I am very grateful for your help. I really was sure that it was Ponderpox, not Mopox, that she had.\"";
- next;
- menu
- "Oh, it was nothing.", L_cured_nothing,
- "I didn't do it alone; Elanore helped.", L_cured_elanore,
- "That will be 5000 GP.", L_Next1;
-
-L_Next1:
- mes "[Omar]";
- mes "\"Ah, certainly.\"";
- mes "He hands you a small bag of money.";
- next;
- set @Q_status, @Q_STATUS_COMPLETED_NOELANORE;
- callsub S_update_var;
- set Zeny, Zeny + 5000;
- goto L_Close;
-
-L_cured_nothing:
- mes "[Omar]";
- mes "\"No, this wasn't nothing. She is everything to me. Here, you deserve a reward.\"";
- mes "He hands you a bag of money containing 10,000 GP and two pearls.";
- mes "\"And feel free to drop by again whenever you would like!\"";
- set @Q_status, @Q_STATUS_COMPLETED_NOELANORE;
- callsub S_update_var;
- getitem "Pearl", 2;
- set Zeny, Zeny + 10000;
- goto L_Close;
-
-L_cured_elanore:
- mes "[Omar]";
- mes "Omar frowns.";
- mes "\"That witch? You worked with her without telling me?\"";
- mes "He looks over to his daughter, concern suddenly in his eyes.";
- mes "\"She is looking better, though...\"";
- next;
- mes "[Omar]";
- mes "Omar shakes his head.";
- mes "\"I will have to think about this. Please leave me alone.\"";
- next;
- set @Q_status, @Q_STATUS_COMPLETED_ELANORE;
- callsub S_update_var;
- goto L_Close;
-
-L_Close:
- set @Q_STATUS_KNOWS_MOPOX, 0;
- set @Q_STATUS_MADE_MOPOX, 0;
- set @Q_STATUS_DIDNT_DRINK, 0;
- set @Q_STATUS_WANTS_CHOCOCAKE, 0;
- set @Q_STATUS_WANTS_ORANGECUPCAKE, 0;
- set @Q_STATUS_COMPLETED, 0;
- set @Q_STATUS_COMPLETED_ELANORE, 0;
- set @Q_STATUS_COMPLETED_NOELANORE, 0;
- set @Q_STATUS_COMPLETED_POST_ELANORE, 0;
- set @Q_status, 0;
- close;
-
-
-S_update_var:
- set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(NIBBLE_3_MASK) | (@Q_status << NIBBLE_3_SHIFT));
- return;
-}
-
-002-2,124,124,0|script|Kadiya|174
-{
- set @child_number, 7;
- callfunc "XmasList";
-
- callfunc "ElanoreFix";
- set @Q_MASK, NIBBLE_3_MASK;
- set @Q_SHIFT, NIBBLE_3_SHIFT;
- callfunc "KadiyaSubquestConsts";
- set @Q_status, @Q_kadiya_status;
- if (@Q_status >= @Q_STATUS_COMPLETED) goto L_cured;
-
- mes "You see a young girl lying in bed. At first she doesn't seem to notice you approaching.";
- mes "Finally, she turns her head towards you. Judging from the sweat on her forehead and look in her eyes, she is suffering from some kind of fever.";
- next;
- mes "[Kadiya]";
- mes "\"Hello,\" she says in a tiny voice.";
- next;
- set @M_NAME, 1;
- set @M_CANDY, 2;
- set @M_POTION, 3;
- set @M_CHOCOCAKE, 4;
- set @M_CUPCAKE, 5;
-
- setarray @choice$, "Hello! What's your name?", "Would you like some candy?", "", "", "", "", "", "";
- setarray @choice_idx, @M_NAME, @M_CANDY, 0, 0, 0, 0, 0, 0;
- set @choices_nr, 2;
-
- if (countitem("MopoxCurePotion") == 0) goto L_M_no_cure;
-
- set @choice_idx[@choices_nr], @M_POTION;
- set @choice$[@choices_nr], "This potion will cure your illness!";
- set @choices_nr, @choices_nr + 1;
- goto L_M_no_cure;
-
-L_M_no_cure:
- if ((countitem("LacedChocolateCake") == 0) || (@Q_status != @Q_STATUS_WANTS_CHOCOCAKE))
- goto L_M_no_chococake;
- set @choice_idx[@choices_nr], @M_CHOCOCAKE;
- set @choice$[@choices_nr], "Would you like special chocolate cake?";
- set @choices_nr, @choices_nr + 1;
- goto L_M_no_chococake;
-
-L_M_no_chococake:
- if ((countitem("LacedOrangeCupcake") == 0) || (@Q_status != @Q_STATUS_WANTS_ORANGECUPCAKE))
- goto L_M_no_cupcake;
- set @choice_idx[@choices_nr], @M_CUPCAKE;
- set @choice$[@choices_nr], "Would you like special orange cupcake?";
- set @choices_nr, @choices_nr + 1;
- goto L_M_no_cupcake;
-
-L_M_no_cupcake:
- set @choice_idx[@choices_nr], 0;
- set @choice$[@choices_nr], "Goodbye.";
- set @choices_nr, @choices_nr + 1;
-
- menu
- @choice$[0], L_MenuItems,
- @choice$[1], L_MenuItems,
- @choice$[2], L_MenuItems,
- @choice$[3], L_MenuItems,
- @choice$[4], L_MenuItems,
- @choice$[5], L_MenuItems;
-
-L_MenuItems:
- set @choice, @choice_idx[@menu - 1];
-
- if (@choice == @M_NAME) goto L_name;
- if (@choice == @M_CANDY) goto L_no_candy;
- if (@choice == @M_POTION) goto L_potion;
- if (@choice == @M_CHOCOCAKE) goto L_chococake;
- if (@choice == @M_CUPCAKE) goto L_cupcake;
- goto L_Close;
-
-L_name:
- mes "[Kadiya]";
- mes "She smiles a faint smile.";
- mes "\"My name is Kadiya.\"";
- goto L_Close;
-
-L_no_candy:
- mes "[Kadiya]";
- mes "She hesitates for a moment.";
- mes "\"No, thank you. I don't think I should.\"";
- goto L_Close;
-
-L_potion:
- mes "[Kadiya]";
- if (@Q_status < @Q_STATUS_DIDNT_DRINK) set @Q_status, @Q_STATUS_DIDNT_DRINK;
- callsub S_update_var;
-
- mes "Kadiya grimaces and pushes the bottle away.";
- mes "\"That smells terrible!\"";
- next;
- mes "[Kadiya]";
- mes "She pulls the sheets over her head.";
- mes "\"I won't drink that!\"";
- goto L_Close;
-
-L_chococake:
- delitem "LacedChocolateCake", 1;
- goto L_do_cure;
-
-L_cupcake:
- delitem "LacedOrangeCupcake", 1;
- goto L_do_cure;
-
-L_do_cure:
- if (@Q_status < @Q_STATUS_COMPLETED) set @Q_status, @Q_STATUS_COMPLETED;
- callsub S_update_var;
-
- mes "[Kadiya]";
- mes "Kadiya's eyes widen.";
- mes "\"Oh! Daddy, is it okay if I eat this?\"";
- mes "Omar nods and smiles. \"You should eat a bit to regain your strength, sweetheart.\"";
- next;
- mes "[Kadiya]";
- mes "Kadiya devours your gift in just a handful of bites.";
- next;
- mes "[Kadiya]";
- mes "She smiles. \"Thank you! I feel better already!\".";
- next;
- mes "[Kadiya]";
- mes "She looks much healthier, too. Omar walks over and touches her forehead.";
- mes "\"Now that is funny – your fever has gone down quite a bit!\"";
- mes "He smiles at you. \"Thank you for your help!\"";
- next;
- mes "[Kadiya]";
- mes "\"You should get some sleep now, sweetheart. I'm sure that you will be better soon.\"";
- goto L_Close;
-
-L_cured:
- mes "[Kadiya]";
- mes "Kadiya seems to be sleeping calmly. She looks much less sweaty than earlier; unless you are very much mistaken, her fever has disappeared.";
- goto L_Close;
-
-L_Close:
- set @Q_status, 0;
- set @Q_MASK, 0;
- set @Q_SHIFT, 0;
- set @M_NAME, 0;
- set @M_CANDY, 0;
- set @M_POTION, 0;
- set @M_CHOCOCAKE, 0;
- set @M_CUPCAKE, 0;
- set @choice, 0;
- set @choices_nr, 0;
- cleararray @choice_idx[0], 0, 7;
- cleararray @choice$[0], "", 7;
- close;
-
-S_update_var:
- set QUEST_MAGIC2, (QUEST_MAGIC2 & ~(@Q_MASK) | (@Q_status << @Q_SHIFT));
- return;
-}
diff --git a/world/map/npc/002-2/phaet.txt b/world/map/npc/002-2/phaet.txt
deleted file mode 100644
index a0ec83ee..00000000
--- a/world/map/npc/002-2/phaet.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-
-002-2,75,56,0|script|Phaet|125,0,0
-{
- 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", L_Next;
-
-L_Next:
- 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;
- warp "001-3", 0, 0;
- close;
-
-L_NoMoney:
- mes "\"Wait a second, you don't have enough money.\"";
- close;
-}
diff --git a/world/map/npc/002-2/rebecca.txt b/world/map/npc/002-2/rebecca.txt
deleted file mode 100644
index faf53007..00000000
--- a/world/map/npc/002-2/rebecca.txt
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-
-002-2,44,27,0|script|Rebecca|118
-{
- set @npcname$, "Rebecca the Inn Keeper";
- set @cost, 100;
- mes "[" + @npcname$ + "]";
- mes "\"Welcome to 'The Wizard's Rest'\"";
- goto L_MainMenu;
-
-L_MainMenu:
- mes "\"How may I help you?\"";
- menu
- "Can I get a room?", L_Inn,
- "Any interesting guests?", L_Guests,
- "Bakery?", L_Bakery,
- "Barber?", L_Barber,
- "Casino?", L_Casino,
- "Theatre?", L_Theatre,
- "Pvp?", L_Pvp,
- "I don't need any help, thanks.", L_Close;
-
-L_Guests:
- mes "\"We had a very rich business man show up the other day.\"";
- next;
- mes "\"He caused quite a stir when he paid for the penthouse so far in advance.";
- mes "I hear he is looking for help.\"";
- next;
- mes "\"Other then that feel free to mingle with the guests.\"";
- next;
- mes "\"You can find them in the door behind me.\"";
- goto L_Close;
-
-
-L_Bakery:
- mes "\"Ahh yes, the World Famous Riskim's bakery.\"";
- next;
- mes "\"They only use the finest ingredients like Acorn Flour";
- mes "to make some of the tastest treats in Tonori.\"";
- next;
- mes "Second only to the Wizards' private chef, Fieri.\"";
- goto L_MainMenu;
-
-L_Barber:
- mes "\"Issay the barber of Tonori can be found through the door behind me\"";
- next;
- mes "\"The master stylist can do anything with anyones hair.\"";
- next;
- mes "\"He always welcomes walk ins.\"";
- goto L_MainMenu;
-
-L_Casino:
- mes "\"Games, Games, Games.\"";
- next;
- mes "\"Test your luck or skill in the Casino. From Blackjack to Pvp.\"";
- next;
- mes "\"Win or Lose, you'll still have fun!\"";
- goto L_MainMenu;
-
-L_Theatre:
- mes "\"A touring troop from Hurnscald just arrived.\"";
- next;
- mes "\"The are currently rehearsing for their next show.\"";
- next;
- mes "\"Feel free to talk to the troupe leader, they are in the theatre behind me.\"";
- goto L_MainMenu;
-
-L_Pvp:
- mes "\"Yes, our Casino has Pvp in the Casino behind me.\"";
- next;
- mes "\"Test your self against other players and gamble on the outcome.\"";
- next;
- mes "\"Fame and glory awaits you gladiator!\"";
- goto L_MainMenu;
-
-L_Inn:
- callfunc "Inn";
- goto L_Close;
-
-L_Close:
- set @npcname$, "";
- set @cost, 0;
- close;
-}
diff --git a/world/map/npc/002-2/shops.txt b/world/map/npc/002-2/shops.txt
deleted file mode 100644
index f1f09592..00000000
--- a/world/map/npc/002-2/shops.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-// Bartender
-
-002-2,68,25,0|shop|Bartender#Casino|112,Beer:*1,Cake:*1,CherryCake:*1
diff --git a/world/map/npc/002-2/stranger.txt b/world/map/npc/002-2/stranger.txt
deleted file mode 100644
index 9616763b..00000000
--- a/world/map/npc/002-2/stranger.txt
+++ /dev/null
@@ -1,408 +0,0 @@
-// FIXME: this script is very cringeworthy and almost never clears the arrays so they just fill up
-// also some arrays should be global (and npc vars later), not stored in every single player
-// -> should GET RID of that fugly magic-secrets system; the answers are public anyway
-002-2,38,57,0|script|Stranger|192
-{
- set @IRONINGOT, 5;
- set @PINKANTENNA, 21;
- set @Exp, 20000;
- setarray @towelReq$[0], "HitchhikersTowel";
-
- if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done;
- 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;
-
-L_Items:
- if (countitem("IronIngot") < @IRONINGOT) goto L_No_Item;
- if (countitem("PinkAntenna") < @PINKANTENNA) goto L_No_Item;
- delitem "IronIngot", @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;
- goto L_Towel;
-
-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;
-
- cleararray @quiz_questions$[0], "", getarraysize(@quiz_questions$[0]);
- cleararray @quiz_answers$[0], "", getarraysize(@quiz_answers$[0]);
-
- setarray @quiz_questions$[0],
- "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 @quiz_answers$[0],
- "Don't Panic",
- "Marvin",
- "42",
- "Douglas",
- "Adams",
- "Arthur Philip Dent",
- "Trillian",
- "Big",
- "Heart of Gold",
- "2";
-
- callfunc "MultiQuiz";
- if (@success == 0) goto L_Wrong_Answer;
-
- mes "[Stranger]";
- mes "\"You're absolutely right. The next one will be more tricky.\"";
- next;
-
- cleararray @quiz_questions$[0], "", getarraysize(@quiz_questions$[0]);
- cleararray @quiz_answers$[0], "", getarraysize(@quiz_answers$[0]);
-
- setarray @quiz_questions$[0],
- "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 @quiz_answers$[0],
- "Disaster Area",
- "Betelgeuse",
- "England",
- "Eddie",
- "Yellow",
- "Oh no, not again",
- "Ear",
- "Deep Thought",
- "Dolphins",
- "Vogons",
- "Vogsphere",
- "Milliways";
-
- callfunc "MultiQuiz";
- if (@success == 0) goto L_Wrong_Answer;
-
- mes "[Stranger]";
- mes "\"Not bad, not bad. Let's see if you can answer an even more difficult one.\"";
- next;
-
- cleararray @quiz_questions$[0], "", getarraysize(@quiz_questions$[0]);
- cleararray @quiz_answers$[0], "", getarraysize(@quiz_answers$[0]);
-
- setarray @quiz_questions$[0],
- "Drinking what drink is like having your brain smashed out by a slice of lemon wrapped round a large gold brick?",
- "How many pints of 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 @quiz_answers$[0],
- "Pan Galactic Gargle Blaster",
- "3",
- "ZB",
- "Ix",
- "Slartibartfast",
- "Cricket",
- "Eccentrica Gallumbits",
- "Wowbagger",
- "Agrajag";
-
- callfunc "MultiQuiz";
- if (@success == 0) goto L_Wrong_Answer;
-
- 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?\"";
- mes "";
- mes "##BDrag & drop the item from your inventory##b.";
- requestitem .@answer$[0];
- if (.@answer$[0] != "Towel" && .@answer$[0] != "HitchhikersTowel")
- 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
- set FLAGS, FLAGS | FLAG_TOWEL_COMPLETED;
- next;
- goto L_Explain;
-
-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.\"";
- goto L_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 (FLAGS & FLAG_TOWEL_COMPLETED)
- menu
- "Thanks for the advice.",L_Close,
- "I have my towel with me too.",L_Dye;
- goto L_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_StartDyeTowel,
- "It's great, isn't it? I have to go now.",L_Close;
-
-L_No_Item:
- mes "[Stranger]";
- mes "\"Hu? It seems you haven't.\"";
- goto L_Close;
-
-L_Wrong_Answer:
- mes "[Stranger]";
- mes "\"Nah, that's wrong. Come back if you want to try again.\"";
- goto L_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!", L_StartDyeTowel,
- "No, thanks.", L_Close;
-
-L_StartDyeTowel:
- 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;
-
-L_White:
- // Koga
- set @warpTowelName$, "WhiteHitchhikersTowel";
- setarray @towelPowder$, "DiamondPowder";
- setarray @towelPowderCnt, 2;
- goto L_DyeChecks;
-
-L_Red:
- // Barbarians
- set @warpTowelName$, "RedHitchhikersTowel";
- setarray @towelPowder$, "RubyPowder";
- setarray @towelPowderCnt, 2;
- goto L_DyeChecks;
-
-L_Green:
- // Candor
- set @warpTowelName$, "GreenHitchhikersTowel";
- setarray @towelPowder$, "EmeraldPowder";
- setarray @towelPowderCnt, 2;
- goto L_DyeChecks;
-
-L_Blue:
- // Blue Sages
- set @warpTowelName$, "BlueHitchhikersTowel";
- setarray @towelPowder$, "SapphirePowder";
- setarray @towelPowderCnt, 2;
- goto L_DyeChecks;
-
-L_Yellow:
- // Tulimshar Mines
- set @warpTowelName$, "YellowHitchhikersTowel";
- setarray @towelPowder$, "TopazPowder";
- setarray @towelPowderCnt, 2;
- goto L_DyeChecks;
-
-L_Purple:
- // Dimonds Inn
- set @warpTowelName$, "PurpleHitchhikersTowel";
- setarray @towelPowder$, "AmethystPowder";
- setarray @towelPowderCnt, 2;
- goto L_DyeChecks;
-
-L_Orange:
- // Graveyard
- set @warpTowelName$, "OrangeHitchhikersTowel";
- setarray @towelPowder$, "RubyPowder", "TopazPowder";
- setarray @towelPowderCnt, 1, 1;
- goto L_DyeChecks;
-
-L_Pink:
- // Terranite Cave
- set @warpTowelName$, "PinkHitchhikersTowel";
- setarray @towelPowder$, "RubyPowder", "DiamondPowder";
- setarray @towelPowderCnt, 1, 1;
- goto L_DyeChecks;
-
-L_Teal:
- // Mana Seed
- set @warpTowelName$, "TealHitchhikersTowel";
- setarray @towelPowder$, "EmeraldPowder", "SapphirePowder";
- setarray @towelPowderCnt, 1, 1;
- goto L_DyeChecks;
-
-L_Lime:
- // Panchua
- set @warpTowelName$, "LimeHitchhikersTowel";
- setarray @towelPowder$, "EmeraldPowder", "TopazPowder";
- setarray @towelPowderCnt, 1, 1;
- goto L_DyeChecks;
-
-L_DyeChecks:
- mes "[Stranger]";
- mes "\"Ok, I'll need a bottle of water first.\"";
- next;
- getinventorylist;
- if (@inventorylist_count == 100) goto L_Full_Inv;
- if (countitem("BottleOfWater") < 1) goto L_No_Water;
- set @powderCheckCount, 0;
- goto L_PowderChecks;
-
-L_PowderCheckAgain:
- mes "[Stranger]";
- mes "\"Now I need " + @towelPowderCnt[@powderCheckCount] + " " + @towelPowder$[@powderCheckCount] + ".\"";
- next;
- if((@powderCheckCount + 1) == getarraysize(@towelPowder$))
- goto L_TowelChecks;
- set @powderCheckCount, (@powderCheckCount + 1);
- goto L_PowderChecks;
-
-L_PowderChecks:
- if (countitem(@towelPowder$[@powderCheckCount]) < @towelPowderCnt[@powderCheckCount])
- goto L_No_Powder;
- goto L_PowderCheckAgain;
-
-L_TowelCheckAgain:
- set @towelCheckCount, (@towelCheckCount + 1);
- if(@towelCheckCount >= getarraysize(@towelReq$))
- goto L_No_Towel;
- goto L_TowelChecks;
-
-L_TowelChecks:
- if (countitem(@towelReq$[@towelCheckCount]) > 0)
- goto L_DeletePowder;
- goto L_TowelCheckAgain;
-
-L_DeleteAgain:
- set @powderCheckCount, (@powderCheckCount - 1);
- goto L_DeletePowder;
-
-L_DeletePowder:
- delitem @towelPowder$[@powderCheckCount], @towelPowderCnt[@powderCheckCount];
- if (@powderCheckCount)
- goto L_DeleteAgain;
- goto L_DyeTowel;
-
-L_DyeTowel:
- delitem @towelReq$[@towelCheckCount], 1;
- delitem "BottleOfWater", 1;
- getitem @warpTowelName$, 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.\"";
- goto L_Close;
-
-L_No_Water:
- mes "[Stranger]";
- mes "\"You don't have water.\"";
- goto L_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.\"";
- goto L_Close;
-
-L_No_Towel:
- mes "[Stranger]";
- mes "\"Where's your towel? It is really useful, you should always keep it with you.\"";
- goto L_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.\"";
- goto L_Close;
-
-L_Close:
- set @IRONINGOT, 0;
- set @PINKANTENNA, 0;
- set @Exp, 0;
- set @random, 0;
- set @quizparam$, "";
- set @warpTowelName$, "";
- set @powderCheckCount, 0;
- set @towelCheckCount, 0;
- cleararray @towelPowder$, "", getarraysize(@towelPowder$);
- cleararray @towelPowderCnt, "", getarraysize(@towelPowderCnt);
- close;
-}
diff --git a/world/map/npc/002-2/troupe_leader.txt b/world/map/npc/002-2/troupe_leader.txt
deleted file mode 100644
index 79c85dc6..00000000
--- a/world/map/npc/002-2/troupe_leader.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-//
-
-002-2,81,21,0|script|Troupe Leader|165
-{
- set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
-
- 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.\"";
- goto L_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...", L_Close;
-
-L_NohMask_Idea:
- set @inspector, 5;
- callsub S_Update_Mask;
- mes "[Troupe Leader]";
- mes "\"Hm...I did see an old man hang out near the theater after our last show.\"";
- goto L_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!\"";
- goto L_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;
- callsub S_Update_Mask;
- getitem "NohMask", 1;
- next;
- mes "[Troupe Leader]";
- mes "\"We don't need it anymore. We're doing different shows here.\"";
- goto L_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.\"";
- goto L_Close;
-
-L_Close:
- set @inspector, 0;
- close;
-
-S_Update_Mask:
- set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_3_MASK)) | (@inspector << NIBBLE_3_SHIFT);
- return;
-}