// TMW2 scripts. // TMW2 Authors: // Saulc // Jesusalva // Description: // Miner Pylon transforme gems into gem powder, he ask for 100gp + 1 gem and give 100 EXp (each time) + 1 to 3 gem powder's. // Variable: // dont need variable // Reference: // https://fr.wikipedia.org/wiki/Pilon#Objets not Epiphysis ! 007-1,47,44,0 script Pylon NPC_PLAYER,{ mesn; mesq l("Hello, I'm Pylon!"); next; mesq l("I work in this mine since 3 years, I'm an expert on gems: Ruby, Topaz, Sapphire, You know!"); next; mesq l("If you have some gems, I can transform them into powder."); next; mesq l("I only take a tax of 100 gp per gem."); if (Zeny < 100) close; next; mesq lg("Then, would you like me to transform one of your gems?"); next; goto L_Menu; L_Menu: mesn strcharinfo(0); // We could add a drag zone, and allow players to drag their gems, but... Meh. select l("How many gem powders can I get from one gem?"), rif(countitem(Diamond) >= 1 && Zeny >= 100, l("Yeah sure, take my Diamond!")), rif(countitem(Ruby) >= 1 && Zeny >= 100, l("Yeah sure, take my Ruby!")), rif(countitem(Emerald) >= 1 && Zeny >= 100, l("Yeah sure, take my Emerald!")), rif(countitem(Sapphire) >= 1 && Zeny >= 100, l("Yeah sure, take my Sapphire!")), rif(countitem(Topaz) >= 1 && Zeny >= 100, l("Yeah sure, take my Topaz!")), rif(countitem(Amethyst) >= 1 && Zeny >= 100, l("Yeah sure, take my Amethyst!")), rif(countitem(IronOre) >= 1 && Zeny >= 100, l("And what about Iron Ore?")), rif(countitem(SunnyCrystal) >= 1 && Zeny >= 1000, l("And what about Sunny Crystals?")), l("No, thanks, I will keep my gems."); mes ""; switch (@menu) { case 1: goto L_Question; break; case 8: goto L_Ore; break; case 9: goto L_Savior; break; case 10: close; break; default: goto L_Powder; break; } L_Question: mesn; mesq lg("That depends on your luck!"); next; mesq l("With one gem you can expect to get 2 to 4 powders!"); next; mesq lg("By the way would you like to transform your gem?"); next; goto L_Menu; L_Ore: mesn; mesq l("Hum... I'm not really good at it."); next; mesn; mesq l("But I can try my best for you!"); next; mesn; mesq l("If you want it?"); next; goto L_MenuOre; L_MenuOre: menu rif(countitem(IronOre) >= 1 && Zeny >= 100, l("Make me some Iron Powder.")), L_OreOk, l("Nah, thank you."), L_Close; L_OreOk: // Amount iron ore .@amo=rand2(2,3); inventoryplace IronPowder, .@amo, SulfurPowder, 1; delitem IronOre, 1; Zeny = Zeny - 100; getexp 10, 0; getitem IronPowder, .@amo; if (!(rand2(BaseLevel)/5)) getitem SulfurPowder, 1; mes ""; mesn; mesq l("Here you go, I tried my best! Do you want more?"); next; goto L_MenuOre; // Must rework IDs L_Powder: // Magic .@id=Diamond+@menu-2; .@pw=DiamondPowder+@menu-2; // Amount .@am=rand2(2,4); inventoryplace .@pw, .@am; // Del items and EXP delitem .@id, 1; Zeny = Zeny - 100; getexp 60, 0; // Get items getitem .@pw, .@am; if (!(rand2(BaseLevel)/2)) getitem SulfurPowder, 1; mes ""; mesn; mesq l("Here is your powder! I hope it will be useful."); next; mesq l("Would you like to transform some more?"); next; goto L_Menu; L_Savior: // FIXME This is a dirty hack. TODO There should be no such checks if (checkbound(SunnyCrystal)) { mesn; mesc l("Not every @@ with you belongs to you.", getitemlink(SunnyCrystal)), 1; close; } mesn; mesq l("I can make @@ from @@, but this costs @@ GP.", getitemlink(MylarinDust), getitemlink(SunnyCrystal), 1000); next; mesn; mesc l("WARNING, THIS IS A RARE ITEM AND THIS OPERATION CANNOT BE REVERTED!!"); next; mesn; mesc l("Are you sure you want to smash it?"), 1; next; if (askyesno() == ASK_YES) { Zeny-=1000; delitem SunnyCrystal, 1; getitem MylarinDust, 3; mesc l("SMASH! And it is now only dust..."), 3; next; } goto L_Menu; L_Close: close; OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, MinerHat); setunitdata(.@npcId, UDT_HEADMIDDLE, ArtisTankTop); setunitdata(.@npcId, UDT_HEADBOTTOM, BromenalPants); setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); setunitdata(.@npcId, UDT_HAIRSTYLE, 15); setunitdata(.@npcId, UDT_HAIRCOLOR, 4); .sex = G_MALE; .distance = 4; end; }