1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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, 50, TitaniumIngot, 1, Armbands, 6500);
break;
case 3:
blacksmith_create(CopperIngot, 30, Coal, 40, CopperArmbands, 11000);
break;
case 4:
blacksmith_create(IronIngot, 90, Coal, 80, IronArmbands, 21000);
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;
}
|