diff options
Diffstat (limited to 'world/map/npc/002-4')
-rw-r--r-- | world/map/npc/002-4/chest.txt | 31 | ||||
-rw-r--r-- | world/map/npc/002-4/miners.txt | 45 |
2 files changed, 50 insertions, 26 deletions
diff --git a/world/map/npc/002-4/chest.txt b/world/map/npc/002-4/chest.txt index f61ee889..e9efe1c0 100644 --- a/world/map/npc/002-4/chest.txt +++ b/world/map/npc/002-4/chest.txt @@ -1,36 +1,47 @@ -// +// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar 002-4.gat,93,37,0|script|Treasure|111,{ - if (TMW_Quest >= 38) goto L_Finished; + // This NPC previously used the variable TMW_Quest + callfunc "ClearVarTMW_Quest"; + + set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT); + + if (@state >= 26) goto L_Finished; mes "There is a chest here."; mes "Do you want to try to open it?"; next; menu "Yes.", L_Yes, - "No.", -; - close; + "No.", L_Close; L_Yes: - if(countitem("TreasureKey") < 3) goto L_Not_Enough; + if(countitem("TreasureKey") < 3) + goto L_Not_Enough; getinventorylist; - if (@inventorylist_count == 100 && countitem("TreasureKey") > 3) goto L_TooMany; + if (@inventorylist_count == 100 && countitem("TreasureKey") > 3) + goto L_TooMany; mes "You opened the chest and found a short bow!"; delitem "TreasureKey", 3; getitem "ShortBow", 1; - set TMW_Quest, 38; - close; + set @state, 26; + callsub S_Update_Var; + goto L_Close; L_Not_Enough: mes "It seems that you do not have the right key for this chest yet..."; - close; + goto L_Close; L_Finished: mes "You have already opened this chest."; - close; + goto L_Close; L_TooMany: mes "You do not have enough room to loot this chest. Maybe you should try again later."; + goto L_Close; + +L_Close: + set @state, 0; close; } diff --git a/world/map/npc/002-4/miners.txt b/world/map/npc/002-4/miners.txt index 2078cb7b..e66d19de 100644 --- a/world/map/npc/002-4/miners.txt +++ b/world/map/npc/002-4/miners.txt @@ -1,14 +1,19 @@ -// +// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar 002-4.gat,32,94,6|script|Sema|340,{ - if (TMW_Quest >= 40) goto L_Sema_Done; - if (TMW_Quest == 39) goto L_Sema_Happy; - if (TMW_Quest == 38) goto L_Sema_GCM; + // This NPC previously used the variable TMW_Quest + callfunc "ClearVarTMW_Quest"; + + set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT); + + if (@state >= 28) goto L_Sema_Done; + if (@state == 27) goto L_Sema_Happy; + if (@state == 26) goto L_Sema_GCM; mes "[Sema the Miner]"; mes "\"Hello adventurer. I do not know exactly where, but somewhere in this cave there is a chest. And wouldn't you know it! The archants have eaten all the spare keys for the chest. Go and do what you must do.\""; - close; + goto L_Close; L_Sema_GCM: mes "[Sema the Miner]"; @@ -16,44 +21,52 @@ L_Sema_GCM: menu "Yes.", L_Sema_Yes, "No.", L_Sema_No; - close; L_Sema_No: mes "[Sema the Miner]"; mes "\"Ahh! I am very scared now!\""; - close; + goto L_Close; L_Sema_Yes: - set TMW_Quest, 39; + set @state, 27; + callsub S_Update_Var; monster "002-4.gat", 70, 90, "", 1059, 1; mes "[Sema the Miner]"; mes "\"Good luck. To prove you killed it, please bring the Iten it swallowed when it ate the miner. Be careful, there could be more than one.\""; - close; + goto L_Close; L_Sema_Happy: - if (countitem ("Iten") < 1) goto L_Sema_Not_Happy; + if (countitem ("Iten") < 1) + goto L_Sema_Not_Happy; getinventorylist; - if (@inventorylist_count - (countitem ("Iten") == 1) > 99) goto L_Sema_TooMany; + if (@inventorylist_count - (countitem ("Iten") == 1) > 99) + goto L_Sema_TooMany; delitem "Iten", 1; getitem "DesertShirt", 1; - set TMW_Quest, 40; + set @state, 28; + callsub S_Update_Var; mes "[Sema the Miner]"; mes "\"You killed it! What a relief! I wish I had more to give, but please accept this Desert Shirt as reward.\""; - close; + goto L_Close; L_Sema_TooMany: mes "[Sema the Miner]"; mes "\"You have too many items for me to give you a reward. Please drop or sell something so I can give it to you. Oh and yes, you can also store items at the nearest bank.\""; - close; + goto L_Close; L_Sema_Not_Happy: - set TMW_Quest, 38; + set @state, 26; + callsub S_Update_Var; itemheal -Hp, 0; mes "A stone falls on your head."; - close; + goto L_Close; L_Sema_Done: mes "[Sema the Miner]"; mes "\"You made this cave safer, you are kind beyond belief. Others may need you. Happy adventuring.\""; + goto L_Close; + +L_Close: + set @state, 0; close; } |