summaryrefslogblamecommitdiff
path: root/npc/009-2_Hurnscald/alan.txt
blob: f19990d925eaa3696ffae9927be4db608a16caa0 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                                   
                                              









                                                                       
 




                                                                                                                       
                                         



                                                                                                                              
                                         

                                                                          
 










                                                                 
                                              































                                                                                                                                                                       
                                                             



                                                                                                                              
                                                             






                                                                                                      
 



















                                                                                                                              
 
















                                                                                                                              

                                              



                                                             

                                                
                                                








                                                                                                           
 



                                                                   
                                                                                                                


                             
 
















                                                                                                                              

                                                                
                               
                               










                                                  




                                                                                

                     
                                                                                             












                                                                                                                              




                                                                    





                                                   
//#################################################################################
//#                                                                               #
//# 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
009-2.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 not?", 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:
	if (countitem(569) < 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;
	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 brought me. It will make an excellent 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;
	getinventorylist;
	if (@inventorylist_count == 100) goto L_State_4_TooMany;
	set zeny, zeny - 10000;
	getitem "ForestBow", 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_4_TooMany:
	mes "[Alan]";
	mes "\"Seems like you don't have room for this bow. Come back later.\"";
	close;

L_State_5:
	mes "[Alan]";
	mes "\"I hope you are satisfied 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;

L_No_Log:
	mes "[Alan]";
	mes "\"Where should I look at? You don't have a raw log.\"";
	close;

S_Update_Var:
        set QUEST_Forestbow_state,
        	(QUEST_Forestbow_state & ~(@Q_MASK)
                | (@Q_status << @Q_SHIFT));
        return;
}