summaryrefslogtreecommitdiff
path: root/npc/020-5/bracco.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/020-5/bracco.txt')
-rw-r--r--npc/020-5/bracco.txt132
1 files changed, 132 insertions, 0 deletions
diff --git a/npc/020-5/bracco.txt b/npc/020-5/bracco.txt
new file mode 100644
index 000000000..31174bdb3
--- /dev/null
+++ b/npc/020-5/bracco.txt
@@ -0,0 +1,132 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// Nivalis shopkeeper & forge master. He deals with the equipment which Nicholas,
+// Silversmith and Nahred doesn't works with.
+
+020-5,31,25,0 script Bracco NPC_M_SHOPKEEPER,{
+ goto L_Start;
+ // 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);
+
+ mesn;
+ mesq l("Do you want to craft @@? For that I will need:", getitemlink(.@prize));
+ mesc l("@@/@@ @@", countitem(.@base1), .@amon1, getitemlink(.@base1));
+ mesc l("@@/@@ @@", countitem(.@base2), .@amon2, getitemlink(.@base2));
+ mesc l("@@/@@ GP", format_number(Zeny), format_number(.@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;
+ Zeny = Zeny - .@price;
+ getitem .@prize, 1;
+ .@xp=getiteminfo(.@base1, ITEMINFO_SELLPRICE)*.@amon1+getiteminfo(.@base2, ITEMINFO_SELLPRICE)*.@amon2;
+ .@xp=.@xp*2/3;
+ getexp .@xp, rand(1,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;
+ }
+
+// Start
+L_Start:
+ mesn;
+ mesq l("Welcome to my fine establishment!");
+ mes "";
+ select
+ l("Trade"),
+ l("I'm actually looking for an item forged!"),
+ l("Leave");
+
+ if (@menu == 2)
+ goto L_Forge;
+
+ closedialog;
+ if (@menu == 1)
+ shop .name$;
+ goodbye;
+ close;
+// Note: the prices are absurd atm, but hey hey, every single one of them are cap items currently
+L_Forge:
+ mesn;
+ mesq l("Well, if you want warrior craft, perhaps you should look for @@ or @@.", l("Nicholas"), l("Nahrec"));
+ mes "";
+ select
+ l("Nothing, sorry!"),
+ l("I want leather armbands!"),
+ l("I want copper armbands!"),
+ l("I want iron armbands!");
+ mes "";
+ switch (@menu) {
+ case 1:
+ close; break;
+ case 2:
+ blacksmith_create(LeatherPatch, 60, TitaniumIngot, 1, Armbands, 4500);
+ break;
+ case 3:
+ blacksmith_create(CopperIngot, 40, Coal, 40, CopperArmbands, 9000);
+ break;
+ case 4:
+ blacksmith_create(IronIngot, 100, Coal, 90, IronArmbands, 15000);
+ break;
+ }
+ goto L_Forge;
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, TneckSweater);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, RaidTrousers);
+ setunitdata(.@npcId, UDT_WEAPON, FurBoots);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 26);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 2);
+
+ tradertype(NST_MARKET);
+ sellitem LeatherShirt, 15000, 1;
+ sellitem LeatherShield, 5000, 1;
+ sellitem ShortBow, 11200, 1;
+ sellitem ArrowAmmoBox,-1,rand(8,12);
+ sellitem IronAmmoBox,-1,rand(3,5);
+
+ npcsit;
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+
+OnWed0000:
+OnThu0400:
+OnFri0800:
+OnSat1200:
+OnSun1600:
+OnMon2000:
+ restoreshopitem LeatherShirt, 15000, 1;
+ restoreshopitem LeatherShield, 5000, 1;
+ restoreshopitem ShortBow, 11200, 1;
+ restoreshopitem ArrowAmmoBox,rand(8,12);
+ restoreshopitem IronAmmoBox,rand(3,5);
+ end;
+
+}