summaryrefslogtreecommitdiff
path: root/npc/018-2/miners.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/018-2/miners.txt')
-rw-r--r--npc/018-2/miners.txt173
1 files changed, 173 insertions, 0 deletions
diff --git a/npc/018-2/miners.txt b/npc/018-2/miners.txt
new file mode 100644
index 00000000..ab418c24
--- /dev/null
+++ b/npc/018-2/miners.txt
@@ -0,0 +1,173 @@
+
+018-2,85,23,0 script Malek NPC109,{
+ @inspector = ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
+
+ @MIN_GEM_AMOUNT = 7;
+
+ if (@inspector == 10) goto L_NohMask;
+
+ mes "[Malek]";
+ mes "\"Hi, can I help you at all?\"";
+ menu
+ "I'm looking for someone able to make gem powder.", L_GemPowder,
+ "I was just having a look, have a nice day.", L_close;
+
+L_NohMask:
+ mes "[Malek]";
+ mes "\"Hi, can I help you at all?\"";
+ menu
+ "I'm looking for someone able to make gem powder.", L_GemPowder,
+ "I was just having a look, have a nice day.", L_close,
+ "The inspector sent me here to investigate.", L_Investigation;
+
+L_Investigation:
+ @inspector = 11;
+ QUEST_Hurnscald = (QUEST_Hurnscald & ~(NIBBLE_3_MASK)) | (@inspector << NIBBLE_3_SHIFT);
+ mes "\"Yeah, we did hear a commotion. We thought we heard someone go down to the basement, but we checked the whole place over and didn't see anything out of the ordinary.\"";
+ goto L_close;
+
+L_GemPowder:
+ mes "[Malek]";
+ mes "\"My father taught me how to make that sort of powder. Put the gem on a firm surface, hold your pickaxe tight and whack that gem hard. It'll be crushed into powder pretty soon if you keep at it.\"";
+ mes "\"Do you want me to make any for you?\"";
+ menu
+ "Yes, I really need some.", L_GemPowderStart,
+ "Actually, I don't want anything. Have a nice day.", L_close;
+
+L_GemPowderStart:
+ mes "[Malek]";
+ mes "\"Well, I can do that. Bring me a gem and I'll make you some powder - hope you don't mind if I keep a little as payment!\"";
+ menu
+ "I've got some gems.", L_Check_Gems,
+ "I'll be back with a gem soon.", L_close,
+ "Actually, I prefer my gems whole. Thanks anyway.", L_close;
+
+L_Check_Gems:
+ mes "[Malek]";
+ mes "\"Which gem do you want me to powder for you?\"";
+ next;
+ setarray @menuitems$, "", "", "", "", "", "", "";
+ @c = 0;
+ goto L_Check_Diamond;
+
+L_Check_Diamond:
+ if (countitem("Diamond") < 1)
+ goto L_Check_Ruby;
+ @menuitems$[@c] = "A diamond.";
+ @menuid[@c] = 0;
+ @c = @c + 1;
+ goto L_Check_Ruby;
+
+L_Check_Ruby:
+ if (countitem("Ruby") < 1)
+ goto L_Check_Emerald;
+ @menuitems$[@c] = "A ruby.";
+ @menuid[@c] = 1;
+ @c = @c + 1;
+ goto L_Check_Emerald;
+
+L_Check_Emerald:
+ if (countitem("Emerald") < 1)
+ goto L_Check_Sapphire;
+ @menuitems$[@c] = "An emerald.";
+ @menuid[@c] = 2;
+ @c = @c + 1;
+ goto L_Check_Sapphire;
+
+L_Check_Sapphire:
+ if (countitem("Sapphire") < 1)
+ goto L_Check_Topaz;
+ @menuitems$[@c] = "A sapphire.";
+ @menuid[@c] = 3;
+ @c = @c + 1;
+ goto L_Check_Topaz;
+
+L_Check_Topaz:
+ if (countitem("Topaz") < 1)
+ goto L_Check_Amethyst;
+ @menuitems$[@c] = "A topaz.";
+ @menuid[@c] = 4;
+ @c = @c + 1;
+ goto L_Check_Amethyst;
+
+L_Check_Amethyst:
+ if (countitem("Amethyst") < 1)
+ goto L_Choose_Gem;
+ @menuitems$[@c] = "An amethyst.";
+ @menuid[@c] = 5;
+ @c = @c + 1;
+ goto L_Choose_Gem;
+
+L_Choose_Gem:
+ @menuitems$[@c] = "None right now, thanks.";
+ @menuid[@c] = 6;
+ @c = @c + 1;
+ menu
+ @menuitems$[0], L_MenuItems,
+ @menuitems$[1], L_MenuItems,
+ @menuitems$[2], L_MenuItems,
+ @menuitems$[3], L_MenuItems,
+ @menuitems$[4], L_MenuItems,
+ @menuitems$[5], L_MenuItems,
+ @menuitems$[6], L_MenuItems;
+
+L_MenuItems:
+ @menu = @menu - 1;
+ if (@menu >= @c)
+ goto L_close;
+ if (@menuid[@menu] == 0)
+ @gem$ = "Diamond";
+ if (@menuid[@menu] == 1)
+ @gem$ = "Ruby";
+ if (@menuid[@menu] == 2)
+ @gem$ = "Emerald";
+ if (@menuid[@menu] == 3)
+ @gem$ = "Sapphire";
+ if (@menuid[@menu] == 4)
+ @gem$ = "Topaz";
+ if (@menuid[@menu] == 5)
+ @gem$ = "Amethyst";
+ if (@menuid[@menu] == 6)
+ goto L_close;
+
+ getinventorylist;
+ if (countitem(@gem$) < 1)
+ goto L_No_gem;
+ if (@inventorylist_count == 100
+ && countitem(@gem$) > 1)
+ goto L_TooMany;
+ delitem @gem$, 1;
+ if (@gem$ == "Diamond")
+ getitem "DiamondPowder", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "Ruby")
+ getitem "RubyPowder", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "Emerald")
+ getitem "EmeraldPowder", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "Sapphire")
+ getitem "SapphirePowder", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "Topaz")
+ getitem "TopazPowder", @MIN_GEM_AMOUNT + rand(6);
+ if (@gem$ == "Amethyst")
+ getitem "AmethystPowder", @MIN_GEM_AMOUNT + rand(6);
+
+ mes "[Malek]";
+ mes "\"Here's your powder. Hope it's fine enough for you.\"";
+ mes "\"Do you need me to make any more?\"";
+ menu
+ "Yes please.", L_Check_Gems,
+ "No thank you, this is enough.", L_close;
+
+L_TooMany:
+ mes "[Malek]";
+ mes "\"Doesn't look like you've got room for this powder. Come back when you do.\"";
+ goto L_close;
+
+L_No_gem:
+ mes "[Malek]";
+ mes "\"You don't have that gem.\"";
+ goto L_close;
+
+L_close:
+ @inspector = 0;
+ close;
+}