summaryrefslogtreecommitdiff
path: root/npc/events/halloween_2008.txt
blob: 66fe73c33a9a3f377a3ecdcea165f6d67c0e9d0a (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
//================= Hercules Script =======================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2015  Hercules Dev Team
//= Copyright (C)  Kisuka
//=
//= 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/>.
//=========================================================================
//= iRO Halloween (2008)
//================= Description ===========================================
//= iRO Halloween (2008)
//= Run away from the zombies for tickets.
//= Redeem tickets for prizes.
//================= Current Version =======================================
//= 1.1
//================= Additional Comments ===================================
//= You must enable the event monsters in mob_db2.
//=========================================================================

payon,162,176,4	script	Halloween Magician#iRO08	4_M_BIBI,{
	if (Hallow08 < 1) {
		mes "[Halloween Magician]";
		mes "Kkkkkkkkk!";
		mes "I have a special event this Halloween that tests your luck and agility.";
		mes "Are you interested?";
		next;
		mes "[Halloween Magician]";
		mes "Come on! Don't be a wuss!";
		mes "If you collect enough tickets you can get good prizes!";
		mes "So what do you say?";
		next;
		callsub(S_MainMenu);
		end;
	}
	if (Hallow08Kill == 1) {
		mes "[Halloween Magician]";
		mes "You a 'fraidy cat or something?!";
		mes "You know you want to try again...";
		mes "Do you know the rules?";
		next;
		Hallow08Kill = 0;
		if(select("Yes, I know.", "No, I don't know.") == 2) {
			callsub(S_Rules);
			callsub(S_MainMenu);
			end;
		}
		callsub(S_Participate);
	}
	if (Hallow08Kill == 2) {
		mes "[Halloween Magician]";
		mes "Oh, well done! You are alright!";
		mes "Isn't it fun with zombies??";
		mes "You know, zombies were people too!";
		mes "Ha!";
		mes "Kkkkkkk.";
		next;
		getitem Halloween_Ticket, 1;
		Hallow08Kill = 0;
		mes "[Halloween Magician]";
		mes "As I promised";
		mes "You can get Halloween tickets for cool items.";
		close;
	}
	if (Hallow08 > 0) {
		mes "[Halloween Magician]";
		mes "Well, do you want to hear the rules again or, just get back to it...";
		next;
		while (true) {
			switch (select("Get me back there now!","Please, tell me the rules","I want to exchange tickets for prizes.","I'll come back next time.")) {
			case 1: // Participate
				callsub(S_Participate);
			case 2: // Rules
				callsub(S_Rules);
				continue;
			case 3: // TicketExchange
				callsub(S_TicketExchange);
				continue;
			default: // NextTime
				callsub(S_NextTime);
				end;
			}
		}
	}

	callsub(S_Rules);
	callsub(S_MainMenu);
	end;

S_MainMenu:
	while (true) {
		switch (select("Explain it to me.","I want to participate.","I want to exchange tickets for prizes.","I'll come back next time.")) {
		case 1: // Rules
			callsub(S_Rules);
			continue;
		case 2: // Participate
			callsub(S_Participate);
		case 3: // TicketExchange
			callsub(S_TicketExchange);
			continue;
		default: // NextTime
			callsub(S_NextTime);
			end;
		}
	}

S_Participate:
	mes "[Halloween Magician]";
	mes "Ok, you are ready.";
	mes "Let me check your weight.";
	next;
	if (Weight > 0) {
		mes "[Halloween Magician]";
		mes "Gosh!";
		mes "There's always a black sheep anywhere.";
		next;
		mes "[Halloween Magician]";
		mes "You think I wouldn't notice that your weight is above '0'?";
		mes "You're overweight...";
		close;
	}
	mes "[Halloween Magician]";
	mes "You seem good to go, and your weight is just right.";
	next;
	mes "[Halloween Magician]";
	mes "I was quite swamped with my work, so I'm exhausted.";
	next;
	mes "[Halloween Magician]";
	mes "I sometimes forget to send you there...";
	next;
	mes "[Halloween Magician]";
	mes "I hope you come back well.";
	close2;
	if (Hallow08 < 1) {
		Hallow08 = 1;
	}
	Hallow08Kill = 1;
	@Hallow08Warp = rand(1,3);
	percentheal -98,0;
	setmount(MOUNT_NONE);
	setcart 0;
	warp "evt_zombie",155,246;
	end;

S_Rules:
	mes "[Halloween Magician]";
	mes "This village is like a virtual Payon.";
	mes "There are zombies and ghouls roaming around and three southern exits, but only one works.";
	mes "That's up to you to find out.";
	next;
	mes "[Halloween Magician]";
	mes "You can't use any skills to kill the ghouls or zombies.";
	mes "And one more thing...";
	mes "you shouldn't forget...";
	next;
	mes "[Halloween Magician]";
	mes "All participants should be wearing nothing.";
	mes "Put all belongings in your storage and come back here when your weight is '0'.";
	next;
	mes "[Halloween Magician]";
	mes "Oh and one more thing!";
	mes "You can't be riding a PecoPeco or have a Cart.";
	mes "If you are, then I will remove them before you enter.";
	mes "Got it?";
	next;
	mes "[Halloween Magician]";
	mes "Remember, there are three exits but only one works randomly, the zombies and ghouls roaming around there can't be killed and you can't be wearing anything.";
	next;
	if (Hallow08 > 0) {
		mes "[Halloween Magician]";
		mes "Hey...";
		mes "Come back once you're ready.";
		close;
	}
	return;

S_NextTime:
	mes "[Halloween Magician]";
	mes "Ok, see you then.";
	mes "Kkkkkkkk.";
	close;

S_TicketExchange:
	mes "[Halloween Magician]";
	mes "You want to exchange tickets for prizes?";
	mes "Good job! Kkkkkk!";
	next;
	mes "[Halloween Magician]";
	mes "Lemme tell you what items you can exchange for.";
	next;
	mes "[Halloween Magician]";
	mes "5 tickets for Pumpkin Pie.";
	mes "20 tickets for Pumpkin-Head.";
	mes "50 tickets for Old Blue Box.";
	mes "70 tickets for Old Purple Box.";
	mes "200 tickets for Old Card Album.";
	next;
	mes "[Halloween Magician]";
	mes "What would you like to exchange for?";
	next;
	.@item_id = null;
	.@amount = 0;
	switch(select("Pumpkin Pie", "Pumpkin-Head", "Old Blue Box", "Old Purple Box", "Old Card Album")) {
	case 1:
		.@amount = 5;
		.@item_id = Pumpkin_Pie;
		break;
	case 2:
		.@amount = 20;
		.@item_id = Pumpkin_Hat;
		break;
	case 3:
		.@amount = 50;
		.@item_id = Old_Blue_Box;
		break;
	case 4:
		.@amount = 70;
		.@item_id = Old_Violet_Box;
		break;
	case 5:
		.@amount = 200;
		.@amount = Old_Card_Album;
		break;
	}
	if (countitem(Halloween_Ticket) < .@amount) {
		mes "[Halloween Magician]";
		mes "You don't have enough tickets!";
		mes "Can't you even count?";
		mes "Please come here with the right number of tickets.";
		close;
	}
	delitem Halloween_Ticket, .@amount;
	getitem .@item_id, 1;
	mes "[Halloween Magician]";
	mes "Here it is.";
	mes "Do you need...";
	mes "anything else?";
	next;
	return;
}

evt_zombie,16,142,1	script	zombiewarp001	WARPNPC,2,2,{
OnTouch:
	if (@Hallow08Warp == 1) {
		Hallow08Kill = 2;
		specialeffect EF_BASH;
		warp "payon",28,142;
	}
	end;
}

evt_zombie,122,27,1	script	zombiewarp002	WARPNPC,2,2,{
OnTouch:
	if (@Hallow08Warp == 2) {
		Hallow08Kill = 2;
		specialeffect EF_BASH;
		warp "payon",121,40;
	}
	end;
}

evt_zombie,267,89,1	script	zombiewarp003	WARPNPC,2,2,{
OnTouch:
	if (@Hallow08Warp == 3) {
		Hallow08Kill = 2;
		specialeffect EF_BASH;
		warp "payon",253,95;
	}
	end;
}

evt_zombie,0,0,0,0	monster	Zombie	3000,150,0,0,0
evt_zombie,0,0,0,0	monster	Ghoul	3001,80,0,0,0
evt_zombie,0,0,0,0	monster	Zombie Master	3002,20,0,0,0