// 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(@nahrec_mylarin_query, 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(); break; 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 savior equipment with it, but I have no idea where it can be found. Mylarin dust... amazing."); next; @nahrec_mylarin_query = true; return; } function NahrecSavior { if (NAHREC_RECIPE) { mesn; mesq l("Like I have said, I no longer craft savior pieces and I have no more blueprints for sale."); next; return; } if (BaseLevel < 100 || !REBIRTH) { mesn; mesq l("Savior equipment is for level 100+ players. Get your expectations back to reality, alright?"); next; return; } if (!countitem(MylarinDust)) { mesn; mesq l("You need %s for this, so don't waste your breath.", getitemlink(MylarinDust)); next; return; } 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; }