diff options
author | Jessica Tölke <jtoelke@mail.upb.de> | 2013-02-07 16:27:45 +0100 |
---|---|---|
committer | Jessica Tölke <jtoelke@mail.upb.de> | 2013-02-12 23:05:14 +0100 |
commit | e6db4af9d0873d1b1b31680d54e5f8452000ea2b (patch) | |
tree | 7c8b2df6678625d2decc6095cfd87a207db034a0 /world/map/npc | |
parent | c88ef1cbf878acd5439c3aef1cdac2f68436e0b5 (diff) | |
download | serverdata-e6db4af9d0873d1b1b31680d54e5f8452000ea2b.tar.gz serverdata-e6db4af9d0873d1b1b31680d54e5f8452000ea2b.tar.bz2 serverdata-e6db4af9d0873d1b1b31680d54e5f8452000ea2b.tar.xz serverdata-e6db4af9d0873d1b1b31680d54e5f8452000ea2b.zip |
Variable restructuring: move Inspector quest to nibble 3 of QUEST_Hurnscald.
Diffstat (limited to 'world/map/npc')
-rw-r--r-- | world/map/npc/001-2/troupe_leader.txt | 33 | ||||
-rw-r--r-- | world/map/npc/008-1/hinnak.txt | 5 | ||||
-rw-r--r-- | world/map/npc/009-1/jack.txt | 49 | ||||
-rw-r--r-- | world/map/npc/009-1/milly.txt | 18 | ||||
-rw-r--r-- | world/map/npc/009-1/old_man.txt | 25 | ||||
-rw-r--r-- | world/map/npc/009-1/old_woman.txt | 58 | ||||
-rw-r--r-- | world/map/npc/009-1/sabine.txt | 18 | ||||
-rw-r--r-- | world/map/npc/009-2/alan.txt | 71 | ||||
-rw-r--r-- | world/map/npc/009-2/doctor.txt | 27 | ||||
-rw-r--r-- | world/map/npc/009-2/inspector.txt | 99 | ||||
-rw-r--r-- | world/map/npc/009-2/nurse.txt | 39 | ||||
-rw-r--r-- | world/map/npc/018-2/angus.txt | 12 | ||||
-rw-r--r-- | world/map/npc/018-2/books.txt | 15 | ||||
-rw-r--r-- | world/map/npc/018-2/caul.txt | 11 | ||||
-rw-r--r-- | world/map/npc/018-2/miners.txt | 34 | ||||
-rw-r--r-- | world/map/npc/018-2/receptionist.txt | 18 |
16 files changed, 333 insertions, 199 deletions
diff --git a/world/map/npc/001-2/troupe_leader.txt b/world/map/npc/001-2/troupe_leader.txt index f34408d3..f69629a5 100644 --- a/world/map/npc/001-2/troupe_leader.txt +++ b/world/map/npc/001-2/troupe_leader.txt @@ -1,12 +1,16 @@ // 001-2.gat,34,25,0|script|Troupe Leader|165,{ - if (Inspector == 4) goto L_NohMask_Troupe; - if (Inspector == 13) goto L_NohMask_Found; + callfunc "ClearVariables"; + + 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.\""; - close; + goto L_Close; L_NohMask_Troupe: mes "[Troupe Leader]"; @@ -15,19 +19,19 @@ L_NohMask_Troupe: 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...", -; - close; + "Hmm...", L_Close; L_NohMask_Idea: - set Inspector, 5; + 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.\""; - close; + 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!\""; - close; + goto L_Close; L_NohMask_Found: mes "[Troupe Leader]"; @@ -36,16 +40,25 @@ L_NohMask_Found: if (@inventorylist_count == 100) goto L_NohMask_TooMany; mes "[1500 experience points]"; getexp 1500, 0; - set Inspector, 14; + 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.\""; - close; + 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; } diff --git a/world/map/npc/008-1/hinnak.txt b/world/map/npc/008-1/hinnak.txt index c3c4877d..d2551e5a 100644 --- a/world/map/npc/008-1/hinnak.txt +++ b/world/map/npc/008-1/hinnak.txt @@ -8,7 +8,9 @@ 008-1.gat,101,30,0|script|Hinnak|142,{ callfunc "ClearVariables"; - if (Inspector == 10) goto L_NohMask; + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + + if (@inspector == 10) goto L_NohMask; L_No_NohMask: set @state, ((QUEST_Hurnscald & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT); @@ -239,6 +241,7 @@ L_NohMask_Satchel: L_Close: set @state, 0; + set @inspector, 0; close; S_Update_Mask: diff --git a/world/map/npc/009-1/jack.txt b/world/map/npc/009-1/jack.txt index 6f08c719..4ccc5d82 100644 --- a/world/map/npc/009-1/jack.txt +++ b/world/map/npc/009-1/jack.txt @@ -15,6 +15,8 @@ // Lumberjack 009-1.gat,40,45,0|script|Jack|141,{ + callfunc "ClearVariables"; + set @RAWLOGS_AMOUNT, 40; set @SHIELD_COST, 5000; set @QUEST_SHIELD_EXP, 2500; @@ -28,6 +30,8 @@ set @Q_Forestbow, ((QUEST_Forestbow_state & @Q_Forestbow_MASK) >> @Q_Forestbow_SHIFT); set @Q_Woodenshield, ((QUEST_Forestbow_state & @Q_Woodenshield_MASK) >> @Q_Woodenshield_SHIFT); + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + if (@Q_Woodenshield >= 3) goto L_Shield_state_3; if (@Q_Woodenshield == 2) goto L_Shield_state_2; if (@Q_Woodenshield == 1) goto L_Shield_state_1; @@ -35,9 +39,11 @@ mes "[Jack Lumber]"; mes "\"Hello there, my name is Jack Lumber, the enemy of all trees. If you need some firewood just let me know.\""; - if (Inspector == 1) callsub S_NohMask_Ask; + if (@inspector == 1) + callsub S_NohMask_Ask; next; - if (@Q_Forestbow < 1) close; + if (@Q_Forestbow < 1) + goto L_Close; menu "I heard you aren't delivering any more living wood. Why not?", -; mes "[Jack Lumber]"; @@ -83,15 +89,16 @@ "Southwest you say? OK, thank you.", -; set @Q_Forestbow, 2; callsub S_Update_Mask; - close; + goto L_Close; L_Bow_state_2: // Bow state 4: The player has found a perfect piece of wood. if (@Q_Forestbow > 3) goto L_Bow_state_4; mes "\"Good luck hunting those tree monsters - you will need it.\""; - if (Inspector == 1) callsub S_NohMask_Ask; - close; + if (@inspector == 1) + callsub S_NohMask_Ask; + goto L_Close; L_Bow_state_4: mes "[Jack Lumber]"; @@ -114,7 +121,7 @@ L_Bow_state_4: L_Bow_state_4_reaffirm: mes "[Jack Lumber]"; mes "\"You should go talk to Alan again.\""; - close; + goto L_Close; L_Shield_state_0: set @Q_Woodenshield, 1; @@ -134,24 +141,21 @@ L_Shield_state_1: mes "[Jack Lumber]"; mes "\"I have an idea. What would you say about a new shield?\""; next; - if (Inspector == 1) + if (@inspector == 1) menu - "No thanks.", L_End, + "No thanks.", L_Close, "Yes, please!", -, "Actually, I'd like to know if you've seen any strange happenings in town.", L_NohMask_Answer; - if (Inspector != 1) + if (@inspector != 1) menu - "No thanks.", L_End, + "No thanks.", L_Close, "Yes, please!", -; mes "[Jack Lumber]"; mes "\"All I need is " + @RAWLOGS_AMOUNT + " raw logs. This needn't be highest-quality wood; pretty much any log you can find should work. Oh, and I'll also need " + @SHIELD_COST + " GP for other materials.\""; next; set @Q_Woodenshield, 2; callsub S_Update_Mask; - close; - -L_End: - close; + goto L_Close; L_Shield_state_2: mes "[Jack Lumber]"; @@ -187,32 +191,31 @@ L_Shield_state_2: mes "\"Enjoy your new shield!\""; mes "[" + @QUEST_SHIELD_EXP + " experience points]"; next; - goto L_End; + goto L_Close; L_Not_enough_logs: mes "[Jack Lumber]"; mes "\"You don't have enough wood for me to craft this shield; I need a total of " + @RAWLOGS_AMOUNT + " raw logs.\""; - close; + goto L_Close; L_Not_enough_money: mes "[Jack Lumber]"; mes "\"You don't have enough gold, I'm afraid. I need " + @SHIELD_COST + " GP to finish your shield.\""; - close; + goto L_Close; L_TooMany: mes "[Jack Lumber]"; mes "\"You don't have enough room for the shield. Come back when you do.\""; - close; + goto L_Close; L_Shield_state_3: mes "[Jack Lumber]"; mes "\"I hope that my shield will serve you well!\""; next; - if (Inspector == 1) + if (@inspector == 1) menu - "Me too.", -, + "Me too.", L_Close, "Have you seen anything that might be connected to the recent robberies in town?", L_NohMask_Answer; - close; S_NohMask_Ask: next; @@ -224,6 +227,10 @@ S_NohMask_Ask: L_NohMask_Answer: mes "[Jack Lumber]"; mes "\"Sorry, no.\""; + goto L_Close; + +L_Close: + set @inspector, 0; close; S_Update_Mask: diff --git a/world/map/npc/009-1/milly.txt b/world/map/npc/009-1/milly.txt index 1f75eed2..df0d31be 100644 --- a/world/map/npc/009-1/milly.txt +++ b/world/map/npc/009-1/milly.txt @@ -1,24 +1,30 @@ 009-1.gat,81,41,0|script|Milly|114,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + mes "[Milly]"; mes "\"Hello.\""; next; - if (Inspector == 1) goto L_NohMask; - close; + if (@inspector != 1) + goto L_Close; -L_NohMask: menu "Have you seen anything strange lately?", L_NohMask_Strange, "Do you know anything about the recent robberies?", L_NohMask_Robbery, - "Hello", -; - close; + "Hello.", L_Close; L_NohMask_Strange: mes "[Milly]"; mes "\"I haven't seen anything strange.\""; - close; + goto L_Close; L_NohMask_Robbery: mes "[Milly]"; mes "\"No, sorry.\""; + goto L_Close; + +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/009-1/old_man.txt b/world/map/npc/009-1/old_man.txt index 97679b35..e799cc89 100644 --- a/world/map/npc/009-1/old_man.txt +++ b/world/map/npc/009-1/old_man.txt @@ -1,34 +1,41 @@ // Old man 009-1.gat,85,51,0|script|Old Man|159,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + mes "[Old Man]"; mes "\"Don't let those monsters get to you.\""; next; - if (Inspector == 1) goto L_NohMask_Ask; - if (Inspector == 6) goto L_NohMask_Accuse; - close; + if (@inspector == 1) goto L_NohMask_Ask; + if (@inspector == 6) goto L_NohMask_Accuse; + goto L_Close; L_NohMask_Ask: menu "Have you seen anything strange lately?", L_NohMask_Ask_Nothing, "Do you know anything about the recent robberies?", L_NohMask_Ask_Nothing, - "I won't, thank you.", -; - close; + "I won't, thank you.", L_Close; L_NohMask_Ask_Nothing: mes "[Old Man]"; mes "\"I'm sorry, but I didn't see anything. You should ask my old woman.\""; - close; + goto L_Close; L_NohMask_Accuse: menu "The leader of the troupe said you hung around them a lot while they were in town.", L_NohMask_Accuse_Respond, - "I won't, thank you.", -; - close; + "I won't, thank you.", L_Close; L_NohMask_Accuse_Respond: mes "[Old Man]"; mes "\"Yes, I hung around the theater a lot. I was an actor when I was younger. But I wasn't there that night. Me and the wife were at home all night.\""; - set Inspector, 7; + set @inspector, 7; + set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_3_MASK)) | (@inspector << NIBBLE_3_SHIFT); + goto L_Close; + +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/009-1/old_woman.txt b/world/map/npc/009-1/old_woman.txt index abca82c4..fbd0e7aa 100644 --- a/world/map/npc/009-1/old_woman.txt +++ b/world/map/npc/009-1/old_woman.txt @@ -1,68 +1,88 @@ // Old woman 009-1.gat,29,43,0|script|Old Woman|154,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + if (BaseLevel < 40) goto L_Lower; mes "[Old Woman]"; mes "\"Hello deary.\""; next; - -L_Continue: - if ((Inspector >= 1 && Inspector <= 7) || Inspector == 9) goto L_NohMask; - close; + goto L_Continue; L_Lower: mes "[Old Woman]"; mes "\"Watch out for these flowers. They don't like to be messed with.\""; next; - goto L_Continue; + +L_Continue: + if ((@inspector >= 1 && @inspector <= 7) || @inspector == 9) + goto L_NohMask; + goto L_Close; L_NohMask: - if (Inspector == 7) goto L_NohMask_Alibi; + if (@inspector == 7) + goto L_NohMask_Alibi; callfunc "ProcessEquip"; if (@torsoC == cDarkBlue && @legsC == cDarkBlue) goto L_NohMask_Fake; - if (Inspector >= 3 && Inspector <= 6) close; + if (@inspector >= 3 && @inspector <= 6) + goto L_Close; menu "Have you seen anything strange lately?", L_NohMask_FirstAsk, "Do you know anything about the recent robberies?", L_NohMask_FirstAsk, - "Hello", -; - close; + "Hello", L_Close; L_NohMask_FirstAsk: mes "[Old Woman]"; mes "\"Yes, but I'm only talking to the inspector himself!\""; - if (Inspector == 1) set Inspector, 2; - close; + if (@inspector != 1) + goto L_Close; + set @inspector, 2; + callsub S_Update_Mask; + goto L_Close; L_NohMask_Alibi: menu "Was your husband with you at home all night the last night that the troupe was in town?", -; mes "[Old Woman]"; mes "\"Yes, we were both at home all night.\""; - set Inspector, 8; - close; + set @inspector, 8; + callsub S_Update_Mask; + goto L_Close; L_NohMask_Fake: - if (Inspector == 9) goto L_NohMask_Fake_Satchel; - if (Inspector >= 3 && Inspector <= 6) goto L_NohMask_Filler; + if (@inspector == 9) goto L_NohMask_Fake_Satchel; + if (@inspector >= 3 && @inspector <= 6) goto L_NohMask_Filler; mes "[Old Woman]"; mes "\"I saw someone sneaking around town wearing a theater mask. It looked like one of the masks used by the troupe that was in town recently.\""; - set Inspector, 3; - close; + set @inspector, 3; + callsub S_Update_Mask; + goto L_Close; L_NohMask_Filler: mes "[Old Woman]"; mes "\"I hope you catch that naughty person!\""; - close; + goto L_Close; L_NohMask_Fake_Satchel: mes "[Old Woman]"; mes "\"I've remembered something else. The night the troupe left, I saw someone with a theater mask take a large satchel out of town. He was heading north.\""; - set Inspector, 10; + set @inspector, 10; + callsub S_Update_Mask; + 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; + OnPCDieEvent: if (countitem(E10_TOKEN_ID) < 1) end; delitem E10_TOKEN_ID, 1; diff --git a/world/map/npc/009-1/sabine.txt b/world/map/npc/009-1/sabine.txt index 9fa5e20f..d67c55b0 100644 --- a/world/map/npc/009-1/sabine.txt +++ b/world/map/npc/009-1/sabine.txt @@ -1,26 +1,32 @@ // Girl sitting on bench 009-1.gat,88,27,0|script|Sabine|106,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + mes "[Sabine]"; mes "\"Isn't this place pretty? I love hanging out here!\""; next; - if (Inspector == 1) goto L_NohMask; - close; + if (@inspector != 1) + goto L_Close; -L_NohMask: menu "Have you seen anything strange lately?", L_NohMask_Strange, "Do you know anything about the recent robberies?", L_NohMask_Robbery, - "Yes, it is.", -; - close; + "Yes, it is.", L_Close; L_NohMask_Strange: mes "[Sabine]"; mes "\"I haven't seen anything strange.\""; - close; + goto L_Close; L_NohMask_Robbery: mes "[Sabine]"; mes "\"No, sorry.\""; + goto L_Close; + +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/009-2/alan.txt b/world/map/npc/009-2/alan.txt index 1715fe72..65a36c0d 100644 --- a/world/map/npc/009-2/alan.txt +++ b/world/map/npc/009-2/alan.txt @@ -9,6 +9,8 @@ // Archer Shop Master 009-2.gat,99,23,0|script|Alan|125,{ + callfunc "ClearVariables"; + set @Q_MASK, NIBBLE_0_MASK; set @Q_SHIFT, NIBBLE_0_SHIFT; @@ -16,6 +18,8 @@ set @BROKENLOG_EXP, 15; + set @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; @@ -25,16 +29,16 @@ 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) + 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) + if (@inspector != 1) menu "OK, thanks.", -, "Can you make me a really good bow?", L_State_0_1; - close; + goto L_Close; L_State_0_1: mes "[Alan]"; @@ -46,9 +50,8 @@ L_State_0_1: mes "\"Sorry, I am not making these anymore.\""; next; menu - "Oh, too bad.", -, + "Oh, too bad.", L_Close, "What? Why not?", L_State_0_2; - close; L_State_0_2: mes "[Alan]"; @@ -59,48 +62,46 @@ L_State_0_2: callsub S_Update_Var; next; menu - "Too bad.", -, + "Too bad.", L_Close, "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.", -, + "OK, I'll ask him.", L_Close, "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) + 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) + if (@inspector != 1) menu "No, I haven't had the time yet.", -, "No, I didn't find him yet.", L_State_1_1; - close; + goto L_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; + 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) + 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) + if (@inspector != 1) menu "Yes, I did. He said that the trees turned into dangerous monsters.", -; mes "[Alan]"; @@ -109,23 +110,24 @@ L_State_2: 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; + goto L_Close; L_State_3: mes "[Alan]"; mes "\"How is the hunt going? Did you bring me any wood?\""; - if (countitem("RawLog") < 1) close; + if (countitem("RawLog") < 1) + goto L_Close; next; - if (Inspector == 1) + 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) + if (@inspector != 1) menu "Here, take a look!", L_State_3_try, "Yes, but I need it for something else.", -; - close; + goto L_Close; L_State_3_try: if (countitem("RawLog") < 1) @@ -142,12 +144,12 @@ L_State_3_try: 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) close; + if (countitem("RawLog") < 1) + goto L_Close; next; menu "Sure, here you go.", L_State_3_try, - "Hey! Stop breaking my stuff!", -; - close; + "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."; @@ -162,16 +164,16 @@ 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) + 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) + if (@inspector != 1) menu "10,000??? What a ripoff!", -, "Sure, here you go!", L_State_4_pay; - close; + goto L_Close; L_State_4_pay: if (Zeny < 10000) @@ -185,36 +187,39 @@ L_State_4_pay: callsub S_Update_Var; mes "[Alan]"; mes "\"Here you go - have fun with it.\""; - close; + goto L_Close; L_State_4_nocash: mes "[Alan]"; mes "\"Seems like you are out of cash.\""; - close; + goto L_Close; L_State_4_TooMany: mes "[Alan]"; mes "\"Seems like you don't have room for this bow. Come back later.\""; - close; + 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.\""; next; - if (Inspector == 1) + if (@inspector == 1) menu - "I am!", -, + "I am!", L_Close, "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; + 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: + set @inspector, 0; close; S_Update_Var: diff --git a/world/map/npc/009-2/doctor.txt b/world/map/npc/009-2/doctor.txt index 7b6931e0..c9b5684a 100644 --- a/world/map/npc/009-2/doctor.txt +++ b/world/map/npc/009-2/doctor.txt @@ -1,6 +1,10 @@ // Doctor 009-2.gat,148,25,0|script|Doctor|107,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + if (getequipid(equip_head) == 616) goto L_Axe; if (getequipid(equip_head) == 621) goto L_Eyepatch; @@ -8,26 +12,27 @@ mes "\"Hello, can I help you?\""; next; - if (Inspector == 1) + if (@inspector == 1) menu "I think I am sick!", L_Cure, "No, I feel fine.", -, "Have you seen anything strange in town? Anything that might have to do with the robberies?", L_NohMask; - if (Inspector != 1) + if (@inspector != 1) menu "I think I am sick!", L_Cure, "No, I feel fine.", -; mes "[Doctor]"; mes "\"Then please stop wasting my precious time.\""; - close; + goto L_Close; L_Cure: mes "[Doctor]"; - if (sc_check(sc_poison)) goto L_CurePoison; + if (sc_check(sc_poison)) + goto L_CurePoison; mes "The doctor examines you briefly."; mes "\"Nonsense! You look fine and dandy to me. All you need is a bit more exercise and fresh fruit in your diet!\""; - close; + goto L_Close; L_CurePoison: mes "\"Well, well, well! Look at all those green bubbles coming out of your head; that looks like poisoning to me! Did you eat something rotten?\""; @@ -41,7 +46,7 @@ L_CurePoison: sc_end(sc_slowpoison); mes "*Ouch!*"; mes "\"Next time, be more careful! Make sure to cook any meats before you eat them, and don't eat fish once it starts to smell.\""; - close; + goto L_Close; L_Axe: mes "[Doctor]"; @@ -49,7 +54,7 @@ L_Axe: next; mes "[Doctor]"; mes "\"Wait. Thats just a fake. Shame on you!\""; - close; + goto L_Close; L_Eyepatch: mes "[Doctor]"; @@ -60,7 +65,7 @@ L_Eyepatch: "No thank you", -; mes "[Doctor]"; mes "\"If you change your mind, please come back and see me.\""; - close; + goto L_Close; L_Eyepatch_GlassEye: mes "[Doctor]"; @@ -69,10 +74,14 @@ L_Eyepatch_GlassEye: next; mes "[Doctor]"; mes "\"I can't seem to find where I put that box. You should come back later, I may have found them by then.\""; - close; + goto L_Close; L_NohMask: mes "[Doctor]"; mes "\"No, I haven't seen anything.\""; + goto L_Close; + +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/009-2/inspector.txt b/world/map/npc/009-2/inspector.txt index e1461584..59bbd067 100644 --- a/world/map/npc/009-2/inspector.txt +++ b/world/map/npc/009-2/inspector.txt @@ -1,25 +1,29 @@ // 009-2.gat,24,99,0|script|Inspector#Hurnscald|150,{ - if (Inspector == 0 && BaseLevel >= 30) goto L_NohMask_Start; - if (Inspector == 1) goto L_NohMask_AskVillage; - if (Inspector == 2) goto L_NohMask_OldWoman; - if (Inspector == 3) goto L_NohMask_TheaterMask; - if (Inspector == 4) goto L_NohMask_TravelingTroupe; - if (Inspector == 5) goto L_NohMask_OldMan; - if (Inspector == 6) goto L_NohMask_OldMan_2; - if (Inspector == 7) goto L_NohMask_Alibi; - if (Inspector == 8) goto L_NohMask_Alibi_2; - if (Inspector == 9) goto L_NohMask_Alibi_3; - if (Inspector == 10) goto L_NohMask_Satchel; - if (Inspector == 11) goto L_NohMask_Basement; - if (Inspector == 12) goto L_NohMask_Note; - if (Inspector == 13) goto L_NohMask_TravelingTroupe_2; - if (Inspector == 14) goto L_NohMask_Over; - if (Inspector == 15) goto L_NohMask_End; + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + + if (@inspector == 0 && BaseLevel >= 30) goto L_NohMask_Start; + if (@inspector == 1) goto L_NohMask_AskVillage; + if (@inspector == 2) goto L_NohMask_OldWoman; + if (@inspector == 3) goto L_NohMask_TheaterMask; + if (@inspector == 4) goto L_NohMask_TravelingTroupe; + if (@inspector == 5) goto L_NohMask_OldMan; + if (@inspector == 6) goto L_NohMask_OldMan_2; + if (@inspector == 7) goto L_NohMask_Alibi; + if (@inspector == 8) goto L_NohMask_Alibi_2; + if (@inspector == 9) goto L_NohMask_Alibi_3; + if (@inspector == 10) goto L_NohMask_Satchel; + if (@inspector == 11) goto L_NohMask_Basement; + if (@inspector == 12) goto L_NohMask_Note; + if (@inspector == 13) goto L_NohMask_TravelingTroupe_2; + if (@inspector == 14) goto L_NohMask_Over; + if (@inspector == 15) goto L_NohMask_End; mes "[Inspector]"; mes "\"I'm sorry, but I'm busy looking into this string of robberies.\""; - close; + goto L_Close; L_NohMask_Start: mes "\"Hmm...what to do.\""; @@ -29,97 +33,110 @@ L_NohMask_Start: mes "\"You look capable, will you help me solve these robberies?\""; next; menu - "Yes", L_NohMask_Accept, - "No", -; - close; + "Yes.", L_NohMask_Accept, + "No.", L_Close; L_NohMask_Accept: - set Inspector, 1; + set @inspector, 1; + callsub S_Update_Mask; mes "[Inspector]"; mes "\"Ok then. I'd like you to ask the villagers about the recent string of robberies.\""; - close; + goto L_Close; L_NohMask_AskVillage: mes "[Inspector]"; mes "\"Please continue talking to the villagers.\""; - close; + goto L_Close; L_NohMask_OldWoman: mes "[Inspector]"; mes "\"Hm...I don't know if I trust her eyesight or memory. See if someone else knows anything.\""; - close; + goto L_Close; L_NohMask_TheaterMask: - set Inspector, 4; + set @inspector, 4; + callsub S_Update_Mask; mes "[Inspector]"; mes "\"Someone in a theater mask, eh? There was a traveling theater troupe in town recently, but they've moved on to Tulimshar. Please go talk to their leader about this.\""; - close; + goto L_Close; L_NohMask_TravelingTroupe: mes "[Inspector]"; mes "\"Please go talk to the leader of the traveling troupe about the theater mask.\""; - close; + goto L_Close; L_NohMask_OldMan: - set Inspector, 6; + set @inspector, 6; + callsub S_Update_Mask; mes "[Inspector]"; mes "\"Hm...an old man? Could you interrogate him for me?\""; - close; + goto L_Close; L_NohMask_OldMan_2: mes "[Inspector]"; mes "\"Have you talked with the old man yet?\""; - close; + goto L_Close; L_NohMask_Alibi: mes "[Inspector]"; mes "\"Can you verify that with his wife?\""; - close; + goto L_Close; L_NohMask_Alibi_2: - set Inspector, 9; + set @inspector, 9; + callsub S_Update_Mask; mes "[Inspector]"; mes "\"Hm...then it couldn't be him. I'm not sure where to go from here, maybe you can find something else. Try talking to everyone again.\""; - close; + goto L_Close; L_NohMask_Alibi_3: mes "[Inspector]"; mes "\"Made any progress yet?\""; - close; + goto L_Close; L_NohMask_Satchel: mes "[Inspector]"; mes "\"Then go north and investigate!\""; - close; + goto L_Close; L_NohMask_Basement: mes "[Inspector]"; mes "\"Did you look over the basement?\""; - close; + goto L_Close; L_NohMask_Note: - set Inspector, 13; + set @inspector, 13; + callsub S_Update_Mask; mes "[Inspector]"; mes "\"What a strange note. I'll keep track of this, while you return the mask to the troupe.\""; mes ""; mes "\"By the way, stay sharp! I may call upon you again.\""; - close; + goto L_Close; L_NohMask_TravelingTroupe_2: mes "[Inspector]"; mes "\"Please return the mask to the traveling troupe.\""; - close; + goto L_Close; L_NohMask_Over: - set Inspector, 15; + set @inspector, 15; + callsub S_Update_Mask; mes "[Inspector]"; mes "\"My men have found all of the stolen items. They were all in the mining camp. We still don't know who did it.\""; mes "[2500 experience points]"; getexp 2500, 0; - close; + goto L_Close; L_NohMask_End: mes "[Inspector]"; mes "\"Remember to stay sharp. I might need your help on another case.\""; + 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; } diff --git a/world/map/npc/009-2/nurse.txt b/world/map/npc/009-2/nurse.txt index 7052edc0..b89d1f60 100644 --- a/world/map/npc/009-2/nurse.txt +++ b/world/map/npc/009-2/nurse.txt @@ -28,6 +28,8 @@ goto L_TrickOrTreat; L_Begin: + callfunc "ClearVariables"; + set @SNAKET_AMOUNT, 5; set @BSCORPIONST_AMOUNT, 10; // This quest can be done very often: so give less xp @@ -45,6 +47,8 @@ L_Begin: set @Q_poison_SHIFT, NIBBLE_7_SHIFT; set @Q_poison, (QUEST_Forestbow_state & @Q_poison_MASK) >> @Q_poison_SHIFT; + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + if (@Q_poison == 7) goto state7; if (@Q_poison == 6) goto state6; if (@Q_poison == 5) goto state5; @@ -59,25 +63,25 @@ L_Usual: mes "\"How can I help you?\""; next; - if (Inspector == 1) + if (@inspector == 1) menu "Oooh, these wounds! They hurt so much!", L_Heal, "I don't feel so well, I might be sick.", L_Doctor, "Have you seen anything out of the ordinary?", L_NohMask, "No, I'm fine.", -; - if (Inspector != 1) + if (@inspector != 1) menu "Oooh, these wounds! They hurt so much!", L_Heal, "I don't feel so well, I might be sick.", L_Doctor, "No, I'm fine.", -; mes "[Nurse]"; mes "\"Then I would ask you to leave. There are people who really need our help.\""; - close; + goto L_Close; L_Doctor: mes "[Nurse]"; mes "\"Then you should better see the doctor. He is usually in his office on the 3rd floor.\""; - close; + goto L_Close; L_Heal: if (BaseLevel > 20) goto L_NoHeal; @@ -85,19 +89,19 @@ L_Heal: mes "\"Here, let me heal you.\""; next; heal 10000, 10000; - close; + goto L_Close; L_NoHeal: mes "[Nurse]"; mes "\"I'm sorry but I'm here only to help young people."; mes "Your level is already higher than 20."; mes "You can get some rest in the inn near here.\""; - close; + goto L_Close; L_NohMask: mes "[Nurse]"; mes "\"I'm too busy here to observe the town.\""; - close; + goto L_Close; state0: mes "[Nurse]"; @@ -124,7 +128,7 @@ L_firstquest: L_ExplainAgain1: mes "\"Please bring me five tongues of snakes and ten stingers of black scorpions.\""; - close; + goto L_Close; state1: mes "[Nurse]"; @@ -134,7 +138,7 @@ state1: "Actually, I have another question.", L_Usual, "Sorry, I forgot. What shall I bring you?", L_ExplainAgain1, "I have what you asked for.", -, - "I'm still working on that.", quit; + "I'm still working on that.", L_Close; if (countitem("SnakeTongue") < @SNAKET_AMOUNT || countitem("BlackScorpionStinger") < @BSCORPIONST_AMOUNT) goto L_NotEnough; delitem "SnakeTongue", @SNAKET_AMOUNT; @@ -150,7 +154,7 @@ state1: L_ExplainAgain2: mes "\"Please bring me ten acorns, five red apples, five green apples and also five oranges. And we need some small healing potions. They will be useful to hold off the baneful effects. Three of them will be enough, I guess.\""; - close; + goto L_Close; state2: mes "You look at the nurse, who seems to be really tired, with shadows under her eyes. When she recognizes you, she smiles."; @@ -161,7 +165,7 @@ state2: "Actually, I have another question.", L_Usual, "I have a bad memory. Can you tell me again what we need?", L_ExplainAgain2, "I managed to get everything we need.", -, - "I will go and get it.", quit; + "I will go and get it.", L_Close; if (countitem("Acorn") < @ACORNS_AMOUNT || countitem("GreenApple") < @GREENAPPLE_AMOUNT || countitem("RedApple") < @REDAPPLE_AMOUNT @@ -199,7 +203,7 @@ L_Chemistry: mes "\"If we make a mistake, this might be exhausting and painful, so you should rest a while and prepare yourself.\""; next; mes "\"Come back when you feel ready for that task.\""; - close; + goto L_Close; state3: mes "[Nurse]"; @@ -378,7 +382,7 @@ l_hl_m_vn: // bye bye player! heal -Hp, 0; // close instead of telling how much stabilizer is needed - close; + goto L_Close; // goto check_st; l_hl_l_vn: @@ -426,13 +430,13 @@ allcorrect: setskill SKILL_RESIST_POISON, 1; set @Q_poison, 7; callsub S_Update_Var; - close; + goto L_Close; notallcorrect: mes "[Nurse]"; mes "\"It didn't work. You are a really brave person. Now you should rest and recover. I hope you won't give up now. Please come back later, so we can try it again.\""; next; - close; + goto L_Close; state4: mes "The nurse has a worried look in her face."; @@ -500,9 +504,10 @@ L_NotEnough: if (@Q_poison == 2) goto L_ExplainAgain2; // the following close *should* never be reached, but who knows, whoever will mess this script up! - close; + goto L_Close; -quit: +L_Close: + set @inspector, 0; close; S_Update_Var: diff --git a/world/map/npc/018-2/angus.txt b/world/map/npc/018-2/angus.txt index d5b9ad08..f44bef56 100644 --- a/world/map/npc/018-2/angus.txt +++ b/world/map/npc/018-2/angus.txt @@ -4,15 +4,23 @@ set @honorific$, "lad"; if (Sex == 0) set @honorific$, "lass"; - if (Inspector == 10) goto L_NohMask; + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + + if (@inspector == 10) goto L_NohMask; mes "[Angus]"; mes "Angus is tinkering with some mechanical concoction."; mes "\"It keeps breakin' left an' right... fortunat'ly I put in redundancies everywhere, but I haf' to keep repairin'.\""; - close; + goto L_Close; L_NohMask: mes "[Angus]"; mes "\"I'm sorry, " + @honorific$ + ", I truely am, but I stay in the town. One o' the miners might have heard something.\""; + goto L_Close; + +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/018-2/books.txt b/world/map/npc/018-2/books.txt index 260b670d..81b439da 100644 --- a/world/map/npc/018-2/books.txt +++ b/world/map/npc/018-2/books.txt @@ -1,15 +1,24 @@ // 018-2.gat,112,19,0|script|#Bookcase38|127,0,1{ - if (Inspector == 11) goto L_NohMask; + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + + if (@inspector == 11) goto L_NohMask; mes "Looking over the bookcase, you find nothing strange or out of order."; - close; + goto L_Close; L_NohMask: mes "Looking over the bookcase closely, you find a book is upside down."; next; mes "The book has been hollowed out. Inside is a theater mask and a note that you cannot even begin to read."; next; - set Inspector, 12; + set @inspector, 12; + set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_3_MASK)) | (@inspector << NIBBLE_3_SHIFT); + goto L_Close; + +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/018-2/caul.txt b/world/map/npc/018-2/caul.txt index f1e9ac90..3b5f771f 100644 --- a/world/map/npc/018-2/caul.txt +++ b/world/map/npc/018-2/caul.txt @@ -8,6 +8,10 @@ //################################################################################# 018-2.gat,37,22,0|script|Caul|107,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + set @SETZER_INITIAL, 0; set @SETZER_KNOWS_OIL, 1; set @SETZER_KNOWS_STINGER, 2; @@ -59,7 +63,7 @@ L_M_no_monster_oil: set @choices_nr, @choices_nr + 1; L_M_no_mopox_cure: - if (Inspector != 10) + if (@inspector != 10) goto L_M_no_inspector; set @choice_idx[@choices_nr], @C_nohmask; @@ -1058,10 +1062,11 @@ L_calc_dempo_color: L_NohMask: mes "[Caul]"; mes "\"I'm sorry, but I didn't. I'm staying in town. Try asking one of the miners.\""; - close; + goto L_close; L_close: - close; + set @inspector, 0; + close; S_Update_Var: set QUEST_Forestbow_state, diff --git a/world/map/npc/018-2/miners.txt b/world/map/npc/018-2/miners.txt index 3597314a..21d57957 100644 --- a/world/map/npc/018-2/miners.txt +++ b/world/map/npc/018-2/miners.txt @@ -2,29 +2,33 @@ // Authors: Ali-G, enchilado, Jenalya 018-2.gat,85,23,0|script|Malek|109,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); set @MIN_GEM_AMOUNT, 7; - if (Inspector == 10) goto L_NohMask; + if (@inspector == 10) goto L_NohMask; mes "[Malek]"; mes "\"Hi, can I help you at all?\""; menu "I'm looking for someone able to make gem powder.", L_GemPowder, - "I was just having a look, have a nice day.", L_abort; + "I was just having a look, have a nice day.", L_Close; L_NohMask: mes "[Malek]"; mes "\"Hi, can I help you at all?\""; menu "I'm looking for someone able to make gem powder.", L_GemPowder, - "I was just having a look, have a nice day.", L_abort, + "I was just having a look, have a nice day.", L_Close, "The inspector sent me here to investigate.", L_Investigation; L_Investigation: - set Inspector, 11; + set @inspector, 11; + set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_3_MASK)) | (@inspector << NIBBLE_3_SHIFT); mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\""; - close; + goto L_Close; L_GemPowder: mes "[Malek]"; @@ -32,15 +36,15 @@ L_GemPowder: mes "\"Do you want me to make any for you?\""; menu "Yes, I really need some.", L_GemPowderStart, - "Actually, I don't want anything. Have a nice day.", L_abort; + "Actually, I don't want anything. Have a nice day.", L_Close; L_GemPowderStart: mes "[Malek]"; mes "\"Well, I can do that. Bring me a gem and I'll make you some powder - hope you don't mind if I keep a little as payment!\""; menu "I've got some gems.", L_Check_Gems, - "I'll be back with a gem soon.", L_abort, - "Actually, I prefer my gems whole. Thanks anyway.", L_abort; + "I'll be back with a gem soon.", L_Close, + "Actually, I prefer my gems whole. Thanks anyway.", L_Close; L_Check_Gems: mes "[Malek]"; @@ -104,7 +108,8 @@ L_Choose_Gem: @menuitems$[5], -, @menuitems$[6], -; set @menu, @menu - 1; - if (@menu >= @c) close; + if (@menu >= @c) + goto L_Close; if (@menuid[@menu] == 0) set @gem$, "Diamond"; if (@menuid[@menu] == 1) @@ -118,7 +123,7 @@ L_Choose_Gem: if (@menuid[@menu] == 5) set @gem$, "Amethyst"; if (@menuid[@menu] == 6) - goto L_abort; + goto L_Close; getinventorylist; if (countitem(@gem$) < 1) @@ -145,18 +150,19 @@ L_Choose_Gem: mes "\"Do you need me to make any more?\""; menu "Yes please.", L_Check_Gems, - "No thank you, this is enough.", L_abort; + "No thank you, this is enough.", L_Close; L_TooMany: mes "[Malek]"; mes "\"Doesn't look like you've got room for this powder. Come back when you do.\""; - close; + goto L_Close; L_no_gem: mes "[Malek]"; mes "\"You don't have that gem.\""; - close; + goto L_Close; -L_abort: +L_Close: + set @inspector, 0; close; } diff --git a/world/map/npc/018-2/receptionist.txt b/world/map/npc/018-2/receptionist.txt index f49f68db..e36fe0c4 100644 --- a/world/map/npc/018-2/receptionist.txt +++ b/world/map/npc/018-2/receptionist.txt @@ -1,26 +1,30 @@ // 018-2.gat,50,24,0|script|Receptionist|108,{ + callfunc "ClearVariables"; + + set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); + mes "[Receptionist]"; mes "\"Welcome to the mining camp!"; mes "Do you need anything?\""; next; L_Menu: - if (Inspector == 10) + if (@inspector == 10) menu "Why was a mine setup here?", L_Mine, "Can I go into the mine?", L_Enter, "Did the company build this building?", L_Building, "Did you hear a commotion here the other night?", L_NohMask, - "Thank you, no.", -; - if (Inspector != 10) + "Thank you, no.", L_Close; + if (@inspector != 10) menu "Why was a mine setup here?", L_Mine, "Can I go into the mine?", L_Enter, "Did the company build this building?", L_Building, - "Thank you, no.", -; - close; + "Thank you, no.", L_Close; + goto L_Close; L_Mine: mes "[Receptionist]"; @@ -57,4 +61,8 @@ L_Question_End: mes "\"Do you need anything else?\""; next; goto L_Menu; + +L_Close: + set @inspector, 0; + close; } |