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
|
// TMW2 Script
// Author:
// Jesusalva
// Description:
// Sells and crafts jewels
//
// Notes:
// Gold/Silver/Bronze Ore (dropped by bifs) → Pieces or Ingot, depends on what you want to forge
// Jeweler only works with Gold/Silver/Bronze PIECES. The Ingots are for forges.
// Jeweler can also polish raw gemstones for a comission ($$$)
// Polished gemstones can be inserted on rings.
// The most precious the ring, heavier. All three rings can be swapped by a
// more powerful ring. Still pending discussion.
003-5,33,37,0 script Jeweler NPC_FEMALE,{
mesn;
mesq l("Hello!");
goto L_Menu;
L_Menu:
mes "";
mesn strcharinfo(0);
menu
l("I want to shop."), -,
l("I want to craft rings."), L_Craft,
rif(countitem(GoldenRing) >= 1 && is_admin(), l("I want to create polished gemstones.")), L_Gemstone,
l("Nothing, sorry."), L_Close;
openshop;
closedialog;
close;
L_Craft:
mes "";
mesn;
mesq l("Of course, you can trade 5 @@, with 12000 GP, for a @@.", getitemlink(GoldPieces), getitemlink(GoldenRing));
next;
menu
rif(countitem(GoldPieces) >= 5 && Zeny >= 12000, l("Yes, deal. Gimme the ring.")), -,
l("...I'll be back later."), L_Close;
inventoryplace GoldenRing, 1;
delitem GoldPieces, 5;
Zeny=Zeny-12000;
getitem GoldenRing, 1;
getexp 100, 25;
mes "";
mesn;
mesq l("Here you go! Anything else?");
next;
goto L_Menu;
L_Gemstone:
mes "";
mesn;
mesq l("Polished gemstones can be dragged and insert on rings. They'll give special stats to rings, but these gems cannot be removed easily.");
mesq l("I charge a service fee of 2000 GP, and two gemstones.");
next;
if (Zeny < 2000) {
mesn;
mesq lg("You clearly don't have money, so let's not bother with that right now.");
next;
goto L_Menu;
}
select
l("Not today, sorry."),
rif(countitem(Diamond) >= 2 , l("Diamond (+2 vit)")),
rif(countitem(Ruby) >= 2 , l("Ruby (+2 str)")),
rif(countitem(Amethyst) >= 2, l("Amethyst (+2 dex)")),
rif(countitem(Sapphire) >= 2, l("Sapphire (+2 int)")),
rif(countitem(Topaz) >= 2 , l("Topaz (+2 agi)")),
rif(countitem(Emerald) >= 2 , l("Emerald (+2 luck)"));
mes "";
if (@menu == 1)
goto L_Menu;
// As usual, I don't care with cheaters, so if you somehow cheat money or gemstones, YOU WILL LOSE ALL REAGENTS. No refunds.
inventoryplace PolishedDiamond-2+@menu;
delitem Diamond-2+@menu, 2;
Zeny=Zeny-2000;
getitem PolishedDiamond-2+@menu, 1;
getexp 800, 0;
goto L_Menu;
/* TODO Special rings
L_Pearl:
inventoryplace GoldenPearlRing;
delitem GoldenRing, 1;
Zeny=Zeny-1000;
delitem Pearl, 3;
getitem GoldenPearlRing, 1;
getexp 1000, 0;
goto L_Menu;
L_BlackPearl:
inventoryplace GoldenBlackPearlRing;
delitem GoldenRing, 1;
Zeny=Zeny-1000;
delitem BlackPearl, 1;
getitem GoldenBlackPearlRing, 1;
getexp 1000, 0;
goto L_Menu;
*/
L_Close:
closedialog;
goodbye;
end;
OnInit:
.@npcId = getnpcid(0, .name$);
setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
setunitdata(.@npcId, UDT_HEADMIDDLE, VneckJumper);
setunitdata(.@npcId, UDT_HEADBOTTOM, RaidTrousers);
setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); // Boots
setunitdata(.@npcId, UDT_HAIRSTYLE, 3);
setunitdata(.@npcId, UDT_HAIRCOLOR, 8);
npcsit;
.sex = G_FEMALE;
.distance = 5;
tradertype(NST_ZENY);
sellitem WeddingRing, 5000;
end;
}
|