summaryrefslogtreecommitdiff
path: root/world/map/npc/002-4
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/002-4')
-rw-r--r--world/map/npc/002-4/chest.txt51
-rw-r--r--world/map/npc/002-4/mine_triggerone.txt67
-rw-r--r--world/map/npc/002-4/mine_triggerthree.txt67
-rw-r--r--world/map/npc/002-4/mine_triggertwo.txt70
-rw-r--r--world/map/npc/002-4/miners.txt78
-rw-r--r--world/map/npc/002-4/naem.txt152
-rw-r--r--world/map/npc/002-4/underground_palace_barrier.txt22
7 files changed, 378 insertions, 129 deletions
diff --git a/world/map/npc/002-4/chest.txt b/world/map/npc/002-4/chest.txt
deleted file mode 100644
index 61b59109..00000000
--- a/world/map/npc/002-4/chest.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-
-002-4.gat,93,37,0|script|Treasure|111,{
-
- // 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.", 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-4/mine_triggerone.txt b/world/map/npc/002-4/mine_triggerone.txt
new file mode 100644
index 00000000..df29393e
--- /dev/null
+++ b/world/map/npc/002-4/mine_triggerone.txt
@@ -0,0 +1,67 @@
+//Sandstorm mine trigger 1 Trigger 002-4 35,43 (127)
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
+
+002-4.gat,30,47,0|script|Button|400,0,0,{
+
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state == 24) goto L_Trigger_Wrong_1;
+ if (@state == 23) goto L_Trigger_Wrong_1;
+ if (@state == 22) goto L_Trigger_1;
+
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ goto L_Close;
+
+L_Trigger_Wrong_1:
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ menu
+ "Put the key in, turn right.", L_Right_Wrong_1,
+ "Put the key in, turn left.", L_Left_Wrong_1,
+ "Do nothing.", L_Nothing_1;
+
+L_Right_Wrong_1:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key right.";
+ goto L_Close;
+
+L_Left_Wrong_1:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key left.";
+ goto L_Close;
+
+L_Trigger_1:
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ menu
+ "Put the key in, turn right.", L_Right_1,
+ "Put the key in, turn left.", L_Left_1,
+ "Do nothing.", L_Nothing_1;
+
+L_Right_1:
+ set @state, 23;
+ callsub S_Update_Var;
+ mes "You turn the key right. A clicking sound echoes throughout the mine.";
+ goto L_Close;
+
+L_Left_1:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key left.";
+ goto L_Close;
+
+L_Nothing_1:
+ mes "You leave the button alone.";
+ 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-4/mine_triggerthree.txt b/world/map/npc/002-4/mine_triggerthree.txt
new file mode 100644
index 00000000..621da0b2
--- /dev/null
+++ b/world/map/npc/002-4/mine_triggerthree.txt
@@ -0,0 +1,67 @@
+//Sandstorm mine trigger 3 Trigger 002-4 98,42 (127)
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
+
+002-4.gat,91,99,0|script|Button|400,0,0,{
+
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state == 24) goto L_Trigger_Wrong_3;
+ if (@state == 23) goto L_Trigger_3;
+ if (@state == 22) goto L_Trigger_Wrong_3;
+
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ goto L_Close;
+
+L_Trigger_Wrong_3:
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ menu
+ "Put the key in, turn right.", L_Right_Wrong_3,
+ "Put the key in, turn left.", L_Left_Wrong_3,
+ "Do nothing.", L_Nothing_3;
+
+L_Right_Wrong_3:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key right.";
+ goto L_Close;
+
+L_Left_Wrong_3:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key left.";
+ goto L_Close;
+
+L_Trigger_3:
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ menu
+ "Put the key in, turn right.", L_Right_3,
+ "Put the key in, turn left.", L_Left_3,
+ "Do nothing.", L_Nothing_3;
+
+L_Right_3:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key right.";
+ goto L_Close;
+
+L_Left_3:
+ set @state, 24;
+ callsub S_Update_Var;
+ mes "You turn the key left. A clicking sound echoes throughout the mine.";
+ goto L_Close;
+
+L_Nothing_3:
+ mes "You leave the button alone.";
+ 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-4/mine_triggertwo.txt b/world/map/npc/002-4/mine_triggertwo.txt
new file mode 100644
index 00000000..04e54462
--- /dev/null
+++ b/world/map/npc/002-4/mine_triggertwo.txt
@@ -0,0 +1,70 @@
+//Sandstorm mine trigger
+// Variables used:
+// - nibble 4 and 5 of QUEST_SouthTulimshar
+// - in FLAGS, FLAG_OPENED_UNDERGROUND
+
+002-4.gat,100,37,0|script|Button|400,0,0,{
+
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state == 24) goto L_Trigger_2;
+ if (@state == 23) goto L_Trigger_Wrong_2;
+ if (@state == 22) goto L_Trigger_Wrong_2;
+
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ goto L_Close;
+
+L_Trigger_Wrong_2:
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ menu
+ "Put the key in, turn right.", L_Right_Wrong_2,
+ "Put the key in, turn left.", L_Left_Wrong_2,
+ "Do nothing.", L_Nothing_2;
+
+L_Right_Wrong_2:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key right.";
+ goto L_Close;
+
+L_Left_Wrong_2:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key left.";
+ goto L_Close;
+
+L_Trigger_2:
+ mes "There is a large button on the ground. A key hole appears on the button.";
+ menu
+ "Put the key in, turn right.", L_Right_2,
+ "Put the key in, turn left.", L_Left_2,
+ "Do nothing.", L_Nothing_2;
+
+L_Right_2:
+ set @state, 22;
+ callsub S_Update_Var;
+ mes "You turn the key right.";
+ goto L_Close;
+
+L_Left_2:
+ set @state, 25;
+ callsub S_Update_Var;
+ set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND;
+ mes "You turn the key left. A clicking sound echoes throughout the mine, followed by a loud thump.";
+ goto L_Close;
+
+L_Nothing_2:
+ mes "You leave the button alone.";
+ 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-4/miners.txt b/world/map/npc/002-4/miners.txt
deleted file mode 100644
index 3fa17e35..00000000
--- a/world/map/npc/002-4/miners.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
-
-002-4.gat,32,94,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 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-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.\"";
- 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;
-}
diff --git a/world/map/npc/002-4/naem.txt b/world/map/npc/002-4/naem.txt
new file mode 100644
index 00000000..95735b58
--- /dev/null
+++ b/world/map/npc/002-4/naem.txt
@@ -0,0 +1,152 @@
+// 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_Nathan_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_TooMany:
+ mes "[Naem]";
+ mes "\"You have too many items for me to give you a reward.\"";
+ goto L_Close;
+
+L_Naem_Complete:
+ mes "[Naem]";
+ mes "\"Yo-ho-ho, a miner's life for me!\"";
+ 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-4/underground_palace_barrier.txt b/world/map/npc/002-4/underground_palace_barrier.txt
new file mode 100644
index 00000000..2e0dc60d
--- /dev/null
+++ b/world/map/npc/002-4/underground_palace_barrier.txt
@@ -0,0 +1,22 @@
+//underground palace barrier
+
+002-4.gat,68,98,0|script|#UGP_Barrier|45,0,0,{
+
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state >= 25) goto L_Underground_Palace_Barrier_Open;
+
+ message strcharinfo(0), "Some force seems to block your entrance.";
+ goto L_End;
+
+L_Underground_Palace_Barrier_Open:
+ warp "002-5.gat",37,96;
+ goto L_End;
+
+L_End:
+ set @state, 0;
+ end;
+}