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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
// TMW2 Script
// Author:
// Saulc
// Vasily_Makarov (original from Evol)
// Jesusalva
// Description:
// Hurnscald Potion Shopkeeper
// Notes:
// Reset must be turned in function
012-4,29,28,0 script Wyara NPC_FEMALE,{
speech S_LAST_NEXT,
l("I am @@, an alchemist specialized in reset potions.", .name$);
L_Menu:
.@plush_count = BaseLevel*210-(10*210);
// Lv 10: 210 GP
// Lv 90: 1.867 GP
if (BaseLevel > 10)
.@plush_count = .@plush_count/(BaseLevel/10);
.@n=getq(General_Narrator);
select
l("Can you reset my stats please?"),
rif($ARKIM_ST >= 1200,l("I want Piberries Infusion!")),
rif(getq(HurnscaldQuest_InjuriedMouboo) == 2,l("Do you know how to break curses?")),
rif(.@n >= 6,l("I am in dire need of Return Potions!")),
lg("You are weird, I have to go sorry.");
mes "";
switch (@menu) {
case 1:
goto L_ResetStats;
case 2:
goto L_Piberries;
case 3:
goto L_Uncurse;
case 4:
goto L_ReturnPot;
case 5:
goto L_Quit;
}
L_ResetStats:
mesn;
mesq l("Status point reset can't be undone. Do you really want this?");
L_ConfirmReset:
ConfirmStatusReset();
goto L_Quit;
L_Piberries:
mesn;
mesq l("For (another) one @@, I'll need 3~4 @@ and 50 GP.", getitemlink(PiberriesInfusion), getitemlink(Piberries));
next;
select
rif(Zeny >= 50 && countitem(Piberries) >= 4, l("Do it!")),
l("Not now, sorry.");
if (@menu == 2)
goto L_Quit;
mes "";
inventoryplace PiberriesInfusion, 1;
Zeny=Zeny-50;
delitem Piberries, rand(3,4);
getitem PiberriesInfusion, 1;
getexp 10, 0;
goto L_Piberries;
L_Uncurse:
mesn;
mesq l("Well, it depends on the curse. Some are easy to break, and others are... well...");
next;
select
l("It's a simple curse."),
l("It's a complex curse."),
l("It's a cursed mouboo.");
mes "";
mesn;
switch (@menu) {
case 1:
mesq l("Then you should look in buying Caffeinne. Curse is a status ailment which reduces your attack, nullifies your luck and makes you a snail. Simple Curses can be cured with time, too.");
break;
case 2:
mesq l("Oh, then you should seek the help of an specialist. These curses have an specific condition to break, like leveling up or being killed. Force-breaking them can be difficult.");
break;
case 3:
mesq l("A... Mouboo? Well, I know who can handle curses on cute Mouboos.");
next;
mesn;
mesq l("Go talk to Sagratha, she is usually in a hut in northen forest. The door have a magic barrier, so you'll need to have minimal magic skills to get close enough to open it.");
next;
mesn;
mesq l("She doesn't likes @@s, only cute animals. She doesn't likes Ghosts, Undeads, and Shadow monsters either.", get_race());
next;
mesn;
mesq l("So, when you get on the door, knock it, and say this: \"@@\". She will open the door for you.", b(l("Mouboos are cute")));
compareandsetq HurnscaldQuest_Sagratha, 0, 1;
break;
}
close;
L_ReturnPot:
.@price=7000-(reputation("Hurns")*20);
.@craft=2001-(reputation("Hurns")*20);
.@ammon=5+(reputation("Hurns")/30);
mesn;
mesq l("I understand. Rakinorf told me to stuff you with them if needed.");
next;
mesn;
mesq l("Be aware I can only bake batches of @@ potions.", .@ammon);
next;
mesn;
mesq l("So, it is @@ GP each one up-front. Or I can brew with your materials:", .@price);
mes "";
mesn l("Craft Recipe");
mesc l("- @@/@@ @@", countitem(MauveHerb), 80, getitemlink(MauveHerb));
mesc l("- @@/@@ @@", countitem(MushroomSpores), 15, getitemlink(MushroomSpores));
mesc l("- @@/@@ @@", countitem(Potatoz), 7, getitemlink(Potatoz));
mesc l("- @@/@@ @@", countitem(Coral), 5, getitemlink(Coral));
mesc l("- @@/@@ @@", countitem(EverburnPowder), 1, getitemlink(EverburnPowder));
mesc l("- @@/@@ GP", format_number(.@craft), format_number(Zeny));
next;
select
l("Too expensive %%n"),
rif(Zeny >= .@price, l("I want to pay the full price.")),
l("I want you to brew some for me.");
mes "";
switch (@menu) {
case 1:
close;
case 2:
mesc l("How many? Max. @@", (Zeny/.@price));
input .@c, 0, (Zeny/.@price);
.@payment=.@price*.@c;
if (Zeny >= .@payment) {
inventoryplace ReturnPotion, .@c*.@ammon;
Zeny-=.@payment;
getitem ReturnPotion, .@c*.@ammon;
mesn;
mesq l("There you go!");
} else {
Exception("Illegal input.", RB_DEFAULT | RB_SPEECH);
}
break;
case 3:
mesc l("How many?");
input .@c, 0, 100;
inventoryplace ReturnPotion, .@c*.@ammon;
if (
countitem(MauveHerb) < 80*.@c ||
countitem(MushroomSpores) < 15*.@c ||
countitem(Potatoz) < 7*.@c ||
countitem(Coral) < 5*.@c ||
countitem(EverburnPowder) < 1*.@c ||
Zeny < .@craft*.@c
) Exception("You don't have that much material.", RB_ISFATAL|RB_SPEECH);
delitem MauveHerb, 80*.@c;
delitem MushroomSpores, 15*.@c;
delitem Potatoz, 7*.@c;
delitem Coral, 5*.@c;
delitem EverburnPowder, 1*.@c;
Zeny-=.@craft*.@c;
getitem ReturnPotion, .@c*.@ammon;
mesn;
mesq l("There you go!");
break;
}
close;
L_Quit:
goodbye;
close;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, FancyHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, SailorShirt);
setunitdata(.@npcId, UDT_HEADBOTTOM, BromenalPants);
setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); // Boots
setunitdata(.@npcId, UDT_HAIRSTYLE, 8);
setunitdata(.@npcId, UDT_HAIRCOLOR, 18);
.sex = G_FEMALE;
.distance = 4;
end;
}
|