summaryrefslogtreecommitdiff
path: root/npc/new_20-1-woodland-village
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2008-11-12 09:07:20 +0000
committerJared Adams <jaxad0127@gmail.com>2008-11-12 09:07:20 +0000
commit57e98ad83c240ad585aeaa47f05c9ca9dfcb9e26 (patch)
treec70c6a801b4b47cac7c7ccb2150f20ea81ced13e /npc/new_20-1-woodland-village
parentfa302a780f1873bcab253bf469b8be23fe4a43e0 (diff)
parent92edc7656445e89c7ce1d229970f03ff55708e5b (diff)
downloadserverdata-57e98ad83c240ad585aeaa47f05c9ca9dfcb9e26.tar.gz
serverdata-57e98ad83c240ad585aeaa47f05c9ca9dfcb9e26.tar.bz2
serverdata-57e98ad83c240ad585aeaa47f05c9ca9dfcb9e26.tar.xz
serverdata-57e98ad83c240ad585aeaa47f05c9ca9dfcb9e26.zip
Merge branch 'master' of git@gitorious.org:tmw-eathena-data/mainline
Diffstat (limited to 'npc/new_20-1-woodland-village')
-rw-r--r--npc/new_20-1-woodland-village/alan.txt422
-rw-r--r--npc/new_20-1-woodland-village/drunks.txt32
-rw-r--r--npc/new_20-1-woodland-village/misc.txt22
-rw-r--r--npc/new_20-1-woodland-village/nicholas.txt808
-rw-r--r--npc/new_20-1-woodland-village/richard.txt12
-rw-r--r--npc/new_20-1-woodland-village/selim.txt278
-rw-r--r--npc/new_20-1-woodland-village/shops.txt68
-rw-r--r--npc/new_20-1-woodland-village/waitress.txt102
8 files changed, 872 insertions, 872 deletions
diff --git a/npc/new_20-1-woodland-village/alan.txt b/npc/new_20-1-woodland-village/alan.txt
index d8c2f51e..fc779676 100644
--- a/npc/new_20-1-woodland-village/alan.txt
+++ b/npc/new_20-1-woodland-village/alan.txt
@@ -1,211 +1,211 @@
-//#################################################################################
-//# #
-//# This script file contains the npc scripts for the quest to obtain a forestbow #
-//# #
-//# Needed: 10 Raw Logs, 5000gp, some chatting and running. #
-//# #
-//# Reward: Forest Bow #
-//#################################################################################
-
-// Archer Shop Master
-new_20-1.gat,99,23,0 script Alan 125, {
- set @Q_MASK, NIBBLE_0_MASK;
- set @Q_SHIFT, NIBBLE_0_SHIFT;
-
- set @Q_status, ((QUEST_Forestbow_state) & @Q_MASK) >> @Q_SHIFT;
-
- if (@Q_status == 1) goto L_State_1;
- if (@Q_status == 2) goto L_State_2;
- if (@Q_status == 3) goto L_State_3;
- if (@Q_status == 4) goto L_State_4;
- if (@Q_status == 5) goto L_State_5;
-
- mes "[Alan]";
- mes "\"When you want to buy something then please speak to my apprentice. I am only doing special requests.\"";
- next;
- if (Inspector == 1)
- menu
- "OK, thanks", -,
- "Can you make me a really good bow?", L_State_0_1,
- "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (Inspector != 1)
- menu
- "OK, thanks", -,
- "Can you make me a really good bow?", L_State_0_1;
- close;
-
-L_State_0_1:
- mes "[Alan]";
- mes "\"You mean like one of my legendary forest bows?\"";
- next;
- menu
- "Yes, that would be nice.", -;
- mes "[Alan]";
- mes "\"Sorry, I am not making these anymore.\"";
- next;
- menu
- "Oh, too bad.", -,
- "What? Why that?", L_State_0_2;
- close;
-
-L_State_0_2:
- mes "[Alan]";
- mes "\"The problem is that I am short of material. My forestbows are not made of regular wood, you know.";
- mes "They are made of special living wood. And only the best logs of living wood are good enough for them.";
- mes "I used to get these logs from Jack, the lumberjack. But the last time I asked him for a new delivery he said that he would never again get any for me.\"";
-
- set @Q_status, 1;
- callsub S_Update_Var;
-
- next;
- menu
- "Too bad.", -,
- "Did you ask him why?", L_State_0_3;
- close;
-
-L_State_0_3:
- mes "[Alan]";
- mes "\"Sure I did. But he just told me to leave him alone. Maybe you could ask him what's wrong?\"";
- next;
- menu
- "OK, I'll ask him.", -,
- "I am sure he got his reasons.", -;
- close;
-
-L_State_1:
- mes "[Alan]";
- mes "\"Did you already ask Jack why he won't deliver me any more living wood?\"";
- next;
- if (Inspector == 1)
- menu
- "No, I haven't had the time yet", -,
- "No, I didn't find him yet.", L_State_1_1,
- "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (Inspector != 1)
- menu
- "No, I haven't had the time yet", -,
- "No, I didn't find him yet.", L_State_1_1;
- close;
-
-L_State_1_1:
- mes "[Alan]";
- mes "\"When you leave my shop just go southwest over the village plaza. You can't miss it.\"";
- close;
-
-L_State_2:
- mes "[Alan]";
- mes "\"Did you already ask Jack why he won't deliver me any more living wood?\"";
- next;
- if (Inspector == 1)
- menu
- "Yes, I did. He said that the trees turned into dangerous monsters.", -,
- "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (Inspector != 1)
- menu
- "Yes, I did. He said that the trees turned into dangerous monsters.", -;
- mes "[Alan]";
- mes "\"Oh, that's really bad news. Maybe you can do his job?";
- mes "When you kill some of these tree monsters and bring me their wood I can take a look at them.";
- mes "Maybe you will find a piece of wood that is strong enough to become one of my forest bows.\"";
-
- set @Q_status, 3;
- callsub S_Update_Var;
-
- close;
-
-L_State_3:
- mes "[Alan]";
- mes "\"How is the hunt going? Did you bring me any wood?\"";
- if (countitem(569) < 1) close;
- next;
- if (Inspector == 1)
- menu
- "Here, take a look!", L_State_3_try,
- "Yes, but I need it for something else.", -,
- "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (Inspector != 1)
- menu
- "Here, take a look!", L_State_3_try,
- "Yes, but I need it for something else.", -;
- close;
-
-L_State_3_try:
- mes "[Alan]";
- mes "\"Hmmm... looks ok, but is it strong enough?\"";
- mes "Alan bends the log over his knee.";
- next;
- delitem 569, 1;
- set @Temp1, rand(20);
- if (@Temp1 == 0) goto L_State_3_success;
- mes "The log breaks with a loud crack";
- next;
- mes "[Alan]";
- mes "\"Sorry, this log was too weak for one of my forest bows. Now it is junk. Give me another.\"";
- if (countitem(569) < 1) close;
- next;
- menu
- "Sure, here you go.", L_State_3_try,
- "Hey! Stop breaking my stuff!", -;
- close;
-
-L_State_3_success:
- mes "Alan tries as hard as he can but the log won't bend.";
- next;
- mes "[Alan]";
- mes "\"Aaah! Yes! That is a really fine piece of wood you bought me. It will make an excelent bow!\"";
- next;
- set @Q_status, 4;
- callsub S_Update_Var;
-
-L_State_4:
- mes "[Alan]";
- mes "\"I can make you a really nice forest bow out of this. I just need 10,000 GP for material and work time.\"";
- next;
- if (Inspector == 1)
- menu
- "10,000??? What a ripoff!", -,
- "Sure, here you go!", L_State_4_pay,
- "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- if (Inspector != 1)
- menu
- "10,000??? What a ripoff!", -,
- "Sure, here you go!", L_State_4_pay;
- close;
-
-L_State_4_pay:
- if (zeny < 10000) goto L_State_4_nocash;
- set zeny, zeny - 10000;
- getitem 545, 1;
- set @Q_status, 5;
- callsub S_Update_Var;
- mes "[Alan]";
- mes "\"Here you go - have fun with it.\"";
- close;
-
-L_State_4_nocash:
- mes "[Alan]";
- mes "\"Seems like you are out of cash.\"";
- close;
-
-L_State_5:
- mes "[Alan]";
- mes "\"I hope you are statisfied with your forest bow. It is one of my best works.\"";
- next;
-
- if (Inspector == 1)
- menu
- "I am!", -,
- "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
- close;
-
-L_NohMask_Answer:
- mes "[Alan]";
- mes "\"No.\"";
- close;
-
-S_Update_Var:
- set QUEST_Forestbow_state,
- (QUEST_Forestbow_state & ~(@Q_MASK)
- | (@Q_status << @Q_SHIFT));
- return;
-}
+//#################################################################################
+//# #
+//# This script file contains the npc scripts for the quest to obtain a forestbow #
+//# #
+//# Needed: 10 Raw Logs, 5000gp, some chatting and running. #
+//# #
+//# Reward: Forest Bow #
+//#################################################################################
+
+// Archer Shop Master
+new_20-1.gat,99,23,0 script Alan 125, {
+ set @Q_MASK, NIBBLE_0_MASK;
+ set @Q_SHIFT, NIBBLE_0_SHIFT;
+
+ set @Q_status, ((QUEST_Forestbow_state) & @Q_MASK) >> @Q_SHIFT;
+
+ if (@Q_status == 1) goto L_State_1;
+ if (@Q_status == 2) goto L_State_2;
+ if (@Q_status == 3) goto L_State_3;
+ if (@Q_status == 4) goto L_State_4;
+ if (@Q_status == 5) goto L_State_5;
+
+ mes "[Alan]";
+ mes "\"When you want to buy something then please speak to my apprentice. I am only doing special requests.\"";
+ next;
+ if (Inspector == 1)
+ menu
+ "OK, thanks", -,
+ "Can you make me a really good bow?", L_State_0_1,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ if (Inspector != 1)
+ menu
+ "OK, thanks", -,
+ "Can you make me a really good bow?", L_State_0_1;
+ close;
+
+L_State_0_1:
+ mes "[Alan]";
+ mes "\"You mean like one of my legendary forest bows?\"";
+ next;
+ menu
+ "Yes, that would be nice.", -;
+ mes "[Alan]";
+ mes "\"Sorry, I am not making these anymore.\"";
+ next;
+ menu
+ "Oh, too bad.", -,
+ "What? Why that?", L_State_0_2;
+ close;
+
+L_State_0_2:
+ mes "[Alan]";
+ mes "\"The problem is that I am short of material. My forestbows are not made of regular wood, you know.";
+ mes "They are made of special living wood. And only the best logs of living wood are good enough for them.";
+ mes "I used to get these logs from Jack, the lumberjack. But the last time I asked him for a new delivery he said that he would never again get any for me.\"";
+
+ set @Q_status, 1;
+ callsub S_Update_Var;
+
+ next;
+ menu
+ "Too bad.", -,
+ "Did you ask him why?", L_State_0_3;
+ close;
+
+L_State_0_3:
+ mes "[Alan]";
+ mes "\"Sure I did. But he just told me to leave him alone. Maybe you could ask him what's wrong?\"";
+ next;
+ menu
+ "OK, I'll ask him.", -,
+ "I am sure he got his reasons.", -;
+ close;
+
+L_State_1:
+ mes "[Alan]";
+ mes "\"Did you already ask Jack why he won't deliver me any more living wood?\"";
+ next;
+ if (Inspector == 1)
+ menu
+ "No, I haven't had the time yet", -,
+ "No, I didn't find him yet.", L_State_1_1,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ if (Inspector != 1)
+ menu
+ "No, I haven't had the time yet", -,
+ "No, I didn't find him yet.", L_State_1_1;
+ close;
+
+L_State_1_1:
+ mes "[Alan]";
+ mes "\"When you leave my shop just go southwest over the village plaza. You can't miss it.\"";
+ close;
+
+L_State_2:
+ mes "[Alan]";
+ mes "\"Did you already ask Jack why he won't deliver me any more living wood?\"";
+ next;
+ if (Inspector == 1)
+ menu
+ "Yes, I did. He said that the trees turned into dangerous monsters.", -,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ if (Inspector != 1)
+ menu
+ "Yes, I did. He said that the trees turned into dangerous monsters.", -;
+ mes "[Alan]";
+ mes "\"Oh, that's really bad news. Maybe you can do his job?";
+ mes "When you kill some of these tree monsters and bring me their wood I can take a look at them.";
+ mes "Maybe you will find a piece of wood that is strong enough to become one of my forest bows.\"";
+
+ set @Q_status, 3;
+ callsub S_Update_Var;
+
+ close;
+
+L_State_3:
+ mes "[Alan]";
+ mes "\"How is the hunt going? Did you bring me any wood?\"";
+ if (countitem(569) < 1) close;
+ next;
+ if (Inspector == 1)
+ menu
+ "Here, take a look!", L_State_3_try,
+ "Yes, but I need it for something else.", -,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ if (Inspector != 1)
+ menu
+ "Here, take a look!", L_State_3_try,
+ "Yes, but I need it for something else.", -;
+ close;
+
+L_State_3_try:
+ mes "[Alan]";
+ mes "\"Hmmm... looks ok, but is it strong enough?\"";
+ mes "Alan bends the log over his knee.";
+ next;
+ delitem 569, 1;
+ set @Temp1, rand(20);
+ if (@Temp1 == 0) goto L_State_3_success;
+ mes "The log breaks with a loud crack";
+ next;
+ mes "[Alan]";
+ mes "\"Sorry, this log was too weak for one of my forest bows. Now it is junk. Give me another.\"";
+ if (countitem(569) < 1) close;
+ next;
+ menu
+ "Sure, here you go.", L_State_3_try,
+ "Hey! Stop breaking my stuff!", -;
+ close;
+
+L_State_3_success:
+ mes "Alan tries as hard as he can but the log won't bend.";
+ next;
+ mes "[Alan]";
+ mes "\"Aaah! Yes! That is a really fine piece of wood you bought me. It will make an excelent bow!\"";
+ next;
+ set @Q_status, 4;
+ callsub S_Update_Var;
+
+L_State_4:
+ mes "[Alan]";
+ mes "\"I can make you a really nice forest bow out of this. I just need 10,000 GP for material and work time.\"";
+ next;
+ if (Inspector == 1)
+ menu
+ "10,000??? What a ripoff!", -,
+ "Sure, here you go!", L_State_4_pay,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ if (Inspector != 1)
+ menu
+ "10,000??? What a ripoff!", -,
+ "Sure, here you go!", L_State_4_pay;
+ close;
+
+L_State_4_pay:
+ if (zeny < 10000) goto L_State_4_nocash;
+ set zeny, zeny - 10000;
+ getitem 545, 1;
+ set @Q_status, 5;
+ callsub S_Update_Var;
+ mes "[Alan]";
+ mes "\"Here you go - have fun with it.\"";
+ close;
+
+L_State_4_nocash:
+ mes "[Alan]";
+ mes "\"Seems like you are out of cash.\"";
+ close;
+
+L_State_5:
+ mes "[Alan]";
+ mes "\"I hope you are statisfied with your forest bow. It is one of my best works.\"";
+ next;
+
+ if (Inspector == 1)
+ menu
+ "I am!", -,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ close;
+
+L_NohMask_Answer:
+ mes "[Alan]";
+ mes "\"No.\"";
+ close;
+
+S_Update_Var:
+ set QUEST_Forestbow_state,
+ (QUEST_Forestbow_state & ~(@Q_MASK)
+ | (@Q_status << @Q_SHIFT));
+ return;
+}
diff --git a/npc/new_20-1-woodland-village/drunks.txt b/npc/new_20-1-woodland-village/drunks.txt
index 10a47b41..e3e2d31c 100644
--- a/npc/new_20-1-woodland-village/drunks.txt
+++ b/npc/new_20-1-woodland-village/drunks.txt
@@ -1,16 +1,16 @@
-//Left drinking contest guy
-
-new_20-1.gat,65,55,0 script Drinker 121, {
- mes "[Binge Drinker]";
- mes "\"Ha! I'll drink muuuch mo.. more than you! Im not ooone biiit dr...dr..unk!\"";
- close;
-}
-
-//Right drinking contest guy
-
-new_20-1.gat,68,55,0 script Drinker 121, {
- mes "[Binge Drinker]";
- mes "\"I can still drink more! Better give up you... you... teelotaler! MORE BEER MELINDA!\"";
- //I know it's called "teetotaler". That error is on purpose.
- close;
-}
+//Left drinking contest guy
+
+new_20-1.gat,65,55,0 script Drinker 121, {
+ mes "[Binge Drinker]";
+ mes "\"Ha! I'll drink muuuch mo.. more than you! Im not ooone biiit dr...dr..unk!\"";
+ close;
+}
+
+//Right drinking contest guy
+
+new_20-1.gat,68,55,0 script Drinker 121, {
+ mes "[Binge Drinker]";
+ mes "\"I can still drink more! Better give up you... you... teelotaler! MORE BEER MELINDA!\"";
+ //I know it's called "teetotaler". That error is on purpose.
+ close;
+}
diff --git a/npc/new_20-1-woodland-village/misc.txt b/npc/new_20-1-woodland-village/misc.txt
index bf3a6046..b2cfe9da 100644
--- a/npc/new_20-1-woodland-village/misc.txt
+++ b/npc/new_20-1-woodland-village/misc.txt
@@ -1,11 +1,11 @@
-//Note in bar
-
-new_20-1.gat,54,49,0 script Note 127, {
- mes "[Note]";
- mes "\"We refuse service to anyone who:\"";
- mes "\"-Has a bubblehead\"";
- mes "\"-Is not properly shaded\"";
- mes "\"-Can't walk without stopping after every step\"";
- close;
- // In case you don't get the joke - it's a parody on Illutia.
-}
+//Note in bar
+
+new_20-1.gat,54,49,0 script Note 127, {
+ mes "[Note]";
+ mes "\"We refuse service to anyone who:\"";
+ mes "\"-Has a bubblehead\"";
+ mes "\"-Is not properly shaded\"";
+ mes "\"-Can't walk without stopping after every step\"";
+ close;
+ // In case you don't get the joke - it's a parody on Illutia.
+}
diff --git a/npc/new_20-1-woodland-village/nicholas.txt b/npc/new_20-1-woodland-village/nicholas.txt
index 4efa9200..7d21ab0f 100644
--- a/npc/new_20-1-woodland-village/nicholas.txt
+++ b/npc/new_20-1-woodland-village/nicholas.txt
@@ -1,404 +1,404 @@
-//#################################################################################
-//#
-//# Nicholas the Smith.
-//# Participates in iron ore smithery and the following quests:
-//# - Together with Pachua: Iron Shield quest (repeatable)
-//# (10 iron ores, 2 infantry helmets, 20000 GP, leather patch) -> iron shield
-//# - Primary participant in the Setzer quest (monster oil/golden stinger subquests)
-//#
-//# Variables used: @QUEST_Forestbow_state, nibble 3 (setzer quest)
-//# @QUEST_Forestbow_state, nibble 4 (iron shield quest)
-//#
-//#################################################################################
-
-new_20-1.gat,185,55,0 script Nicholas 135,{
-
- set @IRON_ORE, 640;
- set @INFANTRY, 638;
- set @LEATHER_PATCH, 708;
- set @SHORT_SWORD, 536;
- set @MONSTER_OIL, 707;
- set @SETZER, 571;
- set @STEEL_SHIELD, 601;
-
- set @SETZER_XP, 100000;
- set @SHIELD_XP, 20000;
-
- set @SHIELD_INITIAL, 0;
- set @SHIELD_KNOWS_PATCH, 1; // knows that a leather patch is needed
- set @SHIELD_COMPLETED, 2; // shield completed once
-
- set @SETZER_INITIAL, 0;
- set @SETZER_KNOWS_OIL, 1;
- set @SETZER_KNOWS_STINGER, 2;
- set @SETZER_FLAG_MADE_OIL, 4;
- set @SETZER_FLAG_MADE_SETZER, 8;
-
- set @Q_SETZER_MASK, NIBBLE_3_MASK;
- set @Q_SETZER_SHIFT, NIBBLE_3_SHIFT;
-
- set @Q_SHIELD_MASK, NIBBLE_4_MASK;
- set @Q_SHIELD_SHIFT, NIBBLE_4_SHIFT;
-
- set @Q_SETZER_status, (QUEST_Forestbow_state & @Q_SETZER_MASK) >> @Q_SETZER_SHIFT;
- set @Q_SHIELD_status, (QUEST_Forestbow_state & @Q_SHIELD_MASK) >> @Q_SHIELD_SHIFT;
-
- mes "[Nicholas]";
- mes "\"Hello there,";
- mes "I'm an expert blacksmith.";
- mes "If you get me some Iron Ore";
- mes "I could make you a very valuable shield";
- mes "or helmet.\"";
- next;
- menu
- "I have some Iron Ore!", L_Check,
- "Where can I get this Iron Ore?", L_Info,
- "I'm okay, thanks.", L_Pass;
-
-L_Check:
- mes "[Nicholas]";
- mes "\"Let me take at look at how much you have...\"";
- next;
- if(countitem(@IRON_ORE)<5) goto L_NoItem;
- if(countitem(@IRON_ORE)<10) goto L_StageA;
- if(countitem(@IRON_ORE)<15) goto L_StageB;
- goto L_StageC;
-
-L_Info:
- mes "[Nicholas]";
- mes "\"You can find Iron Ore in mines.";
- mes "It is quite hard to come by though.\"";
- close;
-
-L_Pass:
- mes "[Nicholas]";
- mes "\"Oh, okay";
- mes "Come back any time.\"";
- close;
-
-L_StageA:
- mes "[Nicholas]";
- mes "\"That's just enough for me to make you";
- mes "a winged Knight's Helmet.";
- mes "But it'll cost you 10,000GP";
- mes "and 5 lumps of Iron Ore.\"";
- next;
- goto L_main_menu;
-
-L_StageB:
- mes "[Nicholas]";
- mes "\"Ahh, with that much Iron Ore I can";
- mes "make you one of two helmets,";
- mes "for only 10,000GP, or I can";
- mes "make you a shield, for 20,000GP.\"";
- mes "";
- mes "\"What would you like?\"";
- next;
- goto L_main_menu;
-
-L_StageC:
- mes "[Nicholas]";
- mes "\"Excellent, that's enough to make";
- mes "three different types of helmet.";
- mes "My fee is 10,000GP.";
- mes "I can also make a shield, but that";
- mes "that will cost you 20,000 GP.\"";
- mes "";
- mes "\"Which helmet or shield will it be?\"";
- next;
- goto L_main_menu;
-
-L_main_menu:
-
- set @CHOICE_KNIGHT, 1;
- set @CHOICE_CRUSADE, 2;
- set @CHOICE_WARLORD, 3;
- set @CHOICE_SHIELD, 4;
- set @CHOICE_SETZER, 5;
-
- setarray @choice$, "", "", "", "", "";
- set @choices_nr, 0;
- setarray @choice_idx, 0, 0, 0, 0, 0;
-
- if (countitem(@SHORT_SWORD) < 1) goto L_main_menu_post_setzer;
- set @choice$[@choices_nr], "Can you make my short sword better?";
- set @choice_idx[@choices_nr], @CHOICE_SETZER;
- set @choices_nr, 1 + @choices_nr;
-
-L_main_menu_post_setzer:
-
- if (countitem(@IRON_ORE)<5) goto L_no_more_helmets;
- set @choice$[@choices_nr], "Knight's Helmet. (5 Iron Ores)";
- set @choice_idx[@choices_nr], @CHOICE_KNIGHT;
- set @choices_nr, 1 + @choices_nr;
-
- if (countitem(@IRON_ORE)<10) goto L_no_more_helmets;
-
- set @choice$[@choices_nr], "Crusade Helmet. (10 Iron Ores)";
- set @choice_idx[@choices_nr], @CHOICE_CRUSADE;
- set @choices_nr, 1 + @choices_nr;
-
- set @choice$[@choices_nr], "Steel Shield. (10 Iron Ores)";
- set @choice_idx[@choices_nr], @CHOICE_SHIELD;
- set @choices_nr, 1 + @choices_nr;
-
- if (countitem(@IRON_ORE)<15) goto L_no_more_helmets;
-
- set @choice$[@choices_nr], "Warlord Helmet. (15 Iron Ores)";
- set @choice_idx[@choices_nr], @CHOICE_WARLORD;
- set @choices_nr, 1 + @choices_nr;
-L_no_more_helmets:
-
- menu @choice$[0], -,
- @choice$[1], -,
- @choice$[2], -,
- @choice$[3], -,
- @choice$[4], -;
-
- set @menu, @menu - 1;
-
- if (@menu >= @choices_nr)
- close;
-
- set @choice, @choice_idx[@menu];
-
- if (@choice == @CHOICE_KNIGHT) goto L_YesKnight;
- if (@choice == @CHOICE_CRUSADE) goto L_YesCrusade;
- if (@choice == @CHOICE_WARLORD) goto L_YesWarlord;
- if (@choice == @CHOICE_SHIELD) goto L_YesShield;
- if (@choice == @CHOICE_SETZER) goto L_SetzerQuest;
-
- close;
-
-
-L_NoItem:
- mes "[Nicholas]";
- mes "\"It appears you don't have enough Iron Ore for me to work with.";
- mes "Please do come back when you have more though.\"";
- close;
-
-L_ComeBack:
- mes "[Nicholas]";
- mes "\"Come back any time.\"";
- close;
-
-L_NoMoney:
- mes "[Nicholas]";
- mes "\"Oh dear, it seems you don't have enough money.\"";
- close;
-
-L_YesKnight:
- if (zeny < 10000) goto L_NoMoney;
- set zeny, zeny-10000;
- delitem @IRON_ORE,5;
- getitem 637,1;
- goto L_Done;
-
-L_YesCrusade:
- if (zeny < 10000) goto L_NoMoney;
- set zeny, zeny-10000;
- delitem @IRON_ORE,10;
- getitem 639,1;
- goto L_Done;
-
-L_YesWarlord:
- if (zeny < 10000) goto L_NoMoney;
- set zeny, zeny-10000;
- delitem @IRON_ORE,15;
- getitem 636,1;
- goto L_Done;
-
-L_YesShield:
- mes "[Nicholas]";
- mes "Nicholas examines your iron ore.";
- mes "\"No, this iron is too brittle; for something as large as a shield I need to mix in softer iron. Can I see if you have anything suitable?\"";
- next;
-
- menu "Sure, have a look!", -,
- "No.", L_Pass;
-
- if (countitem(@INFANTRY) == 1) goto L_MoreInfantry;
- if (countitem(@INFANTRY) == 0) goto L_NoInfantry;
-
- mes "[Nicholas]";
- mes "Nicholas pulls out two of your infantry helmets.";
- mes "\"I can use those... yes, that should work. Now all I need is a leather patch for the handle, and 20,000 GP.\"";
-
- if (@Q_SHIELD_status < @SHIELD_KNOWS_PATCH)
- set @Q_SHIELD_status, @SHIELD_KNOWS_PATCH;
- callsub L_Update_Var;
-
- next;
-
- menu "Here you are.", -,
- "Where can I get a leather patch?", L_WhereLeather,
- "No way.", L_Pass;
-
- if (zeny < 20000) goto L_ShieldNoZeny;
- if (countitem(@INFANTRY) < 2) goto L_ShieldNoInfantry;
- if (countitem(@IRON_ORE) < 10) goto L_ShieldNoOre;
- if (countitem(@LEATHER_PATCH) < 1) goto L_ShieldNoLeatherPatch;
-
- mes "[Nicholas]";
- mes "\"Yes, it looks as if you have all that is needed!\"";
- mes "You watch Nicholas melt the ore and helmets and form a shield out of the resulting iron. He then cuts your leather patch apart and adds it to the handles.";
- mes "\"Here is your shield!\"";
-
- delitem @INFANTRY, 1;
- delitem @INFANTRY, 1;
- delitem @LEATHER_PATCH, 1;
- delitem @IRON_ORE, 10;
- set zeny, zeny - 20000;
-
- if (@Q_SHIELD_status < @SHIELD_COMPLETED)
- getexp @SHIELD_XP, 0;
- if (@Q_SHIELD_status < @SHIELD_COMPLETED)
- mes "[" + @SHIELD_XP + " experience points]";
-
- set @Q_SHIELD_status, @SHIELD_COMPLETED; // get XP only once
- callsub L_Update_Var;
-
- getitem @STEEL_SHIELD, 1;
- next;
- close;
-
-L_ShieldNoZeny:
- mes "[Nicholas]";
- mes "\"I am sorry, but I must ask that you pay 20,000 GP; this is qualty work.\"";
- next;
- close;
-
-L_ShieldNoInfantry:
- mes "[Nicholas]";
- mes "\"Now this is strange... I could have sworn that you had two infantry helmets right here. Well, come back if you have some more!\"";
- next;
- close;
-
-L_ShieldNoOre:
- mes "[Nicholas]";
- mes "\"How odd... didn't I put your iron ore on the table right here? Well, I will need it back to make the shield.\"";
- next;
- close;
-
-L_ShieldNoLeatherPatch:
- mes "[Nicholas]";
- mes "\"You don't have a suitable leather patch. I'm sorry, but a shield without one would chafe terribly.\"";
- next;
- close;
-
-L_MoreInfantry:
- mes "[Nicholas]";
- mes "Nicholas takes your infantry helmet and examines it.";
- mes "\"Yes, this is perfect! If you can bring me another one of those, I can make your shield.\"";
- next;
- close;
-
-L_NoInfantry:
- mes "[Nicholas]";
- mes "Nicholas shakes his head.";
- mes "\"No, none of these items are suitable. Try looking for somewhat large metal things.\"";
- next;
- close;
-
-L_WhereLeather:
- mes "[Nicholas]";
- mes "\"Hmm. You should look for someone who can work with some kind of leather. Rumor has it that there is someone in the eastern desert who can, but I haven't been there.\"";
- next;
- close;
-
-
-L_SetzerQuest:
- mes "[Nicholas]";
- if (@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER)
- mes "\"Another one? Sure, why not.\"";
- mes "Nicholas examines your short sword, then nods.";
- mes "\"This is good quality. I can make something special out of it, for five chunks of iron ore and 50,000 GP-- but I will also need a potion of monster oil.\"";
- if (@Q_SETZER_status < @SETZER_KNOWS_OIL)
- set @Q_SETZER_status, @SETZER_KNOWS_OIL;
- callsub L_Update_Var;
- next;
-
- menu "Here you are.", -,
- "Monster oil? What's that?", L_ExplainMonsterOil,
- "HOW much? Never mind.", L_Pass;
-
- if (zeny < 50000) goto L_SetzerNoZeny;
- if (countitem(@IRON_ORE) < 5) goto L_SetzerNoOre;
- if (countitem(@MONSTER_OIL) < 1) goto L_SetzerNoMonsterOil;
- if (countitem(@SHORT_SWORD) < 1) goto L_SetzerNoSword;
-
- mes "[Nicholas]";
- mes "Nicholas takes the items, heats up your sword and pounds it with a heavy hammer. Before your eyes it turns thinner and flatter. Finally he pours the monster oil over it, heats it up again and douses it in water.";
-
- set zeny, zeny - 50000;
- delitem @IRON_ORE, 5;
- delitem @MONSTER_OIL, 1;
- delitem @SHORT_SWORD, 1;
-
- getitem @SETZER, 1;
- if (!(@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER))
- mes "[" + @SETZER_XP + " experience points]";
- if (!(@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER))
- getexp @SETZER_XP, 1;
- set @Q_SETZER_status, @Q_SETZER_status | @SETZER_FLAG_MADE_SETZER;
- callsub L_Update_Var;
- next;
-
- mes "[Nicholas]";
- mes "Nicholas hands you the completed sword. It feels strangely light in your hands.";
- mes "\"I made it lighter and faster, it should also cut a little better now. This kind of sword is called a Setzer, after a famous gambler who invented it as a weapon in between a knife and a sword.\"";
- next;
-
- mes "[Nicholas]";
- mes "\"I'm quite happy with this one. Be careful around the edge, though, it is quite sharp.\"";
- next;
-
- close;
-
-L_ExplainMonsterOil:
- mes "[Nicholas]";
- mes "\"Monster oil is a special oil that can be used to harden thin sheets of metal, if used properly. Unfortunately it is very hard to get. Perhaps one of our local alchemists can help you with it?\"";
- next;
- close;
-
-L_SetzerNoZeny:
- mes "[Nicholas]";
- mes "\"I am sorry, but I must ask that you pay 50,000 GP; the kind of weapon I am thinking of is not easy to make.\"";
- next;
- close;
-
-L_SetzerNoOre:
- mes "[Nicholas]";
- mes "\"Without five chunks of iron ore I can't improve your sword.\"";
- next;
- close;
-
-L_SetzerNoMonsterOil:
- mes "[Nicholas]";
- mes "\"I know that monster oil is hard to come by, but I can't do much without it. Ask an alchemist if you need help making it.\"";
- next;
- close;
-
-L_SetzerNoSword:
- mes "[Nicholas]";
- mes "\"I will need your old short sword as a basis. Please bring it to me first.\"";
- next;
- close;
-
-L_end:
- close;
-
-L_Done:
- mes "[Nicholas]";
- mes "\"Here you go!\"";
- mes "";
- mes "\"Come back any time.\"";
- close;
-
-L_Update_Var:
- set QUEST_Forestbow_state,
- (QUEST_Forestbow_state & ~(@Q_SHIELD_MASK | Q_SETZER_MASK)
- | (@Q_SHIELD_status << @Q_SHIELD_SHIFT)
- | (@Q_SETZER_status << @Q_SETZER_SHIFT));
- return;
-}
+//#################################################################################
+//#
+//# Nicholas the Smith.
+//# Participates in iron ore smithery and the following quests:
+//# - Together with Pachua: Iron Shield quest (repeatable)
+//# (10 iron ores, 2 infantry helmets, 20000 GP, leather patch) -> iron shield
+//# - Primary participant in the Setzer quest (monster oil/golden stinger subquests)
+//#
+//# Variables used: @QUEST_Forestbow_state, nibble 3 (setzer quest)
+//# @QUEST_Forestbow_state, nibble 4 (iron shield quest)
+//#
+//#################################################################################
+
+new_20-1.gat,185,55,0 script Nicholas 135,{
+
+ set @IRON_ORE, 640;
+ set @INFANTRY, 638;
+ set @LEATHER_PATCH, 708;
+ set @SHORT_SWORD, 536;
+ set @MONSTER_OIL, 707;
+ set @SETZER, 571;
+ set @STEEL_SHIELD, 601;
+
+ set @SETZER_XP, 100000;
+ set @SHIELD_XP, 20000;
+
+ set @SHIELD_INITIAL, 0;
+ set @SHIELD_KNOWS_PATCH, 1; // knows that a leather patch is needed
+ set @SHIELD_COMPLETED, 2; // shield completed once
+
+ set @SETZER_INITIAL, 0;
+ set @SETZER_KNOWS_OIL, 1;
+ set @SETZER_KNOWS_STINGER, 2;
+ set @SETZER_FLAG_MADE_OIL, 4;
+ set @SETZER_FLAG_MADE_SETZER, 8;
+
+ set @Q_SETZER_MASK, NIBBLE_3_MASK;
+ set @Q_SETZER_SHIFT, NIBBLE_3_SHIFT;
+
+ set @Q_SHIELD_MASK, NIBBLE_4_MASK;
+ set @Q_SHIELD_SHIFT, NIBBLE_4_SHIFT;
+
+ set @Q_SETZER_status, (QUEST_Forestbow_state & @Q_SETZER_MASK) >> @Q_SETZER_SHIFT;
+ set @Q_SHIELD_status, (QUEST_Forestbow_state & @Q_SHIELD_MASK) >> @Q_SHIELD_SHIFT;
+
+ mes "[Nicholas]";
+ mes "\"Hello there,";
+ mes "I'm an expert blacksmith.";
+ mes "If you get me some Iron Ore";
+ mes "I could make you a very valuable shield";
+ mes "or helmet.\"";
+ next;
+ menu
+ "I have some Iron Ore!", L_Check,
+ "Where can I get this Iron Ore?", L_Info,
+ "I'm okay, thanks.", L_Pass;
+
+L_Check:
+ mes "[Nicholas]";
+ mes "\"Let me take at look at how much you have...\"";
+ next;
+ if(countitem(@IRON_ORE)<5) goto L_NoItem;
+ if(countitem(@IRON_ORE)<10) goto L_StageA;
+ if(countitem(@IRON_ORE)<15) goto L_StageB;
+ goto L_StageC;
+
+L_Info:
+ mes "[Nicholas]";
+ mes "\"You can find Iron Ore in mines.";
+ mes "It is quite hard to come by though.\"";
+ close;
+
+L_Pass:
+ mes "[Nicholas]";
+ mes "\"Oh, okay";
+ mes "Come back any time.\"";
+ close;
+
+L_StageA:
+ mes "[Nicholas]";
+ mes "\"That's just enough for me to make you";
+ mes "a winged Knight's Helmet.";
+ mes "But it'll cost you 10,000GP";
+ mes "and 5 lumps of Iron Ore.\"";
+ next;
+ goto L_main_menu;
+
+L_StageB:
+ mes "[Nicholas]";
+ mes "\"Ahh, with that much Iron Ore I can";
+ mes "make you one of two helmets,";
+ mes "for only 10,000GP, or I can";
+ mes "make you a shield, for 20,000GP.\"";
+ mes "";
+ mes "\"What would you like?\"";
+ next;
+ goto L_main_menu;
+
+L_StageC:
+ mes "[Nicholas]";
+ mes "\"Excellent, that's enough to make";
+ mes "three different types of helmet.";
+ mes "My fee is 10,000GP.";
+ mes "I can also make a shield, but that";
+ mes "that will cost you 20,000 GP.\"";
+ mes "";
+ mes "\"Which helmet or shield will it be?\"";
+ next;
+ goto L_main_menu;
+
+L_main_menu:
+
+ set @CHOICE_KNIGHT, 1;
+ set @CHOICE_CRUSADE, 2;
+ set @CHOICE_WARLORD, 3;
+ set @CHOICE_SHIELD, 4;
+ set @CHOICE_SETZER, 5;
+
+ setarray @choice$, "", "", "", "", "";
+ set @choices_nr, 0;
+ setarray @choice_idx, 0, 0, 0, 0, 0;
+
+ if (countitem(@SHORT_SWORD) < 1) goto L_main_menu_post_setzer;
+ set @choice$[@choices_nr], "Can you make my short sword better?";
+ set @choice_idx[@choices_nr], @CHOICE_SETZER;
+ set @choices_nr, 1 + @choices_nr;
+
+L_main_menu_post_setzer:
+
+ if (countitem(@IRON_ORE)<5) goto L_no_more_helmets;
+ set @choice$[@choices_nr], "Knight's Helmet. (5 Iron Ores)";
+ set @choice_idx[@choices_nr], @CHOICE_KNIGHT;
+ set @choices_nr, 1 + @choices_nr;
+
+ if (countitem(@IRON_ORE)<10) goto L_no_more_helmets;
+
+ set @choice$[@choices_nr], "Crusade Helmet. (10 Iron Ores)";
+ set @choice_idx[@choices_nr], @CHOICE_CRUSADE;
+ set @choices_nr, 1 + @choices_nr;
+
+ set @choice$[@choices_nr], "Steel Shield. (10 Iron Ores)";
+ set @choice_idx[@choices_nr], @CHOICE_SHIELD;
+ set @choices_nr, 1 + @choices_nr;
+
+ if (countitem(@IRON_ORE)<15) goto L_no_more_helmets;
+
+ set @choice$[@choices_nr], "Warlord Helmet. (15 Iron Ores)";
+ set @choice_idx[@choices_nr], @CHOICE_WARLORD;
+ set @choices_nr, 1 + @choices_nr;
+L_no_more_helmets:
+
+ menu @choice$[0], -,
+ @choice$[1], -,
+ @choice$[2], -,
+ @choice$[3], -,
+ @choice$[4], -;
+
+ set @menu, @menu - 1;
+
+ if (@menu >= @choices_nr)
+ close;
+
+ set @choice, @choice_idx[@menu];
+
+ if (@choice == @CHOICE_KNIGHT) goto L_YesKnight;
+ if (@choice == @CHOICE_CRUSADE) goto L_YesCrusade;
+ if (@choice == @CHOICE_WARLORD) goto L_YesWarlord;
+ if (@choice == @CHOICE_SHIELD) goto L_YesShield;
+ if (@choice == @CHOICE_SETZER) goto L_SetzerQuest;
+
+ close;
+
+
+L_NoItem:
+ mes "[Nicholas]";
+ mes "\"It appears you don't have enough Iron Ore for me to work with.";
+ mes "Please do come back when you have more though.\"";
+ close;
+
+L_ComeBack:
+ mes "[Nicholas]";
+ mes "\"Come back any time.\"";
+ close;
+
+L_NoMoney:
+ mes "[Nicholas]";
+ mes "\"Oh dear, it seems you don't have enough money.\"";
+ close;
+
+L_YesKnight:
+ if (zeny < 10000) goto L_NoMoney;
+ set zeny, zeny-10000;
+ delitem @IRON_ORE,5;
+ getitem 637,1;
+ goto L_Done;
+
+L_YesCrusade:
+ if (zeny < 10000) goto L_NoMoney;
+ set zeny, zeny-10000;
+ delitem @IRON_ORE,10;
+ getitem 639,1;
+ goto L_Done;
+
+L_YesWarlord:
+ if (zeny < 10000) goto L_NoMoney;
+ set zeny, zeny-10000;
+ delitem @IRON_ORE,15;
+ getitem 636,1;
+ goto L_Done;
+
+L_YesShield:
+ mes "[Nicholas]";
+ mes "Nicholas examines your iron ore.";
+ mes "\"No, this iron is too brittle; for something as large as a shield I need to mix in softer iron. Can I see if you have anything suitable?\"";
+ next;
+
+ menu "Sure, have a look!", -,
+ "No.", L_Pass;
+
+ if (countitem(@INFANTRY) == 1) goto L_MoreInfantry;
+ if (countitem(@INFANTRY) == 0) goto L_NoInfantry;
+
+ mes "[Nicholas]";
+ mes "Nicholas pulls out two of your infantry helmets.";
+ mes "\"I can use those... yes, that should work. Now all I need is a leather patch for the handle, and 20,000 GP.\"";
+
+ if (@Q_SHIELD_status < @SHIELD_KNOWS_PATCH)
+ set @Q_SHIELD_status, @SHIELD_KNOWS_PATCH;
+ callsub L_Update_Var;
+
+ next;
+
+ menu "Here you are.", -,
+ "Where can I get a leather patch?", L_WhereLeather,
+ "No way.", L_Pass;
+
+ if (zeny < 20000) goto L_ShieldNoZeny;
+ if (countitem(@INFANTRY) < 2) goto L_ShieldNoInfantry;
+ if (countitem(@IRON_ORE) < 10) goto L_ShieldNoOre;
+ if (countitem(@LEATHER_PATCH) < 1) goto L_ShieldNoLeatherPatch;
+
+ mes "[Nicholas]";
+ mes "\"Yes, it looks as if you have all that is needed!\"";
+ mes "You watch Nicholas melt the ore and helmets and form a shield out of the resulting iron. He then cuts your leather patch apart and adds it to the handles.";
+ mes "\"Here is your shield!\"";
+
+ delitem @INFANTRY, 1;
+ delitem @INFANTRY, 1;
+ delitem @LEATHER_PATCH, 1;
+ delitem @IRON_ORE, 10;
+ set zeny, zeny - 20000;
+
+ if (@Q_SHIELD_status < @SHIELD_COMPLETED)
+ getexp @SHIELD_XP, 0;
+ if (@Q_SHIELD_status < @SHIELD_COMPLETED)
+ mes "[" + @SHIELD_XP + " experience points]";
+
+ set @Q_SHIELD_status, @SHIELD_COMPLETED; // get XP only once
+ callsub L_Update_Var;
+
+ getitem @STEEL_SHIELD, 1;
+ next;
+ close;
+
+L_ShieldNoZeny:
+ mes "[Nicholas]";
+ mes "\"I am sorry, but I must ask that you pay 20,000 GP; this is qualty work.\"";
+ next;
+ close;
+
+L_ShieldNoInfantry:
+ mes "[Nicholas]";
+ mes "\"Now this is strange... I could have sworn that you had two infantry helmets right here. Well, come back if you have some more!\"";
+ next;
+ close;
+
+L_ShieldNoOre:
+ mes "[Nicholas]";
+ mes "\"How odd... didn't I put your iron ore on the table right here? Well, I will need it back to make the shield.\"";
+ next;
+ close;
+
+L_ShieldNoLeatherPatch:
+ mes "[Nicholas]";
+ mes "\"You don't have a suitable leather patch. I'm sorry, but a shield without one would chafe terribly.\"";
+ next;
+ close;
+
+L_MoreInfantry:
+ mes "[Nicholas]";
+ mes "Nicholas takes your infantry helmet and examines it.";
+ mes "\"Yes, this is perfect! If you can bring me another one of those, I can make your shield.\"";
+ next;
+ close;
+
+L_NoInfantry:
+ mes "[Nicholas]";
+ mes "Nicholas shakes his head.";
+ mes "\"No, none of these items are suitable. Try looking for somewhat large metal things.\"";
+ next;
+ close;
+
+L_WhereLeather:
+ mes "[Nicholas]";
+ mes "\"Hmm. You should look for someone who can work with some kind of leather. Rumor has it that there is someone in the eastern desert who can, but I haven't been there.\"";
+ next;
+ close;
+
+
+L_SetzerQuest:
+ mes "[Nicholas]";
+ if (@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER)
+ mes "\"Another one? Sure, why not.\"";
+ mes "Nicholas examines your short sword, then nods.";
+ mes "\"This is good quality. I can make something special out of it, for five chunks of iron ore and 50,000 GP-- but I will also need a potion of monster oil.\"";
+ if (@Q_SETZER_status < @SETZER_KNOWS_OIL)
+ set @Q_SETZER_status, @SETZER_KNOWS_OIL;
+ callsub L_Update_Var;
+ next;
+
+ menu "Here you are.", -,
+ "Monster oil? What's that?", L_ExplainMonsterOil,
+ "HOW much? Never mind.", L_Pass;
+
+ if (zeny < 50000) goto L_SetzerNoZeny;
+ if (countitem(@IRON_ORE) < 5) goto L_SetzerNoOre;
+ if (countitem(@MONSTER_OIL) < 1) goto L_SetzerNoMonsterOil;
+ if (countitem(@SHORT_SWORD) < 1) goto L_SetzerNoSword;
+
+ mes "[Nicholas]";
+ mes "Nicholas takes the items, heats up your sword and pounds it with a heavy hammer. Before your eyes it turns thinner and flatter. Finally he pours the monster oil over it, heats it up again and douses it in water.";
+
+ set zeny, zeny - 50000;
+ delitem @IRON_ORE, 5;
+ delitem @MONSTER_OIL, 1;
+ delitem @SHORT_SWORD, 1;
+
+ getitem @SETZER, 1;
+ if (!(@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER))
+ mes "[" + @SETZER_XP + " experience points]";
+ if (!(@Q_SETZER_status & @SETZER_FLAG_MADE_SETZER))
+ getexp @SETZER_XP, 1;
+ set @Q_SETZER_status, @Q_SETZER_status | @SETZER_FLAG_MADE_SETZER;
+ callsub L_Update_Var;
+ next;
+
+ mes "[Nicholas]";
+ mes "Nicholas hands you the completed sword. It feels strangely light in your hands.";
+ mes "\"I made it lighter and faster, it should also cut a little better now. This kind of sword is called a Setzer, after a famous gambler who invented it as a weapon in between a knife and a sword.\"";
+ next;
+
+ mes "[Nicholas]";
+ mes "\"I'm quite happy with this one. Be careful around the edge, though, it is quite sharp.\"";
+ next;
+
+ close;
+
+L_ExplainMonsterOil:
+ mes "[Nicholas]";
+ mes "\"Monster oil is a special oil that can be used to harden thin sheets of metal, if used properly. Unfortunately it is very hard to get. Perhaps one of our local alchemists can help you with it?\"";
+ next;
+ close;
+
+L_SetzerNoZeny:
+ mes "[Nicholas]";
+ mes "\"I am sorry, but I must ask that you pay 50,000 GP; the kind of weapon I am thinking of is not easy to make.\"";
+ next;
+ close;
+
+L_SetzerNoOre:
+ mes "[Nicholas]";
+ mes "\"Without five chunks of iron ore I can't improve your sword.\"";
+ next;
+ close;
+
+L_SetzerNoMonsterOil:
+ mes "[Nicholas]";
+ mes "\"I know that monster oil is hard to come by, but I can't do much without it. Ask an alchemist if you need help making it.\"";
+ next;
+ close;
+
+L_SetzerNoSword:
+ mes "[Nicholas]";
+ mes "\"I will need your old short sword as a basis. Please bring it to me first.\"";
+ next;
+ close;
+
+L_end:
+ close;
+
+L_Done:
+ mes "[Nicholas]";
+ mes "\"Here you go!\"";
+ mes "";
+ mes "\"Come back any time.\"";
+ close;
+
+L_Update_Var:
+ set QUEST_Forestbow_state,
+ (QUEST_Forestbow_state & ~(@Q_SHIELD_MASK | Q_SETZER_MASK)
+ | (@Q_SHIELD_status << @Q_SHIELD_SHIFT)
+ | (@Q_SETZER_status << @Q_SETZER_SHIFT));
+ return;
+}
diff --git a/npc/new_20-1-woodland-village/richard.txt b/npc/new_20-1-woodland-village/richard.txt
index a3f47378..17336ee7 100644
--- a/npc/new_20-1-woodland-village/richard.txt
+++ b/npc/new_20-1-woodland-village/richard.txt
@@ -1,6 +1,6 @@
-//
-
-new_20-1.gat,20, 99,0 script Richard 161,{
- set @npcName$, "Richard";
- callfunc "Banker";
-}
+//
+
+new_20-1.gat,20, 99,0 script Richard 161,{
+ set @npcName$, "Richard";
+ callfunc "Banker";
+}
diff --git a/npc/new_20-1-woodland-village/selim.txt b/npc/new_20-1-woodland-village/selim.txt
index 2f5981ea..952bac9e 100644
--- a/npc/new_20-1-woodland-village/selim.txt
+++ b/npc/new_20-1-woodland-village/selim.txt
@@ -1,139 +1,139 @@
-//#################################################################################
-//# #
-//# This script file contains the script for the cloth dyer. It has been #
-//# revised to require dye items; collaborating NPCs are Selim and Angus. #
-//# #
-//#################################################################################
-
-new_20-1.gat,32,104,0 script Selim 142,{
- setarray @all_colours$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green";
- setarray @all_colours_cap$, "Red", "Green", "Dark Blue", "Yellow", "Light Blue", "Pink", "Black", "Orange", "Purple", "Dark Green";
-
- mes "[Selim]";
- mes "\"What can I dye for you today?\"";
- set QUEST_clothdyer_state, 3;
- next;
-
-L_clothes_choice:
- set @pronoun$, "it";
- set @is_verb$, "is";
- menu
- "Cotton shirt", L_cottonshirt,
- "V-Neck sweater", L_vneck,
- "Turtleneck sweater", L_tneck,
- "Cotton shorts", L_shorts,
- "Cotton skirt", L_skirt,
- "Tank top ", L_tanktop,
- "Short tank top", L_tanktop_short,
- "Silk robe", L_robe,
- "I'm fine for now, thanks.", -;
- close;
-
-L_cottonshirt:
- set @del, 1202;
- set @new, 2050;
- set @name$, "cotton shirt";
- goto L_picked_item;
-
-L_vneck:
- set @del, 624;
- set @new, 2060;
- set @name$, "V-neck sweater";
- goto L_picked_item;
-
-L_tneck:
- set @del, 564;
- set @new, 2070;
- set @name$, "turtleneck sweater";
- goto L_picked_item;
-
-L_shorts:
- set @del, 586;
- set @new, 2110;
- set @name$, "cotton shorts";
- set @pronoun$, "them";
- set @is_verb$, "are";
- goto L_picked_item;
-
-L_skirt:
- set @del, 632;
- set @new, 2100;
- set @name$, "cotton skirt";
- goto L_picked_item;
-
-L_tanktop:
- set @del, 688;
- set @new, 2090;
- set @name$, "tanktop";
- goto L_picked_item;
-
-L_tanktop_short:
- set @del, 689;
- set @new, 2120;
- set @name$, "short tanktop";
- goto L_picked_item;
-
-L_robe:
- set @del, 720;
- set @new, 2080;
- set @name$, "silk robe";
- goto L_picked_item;
-
-L_picked_item:
- if (countitem(@del) == 0) goto L_havenone;
-L_colour:
- mes "[Selim]";
- mes "\"Excellent. Now, what color do you want?\"";
- next;
- menu
- @all_colours_cap$[0], -,
- @all_colours_cap$[1], -,
- @all_colours_cap$[2], -,
- @all_colours_cap$[3], -,
- @all_colours_cap$[4], -,
- @all_colours_cap$[5], -,
- @all_colours_cap$[6], -,
- @all_colours_cap$[7], -,
- @all_colours_cap$[8], -,
- @all_colours_cap$[9], -;
- set @colour, @menu - 1;
- set @vial, 690 + @colour;
- if (countitem(@vial) == 0) goto L_no_dye;
- goto L_finish;
-
-L_no_dye:
- mes "[Selim]";
- mes "\"I would love to dye your " + @name$ + " for you, but you will have to bring me some " + @all_colours$[@colour] + " dye first.\"";
- next;
- menu
- "Sorry, I meant a different color.", L_colour,
- "I wanted to dye a different item anyway.", L_clothes_choice,
- "What do you mean, `bring you dye'?", L_explain_dye,
- "Where would I get dye?", L_explain_dye,
- "Never mind.", -;
- close;
-
-L_explain_dye:
- if (QUEST_clothdyer_knowsdye < 1) set QUEST_clothdyer_knowsdye, 1;
- mes "[Selim]";
- mes "\"Well, dye is very expensive, and since I don't charge adventurers anything, I can't give you any for free.";
- mes "But most alchemists can make dye; perhaps you can find one around here.\"";
- next;
- close;
-
-L_finish:
- if (countitem(@del) == 0) goto L_havenone;
- delitem @vial, 1;
- delitem @del, 1;
- getitem @new + @colour, 1;
- mes "[Selim]";
- mes "\"Here " + @is_verb$ + " your " + @all_colours$[@colour] + " " + @name$ + "! Please let " + @pronoun$ + " dry for a minute before you put " + @pronoun$ + " on.\"";
- close;
-
-L_havenone:
- mes "[Selim]";
- mes "\"You don't have any uncolored " + @name$ + "? That's unfortunate.";
- mes "Would you like to dye something else?\"";
- next;
- goto L_clothes_choice;
-}
+//#################################################################################
+//# #
+//# This script file contains the script for the cloth dyer. It has been #
+//# revised to require dye items; collaborating NPCs are Selim and Angus. #
+//# #
+//#################################################################################
+
+new_20-1.gat,32,104,0 script Selim 142,{
+ setarray @all_colours$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green";
+ setarray @all_colours_cap$, "Red", "Green", "Dark Blue", "Yellow", "Light Blue", "Pink", "Black", "Orange", "Purple", "Dark Green";
+
+ mes "[Selim]";
+ mes "\"What can I dye for you today?\"";
+ set QUEST_clothdyer_state, 3;
+ next;
+
+L_clothes_choice:
+ set @pronoun$, "it";
+ set @is_verb$, "is";
+ menu
+ "Cotton shirt", L_cottonshirt,
+ "V-Neck sweater", L_vneck,
+ "Turtleneck sweater", L_tneck,
+ "Cotton shorts", L_shorts,
+ "Cotton skirt", L_skirt,
+ "Tank top ", L_tanktop,
+ "Short tank top", L_tanktop_short,
+ "Silk robe", L_robe,
+ "I'm fine for now, thanks.", -;
+ close;
+
+L_cottonshirt:
+ set @del, 1202;
+ set @new, 2050;
+ set @name$, "cotton shirt";
+ goto L_picked_item;
+
+L_vneck:
+ set @del, 624;
+ set @new, 2060;
+ set @name$, "V-neck sweater";
+ goto L_picked_item;
+
+L_tneck:
+ set @del, 564;
+ set @new, 2070;
+ set @name$, "turtleneck sweater";
+ goto L_picked_item;
+
+L_shorts:
+ set @del, 586;
+ set @new, 2110;
+ set @name$, "cotton shorts";
+ set @pronoun$, "them";
+ set @is_verb$, "are";
+ goto L_picked_item;
+
+L_skirt:
+ set @del, 632;
+ set @new, 2100;
+ set @name$, "cotton skirt";
+ goto L_picked_item;
+
+L_tanktop:
+ set @del, 688;
+ set @new, 2090;
+ set @name$, "tanktop";
+ goto L_picked_item;
+
+L_tanktop_short:
+ set @del, 689;
+ set @new, 2120;
+ set @name$, "short tanktop";
+ goto L_picked_item;
+
+L_robe:
+ set @del, 720;
+ set @new, 2080;
+ set @name$, "silk robe";
+ goto L_picked_item;
+
+L_picked_item:
+ if (countitem(@del) == 0) goto L_havenone;
+L_colour:
+ mes "[Selim]";
+ mes "\"Excellent. Now, what color do you want?\"";
+ next;
+ menu
+ @all_colours_cap$[0], -,
+ @all_colours_cap$[1], -,
+ @all_colours_cap$[2], -,
+ @all_colours_cap$[3], -,
+ @all_colours_cap$[4], -,
+ @all_colours_cap$[5], -,
+ @all_colours_cap$[6], -,
+ @all_colours_cap$[7], -,
+ @all_colours_cap$[8], -,
+ @all_colours_cap$[9], -;
+ set @colour, @menu - 1;
+ set @vial, 690 + @colour;
+ if (countitem(@vial) == 0) goto L_no_dye;
+ goto L_finish;
+
+L_no_dye:
+ mes "[Selim]";
+ mes "\"I would love to dye your " + @name$ + " for you, but you will have to bring me some " + @all_colours$[@colour] + " dye first.\"";
+ next;
+ menu
+ "Sorry, I meant a different color.", L_colour,
+ "I wanted to dye a different item anyway.", L_clothes_choice,
+ "What do you mean, `bring you dye'?", L_explain_dye,
+ "Where would I get dye?", L_explain_dye,
+ "Never mind.", -;
+ close;
+
+L_explain_dye:
+ if (QUEST_clothdyer_knowsdye < 1) set QUEST_clothdyer_knowsdye, 1;
+ mes "[Selim]";
+ mes "\"Well, dye is very expensive, and since I don't charge adventurers anything, I can't give you any for free.";
+ mes "But most alchemists can make dye; perhaps you can find one around here.\"";
+ next;
+ close;
+
+L_finish:
+ if (countitem(@del) == 0) goto L_havenone;
+ delitem @vial, 1;
+ delitem @del, 1;
+ getitem @new + @colour, 1;
+ mes "[Selim]";
+ mes "\"Here " + @is_verb$ + " your " + @all_colours$[@colour] + " " + @name$ + "! Please let " + @pronoun$ + " dry for a minute before you put " + @pronoun$ + " on.\"";
+ close;
+
+L_havenone:
+ mes "[Selim]";
+ mes "\"You don't have any uncolored " + @name$ + "? That's unfortunate.";
+ mes "Would you like to dye something else?\"";
+ next;
+ goto L_clothes_choice;
+}
diff --git a/npc/new_20-1-woodland-village/shops.txt b/npc/new_20-1-woodland-village/shops.txt
index 6094eb20..d965cf68 100644
--- a/npc/new_20-1-woodland-village/shops.txt
+++ b/npc/new_20-1-woodland-village/shops.txt
@@ -1,34 +1,34 @@
-//#################################################################################
-//# #
-//# This script file contains all shops and other NPCs with important functions. #
-//# #
-//#################################################################################
-
-// Bartender
-// sells beer, cake and steak
-new_20-1.gat,65,49,0 shop Barkeeper 112,539:-1,513:-1,676:-1
-
-// Receptionist
-// Offers the player to rest at the inn for 100gp
-new_20-1.gat,50,48,0 script Receptionist 108,{
- set @npcName$, "Receptionist";
- set @cost, 100;
- callfunc "Inn";
-}
-
-// Archer Shop
-// sells bow, short bow, arrows and iron arrows
-new_20-1.gat,97,24,0 shop Apprentice 120,1199:3,529:5,1200:1000,530:3000
-
-// Potion Shop
-// sells cactus drink, cactus potion, iron potion and concentration potion
-new_20-1.gat,121,26,0 shop Witch 103,501:50,502:70,567:500,568:500
-
-// Blacksmith
-// Sells all knives, chainmail armor, light platemail
-new_20-1.gat,183,57,0 shop Blacksmith 135,625:20000,626:50000,658:100000,1201:25,522:100,521:1000
-
-
-// General Store
-// Sells various things, many not sold elsewhere
-new_20-1.gat,32,99,0 shop General Store 112,527:-1,541:-1,1202:-1,586:-1,528:-1,656:-1
+//#################################################################################
+//# #
+//# This script file contains all shops and other NPCs with important functions. #
+//# #
+//#################################################################################
+
+// Bartender
+// sells beer, cake and steak
+new_20-1.gat,65,49,0 shop Barkeeper 112,539:-1,513:-1,676:-1
+
+// Receptionist
+// Offers the player to rest at the inn for 100gp
+new_20-1.gat,50,48,0 script Receptionist 108,{
+ set @npcName$, "Receptionist";
+ set @cost, 100;
+ callfunc "Inn";
+}
+
+// Archer Shop
+// sells bow, short bow, arrows and iron arrows
+new_20-1.gat,97,24,0 shop Apprentice 120,1199:3,529:5,1200:1000,530:3000
+
+// Potion Shop
+// sells cactus drink, cactus potion, iron potion and concentration potion
+new_20-1.gat,121,26,0 shop Witch 103,501:50,502:70,567:500,568:500
+
+// Blacksmith
+// Sells all knives, chainmail armor, light platemail
+new_20-1.gat,183,57,0 shop Blacksmith 135,625:20000,626:50000,658:100000,1201:25,522:100,521:1000
+
+
+// General Store
+// Sells various things, many not sold elsewhere
+new_20-1.gat,32,99,0 shop General Store 112,527:-1,541:-1,1202:-1,586:-1,528:-1,656:-1
diff --git a/npc/new_20-1-woodland-village/waitress.txt b/npc/new_20-1-woodland-village/waitress.txt
index d5e1ad20..6cf9791b 100644
--- a/npc/new_20-1-woodland-village/waitress.txt
+++ b/npc/new_20-1-woodland-village/waitress.txt
@@ -1,51 +1,51 @@
-// Waitress
-
-new_20-1.gat,60,52,0 script Melinda 140,{
- if (zeny < 180) goto L_NoMoney;
- mes "[Melinda]";
- mes "\"Hi sweety! Want a fresh beer for 170gp?\"";
- next;
-
- menu
- "\"Sure! [don't tip]\"", -,
- "Sure! [tip 5gp]", L_5Tip,
- "Sure! [tip 10gp]", L_10Tip,
- "Nah, maybe later.", L_No;
-
- mes "[Melinda]";
- mes "Pff... nickel nurser!";
- next;
- set zeny,zeny-170;
- getitem 539,1;
- close;
-
-L_5Tip:
- mes "[Melinda]";
- mes "\"Here you go, sweethearth!\"";
- next;
- set zeny,zeny-175;
- getitem 539,1;
- close;
-
-L_10Tip:
- mes "[Melinda]";
- mes "\"Thank you, sweety! Want me to hear a secret?\"";
- next;
- set zeny,zeny-180;
- getitem 539,1;
- menu
- "What's it, darling?", -,
- "Nah, I don't feel like chatting.", L_No;
- mes "[Melinda]";
- mes "\"The bowmaking master in this village used to construct exceptional bows. When you want one you should go and ask him.\"";
- close;
-
-L_No:
- mes "[Melinda]";
- mes "\"Just call me when you've changed your mind.\"";
- close;
-
-L_NoMoney:
- mes "\"You look broke. Don't think that you can dine and dash here!\"";
- close;
-}
+// Waitress
+
+new_20-1.gat,60,52,0 script Melinda 140,{
+ if (zeny < 180) goto L_NoMoney;
+ mes "[Melinda]";
+ mes "\"Hi sweety! Want a fresh beer for 170gp?\"";
+ next;
+
+ menu
+ "\"Sure! [don't tip]\"", -,
+ "Sure! [tip 5gp]", L_5Tip,
+ "Sure! [tip 10gp]", L_10Tip,
+ "Nah, maybe later.", L_No;
+
+ mes "[Melinda]";
+ mes "Pff... nickel nurser!";
+ next;
+ set zeny,zeny-170;
+ getitem 539,1;
+ close;
+
+L_5Tip:
+ mes "[Melinda]";
+ mes "\"Here you go, sweethearth!\"";
+ next;
+ set zeny,zeny-175;
+ getitem 539,1;
+ close;
+
+L_10Tip:
+ mes "[Melinda]";
+ mes "\"Thank you, sweety! Want me to hear a secret?\"";
+ next;
+ set zeny,zeny-180;
+ getitem 539,1;
+ menu
+ "What's it, darling?", -,
+ "Nah, I don't feel like chatting.", L_No;
+ mes "[Melinda]";
+ mes "\"The bowmaking master in this village used to construct exceptional bows. When you want one you should go and ask him.\"";
+ close;
+
+L_No:
+ mes "[Melinda]";
+ mes "\"Just call me when you've changed your mind.\"";
+ close;
+
+L_NoMoney:
+ mes "\"You look broke. Don't think that you can dine and dash here!\"";
+ close;
+}