// Variables used: // - nibble 4 and 5 of QUEST_SouthTulimshar // - in FLAGS, bits FLAG_GOT_NAEM_GLOVES and FLAG_OPENED_UNDERGROUND 002-4.gat,91,96,6|script|Naem|109, { // This NPC previously used the variable TMW_Quest callfunc "ClearVarTMW_Quest"; set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT); if (FLAGS & FLAG_GOT_NAEM_GLOVES) goto L_Naem_Complete; if (FLAGS & FLAG_OPENED_UNDERGROUND) goto L_Naem_Gloves; if (@state == 22) goto L_Naem_Code; if (@state == 21) goto L_Naem_Lt; if (@state == 20) goto L_Naem_Memory; if ((@state > 17) && (@state < 19)) goto L_Naem_Great; if (@state == 17) goto L_Naem_Waits_3; if (@state == 16) goto L_Naem_Help_3; if (@state == 15) goto L_Naem_Waits_2; if (@state == 14) goto L_Naem_Help_2; if (@state == 13) goto L_Naem_Waits_1; if (@state == 12) goto L_Naem_Help_1; if (@state == 10) goto L_Naem_Cool; if (@state == 9) goto L_Naem_Okay; mes "[Naem]"; mes "\"I'm just mining away here. Lots of work to do.\""; goto L_Close; L_Naem_Okay: set @state, 10; callsub S_Update_Var; mes "[Naem]"; mes "\"Oh, hello there. Nickos wanted you to check on me? Yeah, you can tell him I'm okay.\""; goto L_Close; L_Naem_Cool: mes "[Naem]"; mes "\"Yeah, I'm cool. Just mining away here.\""; goto L_Close; L_Naem_Help_1: set @state, 13; callsub S_Update_Var; mes "[Naem]"; mes "\"Oh, you are here to help move my bags? Cool, I've got a few ready to go. Go ahead and take this one!\""; next; mes "Naem hands you a bag of ore."; next; mes "[Naem]"; mes "\"After you deliver that one to Nathan, come on back, I've got a couple more ready to go.\""; goto L_Close; L_Naem_Waits_1: mes "[Naem]"; mes "\"After you deliver that bag of ore to Nathan, come on back, I've got a couple more ready to go.\""; goto L_Close; L_Naem_Help_2: set @state, 15; callsub S_Update_Var; mes "Naem gives you a bag of ore."; next; mes "[Naem]"; mes "\"Just one more after this one and we'll be all caught up!\""; goto L_Close; L_Naem_Waits_2: mes "[Naem]"; mes "\"Just one more bag of ore after the one you got and we'll be all caught up!\""; goto L_Close; L_Naem_Help_3: set @state, 17; callsub S_Update_Var; mes "[Naem]"; mes "Hands a bag of ore to you."; next; mes "\"Last one!\""; goto L_Close; L_Naem_Waits_3: mes "[Naem]"; mes "\"You got my last sack already. Just give it to Nathan and we'll have caught up.\""; goto L_Close; L_Naem_Great: mes "[Naem]"; mes "\"Hi ho! It's off to work I go! I work every day for meager pay, a miner's life for me...\""; goto L_Close; L_Naem_Memory: mes "You see Naem grimacing in pain as you approach."; next; mes "[Naem]"; mes "\"Oh, my head! Some rocks fell on me and bonked me pretty good. I'm still a little sore.\""; menu "Don't you have a key so I can go to the underground palace?", L_Naem_Palace_No, "You should be more careful.", L_Naem_Duh; L_Naem_Duh: mes "[Naem]"; mes "\"I guess I should...\""; goto L_Close; L_Naem_Palace_No: set @state, 21; callsub S_Update_Var; mes "[Naem]"; mes "\"Oh no! I lost the key! Don't worry though, talk to Lieutenant Dausen about getting the spare key.\""; goto L_Close; L_Naem_Lt: mes "[Naem]"; mes "\"I hurt my head pretty bad. I also lost my key. If you want to get into the underground palace, you'll have to talk to Lieutenant Dausen about getting the spare.\""; goto L_Close; L_Naem_Code: mes "[Naem]"; mes "\"Oh, you got the key. That is good! But my head still hurts... All I remember about the code is you have to put the key into the key hole buttons around the mine in a certain order and turn them in a certain order and it will unlock the underground palace. Sorry, that's all I have for you. Good luck!\""; goto L_Close; L_Naem_Gloves: getinventorylist; if (@inventorylist_count == 100) goto L_Naem_TooMany; set FLAGS, FLAGS | FLAG_GOT_NAEM_GLOVES; getitem "MinerGloves", 1; mes "[Naem]"; mes "\"Hey, good job on getting that together! Take these gloves, they might prove useful in the underground palace.\""; goto L_Close; L_Naem_Complete: mes "[Naem]"; mes "\"Yo-ho-ho, a miner's life for me!\""; goto L_Close; L_Naem_TooMany: mes "[Naem]"; mes "\"You have too many items for me to give you a reward.\""; goto L_Close; L_Close: set @state, 0; close; S_Update_Var: set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT)); return; }