summaryrefslogblamecommitdiff
path: root/npc/017-5/nahrec.txt
blob: b2b3c71e09c7133de429c8e16468a7da09214cc5 (plain) (tree)
1
2
3
4
5
6
7
8
9





                                
                                       
 
                                            
                               


                         
                          
                     
 


                                                                                                                          
 


                                                                          













                                                                               
          
 
 
                      





                                                                                                                                 




                                                   
 


                     


                                                                                                                                                 

                                                                                                            
                                      
                                            
                                          
                                                                                            
                                            



                                                         
               
                 
                                                                                



                                                        
                                                                  



                                                                                           

                  
                 
                                                                                 



                                                         
                                                                




                                                                                           

                  
                                                                               

                  
                                                                                    
                  
               

                                                                                         
               
                           
               


                                                                                     
                      
               
                   
     


                 
 
                  






                                                                                                                

           
 
                       
                           

                                                                                                                                      





                                                                                                                                                                                                                                             
          

                                                
           







                                                      

           
 








                                                                              

                                         
















                                                                                                 
                                         




                                                         
                                                                                      


                                                                                                                                         










                                                            
       
                               











                                                       
// TMW2/LoF scripts.
// Authors:
//    TMW-LoF Team
//    Jesusalva
// Description:
//    General Purpose Blacksmith
//          TODO: Silversmith on 24, 25

017-5,44,24,0	script	Nahrec	NPC_PLAYER,{
    function blacksmith_create;
    function NahrecStory;
    function NahrecMain;
    function NahrecEnd;
    function NahrecSavior;
    function Mylarin;

    mesn;
    mesq l("Almost there! The War Lord will be proud with this new armor I am inventing for him! Just a little more...!");
    next;

    mesn;
    mesq l("Ah, hello! It is good to see another traveler in this town!");
    next;
    select
        l("Really? Where are you from?"),
        l("It's good to see you too, do you happen to be able to make stuff?"),
        l("Alright.");
    mes "";
    if (@menu == 1)
        NahrecStory();
    if (@menu == 2) // Changed by option 1, do not use a switch
        NahrecMain();
    NahrecEnd(); // changed by option 2, do not use a switch

function NahrecEnd {
    closedialog;
    goodbye;
    close;
}

function NahrecStory {
    mesn;
    mesq l("I came from Thermin, a town far far away.");
    next;
    mesn;
    mesq l("I'm an experienced weapon master helping this smithy here, but I am new in this town. I am best at smithing armor.");
    next;
    select
        l("Good to know."),
        l("'Best'? So you can make other things?");
    return;
}

function NahrecMain {
  do
  {
    mesn;
    mesq l("Yes, I can craft many things. In addition to plating and improving armor, I can craft smaller items made of gold and other metals.");
    select
        rif(!RECIPES_EQUIPMENT[CraftGoldenLightPlatemail], l("Can you improve my Light Platemail for me?")),
        rif(!RECIPES_EQUIPMENT[CraftGoldenWarlordPlate], l("Can you improve my Warlord Plate for me?")),
        l("Can you craft Chainmail?"),
        l("Can you craft Light Platemail?"),
        l("Can you craft Warlord Plate?"),
        rif(countitem(MylarinDust) && !NAHREC_RECIPE, l("Can you craft Savior Equipment?")),
        l("Can you craft Chainmail Skirt?"),
        l("Do you know something about 'Mylarin Dust'?"),
        l("Nevermind, bye!");
    mes "";
    switch (@menu) {
        case 1:
            mesn;
            mesq l("For %d GP I'll teach you, do we have a deal?", fnum(30000));
            next;
            if (askyesno() == ASK_YES && Zeny > 30000) {
                mes "";
                Zeny-=30000;
                RECIPES_EQUIPMENT[CraftGoldenLightPlatemail]=true;
                mesn;
                mesc l("Nahrec discretly gives you a recipe.");
                mesc l("\"*psst, just follow what is outlined here to make it golden.*\"");
            }
            break;
        case 2:
            mesn;
            mesq l("For %d GP I'll teach you, do we have a deal?", fnum(200000));
            next;
            if (askyesno() == ASK_YES && Zeny > 200000) {
                mes "";
                Zeny-=200000;
                RECIPES_EQUIPMENT[CraftGoldenWarlordPlate]=true;
                mesn;
                mesc l("Nahrec discretly gives you a recipe.");
                mesc l("\"*psst, just follow what is outlined here to make it golden.*\"");
            }
            break;
            break;
        case 3:
            blacksmith_create(IronIngot, 10, SilverIngot, 2, Chainmail, 20000);
            break;
        case 4:
            blacksmith_create(IronIngot, 15, SilverIngot, 5, LightPlatemail, 40000);
            break;
        case 5:
            blacksmith_create(IronIngot, 5, GoldenLightPlatemail, 1, WarlordPlate, 5000);
            break;
        case 6:
            NahrecSavior();
        case 7:
            blacksmith_create(IronIngot, 10, SilverIngot, 15, ChainmailSkirt, 35000);
            break;
        case 8:
            Mylarin();
        case 9:
            return;
    }
  } while (true);
  return;
}

function Mylarin {
    mesn;
    mesq l("Mylarin dust?! Where would you get that? That's amazing!");
    next;
    mesq l("It has eluded so many craftsmiths, who knows what can be done with that!");
    next;
    mesq l("I can make some stuff with it, but I have no idea where it can be found. Mylarin dust... amazing.");
    next;
    return;
}

function NahrecSavior {
    if (NAHREC_RECIPE) end;
    mesn;
    mesq l("Yes, I can craft Savior Pants. But it is not cheap. I'll need Platinum, Iridium, and Mylarin Dust. And gold. Much gold.");
    next;
    mesn;
    mesq l("But you already have Mylarin Dust! That's good, because I no longer craft savior pieces. But. For %s GP I'll give you a %s and if you're lucky, it'll have the recipe you're after.", fnum(50000), getitemlink(SaviorBlueprint));
    mes "";
    if (Zeny < 50000) return;
    next;
    select
        l("Alright, I'll pay."),
        l("I'm a bit short in cash right now.");
    mes "";
    if (@menu == 2) return;
    inventoryplace SaviorBlueprint, 1;
    Zeny -= 50000;
    NAHREC_RECIPE = true;
    getitem SaviorBlueprint, 1;
    mesn;
    mesq l("Deal. Pleasure doing business with you.");
    next;
    return;
}

// blacksmith_create( BaseItem1, Amount, BaseItem2, Amount, PrizeItem, Price )
function blacksmith_create {
    .@base1=getarg(0);
    .@amon1=getarg(1);
    .@base2=getarg(2);
    .@amon2=getarg(3);
    .@prize=getarg(4);
    .@price=getarg(5);

	.@price=POL_AdjustPrice(.@price);

    mesn;
    mesq l("Do you want to craft @@? For that I will need @@ @@, @@ @@ and @@ gp.",
    getitemlink(.@prize), .@amon1, getitemlink(.@base1), .@amon2, getitemlink(.@base2), .@price);

    select
        l("Yes"),
        l("No");

    if (@menu == 2)
        return;

    if (countitem(.@base1) >= .@amon1 &&
        countitem(.@base2) >= .@amon2 &&
        Zeny >= .@price) {
        inventoryplace .@prize, 1;
        delitem .@base1, .@amon1;
        delitem .@base2, .@amon2;
		POL_PlayerMoney(.@price);
        if (.@prize == WarlordPlate) {
            .@b=any(IOPT_SPLASHDAMAGE, VAR_ITEMDEFPOWER);
            if (.@b == IOPT_SPLASHDAMAGE)
                CsysNpcCraft(.@prize, .@b, 1);
            else
                CsysNpcCraft(.@prize, VAR_ITEMDEFPOWER, rand2(50), VAR_MDEFPOWER, 30);
        } else {
            CsysNpcCraft(.@prize, IOPT_SCRESIST_POISON, 10, IOPT_SCRESIST_SILENCE, 10, IOPT_SCRESIST_BLIND, 10, IOPT_SCRESIST_CURSE, 10);
        }

        mes "";
        mesn;
        mesq l("Many thanks! Come back soon.");
    } else {
        speech S_FIRST_BLANK_LINE,// | S_LAST_NEXT,
                l("You don't have enough material, sorry.");
    }
    return;
}

OnInit:
    .@npcId = getnpcid(.name$);
    setunitdata(.@npcId, UDT_HEADTOP, FancyHat);
    setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate);
    setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
    setunitdata(.@npcId, UDT_WEAPON, SaviorPants);
    setunitdata(.@npcId, UDT_HAIRSTYLE, 2);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 4);

    .sex=G_MALE;
    .distance=5;
    end;

}