summaryrefslogtreecommitdiff
path: root/world/map/npc/002-5
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/002-5')
-rw-r--r--world/map/npc/002-5/chest.txt51
-rw-r--r--world/map/npc/002-5/sema.txt78
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;
+}