summaryrefslogblamecommitdiff
path: root/world/map/npc/018-2/miners.txt
blob: e29f15f6e6a1d3988f2eba19fd8d2a82865a30b0 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                              
 
                              
 


                                                                          
 
                           
 
                                         
 



                                                                        
                                                              

          



                                                                        
                                                              
                                                                      

                

                                                                                               
                                                                                                                                                                                   
                 

            




                                                                                                                                                                                                               
                                                                     

                 



                                                                                                                                     

                                                                    

             




                                                          
                         

                
                                 



                                      
                      

             
                              



                                   
                         

                
                                 



                                       
                          

                 
                                  



                                       
                       

              
                               



                                    
                          

                 
                                  



                                        
                      

             



                                                   








                                    
                         

                     
                            
                             
                            
                          
                            
                             
                            
                              
                            
                           
                            
                              
                            
                     







                                   
                           
                                                           









                                                            





                                                                 
                                                 

          

                                                                                        
                 

         

                                       
                 
 

                      
          
 
// This NPC makes gem powders out of gemstones
// Authors: Ali-G, enchilado, Jenalya

018-2,85,23,0|script|Malek|109
{
    callfunc "ClearVariables";

    set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);

    set @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:
    set @inspector, 11;
    set 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$, "", "", "", "", "", "", "";
    set @c, 0;
    goto L_Check_Diamond;

L_Check_Diamond:
    if (countitem("Diamond") < 1)
        goto L_Check_Ruby;
    set @menuitems$[@c], "A diamond.";
    set @menuid[@c], 0;
    set @c, @c + 1;
    goto L_Check_Ruby;

L_Check_Ruby:
    if (countitem("Ruby") < 1)
        goto L_Check_Emerald;
    set @menuitems$[@c], "A ruby.";
    set @menuid[@c], 1;
    set @c, @c + 1;
    goto L_Check_Emerald;

L_Check_Emerald:
    if (countitem("Emerald") < 1)
        goto L_Check_Sapphire;
    set @menuitems$[@c], "An emerald.";
    set @menuid[@c], 2;
    set @c, @c + 1;
    goto L_Check_Sapphire;

L_Check_Sapphire:
    if (countitem("Sapphire") < 1)
        goto L_Check_Topaz;
    set @menuitems$[@c], "A sapphire.";
    set @menuid[@c], 3;
    set @c, @c + 1;
    goto L_Check_Topaz;

L_Check_Topaz:
    if (countitem("Topaz") < 1)
        goto L_Check_Amethyst;
    set @menuitems$[@c], "A topaz.";
    set @menuid[@c], 4;
    set @c, @c + 1;
    goto L_Check_Amethyst;

L_Check_Amethyst:
    if (countitem("Amethyst") < 1)
        goto L_Choose_Gem;
    set @menuitems$[@c], "An amethyst.";
    set @menuid[@c], 5;
    set @c, @c + 1;
    goto L_Choose_Gem;

L_Choose_Gem:
    set @menuitems$[@c], "None right now, thanks.";
    set @menuid[@c], 6;
    set @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:
    set @menu, @menu - 1;
    if (@menu >= @c)
        goto L_Close;
    if (@menuid[@menu] == 0)
        set @gem$, "Diamond";
    if (@menuid[@menu] == 1)
        set @gem$, "Ruby";
    if (@menuid[@menu] == 2)
        set @gem$, "Emerald";
    if (@menuid[@menu] == 3)
        set @gem$, "Sapphire";
    if (@menuid[@menu] == 4)
        set @gem$, "Topaz";
    if (@menuid[@menu] == 5)
        set @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:
    set @inspector, 0;
    close;
}