summaryrefslogtreecommitdiff
path: root/npc/009-2/alan.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/009-2/alan.txt')
-rwxr-xr-xnpc/009-2/alan.txt216
1 files changed, 216 insertions, 0 deletions
diff --git a/npc/009-2/alan.txt b/npc/009-2/alan.txt
new file mode 100755
index 00000000..5d3279da
--- /dev/null
+++ b/npc/009-2/alan.txt
@@ -0,0 +1,216 @@
+
+009-2,99,23,0 script Alan NPC125,{
+ @Q_MASK = NIBBLE_0_MASK;
+ @Q_SHIFT = NIBBLE_0_SHIFT;
+
+ @Q_status = ((QUEST_Forestbow_state) & @Q_MASK) >> @Q_SHIFT;
+
+ @BROKENLOG_EXP = 15;
+
+ @inspector = ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_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.", L_close,
+ "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;
+ menu
+ "OK, thanks.", L_close,
+ "Can you make me a really good bow?", L_State_0_1;
+
+L_State_0_1:
+ mes "[Alan]";
+ mes "\"You mean like one of my legendary forest bows?\"";
+ next;
+ menu
+ "Yes, that would be nice.", L_Next;
+
+L_Next:
+ mes "[Alan]";
+ mes "\"Sorry, I am not making these anymore.\"";
+ next;
+ menu
+ "Oh, too bad.", L_close,
+ "What? Why not?", L_State_0_2;
+
+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.\"";
+ @Q_status = 1;
+ callsub S_Update_Var;
+ next;
+ menu
+ "Too bad.", L_close,
+ "Did you ask him why?", L_State_0_3;
+
+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.", L_close,
+ "I am sure he got his reasons.", L_State_1;
+
+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.", L_close,
+ "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;
+ menu
+ "No, I haven't had the time yet.", L_close,
+ "No, I didn't find him yet.", L_State_1_1;
+
+L_State_1_1:
+ mes "[Alan]";
+ mes "\"When you leave my shop just go southwest over the village plaza. You can't miss it.\"";
+ goto L_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.", L_Next1,
+ "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.", L_Next1;
+ goto L_Next1;
+
+L_Next1:
+ 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.\"";
+ @Q_status = 3;
+ callsub S_Update_Var;
+ goto L_close;
+
+L_State_3:
+ mes "[Alan]";
+ mes "\"How is the hunt going? Did you bring me any wood?\"";
+ if (countitem("RawLog") < 1)
+ goto L_close;
+ next;
+ if (@inspector == 1)
+ menu
+ "Here, take a look!", L_State_3_try,
+ "Yes, but I need it for something else.", L_close,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ menu
+ "Here, take a look!", L_State_3_try,
+ "Yes, but I need it for something else.", L_close;
+
+L_State_3_try:
+ if (countitem("RawLog") < 1)
+ goto L_No_Log;
+ delitem "RawLog", 1;
+ mes "[Alan]";
+ mes "\"Hmmm... looks ok, but is it strong enough?\"";
+ mes "Alan bends the log over his knee.";
+ next;
+ @Temp1 = rand(20);
+ if (@Temp1 == 0) goto L_State_3_success;
+ mes "The log breaks with a loud crack.";
+ getexp @BROKENLOG_EXP, 0;
+ 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("RawLog") < 1)
+ goto L_close;
+ next;
+ menu
+ "Sure, here you go.", L_State_3_try,
+ "Hey! Stop breaking my stuff!", L_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 brought me. It will make an excellent bow!\"";
+ next;
+ @Q_status = 4;
+ callsub S_Update_Var;
+ goto L_State_4;
+
+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!", L_close,
+ "Sure, here you go!", L_State_4_pay,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+ menu
+ "10,000??? What a ripoff!", L_close,
+ "Sure, here you go!", L_State_4_pay;
+
+L_State_4_pay:
+ if (Zeny < 10000)
+ goto L_State_4_nocash;
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_State_4_TooMany;
+ Zeny = Zeny - 10000;
+ getitem "ForestBow", 1;
+ @Q_status = 5;
+ callsub S_Update_Var;
+ mes "[Alan]";
+ mes "\"Here you go - have fun with it.\"";
+ goto L_close;
+
+L_State_4_nocash:
+ mes "[Alan]";
+ mes "\"Seems like you are out of cash.\"";
+ goto L_close;
+
+L_State_4_TooMany:
+ mes "[Alan]";
+ mes "\"Seems like you don't have room for this bow. Come back later.\"";
+ goto L_close;
+
+L_State_5:
+ mes "[Alan]";
+ mes "\"I hope you are satisfied with your forest bow. It is one of my best works.\"";
+ if (@inspector != 1)
+ goto L_close;
+ next;
+ menu
+ "I am!", L_close,
+ "Have you seen anything strange recently that might be connected to the robberies?", L_NohMask_Answer;
+
+L_NohMask_Answer:
+ mes "[Alan]";
+ mes "\"No.\"";
+ goto L_close;
+
+L_No_Log:
+ mes "[Alan]";
+ mes "\"Where should I look at? You don't have a raw log.\"";
+ goto L_close;
+
+L_close:
+ @inspector = 0;
+ close;
+
+S_Update_Var:
+ QUEST_Forestbow_state = (QUEST_Forestbow_state & ~(@Q_MASK) | (@Q_status << @Q_SHIFT));
+ return;
+}