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


                                 
                                             
 














                                                                                      

                                                                      
                                              

                    
                                                                      
          

                
                    
                                                                      
         
                                                                                                                                                                                                                                                                  
         
                                                                                                                                                                                                                                                            

                                           
                                                                                          
                                                                               

               

                          
                    
                                                                                                                                                                                       
          

             
                    
                                                                                                                     
          

                     
                    
                                                                                        
         
                                                                                     



                                                                         
                                                 
                                                           
 

                                                           
                     

                          
                       

                                
                    
                                                                                                                                           
         
                                                                                                
          
 
                     
                    
                                                                                                                                                                   
         
                                                                                                                                                        


                                                                        
 
                       
                    
                                                                                                                                                                                       
          

                         




                                                                                            
                                                                                                                                                       
         
                                                                                                                                                           
         
                                                                                                                                                                                                        


                                                        
                                                              
                                                                

                       
                    
                                                          
          

                        

                          




                                                                                                                              
                                                                                                 
         
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
          

                               
                       

                                             
                                               

                          

                               

                                


                                                                                                    

                              
                    
                                                                                                                                                          
          

                               


                                                                                  

                          

                                 
                                                                                                                                                                                      
          

                         

                          
                    
                                                                                                                                                                                                                                                                             
         
                                                                                                                                                                                    
          

                               
                       

                                             
                                               

                          

                               

                                


                                                                                                                        

                              
                    
                                                                                                                                                            
          

                               


                                                                                

                          

                               
                                                                                                                                                                                         
          
 
                                

                          
                    
                                                                                                                                                                                                                                                                                                       
         
                                                                                                                                                                                          
          

                                      
                       

                                             
                                                      

                          

                               

                                


                                                                                                                               

                                     
                    
                                                                                                                                                       
          

                                      


                                                                                      

                          

                                     
                                                                                                                                                                                                     
          

                           
                    
                                                                                                                                                                                                                                                                                                                                                       
         
                                                                                                                                                                                                                                         


                                                                         

                              


                                                                     

                               

                          
                    
                                                                                                                                                                                                                                                                                                                                                                                                                  


                            

                                 
                                

                                                                
                                                 

                          

                                                  
                                
                                    
                    
                                                                                                         
          

                                


                                                                                                                                                                 

                                 


                                                                                    

                          
                                   
                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
          

                                 
                    
                                                                                                                                                                                                                              


                                                     

                                    


                                                                         

                                     
                                

                                                                
                                                       


                                                                                    

                                                  
                                    




                                                                                                                                                 

                                      
                    
                                                                                                                                                                                                                                                                 
          





                                                                                   


                                                                                                     
 
                                     



















                                                                                                
//Items for NPC are incomplete. Makes "simple ring" which can be crafted into a useful ring by Inya and terranite armor.

001-2,23,55,0|script|Heathin|147
{
    set @TARROW_REQ_TERRA_ORE, 1;
    set @TARROW_REQ_COAL, 5;
    set @TARROW_REQ_GP, 3000;
    set @heathin_xp_bonus, (100 * BaseLevel);

    set @state, ((QUEST_NorthTulimshar & NIBBLE_6_MASK) >> NIBBLE_6_SHIFT);

    if (@state == 14) && (BaseLevel >= 80) goto L_Heathin_Terranite_Arrows_Trade;
    if (@state == 13) && (BaseLevel >= 80) goto L_Heathin_Terranite_Arrows_Ready;
    if (@state == 12) && (BaseLevel >= 80) goto L_Heathin_Terranite_Arrows_Forge;
    if (@state == 11) && (BaseLevel >= 80) goto L_Heathin_Terranite_Arrows;
    if (@state == 10) && (BaseLevel >= 80) goto L_Heathin_Terranite_Chest_Armor_Ready;
    if (@state == 9) && (BaseLevel >= 80) goto L_Heathin_Terranite_Chest_Armor_Forge;
    if (@state == 8) && (BaseLevel >= 80) goto L_Heathin_Terranite_Chest_Armor;
    if (@state == 7) && (BaseLevel >= 80) goto L_Heathin_Terranite_Legs_Ready;
    if (@state == 6) && (BaseLevel >= 80) goto L_Heathin_Terranite_Legs_Forge;
    if (@state == 5) && (BaseLevel >= 80) goto L_Heathin_Terranite_Legs;
    if (@state == 4) && (BaseLevel >= 80) goto L_Heathin_Terranite_Hood_Ready;
    if (@state == 3) && (BaseLevel >= 80) goto L_Heathin_Terranite_Hood_Forge;
    if (@state == 2) && (BaseLevel >= 80) goto L_Heathin_Terranite_Hood;
    if (@state == 2) && (BaseLevel >= 60) goto L_Heathin_Forge_Thanks;
    if (@state == 1) && (BaseLevel >= 60) goto L_Heathin_Forge_Award;
    if (BaseLevel >= 60) goto L_Heathin_Start;

    mes "[Heathin]";
    mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \"";
    close;

L_Heathin_Start:
    mes "[Heathin]";
    mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \"";
    next;
    mes "\"By the order of the Wizard's Council, I've been commissioned to forge armor for the upcoming expediation. However, I am but a simple smith and cannot complete all this effort by myself. I need individuals that can gather Coal to heat my forge.\"";
    next;
    mes "\"Perhaps you would be interested in helping me out?  Would you be willing to help me gather Coal and help me fulfill my commission?  I am asking any and all willing souls to get me 50 coal, as that would put a significant dint in my goal.\"";
    menu
        "Sure, I'll help!", L_Heathin_Help,
        "I'd rather keep my Coal for my own purposes, thank you very much.", L_Heathin_No,
        "Wait, what kind of award are we talking about?", L_Heathin_Interested;

L_Heathin_Help:
    set @state, 1;
    callsub S_Update_Mask;
    mes "[Heathin]";
    mes "\"Excellent!  I am always glad when someone can be of service not just to me, but to all of Tulimshar. Please get me 50 Coal and you will be compensated for your efforts.\"";
    close;

L_Heathin_No:
    mes "[Heathin]";
    mes "\"That is too bad. If you change your mind, I shall still be here, attempting to get my commission done.\"";
    close;

L_Heathin_Interested:
    mes "[Heathin]";
    mes "\"Well, I can compensate you from the commision I getting from the council.\"";
    next;
    mes "\"How does 20,000 GP and I'll offer my smithing services for a discount?\"";
    next;
    mes "\"Does this sound like something you might be interested in?\"";
    menu
        "Sure, I'll help!", L_Heathin_Help,
        "I'd rather keep my Coal.", L_Heathin_No,
        "Can you repeat that again?", L_Heathin_Interested;

L_Heathin_Forge_Award:
    if (countitem ("Coal") < 50) goto L_Heathin_Forge_Wait;
    getinventorylist;
    set @state, 2;
    callsub S_Update_Mask;
    delitem "Coal", 50;
    getexp @heathin_xp_bonus, 0;
    set Zeny, Zeny + 20000;
    mes "[Heathin]";
    mes "\"You have brought the Coal. This is most excellent!  As promised, I have a reward for you. Hopefully you will find it useful.\"";
    next;
    mes "\"Time to make some armor. The Council will be pleased. Thank you for your efforts!\"";
    close;

L_Heathin_Forge_Wait:
    mes "[Heathin]";
    mes "\"Hello again. Making armor keeps me pretty busy. I certainly hope I can fulfill my commission soon so that I can move on to bigger and better things.\"";
    next;
    mes "\"The pay is good, certainly, but I am a far better smith than this. If you can bring me 50 Coal, it would surely get me to my goal faster.\"";
    next;
    mes "\"I will be sure to provide an apt award once you are done.\"";
    close;

L_Heathin_Forge_Thanks:
    mes "[Heathin]";
    mes "\"Thank you again for helping me fulfil my commission. It has made a signficant dint in what the Council requires of me. Perhaps I may be of service to you again one day!\"";
    close;

L_Heathin_Terranite_Hood:
    mes "[Heathin]";
    mes "\"Hello again friend, I just found out about this great metal called terranite.\"";
    next;
    mes "\"This metal is almost as strong as steel, but is also very ductile.\"";
    next;
    mes "\"With some effort, I can make this metal form rings tighter than any chain mail. It isn't the prettiest in hue, but its uses can be many.\"";
    next;
    mes "\"Unfortunately, it seems to be difficult to gather. Most that have searched for Terranite Ore either cannot find it or have never returned...\"";
    next;
    mes "\"I may be an excellent smith, but I certainly am no combatant. However, I would enjoy turning this ore into something useful, perhaps some type of armor to help those that may be braver.\"";
    next;
    mes "\"So, what do you say?  Are you interested?\"";
    menu
        "No, thank you. Maybe later.", L_Heathin_Terranite_No,
        "Armor, you say?  Definitely!", L_Heathin_Terranite_Yes;

L_Heathin_Terranite_No:
    mes "[Heathin]";
    mes "\"Ah, that is too bad. Come by again anytime.\"";
    close;

L_Heathin_Terranite_Yes:
    set @state, 3;
    callsub S_Update_Mask;
    mes "[Heathin]";
    mes "\"Great, this is going to be fun!  As I have not had much practice with this armor, I'd like to get started soon.\"";
    next;
    mes "Heathin thinks for a moment.";
    next;
    mes "\"Ah, I know!  I will make a helm... Well, more like a hood, since it will be woven.\"";
    next;
    mes "\"It will require a great amount of heat, if the rumors are to be believed. For this, I will need 100 Coal to keep my forge burning hot. I will also need 10 Terranite Ore to make the armor. Of course, such work does not come cheap. While I may enjoy my work, my time and effort is very valuable. Since you have been a great help I will only need 20,000 gold pieces, well below my going rate. Please come back with the gold, Coal and ore and I'll make this hood for you.\"";
    close;

L_Heathin_Terranite_Hood_Forge:
    if ( (Zeny < 20000)
        || (countitem("Coal") < 100)
        || (countitem("TerraniteOre") < 10) )
            goto L_Heathin_Terranite_Hood_Wait;
    set @state, 4;
    callsub S_Update_Mask;
    delitem "Coal", 100;
    delitem "TerraniteOre", 10;
    getexp @heathin_xp_bonus, 0;
    set Zeny, Zeny - 20000;
    mes "[Heathin]";
    mes "\"Great, you brought everything!  Come back later and I'll have the helm ready for you.\"";
    close;

L_Heathin_Terranite_Hood_Wait:
    mes "[Heathin]";
    mes "\"I am very busy right now. If you could bring me 10 Terranite Ore, 100 Coal and 20,000 gold pieces, I will make that terranite hood for you.\"";
    close;

L_Heathin_Terranite_Hood_Ready:
    getinventorylist;
    if ((checkweight("TerraniteHelmet", 1) == 0) || (@inventorylist_count == 100))
        goto L_InventoryNoSpace;
    set @state, 5;
    callsub S_Update_Mask;
    getitem "TerraniteHelmet", 1;
    mes "[Heathin]";
    mes "\"I am all done with your terranite hood. I hope you enjoy it!  I have some work to wrap up for the Council, but come back later and I might be able to assist you again.\"";
    close;

L_Heathin_Terranite_Legs:
    set @state, 6;
    callsub S_Update_Mask;
    mes "[Heathin]";
    mes "\"I am glad you are back!  I've just finished up some more of my commission. Now I can get back to making terranite armor for you. This time I will make some pants, but they need more ore, more Coal to heat my forge and of course, more gold for my efforts.\"";
    next;
    mes "\"To make terranite pants, I need 200 Coal, 30 Terranite Ore and 40,000 gold pieces. The faster you bring this to me, the faster I can have your terranite pants ready.\"";
    close;

L_Heathin_Terranite_Legs_Forge:
    if ( (Zeny < 40000)
        || (countitem("Coal") < 200)
        || (countitem("TerraniteOre") < 30) )
            goto L_Heathin_Terranite_Legs_Wait;
    set @state, 7;
    callsub S_Update_Mask;
    delitem "Coal", 200;
    delitem "TerraniteOre", 30;
    getexp @heathin_xp_bonus, 0;
    set Zeny, Zeny - 40000;
    mes "[Heathin]";
    mes "\"Great, you have brought everything!  Come back later and I will have those terranite pants ready for you.\"";
    close;

L_Heathin_Terranite_Legs_Wait:
    mes "[Heathin]";
    mes "\"I am very busy right now. If you could bring me 30 Terranite Ore, 200 Coal and 40,000 gold pieces, I will make those terranite pants for you.\"";
    close;

L_Heathin_Terranite_Legs_Ready:
    getinventorylist;
    if ((checkweight("TerraniteLegs", 1) == 0) || (@inventorylist_count == 100))
        goto L_InventoryNoSpace;
    set @state, 8;
    callsub S_Update_Mask;
    getitem "TerraniteLegs", 1;
    mes "[Heathin]";
    mes "\"I am all done with your terranite pants. Hope you enjoy them!  I have some more work to complete for the Council. Come back later and I might be able to assist you again.\"";
    close;

L_Heathin_Terranite_Chest_Armor:
    set @state, 9;
    callsub S_Update_Mask;
    mes "[Heathin]";
    mes "\"Good to see you again. I have just finished up some more of my commission. Now I can get back to making terranite armor for you. This time, I will make some terranite chest armor, but it needs more ore, more Coal for my forge and of course, more gold to compensate for my efforts.\"";
    next;
    mes "\"To make terranite chest armor, I need 250 Coal, 40 Terranite Ore and 50,000 gold pieces. The faster you bring this to me, the faster I can have your terranite armor ready.\"";
    close;

L_Heathin_Terranite_Chest_Armor_Forge:
    if ( (Zeny < 50000)
        || (countitem("Coal") < 250)
        || (countitem("TerraniteOre") < 40) )
            goto L_Heathin_Terranite_Chest_Armor_Wait;
    set @state, 10;
    callsub S_Update_Mask;
    delitem "Coal", 250;
    delitem "TerraniteOre", 40;
    getexp @heathin_xp_bonus, 0;
    set Zeny, Zeny - 50000;
    mes "[Heathin]";
    mes "\"Splendid, you have brought everything!  Come back later and I will have the terranite chest armor ready for you.\"";
    close;

L_Heathin_Terranite_Chest_Armor_Wait:
    mes "[Heathin]";
    mes "\"I am very busy right now. If you could bring me 40 Terranite Ore, 250 Coal and 50,000 gold pieces, I will make that chest armor for you.\"";
    close;

L_Heathin_Terranite_Chest_Armor_Ready:
    getinventorylist;
    if ((checkweight("TerraniteChestArmor", 1) == 0) || (@inventorylist_count == 100))
        goto L_InventoryNoSpace;
    set @state, 11;
    callsub S_Update_Mask;
    getitem "TerraniteChestArmor", 1;
    mes "[Heathin]";
    mes "\"I have completed your terranite chest armor. I hope you enjoy it!  I have some work to wrap up for the Council again, but come back later and I might be able to assist you once more.\"";
    close;

L_Heathin_Terranite_Arrows:
    mes "[Heathin]";
    mes "\"How good to see you. I have experimented a little with Terranite Ore to see what else can be done with it. It seems to have some qualities suitable for weapons, but I have only tested it with arrows. If you would like, I can make Terranite Arrows, but as as with the armor, I need Coal, Terranite Ore and payment for my efforts.\"";
    next;
    mes "\"Also, it might be a while until I have time to see what else I can make with terranite other than arrows, as right now the Council is keeping me rather busy with my commission. So, would you like some Terranite Arrows?\"";
    menu
        "No, thank you.", L_Heathin_Terranite_Arrows_No,
        "Sure, I could use some arrows.", L_Heathin_Terranite_Arrows_Yes;

L_Heathin_Terranite_Arrows_No:
    mes "[Heathin]";
    mes "\"Well, if you change your mind, I'm not going anywhere.\"";
    close;

L_Heathin_Terranite_Arrows_Yes:
    set @state, 12;
    callsub S_Update_Mask;
    mes "[Heathin]";
    mes "\"Good, good. I shall begin crafting these arrows as soon as you come back. However, I cannot just make small handfuls as it would not be worth my time and effort to have my concentration interrupted for small tasks. I will make 1,000 Terranite Arrows per request, for which I will need "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\"";
    next;
    mes "\"See you soon!\"";
    close;

L_Heathin_Terranite_Arrows_Forge:
    if ( (Zeny < @TARROW_REQ_GP)
        || (countitem("Coal") < @TARROW_REQ_COAL)
        || (countitem("TerraniteOre") < @TARROW_REQ_TERRA_ORE) )
            goto L_Heathin_Terranite_Arrows_Wait;
    set @state, 13;
    callsub S_Update_Mask;
    delitem "Coal", @TARROW_REQ_COAL;
    delitem "TerraniteOre", @TARROW_REQ_TERRA_ORE;
    getexp @heathin_xp_bonus, 0;
    set Zeny, Zeny - @TARROW_REQ_GP;
    mes "[Heathin]";
    mes "\"Wonderful! You have everything I asked for. I will start working on the arrows right away.\"";
    close;

L_Heathin_Terranite_Arrows_Wait:
    mes "[Heathin]";
    mes "\"If you want Terranite Arrows, please get me "+@TARROW_REQ_TERRA_ORE+" Terranite Ore, "+@TARROW_REQ_COAL+" Coal and "+@TARROW_REQ_GP+" gold pieces.\"";
    close;

L_Heathin_Terranite_Arrows_Ready:
    getinventorylist;
    if ((checkweight("TerraniteArrow", 1000) == 0) || (@inventorylist_count == 100))
        goto L_InventoryNoSpace;
    set @state, 14;
    callsub S_Update_Mask;
    getitem "TerraniteArrow", 1000;
    mes "[Heathin]";
    mes "\"All done, here you go!  I hope you like them. I am still working on my commission, but if you ever need any more Terranite Arrows, just come on by with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces and I will make another 1,000 arrows for you. By now I have enough Terranite Ore in reserve that you can just trade me my requirements to keep my resources up. Thank you for all your efforts!\"";
    close;

L_Heathin_Terranite_Arrows_Trade:
    mes "[Heathin]";
    mes "\"Hello, there. If you have "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces, I will trade you 1,000 Terranite Arrows. Would you like some Terranite Arrows?\"";
    menu
        "No.", L_Heathin_Terranite_Arrows_Trade_No,
        "Yes.", L_Heathin_Terranite_Arrows_Trade_Yes;

L_Heathin_Terranite_Arrows_Trade_No:
    mes "[Heathin]";
    mes "\"Come back again if you would like to get Terranite Arrows.\"";
    close;

L_Heathin_Terranite_Arrows_Trade_Yes:
    if ( (Zeny < @TARROW_REQ_GP)
        || (countitem("Coal") < @TARROW_REQ_COAL)
        || (countitem("TerraniteOre") < @TARROW_REQ_TERRA_ORE) )
            goto L_Heathin_Terranite_Arrows_Trade_Wait;
    getinventorylist;
    if ((checkweight("TerraniteArrow", 1500) == 0) || (@inventorylist_count == 100))
        goto L_InventoryNoSpace;
    delitem "Coal", @TARROW_REQ_COAL;
    delitem "TerraniteOre", @TARROW_REQ_TERRA_ORE;
    set Zeny, Zeny - @TARROW_REQ_GP;
    set @lucky, 5 * rand(readparam(bLuk));
    getitem "TerraniteArrow", 1000 + @lucky;
    mes "[Heathin]";
    mes "\"Here you go! You are lucky, I could forge "+@lucky+" more arrows than expected. Come back again if you want more Terranite Arrows.\"";
    close;

L_Heathin_Terranite_Arrows_Trade_Wait:
    mes "[Heathin]";
    mes "\"It seems that you do not have the necessary resources for me to trade you. Please come back with "+@TARROW_REQ_COAL+" Coal, "+@TARROW_REQ_TERRA_ORE+" Terranite Ore and "+@TARROW_REQ_GP+" gold pieces if you want another 1,000 Terranite Arrows.\"";
    close;

L_InventoryNoSpace:
    mes "[Heathin]";
    mes "\"Hm no. You can't carry this right now. Make some room and come back.\"";
    close;

S_Update_Mask:
    set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(NIBBLE_6_MASK)) | (@state << NIBBLE_6_SHIFT);
    return;
}
001-2,25,55,0|script|HeathinDebug|147
{
    mes "[Heathin Debug]";
    mes "Debug Action";
    menu
        "Reset", L_Reset,
        "Exit", L_End;

L_Reset:
    set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(NIBBLE_6_MASK) | (0 << NIBBLE_6_SHIFT));
    mes "Reset!";
    goto L_End;

L_End:
    end;

OnInit:
    if (!debug)
        disablenpc "HeathinDebug";
    end;
}