diff options
Diffstat (limited to 'world/map/npc/002-5')
-rw-r--r-- | world/map/npc/002-5/chest.txt | 51 | ||||
-rw-r--r-- | world/map/npc/002-5/sema.txt | 78 |
2 files changed, 129 insertions, 0 deletions
diff --git a/world/map/npc/002-5/chest.txt b/world/map/npc/002-5/chest.txt new file mode 100644 index 00000000..50e3eed0 --- /dev/null +++ b/world/map/npc/002-5/chest.txt @@ -0,0 +1,51 @@ +// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar + +002-5.gat,93,37,0|script|Supply Chest|377,{ + + // 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 "Hrmm... A supply chest."; + mes "Do you want to try to open it?"; + next; + menu + "Yes.", L_Yes, + "No.", L_Close; + +L_Yes: + if (countitem("TreasureKey") < 3) + goto L_Not_Enough; + getinventorylist; + 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 @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..."; + goto L_Close; + +L_Finished: + mes "You have already opened this chest."; + 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; + +S_Update_Var: + set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT)); + return; +} diff --git a/world/map/npc/002-5/sema.txt b/world/map/npc/002-5/sema.txt new file mode 100644 index 00000000..b1b2cbe7 --- /dev/null +++ b/world/map/npc/002-5/sema.txt @@ -0,0 +1,78 @@ +// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar + +002-5.gat,43,91,6|script|Sema|340,{ + + // 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 supply 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.\""; + goto L_Close; + +L_Sema_GCM: + mes "[Sema the Miner]"; + mes "\"I saw a giant cave maggot eat one of the other miners and it might eat me! Can you kill it?\""; + menu + "Yes.", L_Sema_Yes, + "No.", L_Sema_No; + +L_Sema_No: + mes "[Sema the Miner]"; + mes "\"Ahh! I am very scared now!\""; + goto L_Close; + +L_Sema_Yes: + set @state, 27; + callsub S_Update_Var; + monster "002-5.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.\""; + goto L_Close; + +L_Sema_Happy: + if (countitem("Iten") < 1) + goto L_Sema_Not_Happy; + getinventorylist; + if (@inventorylist_count - (countitem("Iten") == 1) > 99) + goto L_Sema_TooMany; + delitem "Iten", 1; + getitem "DesertShirt", 1; + set @state, 28; + callsub S_Update_Var; + set BOSS_POINTS, BOSS_POINTS + 10; + message strcharinfo(0), "You gain 10 Boss Points giving you a total of " + BOSS_POINTS + "."; + 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.\""; + 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.\""; + goto L_Close; + +L_Sema_Not_Happy: + set @state, 26; + callsub S_Update_Var; + itemheal -Hp, 0; + mes "A stone falls on your head."; + 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; + +S_Update_Var: + set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT)); + return; +} |