summaryrefslogtreecommitdiff
path: root/npc/events/RWC_2012.txt
blob: 2096a3ff44017a179b53839b650e092f7b7fa0d0 (plain) (blame)
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
//================= Hercules Script =======================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2020 Hercules Dev Team
//= Copyright (C) Euphy
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= 1.0
//================= Description ===========================================
//= Adds slots and enchantments to 2012 RWC Memory accessories.
//================= Current Version =======================================
//= 1.4
//=========================================================================

prontera,147,61,3	script	Driller#pron	4_M_BARBER,{
	disable_items;
	if (checkweight(Knife,1) == 0) {
		mes "You're carrying too many items in your inventory. Visit Kafra storage and try again.";
		close;
	}
	if (MaxWeight - Weight < 10000) {
		mes "You cannot proceed because you're overweight.";
		close;
	}
	.@part = EQI_ACC_L;
	if (!getequipisequiped(.@part)) {
		mes "[Driller]";
		mes "My job is to drill a card slot into RWC Memorial accessories.";
		next;
		mes "[Driller]";
		mes "I'm sorry but you don't have any item equipped on your right accessory position.";
		close;
	}
	mes "[Driller]";
	mes "My job is to drill a card slot into RWC Memorial accessories. Moreover, I only treat ^ff0000pure items^000000, or those which have not been enchanted.";
	next;
	.@equip_id = getequipid(.@part);
	if (.@equip_id != 2966 && .@equip_id != 2968) {
		mes "[Driller]";
		mes "However, I can see that the accessory you are wearing on the right side cannot be treated. Please equip a RWC Memorial accessory.";
		close;
	}
	mes "[Driller]";
	mes "You should also know that making a card slot it extremely dangerous. ^ff0000Chances to succeed are about 50%.^000000 Do you wish to proceed?";
	next;
	if(select("Cancel", "Let's go!") == 1) {
		mes "[Driller]";
		mes "See ya then.";
		close;
	}
	if (.@equip_id == 2966) {
		.@slotted = 2967; //RWC_2012_Ring_
		.@name$ = "RWC 2012 Memorial Ring";
		.@str$ = "ring";
	} else if (.@equip_id == 2968) {
		.@slotted = 2969; //RWC_2012_Pendant_
		.@name$ = "RWC 2012 Memorial Pendant";
		.@str$ = "pendant";
	} else {
		mes "[Driller]";
		mes "I can't identify the accessory item you're wearing on your right hand. I can't work on it.";
		close;
	}
	if (getequipcardid(.@part,3) > 0) {
		mes "[Driller]";
		mes "This item has already been enchanted. I can't work on this as it is against the rules.";
		close;
	}
	delequip .@part;
	if (rand(1,10) > 5) {
		getitem .@slotted,1;
		specialeffect(EF_REPAIRWEAPON, AREA, playerattached());
		mes "[Driller]";
		mes "Yay! Success! Your "+.@name$+" now has a card slot. Check it out!";
		close;
	} else {
		specialeffect(EF_LORD, AREA, playerattached());
		mes "[Driller]";
		mes "Awww... Damn weak "+.@str$+"... It broke during the procedure. I'm sorry.";
		close;
	}
}

prontera,147,59,3	script	Goldberg#pron	4_M_OILMAN,{
	disable_items;
	if (checkweight(Knife,1) == 0) {
		mes "You are carrying too many items. Come back after you have organized your inventory.";
		close;
	}
	if (MaxWeight - Weight < 10000) {
		mes "You cannot proceed because you're overweight.";
		close;
	}
	mes "[Goldberg]";
	mes "Hello! I am in charge of enchanting RWC Memorial accessories with some mystic powers.";
	next;
	.@part = EQI_ACC_L;
	if (!getequipisequiped(.@part)) {
		mes "[Goldberg]";
		mes "I'm sorry but you don't have any item equipped on your right accessory position.";
		close;
	}
	.@equip_id = getequipid(.@part);
	if (.@equip_id < 2966 || .@equip_id > 2969) {
		mes "[Goldberg]";
		mes "However, I can see that the accessory you are wearing is not something I can work on. Please equip a RWC Memorial accessory.";
		close;
	}
	.@select = select("Sorry, not interested.", "Please, empower my accessory.", "Remove the Enchant.")-1;
	if (.@select == 0) {
		mes "[Goldberg]";
		mes "Alright, then, see you next time...";
		close;
	}
	.@equip_refine = getequiprefinerycnt(.@part);
	setarray .@equip_card[0], getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3);
	if (.@select == 1) {
		switch(getequipid(.@part)) {
		case 2966:
			setarray .@option[0],2,2,4,4;
			break;
		case 2967:
			setarray .@option[0],0,2,4,4;
			break;
		case 2968:
			setarray .@option[0],1,1,3,3;
			break;
		case 2969:
			setarray .@option[0],0,1,3,3;
			break;
		default:
			mes "[Goldberg]";
			mes "I'm sorry, but I cannot work on the accessory you are currently wearing.";
			mes "If you have equipped your RWC Memorial accessory on the left side, try to swap it to the right side.";
			close;
		}
		for(.@i = 3; .@i >= 0; --.@i) {
			if (.@equip_card[.@i] == 0) {
				.@slot = .@i;
				.@op_type = .@option[.@i];
				break;
			}
		}
		switch(.@op_type) {
		case 4:
			mes "[Goldberg]";
			mes "Which enchantment would you like to infuse?";
			next;
			setarray .@enchant_select[0],1,2,3,4;
			.@i = select("Cancel", "Fighting Spirit", "ATK (%)", "Max HP", "HP")-2;
			break;
		case 3:
			setarray .@enchant_select[0],5,6,7;
			.@i = select("Cancel", "Spell", "MATK (%)", "SP")-2;
			break;
		case 2:
			mes "[Goldberg]";
			mes "^ff0000Be careful! There is about a 25% chance that the enchantment will fail. If this happens, the item will be destroyed.^000000 Which enchantment would you like to infuse?";
			next;
			setarray .@enchant_select[0],8,9,10,11,12,13,14;
			.@i = select("Cancel", "STR", "AGI", "VIT", "INT", "DEX", "LUK", "SP")-2;
			break;
		case 1:
			mes "[Goldberg]";
			mes "^ff0000There is about a 25% chance that the enchantment will fail. If this happens, the item will be destroyed.^000000 Which enchantment would you like to infuse?";
			next;
			setarray .@enchant_select[0],8,9,10,11,12,13,15,16;
			.@i = select("Cancel", "STR", "AGI", "VIT", "INT", "DEX", "LUK", "MHP", "HP")-2;
			break;
		case 0:
			mes "[Goldberg]";
			mes "Your accessory has received so many enchantments that I can hardly work on it anymore.";
			close;
		}
		if (.@i == -1) {
			mes "[Goldberg]";
			mes "Alright, then, see you next time.";
			close;
		}
		mes "[Goldberg]";
		mes "The power of the enchantment will be randomly chosen. ^ff0000Once infused, the enchantment cannot be removed.^000000 Shall we continue?";
		next;
		if(select("No, please stop.", "Yes, please proceed.") == 1) {
			mes "[Goldberg]";
			mes "Alright, then, see you next time...";
			close;
		}
		.@enchant_type = .@enchant_select[.@i];
		if (!getequipisequiped(.@part)) {
			mes "[Goldberg]";
			mes "Do not take off your equipment while I'm working, okay?";
			close;
		}
		switch(.@enchant_type) {
		case 1:
			setarray .@enc[0],4811,4810,4809; //Fighting_Spirit1,Fighting_Spirit2,Fighting_Spirit3
			break;
		case 2:
			setarray .@enc[0],4819,4766,4767; //Atk1,Atk2,Atk3
			break;
		case 3:
			setarray .@enc[0],4861,4862,4867; //MHP1,MHP2,MHP3
			break;
		case 4:
			setarray .@enc[0],4795,4796,4797; //HP100,HP200,HP300
			break;
		case 5:
			setarray .@enc[0],4760,4761,4806; //Matk1,Matk2,Matk3
			break;
		case 6:
			setarray .@enc[0],4815,4814,4813; //Spell1,Spell2,Spell3
			break;
		case 7:
			setarray .@enc[0],4870,4800,4871; //SP25,SP50,SP75
			break;
		case 8:
			setarray .@enc[0],4700,4701,4702; //Strength1,Strength2,Strength3
			break;
		case 9:
			setarray .@enc[0],4730,4731,4732; //Agility1,Agility2,Agility3
			break;
		case 10:
			setarray .@enc[0],4740,4741,4742; //Vitality1,Vitality2,Vitality3
			break;
		case 11:
			setarray .@enc[0],4710,4711,4712; //Inteligence1,Inteligence2,Inteligence3
			break;
		case 12:
			setarray .@enc[0],4720,4721,4722; //Dexterity1,Dexterity2,Dexterity3
			break;
		case 13:
			setarray .@enc[0],4750,4751,4752; //Luck1,Luck2,Luck3
			break;
		case 14:
			setarray .@enc[0],4870,4800,4871; //SP25,SP50,SP75
			break;
		case 15:
			setarray .@enc[0],4861,4862,4867; //MHP1,MHP2,MHP3
			break;
		case 16:
			setarray .@enc[0],4795,4796,4797; //HP100,HP200,HP300
			break;
		default:
			mes "[Goldberg]";
			mes "We have got a problem, let me check it up.";
			close;
		}

		if (.@enchant_type < 8)
			.@i = rand(1,300); // 0% break chance.
		else
			.@i = rand(1,400); // 25% break chance.

		     if (.@i < 151) .@enchant = .@enc[0];
		else if (.@i < 251) .@enchant = .@enc[1];
		else if (.@i < 301) .@enchant = .@enc[2];
		else .@enchant = 9;

		.@equip_card[.@slot] = .@enchant;
		if (.@slot == 2 && .@enchant == 0) {
			.@equip_card[3] = 0;
		} else if (.@slot == 1 && .@enchant == 0) {
			.@equip_card[2] = 0;
			.@equip_card[3] = 0;
		} else if (.@slot == 0 && .@enchant == 0) {
			.@equip_card[1] = 0;
			.@equip_card[2] = 0;
			.@equip_card[3] = 0;
		}

		delequip .@part;
		if (.@enchant == 9) {
			mes "[Goldberg]";
			mes "Oh gosh!";
 			mes "The item was not strong enough to bear the enchantment and thus got destroyed. I am sorry.";
			specialeffect(EF_LORD, AREA, playerattached());
			close;
		}
		if (.@enchant == 0) { // Should never happen.
			mes "[Goldberg]";
			mes "Oh... It looks like there was an instability of some sort between all the powers infused. This caused all the enchantments to vanish. It is a shame, but please try again!";
		} else {
			mes "[Goldberg]";
			mes "Great!";
			mes "The enchantment is a success! It will be applied in socket No.^990000"+(.@slot+1)+"^000000.";
			specialeffect(EF_REPAIRWEAPON, AREA, playerattached());
		}

		//GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
		getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];

		close;
	} else if (.@select == 2) {
		mes "[Goldberg]";
		mes "I will just initialize the enchant option without doing anything to the slotted card. You wanna continue?";
		next;
		if(select("I will stop.", "Yep, sure, go on.") == 1) {
			mes "[Goldberg]";
			mes "Come back if you change your mind.";
			close;
		}
		if (countitem(RWC_Inicializer) == 0) {
			mes "[Goldberg]";
			mes "I'm sorry. But you don't have the RWC Initialization coupon. Can you check your inventory?";
			close;
		}
		if (.@equip_card[3] == 0) {
			mes "[Goldberg]";
			mes "Hm... this equipment is clean. I cannot initialize it if there's nothing! Check it again.";
			close;
		}
		specialeffect(EF_REPAIRWEAPON, AREA, playerattached());
		mes "[Goldberg]";
		mes "The enchant option in your item will be initialized.";
		delitem RWC_Inicializer,1;
		delequip .@part;

		//GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3]
		for(.@i = 0; .@i < 4; ++.@i) {
			if (.@equip_card[.@i] >= 4700) // Armor Enchant System
				.@equip_card[.@i] = 0;
		}
		getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3];

		close;
	}
}