root/npc/airports/airships.txt

Revision 1, 36.8 kB (checked in by jinshiro, 17 years ago)
Line 
1//===== eAthena Script =======================================
2//= The Airship System Script
3//===== By: ==================================================
4//= eAthena Dev Team
5//===== Current Version: =====================================
6//= 1.1a
7//===== Compatible With: =====================================
8//= eAthena SVN 3422+(Requires jA Script System)
9//===== Description: =========================================
10//= The Airship System used in the official servers, however this
11//= one is still about 25% custom and is missing some npcs.
12//===== Additional Comments: =================================
13//= 0.1 Added first version, it might be a little buggy [MasterOfMuppets]
14//= 0.1a Fixed the Airport Staff#Iz which was [MasterOfMuppets]
15//=      warping you to the same location as Airport Staff#Ein
16//= 0.2 Implemented some more airship NPCs, more are to come.
17//= 0.3 Implemented some more NPCs [MasterOfMuppets]
18//= 0.4 Implemented two mini games scripted by Dj-Yhn [MasterOfMuppets]
19//= 0.5 Removed Duplicates [Silent]
20//= 0.5a Fixed a typo [Evera]
21//= 0.5b Fixed appledice bugs [Lupus]
22//= 0.6 Added Rachel to the international route [Playtester]
23//= 0.7 Implemented Few Missings NPCs like (Pilot, Aanos, etc...).
24//=     Corrected Dialogs from some NPCs.
25//=     Added sistem to work with the "How Does the Airship Work" Quest [Samuray22]
26//= 0.8 Moved Gambling NPC Kaci since it's part of a quest. [SinSloth]
27//= 0.8b Fixed a Little Bug with the "How Does the Airship Work" Quest. [Samuray22]
28//= 0.9 Fixed a incorrect variable changed form "mob_inv" to "mobinv". [Samuray22]
29//= 0.9b Fixed a typo and bad variable use in the Typing Challenge [ultramage]
30//= 1.0 Fixed bad NPC header data to comply with rev. 11603. [L0ne_W0lf]
31//= 1.1 Touch-ups, and changed references of "Yuno" to "Juno",  [L0ne_W0lf]
32//= 1.1a Small fix to comparison check. [Paradox924X]
33//============================================================
34
35//============================================================
36//= The Airship System (Juno -> Hugel -> Einbroch -> Lighthalzen -> repeat)
37//============================================================
38
39airplane,243,74,4       script  #AirshipWarp-1  45,2,2,{
40OnTouch:
41        if($@airplanelocation == 1)warp "einbroch",90,275;
42        if($@airplanelocation == 2)warp "yuno",85,265;
43        if($@airplanelocation == 3)warp "lighthalzen",302,75;
44        if($@airplanelocation == 4)warp "hugel",182,150;
45        end;
46
47OnHide:
48        misceffect 16;
49        end;
50OnUnhide:
51        misceffect 215;
52        end;
53}
54
55airplane,243,29,4       script  #AirshipWarp-2  45,2,2,{
56OnTouch:
57        if($@airplanelocation == 1)warp "einbroch",90,275;
58        if($@airplanelocation == 2)warp "yuno",85,265;
59        if($@airplanelocation == 3)warp "lighthalzen",302,75;
60        if($@airplanelocation == 4)warp "hugel",182,150;
61        end;
62
63OnHide:
64        misceffect 16;
65        end;
66OnUnhide:
67        misceffect 215;
68        end;
69}
70
71airplane,1,1,0  script  EinYuno_Airship -1,{
72OnInit:
73while(1)
74{
75        initnpctimer;
76        setnpctimer 0;
77        set $@airplanelocation,0;
78        donpcevent "#AirshipWarp-1::OnHide";
79        donpcevent "#AirshipWarp-2::OnHide";
80        disablenpc "#AirshipWarp-1";
81        disablenpc "#AirshipWarp-2";
82        mapannounce "airplane","The Airship is leaving the ground. Our next destination is Hugel.",1,0xBA55D3;
83        end;
84OnTimer15000:
85        mapannounce "airplane","We are heading to Hugel.",1,0xBA55D3;
86        end;
87OnTimer30000:
88        mapannounce "airplane","We will arrive in Hugel shortly.",1,0xBA55D3;
89        end;
90OnTimer45000:
91        set $@airplanelocation,4;
92        enablenpc "#AirshipWarp-1";
93        enablenpc "#AirshipWarp-2";
94        donpcevent "#AirshipWarp-1::OnUnhide";
95        donpcevent "#AirshipWarp-2::OnUnhide"; 
96        mapannounce "airplane","Welcome to Hugel. Have a safe trip.",1,0xBA55D3;
97        end;
98OnTimer55000:
99        mapannounce "airplane","Currently, we are in Hugel. The Airship will leave shortly.",1,0xBA55D3;
100        end;
101OnTimer65000:
102        set $@airplanelocation,0;
103        donpcevent "#AirshipWarp-1::OnHide";
104        donpcevent "#AirshipWarp-2::OnHide";
105        disablenpc "#AirshipWarp-1";
106        disablenpc "#AirshipWarp-2";
107        mapannounce "airplane","The Airship is leaving the ground. Our next destination is Einbroch.",1,0x00FF00;
108        end;
109OnTimer80000:
110        mapannounce "airplane","We are heading to Einbroch.",1,0x00FF00;
111        end;
112OnTimer95000:
113        mapannounce "airplane","We will arrive in Einbroch shortly.",1,0x00FF00;
114        end;
115OnTimer110000:
116        set $@airplanelocation,1;
117        enablenpc "#AirshipWarp-1";
118        enablenpc "#AirshipWarp-2";
119        donpcevent "#AirshipWarp-1::OnUnhide";
120        donpcevent "#AirshipWarp-2::OnUnhide";
121        mapannounce "airplane","Welcome to Einbroch. Have a safe trip.",1,0x00FF00;
122        end;
123OnTimer120000:
124        mapannounce "airplane","Currently, we are in Einbroch. The Airship will take off shortly.",1,0x00FF00;
125        end;
126OnTimer130000:
127        set $@airplanelocation,0;
128        donpcevent "#AirshipWarp-1::OnHide";
129        donpcevent "#AirshipWarp-2::OnHide";
130        disablenpc "#AirshipWarp-1";
131        disablenpc "#AirshipWarp-2";
132        mapannounce "airplane","The Airship is leaving the ground. Our next destination is Lighthalzen.",1,0xFF8600;
133        end;
134OnTimer145000:
135        mapannounce "airplane","We are heading to Lighthalzen.",1,0xFF8600;
136        end;
137OnTimer160000:
138        mapannounce "airplane","We will arrive in Lighthalzen shortly.",1,0xFF8600;
139        end;
140OnTimer175000:
141        set $@airplanelocation,3;
142        enablenpc "#AirshipWarp-1";
143        enablenpc "#AirshipWarp-2";
144        donpcevent "#AirshipWarp-1::OnUnhide";
145        donpcevent "#AirshipWarp-2::OnUnhide";
146        mapannounce "airplane","Welcome to Lighthalzen. Have a safe trip.",1,0xFF8600;
147        end;
148OnTimer185000:
149        mapannounce "airplane","Currently, we are in Lighthalzen. The Airship will leave shortly.",1,0xFF8600;
150        end;
151OnTimer195000:
152        set $@airplanelocation,0;
153        donpcevent "#AirshipWarp-1::OnHide";
154        donpcevent "#AirshipWarp-2::OnHide";
155        disablenpc "#AirshipWarp-1";
156        disablenpc "#AirshipWarp-2";
157        mapannounce "airplane","The Airship is now taking off. Our next destination is Juno.",1,0x70DBDB;
158        end;
159OnTimer210000:
160        mapannounce "airplane","We are heading to Juno.",1,0x70DBDB;
161        end;
162OnTimer225000:
163        mapannounce "airplane","We will arrive in Juno shortly.",1,0x70DBDB;
164        end;
165OnTimer240000:
166        set $@airplanelocation,2;
167        enablenpc "#AirshipWarp-1";
168        enablenpc "#AirshipWarp-2";
169        donpcevent "#AirshipWarp-1::OnUnhide";
170        donpcevent "#AirshipWarp-2::OnUnhide";
171        mapannounce "airplane","Welcome to Juno. Have a safe trip.",1,0x70DBDB;
172        end;
173OnTimer250000:
174        mapannounce "airplane","Currently, we are in Juno. The Airship will leave shortly.",1,0x70DBDB;
175        end;
176OnTimer260000:
177        stopnpctimer;
178}
179}
180
181//C4644E
182
183//============================================================
184//= Some normal NPCS (airplane)
185//============================================================
186
187airplane,240,64,5       script  Exit#01::Exit2  857,{
188        end;
189}
190
191airplane,247,64,5       duplicate(Exit2)        Exit#02 857
192
193airplane,240,39,1       duplicate(Exit2)        Exit#03 857
194
195airplane,247,39,1       duplicate(Exit2)        Exit#04 857
196
197airplane,100,69,2       script  Airship Crew#01::Airship Crew   852,{
198        mes "[Airship Crew]";
199        mes "If we've landed at";
200        mes "your destination and";
201        mes "you'd like to leave the";
202        mes "Airship, please use the";
203        mes "stairs up ahead. Thank";
204        mes "you for you patronage.";
205        close;
206}
207
208airplane,250,59,3       script  Airship Staff::AirshipInfo      67,{
209        mes "[Airship Staff]";
210        mes "Welcome";
211        mes "to the Airship.";
212        mes "How may I help you?";
213        next;
214        menu "Using the Airship",s_Use,"Captain's Cabin",s_Capt,"Facilities",s_Faci,"Cancel",-;
215
216        mes "[Airship Staff]";
217        mes "Well, I hope you like";
218        mes "your flight aboard";
219        mes "our Airships. Thank";
220        mes "you and have a good day.";
221        close;
222
223s_Use:
224        mes "[Airship Staff]";
225        mes "When you see a broadcast";
226        mes "announcing that we have";
227        mes "arrived at your destination,";
228        mes "please use one of the exits";
229        mes "located at the north and";
230        mes "south ends of the Airship";
231        next;
232        mes "[Airship Staff]";
233        mes "If you happen to miss";
234        mes "your stop, don't worry.";
235        mes "The airship is constantly";
236        mes "on route and you'll get";
237        mes "another chance to arrive";
238        mes "to your intended destination.";
239        close;
240
241s_Capt:
242        mes "[Airship Staff]";
243        mes "The Captain's Cabin";
244        mes "is located at the front";
245        mes "of the Airship. There, you";
246        mes "can meet the captain and";
247        mes "the pilot of the Airship.";
248        close;
249
250s_Faci:
251        mes "[Airship Staff]";
252        mes "The Airship provides";
253        mes "various Mini Games for";
254        mes "the entertainment of all";
255        mes "our passengers. We invite";
256        mes "you to try your luck and skills";
257        mes "in the Airship's Mini Games~";
258        close;
259
260}
261
262airplane,50,66,4        script  Meltz::AirshipApples    86,{
263
264        mes "[Meltz]";
265        mes "Welcome to Meltz's";
266        mes "Shop where you can";
267        mes "purchase Apples or grind";
268        mes "them to make Apple Juice.";
269        next;
270        menu "Buy Apples",s_Buy,"Make Apple Juice",s_Juice,"Cancel.",-;
271
272s_Cancel:
273        mes "[Meltz]";
274        mes "Thanks for stopping";
275        mes "by my shop. Farewell!";
276        mes "Come back anytime when";
277        mes "you feel like having an";
278        mes "Apple to snack on~";
279        close;
280
281s_Buy:
282        mes "[Meltz]";
283        mes "Please enter the amount";
284        mes "of Apples that you wish to";
285        mes "buy. Each Apple is 15 zeny";
286        mes "and you can buy a maximum";
287        mes "of 500 at a time. Please enter";
288        mes "\"0\" to cancel your order.";
289        next;
290        input @tempapple;
291        if(!@tempapple)goto s_Cancel;
292        if(@tempapple > 0 && @tempapple < 501)goto s_AppleBuy;
293        if(@tempapple < 0)close;
294        mes "[Meltz]";
295        mes "The maximum amount of apples";
296        mes "you can buy at the same time";
297        mes "is 500. " + @tempapple + " is clearly";
298        mes "over 500.";
299        close;
300
301s_AppleBuy:
302        mes "[Meltz]";
303        mes "A total of ^FF0000" + @tempapple + "^000000 Apples.";
304        mes "will cost you ^FF0000" + @tempapple * 15 + "^000000 zeny.";
305        mes "Would you like to continue?";
306        next;
307        menu "Yes",-,"No",s_Cancel;
308
309        if(zeny < (@tempapple * 15))goto s_NEnoughZeny;
310        mes "[Meltz]";
311        mes "Thanks for stopping by";
312        mes "my shop. I hope you enjoy";
313        mes "the flavor of these Apples~!";
314        getitem 512,@tempapple;
315        set zeny,zeny - (@tempapple * 15);
316        close;
317
318s_NEnoughZeny:
319        mes "[Meltz]";
320        mes "I'm sorry buy you don't";
321        mes "seem to have enough zeny.";
322        mes "Come back anytime when";
323        mes "you feel like having an";
324        mes "Apple to snack on~";
325        close;
326
327s_Juice:
328        mes "[Meltz]";
329        mes "Okay, I'll need";
330        mes "^FF00003 Apples and 1 Empty Bottle^000000";
331        mes "to make 1 Apple Juice for you.";
332        mes "Would you like to proceed?";
333        next;
334        menu "Yes",-,"No",s_Cancel;
335
336        if(countitem(512) < 3 || !countitem(713))goto s_Material;
337        mes "[Meltz]";
338        mes "Thank you,";
339        mes "please wait";
340        mes "just a moment.";
341        next;
342        mes "*Grind grind*";
343        mes "*Grind grind*";
344        mes "*Clang...!*";
345        next;
346        mes "[Meltz]";
347        mes "There you go~";
348        mes "I hope you enjoy!";
349        mes "Please feel free to";
350        mes "stop by for your Apple";
351        mes "and Apple Juice needs";
352        mes "at anytime, adventurer~";
353        delitem 512,3;
354        delitem 713,1;
355        getitem 531,1;
356        close;
357
358s_Material:
359        mes "[Meltz]";
360        mes "I'm sorry, but you don't";
361        mes "have enough materials to";
362        mes "create a bottle of Apple Juice.";
363        mes "Remember, I need 3 Apples";
364        mes "and 1 Empty Bottle to do it.";
365        close;
366
367}
368
369airplane,80,71,4        script  Zerta   834,{
370        mes "[Zerta]";
371        mes "Oh, hello adventurer.";
372        mes "I am currently on a";
373        mes "sacred journey, offering";
374        mes "prayer for the sake of the";
375        mes "Rune-Midgard continent.";
376        close;
377}
378
379airplane,65,63,4        script  Maelin  714,{
380        mes "[Maelin]";
381        mes "Um, this Airship is";
382        mes "to Lutie, isn't it? I've";
383        mes "been waiting so long,";
384        mes "but I haven't heard any";
385        mes "broadcast about Lutie.";
386        close;
387}
388
389airplane,72,34,2        script  Aanos   702,{
390        mes "[Aanos]";
391        mes "Oh wooow~";
392        mes "The sky looks";
393        mes "so different and";
394        mes "pretty from up there!";
395        close;
396}
397
398airplane,32,61,4        script  Nils::TypingContest     49,{
399        callfunc "F_ClearGarbage"; //Clear outdated, unused variables
400loopback:
401        mes "[Nils]";
402        mes "Welcome to the";
403        mes "^FF0000RO Typing Challenge^000000.";
404        mes "Would you like to play";
405        mes "a quick typing game?";
406        next;
407        menu "Play ^FF0000RO Typing Challenge^000000",s_Play,"Information",s_Info,"View Top Records",s_Record,"Cancel",-;
408
409        mes "[Nils]";
410        mes "Feel free to take on the";
411        mes "Ro Typing Challenge";
412        mes "anytime. I'll be here~";
413        close;
414
415s_Play:
416        mes "[Nils]";
417        mes "Okay, we have";
418        mes "a new challenger!";
419        mes "Enter the following";
420        mes "text as quickly as you";
421        mes "can without making any";
422        mes "mistakes! Let's start~!";
423        next;
424        //below arrays are for simplified entering of new lines ;P
425
426        //first lines array
427        setarray $@textstringsa$[0],
428        "^00FFFFthkelfkskeldmsiejdlsle^0000FFhfndkelsheidl",
429        "^993366hfjdkeldjsieldjs^663366hfjdjeiskdlefvbd",
430        "^00FFFFCoboman no chikara-yumei na",
431        "^993366belief love luck grimace sweat rush",
432        "^00FFFFcallipygian salacious lascivious",
433        "^663366uNflAPPaBLe LoVaBLe SeCreTs AnD",
434        "^00CCFFburrdingdingdilidingdingphoohudaamb",
435        "^FF33CCbarapaphurarlandreamduranbatuhi^990066wooi",
436        "^FF33CCLiGhTsPeEd RiGhT SPEed leFT TURn",
437        "^00CCFFI'm the King of all Weirdos! Now",
438        "^00CCFFBy the power of^000000",
439        "^00CCFF...silence. quiet benevolence...";
440
441        //second lines array
442        setarray $@textstringsb$[0],"skemd",
443        "",
444        "chikara-dalookii na chikara da ze!",
445        "folktale rodimus optimus bumblebee",
446        "licentious prurient concupiscent",
447        "BoWLiNg aGaINST tHe KarMA of YoUtH",
448        "andoora^0000FFbambarambambamburanbamding",
449        "kabamturubamdingding",
450        "RiGhT BuRn OrIGInAL GaNgSteR SmACk",
451        "you know of my true power. Obey~!",
452        "p-po-poi-po-poi-poin-poing",
453        "soul mate... wonder. enigma...";
454        //for the few 3-liners... =X
455
456        setarray $@textstringsc$[0],"",
457        "",
458        "COBO ON!",
459        "",
460        "",
461        "",
462        "",
463        "",
464        "",
465        "",
466        "GOD-POING. I NEVER LOSE!",
467        "cloud.";
468
469        //comparisation strings
470        setarray $@compstring$[0],
471        "thkelfkskeldmsiejdlslehfndkelsheidlskemd",
472        "hfjdkeldjsieldjshfjdjeiskdlefvbd",
473        "Coboman no chikara-yumei na chikara-dalookii na chikara da ze! COBO ON!",
474        "belief love luck grimace sweat rush folktale rodimus optimus bumblebee",
475        "callipygian salacious lascivious licentious prurient concupiscent",
476        "uNflAPPaBLe LoVaBLe SeCreTs AnD BoWLiNg aGaINST tHe KarMA of YoUtH",
477        "burrdindingdilidingdingphoohudaambandoorabambarambambamburanbamding",
478        "barapaphurarlandreamduranbatuhiwooikabamturubamdingding",
479        "LiGhTsPeEd RiGhT SPEed leFT TURn RiGhT BuRn OrIGInAL GaNgSteR SmACk",
480        "I'm the King of all Weirdos! Now you know of my true power. Obey~!",
481        "By the power of p-po-poi-po-poi-poin-poing GOD-POING. I NEVER LOSE!",
482        "...silence. quiet benevolence... soul mate... wonder. enigma... cloud";
483
484        //lengths
485        setarray $@lengths[0],20,32,73,73,65,66,67,55,67,66,67,69;
486
487        //      initnpctimer;
488        // pick 2 distinct phrases and initialize related variables
489        set @index,rand(1,getarraysize($@textstringsa$))-1;
490        set @string1a$,$@textstringsa$[@index];
491        set @string1b$,$@textstringsb$[@index];
492        set @string1c$,$@textstringsc$[@index];
493        set @typingstring1$,$@compstring$[@index];
494
495        set @index2,rand(1,getarraysize($@textstringsa$))-1;
496        while (@index2 == @index) {
497                set @index2,rand(1,getarraysize($@textstringsa$))-1;
498        }
499        set @string2a$,$@textstringsa$[@index2];
500        set @string2b$,$@textstringsb$[@index2];
501        set @string2c$,$@textstringsc$[@index2];
502        set @typingstring2$,$@compstring$[@index2];
503
504        set @typingkeys,$@lengths[@index]+$@lengths[@index2];
505        set @start,gettime(3)*60*60+gettime(2)*60+gettime(1);
506
507        mes "[Nils]";
508        mes @string1a$;
509        if(@string1b$ != "")mes @string1b$;
510        if(@string1c$ != "")mes @string1c$;
511        input @comparisonvar$[1];
512        next;
513        mes "^000000[Nils]";
514        mes @string2a$;
515        if(@string2b$ != "")mes @string2b$;
516        if(@string2c$ != "")mes @string2c$;
517        input @comparisonvar$[2];
518        next;
519        if(@comparisonvar$[1] != @typingstring1$ || @comparisonvar$[2] != @typingstring2$) goto s_Fail;
520        set @time,(gettime(3)*60*60+gettime(2)*60+gettime(1))-@start; //seconds taken
521        set @mypoints,(@typingkeys * 100) / @time;
522        mes "[Nils]";
523        mes "Your typing time";
524        mes "was ^FF0000" + @time + " seconds^000000";
525        mes "and your score is";
526        mes "^0000FF" + @mypoints + "^000000 points";
527        next;
528        if(@mypoints <= $TypingRecord)goto loopback;
529        mes "[Nils]";
530        mes "Congratulations!";
531        mes "It's a new record.";
532        mes "I'll put you on the high-";
533        mes "score list immediately.";
534        set $TypingRecord,@mypoints;
535        set $TypingRecord$,strcharinfo(0);
536        close;
537
538s_Fail:
539        mes "^000000[Nils]";
540        mes "I'm sorry you didn't type";
541        mes "all characters correctly.";
542        mes "But remember, practice makes";
543        mes "perfect!";
544        close;
545
546s_Info:
547        mes "[Nils]";
548        mes "The RO Typing Challenge";
549        mes "is a game where you enter";
550        mes "the given text as quickly as you";
551        mes "can. The name of the top player";
552        mes "is recorded for posterity. If you";
553        mes "want fame, here's your chance!";
554        next;
555        mes "[Nils]";
556        mes "I'd just like to let";
557        mes "you know that you type";
558        mes "all the text that you see";
559        mes "in the single input line that";
560        mes "you're given. So don't press";
561        mes "the enter key, just click 'OK'.";
562        close;
563
564s_Record:
565        mes "[Nils]";
566        mes "^0000FF" + $TypingRecord$ + "^000000";
567        mes "is the current";
568        mes "record holder with";
569        mes "a record of ^0000FF" + $TypingRecord + "^000000";
570        mes "points. Try to beat";
571        mes "that record next time~";
572        close;
573
574}
575
576airplane_01,221,158,6   script  Pilot#air-0::Pilot      852,{
577        set @pilot, rand(1,4);
578        if (@pilot == 1) {
579                mes "[Pilot]";
580                mes "Longitude, 131 degrees east.";
581                mes "Latitude, 37 degrees north.";
582                mes "We're right on course, captain.";
583                close;
584        } else if(@aa == 2) {
585                mes "[Pilot]";
586                mes "Looks like a really";
587                mes "cloudy day. Always hard";
588                mes "to navigate when the skies";
589                mes "aren't clear. Guess we'll";
590                mes "need to amp the radar.";
591                close;
592        } else if(@aa == 3) {
593                mes "[Pilot]";
594                mes "The Captain is a good";
595                mes "man and I can't think of";
596                mes "a finer person to command";
597                mes "this ship. Still, he's pretty";
598                mes "tough, a real slave driver.";
599                next;
600                mes "[^ff0000Tarlock^000000]";
601                mes "^ff0000Hey...!^000000";
602                mes "^ff0000Less chit-chat^000000";
603                mes "^ff0000and more piloting!^000000";
604                next;
605                mes "[Pilot]";
606                mes "R-right away, sir!";
607                mes "(See what I mean?)";
608                close;
609        }
610        mes "[Pilot]";
611        mes "This uniform is";
612        mes "really dapper, but";
613        mes "it's way too thick to";
614        mes "wear around the Airship.";
615        next;
616        mes "[Pilot]";
617        mes "...";
618        mes "......";
619        mes "No one ever really";
620        mes "comes into this room.";
621        mes "And the captain IS a reindeer.";
622        mes "I could just strip to my boxers.";
623        next;
624        //Emotion "Pilot#airplane_01" ET_HUK
625        mes "[Pilot]";
626        mes "Oh...! Hello there!";
627        mes "E-e-enjoying your flight?!";
628        close;
629}
630
631//============================================================
632//= The Airship System (Izlude -> Juno -> Rachel -> Repeat)
633//============================================================
634
635airplane_01,243,74,4    script  #AirshipWarp-3  45,2,2,{
636OnTouch:
637        if($@airplanelocation2 == 1)warp "izlude",202,56;
638        if($@airplanelocation2 == 2)warp "yuno",20,265;
639        if($@airplanelocation2 == 3)warp "ra_fild12",292,204;
640        end;
641
642OnHide:
643        misceffect 16;
644        end;
645OnUnhide:
646        misceffect 215;
647        end;
648}
649
650airplane_01,243,29,4    script  #AirshipWarp-4  45,2,2,{
651OnTouch:
652        if($@airplanelocation2 == 1)warp "izlude",202,56;
653        if($@airplanelocation2 == 2)warp "yuno",20,265;
654        if($@airplanelocation2 == 3)warp "ra_fild12",292,204;
655        end;
656
657OnHide:
658        misceffect 16;
659        end;
660OnUnhide:
661        misceffect 215;
662        end;
663}
664
665airplane_01,1,1,0       script  YunoIzl_Airship -1,{
666OnInit:
667while(1)
668{
669        disablenpc "Quest_Izl";
670        initnpctimer;
671        setnpctimer 0;
672        set $@airplanelocation2,0;
673        donpcevent "#AirshipWarp-3::OnHide";
674        donpcevent "#AirshipWarp-4::OnHide";
675        disablenpc "#AirshipWarp-3";
676        disablenpc "#AirshipWarp-4";
677        mapannounce "airplane_01","The Airship is leaving the ground. Our next destination is Izlude.",1,0x00FF00;
678        end;
679OnTimer15000:
680        set $@mobinv, $@mobinv+1;
681        set $@mobrand, rand(1,3);
682        if($@mobinv >= 9 && $@mobrand == 3) {
683                stopnpctimer;
684                enablenpc "Quest_Izl";
685                donpcevent "Quest_Izl::OnInvasion";
686        }
687        mapannounce "airplane_01","We are heading to Izlude.",1,0x00FF00;
688        end;
689OnTimer30000:
690        mapannounce "airplane_01","We will arrive in Izlude shortly.",1,0x00FF00;
691        end;
692OnTimer45000:
693        set $@airplanelocation2,1;
694        enablenpc "#AirshipWarp-3";
695        enablenpc "#AirshipWarp-4";
696        donpcevent "#AirshipWarp-3::OnUnhide";
697        donpcevent "#AirshipWarp-4::OnUnhide"; 
698        mapannounce "airplane_01","Welcome to Izlude. Have a safe trip.",1,0x00FF00;
699        end;
700OnTimer55000:
701        mapannounce "airplane_01","Currently, we are in Izlude. The Airship will leave shortly.",1,0x00FF00;
702        end;
703OnTimer65000:
704        set $@airplanelocation2,0;
705        donpcevent "#AirshipWarp-3::OnHide";
706        donpcevent "#AirshipWarp-4::OnHide";
707        disablenpc "#AirshipWarp-3";
708        disablenpc "#AirshipWarp-4";
709        mapannounce "airplane_01","The Airship is leaving the ground. Our next destination is Juno.",1,0x70DBDB;
710        end;
711OnTimer80000:
712        mapannounce "airplane_01","We are heading to Juno.",1,0x70DBDB;
713        end;
714OnTimer95000:
715        mapannounce "airplane_01","We will arrive in Juno shortly.",1,0x70DBDB;
716        end;
717OnTimer110000:
718        set $@airplanelocation2,2;
719        enablenpc "#AirshipWarp-3";
720        enablenpc "#AirshipWarp-4";
721        donpcevent "#AirshipWarp-3::OnUnhide";
722        donpcevent "#AirshipWarp-4::OnUnhide";
723        mapannounce "airplane_01","Welcome to Juno. Have a safe trip.",1,0x70DBDB;
724        end;
725OnTimer120000:
726        mapannounce "airplane_01","Currently, we are in Juno. The Airship will take off shortly.",1,0x70DBDB;
727        end;
728OnTimer130000:
729        set $@airplanelocation2,0;
730        donpcevent "#AirshipWarp-3::OnHide";
731        donpcevent "#AirshipWarp-4::OnHide";
732        disablenpc "#AirshipWarp-3";
733        disablenpc "#AirshipWarp-4";
734        mapannounce "airplane_01","The Airship is leaving the ground. Our next destination is Rachel.",1,0xFF8600;
735        end;
736OnTimer145000:
737        mapannounce "airplane_01","We are heading to Rachel.",1,0xFF8600;
738        end;
739OnTimer160000:
740        mapannounce "airplane_01","We will arrive in Rachel shortly.",1,0xFF8600;
741        end;
742OnTimer175000:
743        set $@airplanelocation2,3;
744        enablenpc "#AirshipWarp-3";
745        enablenpc "#AirshipWarp-4";
746        donpcevent "#AirshipWarp-3::OnUnhide";
747        donpcevent "#AirshipWarp-4::OnUnhide";
748        mapannounce "airplane_01","Welcome to Rachel. Have a safe trip.",1,0xFF8600;
749        end;
750OnTimer185000:
751        mapannounce "airplane_01","Currently, we are in Rachel. The Airship will leave shortly.",1,0xFF8600;
752        end;
753OnTimer195000:
754        stopnpctimer;
755}
756OnReturn:
757        killmonsterall "airplane_01";
758        set $@mobinv, 0;
759        mapannounce "airplane_01","Monster threat nullfied. The Airship is now returning to normal operation.",1,0x00FF00;
760        startnpctimer;
761        end;
762}
763
764//============================================================
765//= Some normal NPCS (airplane_01)
766//============================================================
767
768airplane_01,240,64,5    duplicate(Exit2)        Exit#05 857
769
770airplane_01,247,64,5    duplicate(Exit2)        Exit#06 857
771
772airplane_01,240,39,1    duplicate(Exit2)        Exit#07 857
773
774airplane_01,247,39,1    duplicate(Exit2)        Exit#08 857
775
776airplane_01,100,69,2    duplicate(Airship Crew) Airship Crew#02 852
777
778airplane_01,250,59,3    duplicate(AirshipInfo)  Airship Staff#info      67
779
780airplane_01,50,66,4     duplicate(AirshipApples)        Meltz   86
781
782airplane_01,32,61,4     duplicate(TypingContest)        Nils    49     
783
784airplane_01,221,158,6   duplicate(Pilot)        Pilot#air-1     852
785
786
787airplane_01,83,61,2     script  Dianne  72,{
788        mes "[Dianne]";
789        mes "It's so weird!";
790        mes "I went to visit the";
791        mes "Airship Captain and";
792        mes "all I saw was this";
793        mes "weird reindeer. Oh!";
794        mes "Do you think that...";
795        close;
796OnTouch:
797        Emotion 28, "Dianne";
798        end;
799}
800
801airplane_01,69,63,2     script  Old Man#06      55,{
802        mes "[Mendel]";
803        mes "As I expected, the";
804        mes "in-flight meals are";
805        mes "three star quality at best.";
806        mes "^111111*Harrrumph*^000000 I really should";
807        mes "have brought my chef so that";
808        mes "I could enjoy a real meal.";
809        close;
810}
811
812airplane_01,33,68,4     script  Clarice 74,{
813        mes "[Clarice]";
814        mes "Hi, I'm Clarice~";
815        mes "How would you like";
816        mes "to wager some Apples";
817        mes "in a friendly game of Dice?";
818        next;
819        callfunc "applegamble","Clarice";
820        end;
821}
822
823airplane_01,71,31,6     script  Swordman Shimizu        106,{
824        mes "[Swordsman Shimizu]";
825        mes "Finally, after five";
826        mes "years of waiting...";
827        mes "I can have my revenge!";
828        next;
829        mes "[Swordsman Shimizu]";
830        mes "I just...";
831        mes "Have to make sure that";
832        mes "I don't keep missing my";
833        mes "stop. But soon, very soon,";
834        mes "vengeance will be mine!";
835        close;
836}
837
838//============================================================
839//= The Izlude Airship Staff
840//============================================================
841
842izlude,201,54,3 script  Airship Staff#izl       91,{
843        mes "[Airship Staff]";
844        mes "Welcome to the International Airship.";
845        mes "How may I help you?";
846        next;
847        if (select("Board the Airship:Cancel") == 1) {
848                mes "[Airship Staff]";
849                mes "The Airship boarding fee";
850                mes "is 1,200 zeny, but if you've";
851                mes "got a Free Ticket for Airship,";
852                mes "the fee will be waived. Will";
853                mes "you board the Airship?";
854                next;
855                if (select("Yes:No") == 1) {
856                        if(countitem(7311) > 0) {
857                                delitem 7311,1;
858                                warp "airplane_01",224,64;
859                                close;
860                        }
861                        if(Zeny > 1200) {
862                                set Zeny, Zeny - 1200;
863                                warp "airplane_01",224,64;
864                                close;
865                        }
866                        mes "[Airship Staff]";
867                        mes "You don't have enough zeny.";
868                        close;
869                }
870        }
871        mes "[Airship Staff]";
872        mes "Thank you and";
873        mes "have a nice day.";
874        close;
875}
876
877//============================================================
878//= The Hugel Airship Staff
879//============================================================
880
881hugel,182,150,3 script  Airship Staff#hu        91,{
882        mes "[Airship Staff]";
883        mes "Welcome to the International Airship.";
884        mes "How may I help you?";
885        next;
886        if (select("Board the Airship:Cancel") == 1) {
887                mes "[Airship Staff]";
888                mes "The Airship boarding fee";
889                mes "is 1,200 zeny, but if you've";
890                mes "got a Free Ticket for Airship,";
891                mes "the fee will be waived. Will";
892                mes "you board the Airship?";
893                next;
894                if (select("Yes:No") == 1) {
895                        if(countitem(7311) > 0) {
896                                delitem 7311,1;
897                                warp "airplane",224,64;
898                                close;
899                        }
900                        if(Zeny > 1200) {
901                                set Zeny, Zeny - 1200;
902                                warp "airplane",224,64;
903                                close;
904                        }
905                        mes "[Airship Staff]";
906                        mes "You don't have enough zeny.";
907                        close;
908                }
909        }
910        mes "[Airship Staff]";
911        mes "Thank you and";
912        mes "have a nice day.";
913        close;
914}
915
916//============================================================
917//= The Rachel Airship Staff
918//============================================================
919
920ra_fild12,295,208,3     script  Airship Staff#ra        45,1,1,{
921OnTouch:
922        mes "T use the airship, you are";
923        mes "required to pay 1,200 zeny or a";
924        mes "Free Airship Ticket. Would you like to use the service?";
925        next;
926        if (select("Yes:No") == 1) {
927                if (countitem(7311) > 0) {
928                        delitem 7311,1;
929                        warp "airplane_01",224,64;
930                        close;
931                }
932                if (Zeny >= 1200) {
933                        set Zeny, Zeny - 1200;
934                        warp "airplane_01",224,64;
935                        close;
936                }
937                mes "You don't have enough zeny.";
938                close;
939        }
940        mes "Thank you and, please come again.";
941        close;
942}
943
944//============================================================
945//= Juno Airport NPCs
946//============================================================
947
948y_airport,144,63,4      script  Airport Staff#Ein       91,{
949        mes "[Airship Staff]";
950        mes "Good day!";
951        mes "Would you like to go";
952        mes "to ^FF0000Einbroch^000000,^FF0000Hugel^000000 or";
953        mes "^FF0000Lighthalzen^000000?";
954        next;
955        if (select("Yes.:No.") == 1) {
956                mes "[Airship Staff]";
957                mes "Thank you and";
958                mes "have a nice day.";
959                close2;
960                warp "yuno",57,240;
961                end;
962        }
963        mes "[Airship Staff]";
964        mes "Thank you and";
965        mes "have a nice day.";
966        close;
967}
968       
969y_airport,141,63,4      script  Airport Staff#Izl       91,{
970        mes "[Airship Staff]";
971        mes "Good day!";
972        mes "Would you like to go";
973        mes "to ^FF0000Izlude^000000 or ^FF0000Rachel^000000?";
974        next;
975        if (select("Yes.:No.") == 1) {
976                mes "[Airship Staff]";
977                mes "Thank you and";
978                mes "have a nice day.";
979                close2;
980                warp "yuno",50,240;
981                end;
982        }
983        mes "[Airship Staff]";
984        mes "Thank you and";
985        mes "have a nice day.";
986        close;
987}
988
989yuno,14,262,3   script  Airship Staff#yuno01::Airship Staff     91,{
990        mes "[Airship Staff]";
991        mes "Welcome to Juno Airport.";
992        mes "Please use this door to";
993        mes "board the Airship that will";
994        mes "be flying all the way to Izlude";
995        mes "in the Rune-Midgarts Kingdom.";
996        next;
997        mes "[Airship Staff]";
998        mes "Otherwise, if Juno is";
999        mes "your intended destination,";
1000        mes "please head down the stairs";
1001        mes "and ask the Arrival Staff to lead";
1002        mes "you to the main terminal. Thank";
1003        mes "you, and enjoy your travels.";
1004        close;
1005}
1006
1007yuno,88,263,5   duplicate(Airship Staff)        Airship Staff#yuno02    91
1008
1009//============================================================
1010//= Apple Gambling Function
1011//============================================================
1012
1013function        script  applegamble     {
1014
1015        switch(select("Play Dice Game:Learn Dice Game Rules:Cancel")){
1016        case 3:
1017                mes "["+getarg(0)+"]";
1018                mes "I'm up for a game of";
1019                mes "dice whenever you feel";
1020                mes "like it. Just talk to me if";
1021                mes "you ever get hit with the";
1022                mes "sudden urge to gamle, kay?";
1023                close;
1024        case 2:
1025                mes "["+getarg(0)+"]";
1026                mes "The rules for the Dice game";
1027                mes "are pretty simple. First, you";
1028                mes "place a bet by wagering Apples.";
1029                mes "You can bet a maximum of 50";
1030                mes "Apples at a time. To keep things";
1031                mes "legal, I can only accept Apples.";
1032                next;
1033                mes "["+getarg(0)+"]";
1034                mes "But hey, if all that zeny";
1035                mes "is burning a hole in your";
1036                mes "pocket, head over to Fruitz";
1037                mes "and you can buy as many";
1038                mes "Apples as you want, playah~";
1039                next;
1040                mes "["+getarg(0)+"]";
1041                mes "Now, we begin with me";
1042                mes "rolling wto 6-sided dice.";
1043                mes "When it's your turn, you'll";
1044                mes "roll two 6-sided dice. After";
1045                mes "that, both of us will have the";
1046                mes "option of rolling a third die.";
1047                next;
1048                mes "["+getarg(0)+"]";
1049                mes "Now here's the important";
1050                mes "thing. If your total is higher";
1051                mes "than 12, you'll bust, meaning";
1052                mes "that you lose. Otherwise, the";
1053                mes "person with the higher total";
1054                mes "is the winner. Got it?";
1055                next;
1056                mes "["+getarg(0)+"]";
1057                mes "Now, you'll be the first";
1058                mes "to decide whether or not";
1059                mes "you'll roll the third die. Then,";
1060                mes "depending on your result, I'll";
1061                mes "roll my third die... Or maybe not.";
1062                next;
1063                mes "["+getarg(0)+"]";
1064                mes "When you win, you'll";
1065                mes "receive twice as many";
1066                mes "Apples as you wagered.";
1067                mes "But if we happen to tie, you";
1068                mes "get the Apples that you bet";
1069                mes "returned to you. Fair, right?";
1070                close;
1071        case 1:
1072                break;
1073        }
1074        mes "["+getarg(0)+"]";
1075        mes "Ooh, so you'll play with";
1076        mes "me? Great! How many";
1077        mes "Apples would you like to bet?";
1078        mes "Remember, you can wager";
1079        mes "up to 50 Apples. If you'd like";
1080        mes "to cancel, please enter '0'.";
1081        next;
1082L_Input:
1083        input @amount;
1084        if(@amount == 0) {
1085                mes "["+getarg(0)+"]";
1086                mes "Changed your mind?";
1087                mes "I understand. Well then,";
1088                mes "I hope we can play sometime.";
1089                close;
1090        }
1091        if(@amount > 50) set @amount,50;
1092        mes "["+getarg(0)+"]";
1093        mes "So you'll be";
1094        mes "betting ^FF0000"+@amount+"^000000 Apples.";
1095        mes "Is that right?";
1096        next;
1097        if(select("Yes:No")==2){
1098                mes "["+getarg(0)+"]";
1099                mes "Mm, made a mistake?";
1100                mes "Alright, please enter the";
1101                mes "number of Apples you";
1102                mes "wish to place in this bet";
1103                next;
1104                goto L_Input;
1105        }
1106        if(countitem(512)<@amount){
1107                //more apples then in inventory
1108                //-Improvised-
1109                mes "["+getarg(0)+"]";
1110                mes "Ooh...";
1111                mes "You don't have that";
1112                mes "many Apples with you,";
1113                mes "now do you?";
1114                close;
1115        }
1116        delitem 512,@amount;
1117        mes "["+getarg(0)+"]";
1118        mes "Good!";
1119        mes "Now we can start";
1120        mes "this game! I'll roll first~";
1121        next;
1122        mes "^0000FF*Rolling and rumbling*";
1123        set @table1,rand(1,6);
1124        set @table2,rand(1,6);
1125        set @tablesub,@table1+@table2;
1126        next;
1127        mes "I rolled a "+@table1+" and a "+@table2+",";
1128        mes "giving me a total of "+@tablesub+".";
1129        mes "Now it's your turn,";
1130        mes strcharinfo(0)+".";
1131        next;
1132        menu "Roll Dice.",-;
1133
1134        mes "^0000FF*Rolling and rumbling*";
1135        set @player1,rand(1,6);
1136        set @player2,rand(1,6);
1137        set @playersub,@player1+@player2;
1138        next;
1139        mes "["+getarg(0)+"]";
1140        mes strcharinfo(0)+",";
1141        mes "you rolled a "+@player1+" and a "+@player2+",";
1142        mes "giving you a total of ^FF0000"+@playersub+"^000000.";
1143        next;
1144        mes "["+getarg(0)+"]";
1145        if(@playersub == @tablesub) {
1146                mes "Well, well, well.";
1147                mes "Both of us have a total";
1148                mes "of "+@playersub+". Well, the ball's in";
1149                mes "your court. Are you going";
1150                mes "to roll your third die,";
1151                mes strcharinfo(0)+"?";
1152        } else if(@playersub > @tablesub) {
1153                mes "Since my total is only ^0000FF"+@tablesub+"^000000,";
1154                mes "you have the advantage for";
1155                mes "now with your total of ^FF0000"+@playersub+"^000000. Do";
1156                mes "you wanna roll one more die?";
1157                mes "Remember, you'll bust if all three";
1158                mes "of your dice total more than 12.";
1159        } else if(@tablesub > @playersub) {
1160                mes "Since my total is ^0000FF"+@tablesub+"^000000,";
1161                mes "I have the advantage for";
1162                mes "now with your total of ^FF0000"+@playersub+"^000000. Do";
1163                mes "you wanna roll one more die?";
1164                mes "Remember, you'll bust if all three";
1165                mes "of your dice total more than 12.";
1166        }
1167        next;
1168        if(select("Roll another dice.:Don't Roll.")==2){
1169                mes "["+getarg(0)+"]";
1170                mes "Not gonna roll, huh?";
1171                if(@tablesub == @playersub) {
1172                        mes "You better hope I roll";
1173                        mes "too high and bust, or";
1174                        mes "I'll beat you for sure!";
1175                        mes "Okay, here goes nothing...";
1176                        next;
1177                        goto L_Table3;
1178                } else if(@tablesub < @playersub) {
1179                        next;
1180                        mes "["+getarg(0)+"]";
1181                        mes "Alright, I see that you";
1182                        mes "don't want to risk rolling";
1183                        mes "higher than 12 and busting.";
1184                        mes "I'll go ahead and roll then.";
1185                        next;
1186                        goto L_Table3;
1187                } else if(@tablesub > @playersub) {
1188                //you have a lower sub total then table, and do not roll 3th -Improvised-
1189                        mes "["+getarg(0)+"]";
1190                        mes "Not gonna roll, huh?";
1191                        mes "Well, then I'm not";
1192                        mes "gonna roll either.";
1193                        next;
1194                        mes "["+getarg(0)+"]";
1195                        mes "That means that I";
1196                        mes "have a total of ^0000FF"+@tablesub+"^000000";
1197                        mes "wich beats your ^FF0000"+@playersub+"^000000.";
1198                        mes "I'm sorry, but you lose";
1199                        mes "this game, "+strcharinfo(0)+". Better";
1200                        mes "luck next time.";
1201                }
1202                close;
1203        }
1204        mes "^0000FF*Rolling and rumbling*";
1205        set @player3,rand(1,6);
1206        set @playersub,@playersub+@player3;
1207        if(@playersub > 12) {
1208        //player bust --Improvised--
1209                next;
1210                mes "["+getarg(0)+"]";
1211                mes "Oh my... You rolled a ^FF000"+@player3+"^000000,";
1212                mes "making your total ^FF0000"+@playersub+"^000000.";
1213                mes "That's more then 12, meaning you bust.";
1214                mes "Sorry, but you lose this";
1215                mes "game, "+strcharinfo(0)+".";
1216                close;
1217        }
1218        next;
1219        mes "["+getarg(0)+"]";
1220        mes "Oh hey! You rolled";
1221        if(@playersub >= @tablesub) {
1222                mes "a ^FF0000"+@player3+"^000000, giving you a total";
1223                mes "of ^FF0000"+@playersub+"^000000. Now, if I don't";
1224                mes "roll, I'll lose for sure!";
1225                mes "I'm gonna go for it...";
1226                next;
1227                goto L_Table3;
1228        } else if(@playersub < @tablesub) {
1229                //player's sub together with 3th die is still too low
1230                //--Improvised--
1231                mes "a ^FF0000"+@player3+"^000000, giving";
1232                mes "you a total of ^FF0000"+@playersub+"^000000.";
1233                mes "Wich still isn't enough";
1234                mes "to beat my ^0000FF"+@tablesub+"^000000.";
1235                mes "Sorry, but you lose this";
1236                mes "game, "+strcharinfo(0)+". Them's";
1237                mes "the breaks, I suppose...";
1238                close;
1239        }
1240L_Table3:
1241        mes "^0000FF*Rolling and rumbling*";
1242        set @table3,rand(1,6);
1243        set @tablesub,@tablesub+@table3;
1244        next;
1245        if(@tablesub > 12) {
1246                mes "["+getarg(0)+"]";
1247                mes "Eh? I rolled a ^0000FF"+@table3+"^000000, making";
1248                mes "my total ^0000FF"+@tablesub+"^000000. I hate to say";
1249                mes "it, but I gambled and lost.";
1250                mes "Take your winnings before";
1251                mes "I cry, "+strcharinfo(0)+"~!";
1252                close2;
1253                getitem 512,@amount*2;
1254                end;
1255        }
1256        mes "["+getarg(0)+"]";
1257        if(@tablesub < @playersub) {
1258                mes "I rolled a "+@table3+", which";
1259                mes "gives me a total of ^0000FF"+@tablesub+"^000000.";
1260                mes "But... It's still not enough";
1261                mes "to beat your ^FF0000"+@playersub+"^000000. It looks";
1262                mes "like I can't compete with";
1263                mes "you, "+strcharinfo(0)+"...";
1264                close2;
1265                getitem 512,@amount*2;
1266                end;
1267        } else if(@tablesub > @playersub) {
1268        mes "I rolled a ^0000FF"+@table3+"^000000, giving";
1269        mes "me a total of ^0000FF"+@tablesub+"^000000 which";
1270        mes "beats your total of ^FF0000"+@playersub+"^000000.";
1271        mes "Sorry, but you lose this";
1272        mes "game, "+strcharinfo(0)+". Them's";
1273        mes "the breaks, I suppose...";
1274        close;
1275        } else if(@tablesub == @playersub) {
1276                //Result = tie, --Improvised--
1277                mes "I rolled a ^0000FF"+@table3+"^000000, giving";
1278                mes "me a total of ^0000FF"+@tablesub+"^000000, which";
1279                mes "is the same as your total.";
1280                mes "Well, this game didn't have a";
1281                mes "winner or loser, "+strcharinfo(0)+".";
1282                close2;
1283                getitem 512,@amount;
1284                end;
1285        }
1286}
Note: See TracBrowser for help on using the browser.