1 | //===== eAthena Script ======================================= |
---|
2 | //= elRO Airship |
---|
3 | //===== By: ================================================== |
---|
4 | //= Edited And removed irrelevent comments by eAthena Dev Team |
---|
5 | //= Draike\Bluto\Hephaestus |
---|
6 | //===== Current Version: ===================================== |
---|
7 | //= 2.2a |
---|
8 | //===== Compatible With: ===================================== |
---|
9 | //= eAthena SVN 02/05/2005 + |
---|
10 | //===== Description: ========================================= |
---|
11 | //= It's the elRO airship. XD |
---|
12 | //===== Additional Comments: ================================= |
---|
13 | //= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around. |
---|
14 | //= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue. |
---|
15 | //= 2.1 Removed Duplicates [Silent] |
---|
16 | //= 2.2 Added missing next;'s [Evera] |
---|
17 | //============================================================ |
---|
18 | payon,153,43,5 script itinsetter -1,{ |
---|
19 | |
---|
20 | //This is just OnInit stuff to set the hourly intinerary. |
---|
21 | OnInit: |
---|
22 | deletearray $locationsname$[0],500; |
---|
23 | deletearray $locationsmap$[0],500; |
---|
24 | deletearray $locationsx[0],500; |
---|
25 | deletearray $locationsy[0],500; |
---|
26 | deletearray $alreadygoneto[0],500; |
---|
27 | setarray $locationsname$[0],"Airport"; |
---|
28 | setarray $locationsname$[1],"Prontera"; |
---|
29 | setarray $locationsname$[2],"Payon"; |
---|
30 | setarray $locationsname$[3],"Aldebaran"; |
---|
31 | setarray $locationsname$[4],"Alberta"; |
---|
32 | setarray $locationsname$[5],"Geffen"; |
---|
33 | setarray $locationsname$[6],"Morocc"; |
---|
34 | setarray $locationsname$[7],"Glast Heim"; |
---|
35 | setarray $locationsname$[8],"Umbala"; |
---|
36 | setarray $locationsname$[9],"Comodo"; |
---|
37 | setarray $locationsname$[10],"Amatsu"; |
---|
38 | setarray $locationsname$[11],"Niflheim"; |
---|
39 | setarray $locationsname$[12],"Lutie"; |
---|
40 | setarray $locationsname$[13],"Louyang"; |
---|
41 | setarray $locationsname$[14],"Gonryun"; |
---|
42 | setarray $locationsname$[15],"Yuno"; |
---|
43 | setarray $locationsname$[16],"Ant Hell"; |
---|
44 | setarray $locationsname$[17],"Jawaii"; |
---|
45 | setarray $locationsname$[18],"Orc Village"; |
---|
46 | setarray $locationsname$[19],"Mjolnir Coal Mines"; |
---|
47 | setarray $locationsname$[20],"Gefenia Ruins"; |
---|
48 | setarray $locationsname$[21],"Ayothaya"; |
---|
49 | setarray $locationsname$[22],"Lighthalzen"; |
---|
50 | setarray $locationsname$[23],"Juperos"; |
---|
51 | setarray $locationsmap$[0],"airport"; |
---|
52 | setarray $locationsmap$[1],"prt_fild08"; |
---|
53 | setarray $locationsmap$[2],"pay_fild08"; |
---|
54 | setarray $locationsmap$[3],"mjolnir_12"; |
---|
55 | setarray $locationsmap$[4],"pay_fild03"; |
---|
56 | setarray $locationsmap$[5],"gef_fild00"; |
---|
57 | setarray $locationsmap$[6],"moc_fild10"; |
---|
58 | setarray $locationsmap$[7],"glast_01"; |
---|
59 | setarray $locationsmap$[8],"umbala"; |
---|
60 | setarray $locationsmap$[9],"comodo"; |
---|
61 | setarray $locationsmap$[10],"amatsu"; |
---|
62 | setarray $locationsmap$[11],"niflheim"; |
---|
63 | setarray $locationsmap$[12],"xmas"; |
---|
64 | setarray $locationsmap$[13],"louyang"; |
---|
65 | setarray $locationsmap$[14],"gonryun"; |
---|
66 | setarray $locationsmap$[15],"yuno"; |
---|
67 | setarray $locationsmap$[16],"moc_fild04"; |
---|
68 | setarray $locationsmap$[17],"jawaii"; |
---|
69 | setarray $locationsmap$[18],"gef_fild10"; |
---|
70 | setarray $locationsmap$[19],"mjolnir_02"; |
---|
71 | setarray $locationsmap$[20],"gefenia01"; |
---|
72 | setarray $locationsmap$[21],"ayothaya"; |
---|
73 | setarray $locationsmap$[22],"lighthalzen"; |
---|
74 | setarray $locationsmap$[23],"jupe_gate"; |
---|
75 | setarray $locationsx[0],148; |
---|
76 | setarray $locationsx[1],206; |
---|
77 | setarray $locationsx[2],159; |
---|
78 | setarray $locationsx[3],62; |
---|
79 | setarray $locationsx[4],194; |
---|
80 | setarray $locationsx[5],50; |
---|
81 | setarray $locationsx[6],163; |
---|
82 | setarray $locationsx[7],196; |
---|
83 | setarray $locationsx[8],187; |
---|
84 | setarray $locationsx[9],203; |
---|
85 | setarray $locationsx[10],115; |
---|
86 | setarray $locationsx[11],132; |
---|
87 | setarray $locationsx[12],232; |
---|
88 | setarray $locationsx[13],36; |
---|
89 | setarray $locationsx[14],82; |
---|
90 | setarray $locationsx[15],58; |
---|
91 | setarray $locationsx[16],209; |
---|
92 | setarray $locationsx[17],248; |
---|
93 | setarray $locationsx[18],158; |
---|
94 | setarray $locationsx[19],76; |
---|
95 | setarray $locationsx[20],98; |
---|
96 | setarray $locationsx[21],183; |
---|
97 | setarray $locationsx[22],99; |
---|
98 | setarray $locationsx[23],46; |
---|
99 | setarray $locationsy[0],45; |
---|
100 | setarray $locationsy[1],280; |
---|
101 | setarray $locationsy[2],92; |
---|
102 | setarray $locationsy[3],381; |
---|
103 | setarray $locationsy[4],182; |
---|
104 | setarray $locationsy[5],365; |
---|
105 | setarray $locationsy[6],172; |
---|
106 | setarray $locationsy[7],327; |
---|
107 | setarray $locationsy[8],98; |
---|
108 | setarray $locationsy[9],76; |
---|
109 | setarray $locationsy[10],79; |
---|
110 | setarray $locationsy[11],241; |
---|
111 | setarray $locationsy[12],308; |
---|
112 | setarray $locationsy[13],279; |
---|
113 | setarray $locationsy[14],96; |
---|
114 | setarray $locationsy[15],194; |
---|
115 | setarray $locationsy[16],326; |
---|
116 | setarray $locationsy[17],175; |
---|
117 | setarray $locationsy[18],95; |
---|
118 | setarray $locationsy[19],363; |
---|
119 | setarray $locationsy[20],21; |
---|
120 | setarray $locationsy[21],104; |
---|
121 | setarray $locationsy[22],240; |
---|
122 | setarray $locationsy[23],19; |
---|
123 | goto resetgoneto; |
---|
124 | end; |
---|
125 | |
---|
126 | setrandomitin: |
---|
127 | set $@settervariable,$@settervariable + 1; |
---|
128 | setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); |
---|
129 | if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; |
---|
130 | if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; |
---|
131 | setarray $alreadygoneto[$locationn[$@settervariable]], 1; |
---|
132 | if($@settervariable<12)goto setrandomitin; |
---|
133 | end; |
---|
134 | |
---|
135 | resetgoneto: |
---|
136 | deletearray $alreadygoneto[0], 500; |
---|
137 | set $@currenttime, 0; |
---|
138 | goto setrandomitin; |
---|
139 | |
---|
140 | OnMinute00: |
---|
141 | set $@currenttime, 1; |
---|
142 | callfunc "F_Itinreset",12,1,2; |
---|
143 | |
---|
144 | OnMinute03: |
---|
145 | set $destination,250; |
---|
146 | end; |
---|
147 | |
---|
148 | OnMinute05: |
---|
149 | set $@currenttime, 2; |
---|
150 | callfunc "F_Itinreset",1,2,3; |
---|
151 | |
---|
152 | OnMinute08: |
---|
153 | set $destination,250; |
---|
154 | end; |
---|
155 | |
---|
156 | OnMinute10: |
---|
157 | set $@currenttime, 3; |
---|
158 | callfunc "F_Itinreset",2,3,4; |
---|
159 | |
---|
160 | OnMinute13: |
---|
161 | set $destination,250; |
---|
162 | end; |
---|
163 | |
---|
164 | OnMinute15: |
---|
165 | set $@currenttime, 4; |
---|
166 | callfunc "F_Itinreset",3,4,5; |
---|
167 | |
---|
168 | OnMinute18: |
---|
169 | set $destination,250; |
---|
170 | end; |
---|
171 | |
---|
172 | OnMinute20: |
---|
173 | set $@currenttime, 5; |
---|
174 | callfunc "F_Itinreset",4,5,6; |
---|
175 | |
---|
176 | OnMinute23: |
---|
177 | set $destination,250; |
---|
178 | end; |
---|
179 | |
---|
180 | OnMinute25: |
---|
181 | set $@currenttime, 6; |
---|
182 | callfunc "F_Itinreset",5,6,7; |
---|
183 | |
---|
184 | OnMinute28: |
---|
185 | set $destination,250; |
---|
186 | end; |
---|
187 | |
---|
188 | OnMinute30: |
---|
189 | set $@currenttime, 7; |
---|
190 | callfunc "F_Itinreset",6,7,8; |
---|
191 | |
---|
192 | OnMinute33: |
---|
193 | set $destination,250; |
---|
194 | end; |
---|
195 | |
---|
196 | OnMinute35: |
---|
197 | set $@currenttime, 8; |
---|
198 | callfunc "F_Itinreset",7,8,9; |
---|
199 | |
---|
200 | OnMinute38: |
---|
201 | set $destination,250; |
---|
202 | end; |
---|
203 | |
---|
204 | OnMinute40: |
---|
205 | set $@currenttime, 9; |
---|
206 | callfunc "F_Itinreset",8,9,10; |
---|
207 | |
---|
208 | OnMinute43: |
---|
209 | set $destination,250; |
---|
210 | end; |
---|
211 | |
---|
212 | OnMinute45: |
---|
213 | set $@currenttime, 10; |
---|
214 | callfunc "F_Itinreset",9,10,11; |
---|
215 | |
---|
216 | OnMinute48: |
---|
217 | set $destination,250; |
---|
218 | end; |
---|
219 | |
---|
220 | OnMinute50: |
---|
221 | set $@currenttime, 11; |
---|
222 | callfunc "F_Itinreset",10,11,12; |
---|
223 | |
---|
224 | OnMinute53: |
---|
225 | set $destination,250; |
---|
226 | end; |
---|
227 | |
---|
228 | OnMinute55: |
---|
229 | set $@currenttime, 12; |
---|
230 | callfunc "F_Itinreset",11,12,1; |
---|
231 | |
---|
232 | OnMinute58: |
---|
233 | set $destination,250; |
---|
234 | end; |
---|
235 | } |
---|
236 | function script F_Porter { |
---|
237 | if($destination==getarg(0))goto Board; |
---|
238 | if($destination!=getarg(0))goto Notime; |
---|
239 | |
---|
240 | Board: |
---|
241 | mes "^FF0000[Porter]^000000"; |
---|
242 | mes "The plane is currently ported. Would you like to board?"; |
---|
243 | next; |
---|
244 | menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin; |
---|
245 | |
---|
246 | L_Yes: |
---|
247 | if($destination!=getarg(0))goto Notime; |
---|
248 | warp "airplane", 105, 72; |
---|
249 | specialeffect2 501; |
---|
250 | L_Nope: |
---|
251 | mes "^FF0000[Porter]^000000"; |
---|
252 | mes "Have a good day. Thank you for traveling with Airship."; |
---|
253 | close; |
---|
254 | |
---|
255 | Notime: |
---|
256 | mes "^FF0000[Porter]^000000"; |
---|
257 | if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; |
---|
258 | if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; |
---|
259 | next; |
---|
260 | menu "Yes, please.",Itin,"No thanks.",L_Nope; |
---|
261 | close; |
---|
262 | end; |
---|
263 | |
---|
264 | Itin: |
---|
265 | mes "^FF0000[Porter]^000000"; |
---|
266 | callfunc "F_Itin"; |
---|
267 | } |
---|
268 | airport,153,43,5 script Airport Porter 774,{ |
---|
269 | callfunc "F_Porter",0; |
---|
270 | } |
---|
271 | prt_fild08,206,279,5 script Porter#01 774,{ |
---|
272 | callfunc "F_Porter",1; |
---|
273 | } |
---|
274 | gef_fild00,50,364,5 script Porter#02 774,{ |
---|
275 | callfunc "F_Porter",5; |
---|
276 | } |
---|
277 | moc_fild10,163,173,5 script Porter#03 774,{ |
---|
278 | callfunc "F_Porter",6; |
---|
279 | } |
---|
280 | mjolnir_12,61,380,5 script Porter#04 774,{ |
---|
281 | callfunc "F_Porter",3; |
---|
282 | } |
---|
283 | pay_fild08,159,91,5 script Porter#05 774,{ |
---|
284 | callfunc "F_Porter",2; |
---|
285 | } |
---|
286 | pay_fild03,194,181,5 script Porter#06 774,{ |
---|
287 | callfunc "F_Porter",4; |
---|
288 | } |
---|
289 | glast_01,196,326,1 script Porter#07 774,{ |
---|
290 | callfunc "F_Porter",7; |
---|
291 | } |
---|
292 | umbala,188,98,3 script Porter#08 774,{ |
---|
293 | callfunc "F_Porter",8; |
---|
294 | } |
---|
295 | comodo,203,75,8 script Porter#09 774,{ |
---|
296 | callfunc "F_Porter",9; |
---|
297 | } |
---|
298 | amatsu,115,78,8 script Porter#10 774,{ |
---|
299 | callfunc "F_Porter",10; |
---|
300 | } |
---|
301 | niflheim,132,242,5 script Porter#11 774,{ |
---|
302 | callfunc "F_Porter",11; |
---|
303 | } |
---|
304 | xmas,232,309,5 script Porter#12 774,{ |
---|
305 | callfunc "F_Porter",12; |
---|
306 | } |
---|
307 | louyang,35,279,8 script Porter#13 774,{ |
---|
308 | callfunc "F_Porter",13; |
---|
309 | } |
---|
310 | gonryun,82,95,7 script Porter#14 774,{ |
---|
311 | callfunc "F_Porter",14; |
---|
312 | } |
---|
313 | yuno,58,195,4 script Porter#15 774,{ |
---|
314 | callfunc "F_Porter",15; |
---|
315 | } |
---|
316 | moc_fild04,210,326,2 script Porter#16 774,{ |
---|
317 | callfunc "F_Porter",16; |
---|
318 | } |
---|
319 | jawaii,247,174,7 script Porter#17 774,{ |
---|
320 | callfunc "F_Porter",17; |
---|
321 | } |
---|
322 | gef_fild10,159,95,2 script Porter#18 774,{ |
---|
323 | callfunc "F_Porter",18; |
---|
324 | } |
---|
325 | mjolnir_02,76,364,5 script Porter#19 774,{ |
---|
326 | callfunc "F_Porter",19; |
---|
327 | } |
---|
328 | gefenia01,97,22,6 script Porter#20 774,{ |
---|
329 | callfunc "F_Porter",20; |
---|
330 | } |
---|
331 | ayothaya,182,105,5 script Porter#21 774,{ |
---|
332 | callfunc "F_Porter",21; |
---|
333 | } |
---|
334 | lighthalzen,99,241,4 script Porter#22 774,{ |
---|
335 | callfunc "F_Porter",22; |
---|
336 | } |
---|
337 | jupe_gate,46,18,7 script Porter#23 774,{ |
---|
338 | callfunc "F_Porter",23; |
---|
339 | } |
---|
340 | airport,141,43,5 script Itinerary Schedule 837,{ |
---|
341 | mes "^FF0000[Itinerary]^000000"; |
---|
342 | callfunc "F_Itin"; |
---|
343 | } |
---|
344 | airplane,102,68,5 script Docker 852,{ |
---|
345 | if($destination == 250) goto Nowhere; |
---|
346 | mes "^FF0000[Airplane Attendant]^000000"; |
---|
347 | if($destination == 250)goto Notime; |
---|
348 | set @dockky, $destination; |
---|
349 | if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?"; |
---|
350 | next; |
---|
351 | menu "Yes.",Lyes,"No.",Lnope; |
---|
352 | |
---|
353 | Lyes: |
---|
354 | if($destination == 250)goto Notime; |
---|
355 | if($destination != @dockky)goto Notime; |
---|
356 | warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination]; |
---|
357 | specialeffect2 501; |
---|
358 | |
---|
359 | Lnope: |
---|
360 | mes "^FF0000[Airplane Attendant]^000000"; |
---|
361 | mes "Have a good day. Thank you for traveling with us."; |
---|
362 | close; |
---|
363 | |
---|
364 | Notime: |
---|
365 | mes "^FF0000[Airplane Attendant]^000000"; |
---|
366 | if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; |
---|
367 | if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait."; |
---|
368 | close; |
---|
369 | |
---|
370 | Nowhere: |
---|
371 | mes "^FF0000[Airplane Attendant]^000000"; |
---|
372 | mes "We're currently in air. Please wait until the pilot has announced that we have safely landed."; |
---|
373 | close; |
---|
374 | } |
---|
375 | function script F_Itin { |
---|
376 | //This is the itinerary's function. It should work well enough. |
---|
377 | if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit."; |
---|
378 | if($@currenttime==0)close; |
---|
379 | if($@currenttime==0)end; |
---|
380 | set @tempo, 0; |
---|
381 | set @tempo, $@currenttime - 1; |
---|
382 | goto seta; |
---|
383 | close; |
---|
384 | |
---|
385 | seta: |
---|
386 | set @tempo, @tempo + 1; |
---|
387 | set @time, gettime(3); |
---|
388 | set @minutes, 5 * @tempo - 5; |
---|
389 | set @minutess, 5 * @tempo - 2; |
---|
390 | if(@minutes<10)set @minutes$, "0" + @minutes; |
---|
391 | if(@minutes>9)set @minutes$, @minutes; |
---|
392 | if(@minutess<10)set @minutess$, "0" + @minutess; |
---|
393 | if(@minutess>9)set @minutess$, @minutess; |
---|
394 | if(@time<12)set @time$,@time; |
---|
395 | if(@time==12)set @time$,12; |
---|
396 | if(@time>12)set @time$,@time - 12; |
---|
397 | if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
398 | if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
399 | if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
400 | if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
401 | if(@tempo<12)goto seta; |
---|
402 | set @tempo, 0; |
---|
403 | goto setb; |
---|
404 | |
---|
405 | setb: |
---|
406 | if($@currenttime - 1==@tempo)goto setc; |
---|
407 | set @tempo, @tempo + 1; |
---|
408 | set @time, gettime(3) + 1; |
---|
409 | set @minutes, 5 * @tempo - 5; |
---|
410 | set @minutess, 5 * @tempo - 2; |
---|
411 | if(@minutes<10)set @minutes$, "0" + @minutes; |
---|
412 | if(@minutes>9)set @minutes$, @minutes; |
---|
413 | if(@minutess<10)set @minutess$, "0" + @minutess; |
---|
414 | if(@minutess>9)set @minutess$, @minutess; |
---|
415 | if(@time<12)set @time$,@time; |
---|
416 | if(@time==12)set @time$,12; |
---|
417 | if(@time>12)set @time$,@time - 12; |
---|
418 | if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
419 | if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
420 | if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
421 | if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; |
---|
422 | goto setb; |
---|
423 | |
---|
424 | setc: |
---|
425 | close; |
---|
426 | end; |
---|
427 | } |
---|
428 | function script F_Itinreset { |
---|
429 | setarray $alreadygoneto[$locationn[getarg(0)]], 0; |
---|
430 | goto sest; |
---|
431 | |
---|
432 | sest: |
---|
433 | setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); |
---|
434 | if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; |
---|
435 | setarray $alreadygoneto[$locationn[getarg(0)]], 1; |
---|
436 | set $destination,$locationn[$@currenttime]; |
---|
437 | announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16; |
---|
438 | end; |
---|
439 | } |
---|