//################################################################################# //# # //# 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; }