//================= 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) Athena Dev Teams //= //= 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 . //========================================================================= //= The Airship System Script //================= Description =========================================== //= The Airship System used in the official servers. //========================================================================= //=== Domestic Airship Route =============================== // ... -> Juno -> Einbroch -> Lighthalzen -> Einbroch -> // -> Juno -> Hugel -> ... airplane,243,73,0 script #AirshipWarp-1 WARPNPC,1,1,{ end; OnInit: OnHide: specialeffect EF_BASH; disablenpc strnpcinfo(0); end; OnUnhide: enablenpc strnpcinfo(0); specialeffect EF_SUMMONSLAVE; end; OnTouch: switch ($@airplanelocation) { case 0: warp "yuno",92,260; end; case 1: warp "einbroch",92,278; end; case 2: warp "lighthalzen",302,75; end; case 3: warp "hugel",181,146; end; } } airplane,243,29,0 duplicate(#AirshipWarp-1) #AirshipWarp-2 WARPNPC,1,1 airplane,1,1,0 script Domestic_Airship FAKE_NPC,{ end; OnInit: initnpctimer; end; OnTimer20000: mapannounce "airplane","We are heading to Einbroch.",bc_map,"0x00ff00"; end; OnTimer50000: mapannounce "airplane","We will arrive in Einbroch shortly.",bc_map,"0x00ff00"; end; OnTimer60000: $@airplanelocation = 1; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Welcome to Einbroch. Have a safe trip.",bc_map,"0x00ff00"; end; OnTimer70000: mapannounce "airplane","Currently we are in Einbroch. The Airship will take off shortly.",bc_map,"0x00ff00"; end; OnTimer80000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","The Airship is now taking off. Our next destination is Lighthalzen.",bc_map,"0x70dbdb"; end; OnTimer100000: mapannounce "airplane","We are heading to Lighthalzen.",bc_map,"0x70dbdb"; end; OnTimer130000: mapannounce "airplane","We will arrive in Lighthalzen shortly.",bc_map,"0x70dbdb"; end; OnTimer140000: $@airplanelocation = 2; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Welcome to Lighthalzen. Have a safe trip.",bc_map,"0x70dbdb"; end; OnTimer150000: mapannounce "airplane","Currently we are in Lighthalzen. The Airship will leave shortly.",bc_map,"0x70dbdb"; end; OnTimer160000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","The Airship is leaving the ground. Our next destination is Einbroch.",bc_map,"0x00ff00"; end; OnTimer180000: mapannounce "airplane","We are heading to Einbroch.",bc_map,"0x00ff00"; end; OnTimer210000: mapannounce "airplane","We will arrive in Einbroch shortly.",bc_map,"0x00FF00"; end; OnTimer220000: $@airplanelocation = 1; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Welcome to Einbroch. Have a safe trip.",bc_map,"0x00ff00"; end; OnTimer230000: mapannounce "airplane","Currently we are in Einbroch. The Airship will take off shortly.",bc_map,"0x00ff00"; end; OnTimer240000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","The Airship is now taking off. Our next destination is Juno.",bc_map,"0xff8200"; end; OnTimer260000: mapannounce "airplane","We are heading to Juno.",bc_map,"0xff8200"; end; OnTimer290000: mapannounce "airplane","We will arrive in Juno shortly.",bc_map,"0xff8200"; end; OnTimer300000: $@airplanelocation = 0; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Welcome to Juno. Have a safe trip.",bc_map,"0xff8200"; end; OnTimer310000: mapannounce "airplane","Currently we are in Juno. The Airship will leave shortly.",bc_map,"0xff8200"; end; OnTimer320000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","The Airship is leaving the ground. Our next destination is Hugel.",bc_map,"0xca4bf3"; end; OnTimer340000: mapannounce "airplane","We are heading to Hugel.",bc_map,"0xca4bf3"; end; OnTimer370000: mapannounce "airplane","We will arrive in Hugel shortly.",bc_map,"0xca4bf3"; end; OnTimer380000: $@airplanelocation = 3; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Welcome to Hugel. Have a safe trip.",bc_map,"0xca4bf3"; end; OnTimer390000: mapannounce "airplane","Currently we are in Hugel. The Airship will leave shortly.",bc_map,"0xca4bf3"; end; OnTimer400000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","The Airship is leaving the ground. Our next destination is Juno.",bc_map,"0xff8200"; end; OnTimer420000: mapannounce "airplane","We are heading to Juno.",bc_map,"0xff8200"; end; OnTimer450000: mapannounce "airplane","We will arrive in Juno shortly.",bc_map,"0xff8200"; end; OnTimer460000: $@airplanelocation = 0; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Welcome to Juno. Have a safe trip.",bc_map,"0xff8200"; end; OnTimer470000: mapannounce "airplane","Currently we are in Juno. The Airship will leave shortly.",bc_map,"0xff8200"; end; OnTimer480000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","The Airship is leaving the ground. Our next destination is Einbroch.",bc_map,"0x00ff00"; stopnpctimer; initnpctimer; } airplane,240,64,5 script Exit#airplane1a::ExitAirplane 4_BOARD3,{ end; } airplane,247,64,5 duplicate(ExitAirplane) Exit#airplane1b 4_BOARD3 airplane,240,40,1 duplicate(ExitAirplane) Exit#airplane2a 4_BOARD3 airplane,247,40,1 duplicate(ExitAirplane) Exit#airplane2b 4_BOARD3 airplane,100,69,3 script Airship Crew#ein-1 4_M_EIN_SOLDIER,{ mes "[Airship Crew]"; mes "If we've landed at"; mes "your destination and"; mes "you'd like to leave the"; mes "Airship, please use the"; mes "stairs up ahead. Thank"; mes "you for your patronage."; close; } airplane,64,94,1 script Umbala Kid#ein_p 4_M_UMKID,{ emotion e_swt2; mes "[Kid]"; if (event_umbala >= 3) { mes "Wow, mom!"; mes "L-look at this!"; mes "We're flying! W-we're..."; mes "We're in the freakin' sky!"; } else { mes "Makumalagu!"; mes "Saampa joojimbo"; mes "kaku na jedi Solo."; mes "Bwahahahahahahaah!"; } close; } airplane,66,93,3 script Umbala Lady#ein_p 4_F_UMWOMAN,{ emotion e_dots; mes "[Lady]"; if (event_umbala >= 3) { mes "Shush..."; mes "Honey, behave~"; mes "Don't act so excited"; mes "when we're out in a"; mes "public place like this!"; } else { mes "Chooktu!"; mes "Sacraup matii!"; mes "Shaka gurftalfi"; mes "huntiki manjoo!"; } close; } airplane,71,91,7 script Umbala Man#ein_p 4_M_UMSOLDIER,{ if (event_umbala >= 3) { mes "[Chrmlim]"; mes "Hey there~"; mes "From that look on"; mes "your face, I see that"; mes "you can understand"; mes "me. ^333333*Whew...!*^000000"; next; emotion e_pif; mes "[Chrmlim]"; mes "I've been helping the"; mes "Airship enterprise by"; mes "having the Airship Crewmen"; mes "train in Umbala to overcome"; mes "any acrophobia they might have through bungee jumping. Neat, eh?"; next; mes "[Chrmlim]"; mes "But..."; mes "Some of them couldn't"; mes "overcome their fear of"; mes "heights. And a few even"; mes "ended up, um, ^333333in Nifflheim^000000."; } else { mes "[Chrmlim]"; mes "Bajoo ga"; mes "nukta Airship."; next; mes "[Chrmlim]"; mes "..."; mes "......"; next; emotion e_pif; mes "[Chrmlim]"; mes "Shabala moow bajama"; mes "Airship kulaha googoona "; mes "salu. Dama, kookoo na nu"; mes "yukuta. Um, fashuku na ret!"; } close; } airplane,250,58,2 script Airship Staff#airplane 1_F_02,{ // Hugel quest addition if (hg_ma1 == 3) { mes "[Airship Staff]"; mes "Welcome"; mes "to the Airship."; mes "How may I help you?"; next; select("Do you have a passenger named Thierry?"); mes "[Airship Staff]"; mes "I am sorry, but I do not think that we have a passenger by that name."; close; } // Hugel quest end mes "[Airship Staff]"; mes "Welcome"; mes "to the Airship."; mes "How may I help you?"; next; switch (select("Using the Airship", "Captain's Cabin", "Facilities", "Cancel")) { case 1: mes "[Airship Staff]"; mes "When you see a broadcast"; mes "announcing that we have"; mes "arrived at your destination,"; mes "please use one of the exits"; mes "located at the north and"; mes "south ends of the Airship."; next; mes "[Airship Staff]"; mes "If you happen to miss"; mes "your stop, don't worry."; mes "The Airship is constantly"; mes "en route and you'll get"; mes "another chance to arrive"; mes "to your intended destination."; close; case 2: mes "[Airship Staff]"; mes "The Captain's Cabin"; mes "is located at the front"; mes "of the Airship. There, you"; mes "can meet the captain and"; mes "the pilot of the Airship."; close; case 3: mes "[Airship Staff]"; mes "The Airship provides"; mes "various Mini Games for"; mes "the entertainment of all"; mes "our passengers. We invite"; mes "you to try your luck and skills"; mes "in the Airship's Mini Games~"; close; case 4: mes "[Airship Staff]"; mes "Well, I hope you"; mes "your flight aboard"; mes "our Airships. Thank"; mes "you and have a good day."; close; } } airplane,80,71,2 script Zerta#01airplane 4_M_BUDDHIST,{ mes "[Zerta]"; mes "Oh, hello adventurer."; mes "I am currently on a"; mes "sacred journey, offering"; mes "prayer for the sake of the"; mes "Rune-Midgard continent."; close; } airplane,65,63,4 script Maelin#01airplane 4_F_06,{ mes "[Maelin]"; mes "Um, this Airship is"; mes "to Lutie, isn't it? I've"; mes "waiting so long,"; mes "but I haven't heard any"; mes "broadcast about Lutie."; close; } airplane,72,34,6 script Aanos#01airplane 4_F_GON,{ mes "[Aanos]"; mes "Oh wooow~"; mes "The sky looks"; mes "so different and"; mes "pretty from up there!"; close; } airplane,221,158,2 script Pilot#airplane 4_M_EIN_SOLDIER,{ // Hugel quest addition if (hg_ma1 == 3) { mes "[Pilot]"; mes "I wish that I could go drink a cold fresh beer."; mes "Drinking is the goal of my life! Drinking gives me energy!"; mes "I am nothing without drinks!"; next; mes "[Pilot]"; mes "But! Driving under the influence is not good."; mes "But! That makes me want to drink more and more!"; emotion e_sob; next; select("Do you know a passenger named Thierry?"); mes "[Pilot]"; mes "This uniform is"; mes "really dapper, but"; mes "it's way too thick to"; mes "wear around the Airship."; next; mes "[Pilot]"; mes "..."; mes "......"; mes "No one ever really"; mes "comes into this room."; mes "And the captain IS a reindeer. I could just strip to my boxers."; next; emotion e_omg; mes "[Pilot]"; mes "Wah!? Who is it!"; next; mes "- ...He is not listening to you, at all. -"; close; } // Hugel quest end switch (rand(1,4)) { case 1: mes "[Pilot]"; mes "It's been sooo"; mes "long since I've"; mes "enjoyed a nice, cold"; mes "alcoholic brew. But the"; mes "job requires me to be as"; mes "clear headed as I can!"; next; mes "[Pilot]"; mes "Always drink responsibly!"; mes "Still, I can't remember the"; mes "last time I had a real vacation"; mes "or even a day off. Yeap, some"; mes "booze, some chips, some TV"; mes "and serius R&R is in order."; emotion e_sob; close; case 2: mes "[Pilot]"; mes "Man, the weather"; mes "is really nice today."; mes "Bright, open skies make"; mes "for some good visibility"; mes "and safe, carefree flying."; close; case 3: mes "[Pilot]"; mes "You know, our captain's a"; mes "respectable guy. Him and"; mes "his brother are actually well"; mes "known in the aircraft industry."; mes "Who knew reindeer made"; mes "such good captains?"; next; mes "[Pilot]"; mes "Just between you"; mes "and me, I gotta tell"; mes "you, that Santa was onto"; mes "something, getting reindeers"; mes "and elves to work for him."; mes "The man must be a genius!"; close; default: mes "[Pilot]"; mes "You know, this whole"; mes "piloting thing in the air,"; mes "it's rather new, you know?"; mes "Yeah, they got this Airship"; mes "operation in a hurry."; next; emotion e_omg; mes "[Pilot]"; mes "Still, they where real"; mes "serius, really thought"; mes "ahead. I mean, they had us"; mes "training while the Airships"; mes "were still being invented."; mes "Isn't that freakin' crazy?!"; close; } } airplane,50,66,5 script Apple Merchant#airplane 4_M_04,{ mes "[Fruitz]"; mes "Welcome to Fruitz's"; mes "Shop where you can"; mes "purchase Apples or grind"; mes "them to make Apple Juice."; next; switch (select("Buy Apples.", "Make Apple Juice.", "Why are you here?", "Cancel.")) { case 1: mes "[Fruitz]"; mes "Please enter the amount"; mes "of Apples that you wish to"; mes "buy. Each Apple is 15 zeny"; mes "and you can buy a maximum"; mes "of 500 at a time. Please enter"; mes " '0' to cancel your order."; next; while (1) { input .@input; .@pay = .@input * 15; if (.@input == 0) { mes "[Fruitz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } else if (.@input < 1 || .@input > 500) { mes "[Fruitz]"; mes "You've entered a number"; mes "higher than the maximum"; mes "value of 500. Please enter"; mes "the number of Apples you"; mes "wish to purchase again."; next; } else { mes "[Fruitz]"; mes "A total of ^FF0000" + .@input + "^000000 Apples"; mes "will cost you ^FF0000" + .@pay + " Zeny^000000 zeny."; mes "Would you like to continue?"; next; if (select("Yes", "No") == 2) { mes "[Fruitz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } break; } } if (Zeny < .@pay) { mes "[Fruitz]"; mes "I'm sorry, but you don't"; mes "have enough money to"; mes "purchase that many Apples."; mes "Please check your zeny or"; mes "purchase fewer Apples."; close; } else if (checkweight(Apple,.@input) == 0) { mes "[Fruitz]"; mes "Hmmm, I don't think"; mes "you've got enough room in"; mes "your inventory to carry this"; mes "many Apples. Why don't you free up some of your inventory space?"; close; } else { Zeny -= .@pay; getitem Apple,.@input; mes "[Fruitz]"; mes "Thanks for stopping by"; mes "my shop. I hope you enjoy"; mes "the flavor of these Apples~!"; close; } case 2: mes "[Fruitz]"; mes "Okay, I'll need"; mes "^FF00003 Apples and 1 Empty Bottle^000000"; mes "to make 1 Apple Juice for you."; mes "Would you like to proceed?"; next; switch (select("Yes", "No")) { case 1: if (countitem(Apple) < 3 || countitem(Empty_Bottle) < 1) { mes "[Fruitz]"; mes "I'm sorry, but you don't"; mes "have enough materials to"; mes "create a bottle of Apple Juice."; mes "Remember, I need 3 Apples"; mes "and 1 Empty Bottle to do it."; close; } else { mes "[Fruitz]"; mes "Thank you,"; mes "please wait"; mes "just a moment."; next; mes "^3355FF*Grind grind*"; mes "*Grind grind*"; mes "*Clang...!*^000000"; next; delitem Apple,3; delitem Empty_Bottle,1; getitem Apple_Juice,1; mes "[Fruitz]"; mes "There you go~"; mes "I hope you enjoy!"; mes "Please feel free to"; mes "stop by for your Apple"; mes "and Apple Juice needs"; mes "at anytime, adventurer~"; close; } case 2: mes "[Fruitz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } case 3: mes "[Fruitz]"; mes "I used to be a wandering"; mes "vagabond when, one day,"; mes "I took a nap and something"; mes "struck my head and awoke"; mes "me from my restful slumber."; next; mes "[Fruitz]"; mes "It turns out that I was"; mes "sleeping beneath an apple"; mes "tree and that an apple fell"; mes "and hit me on the head."; mes "I was dying of hunger and"; mes "was about to eat that Apple..."; next; mes "[Fruitz]"; mes "But suddenly, Kain, my old"; mes "friend from the mining days,"; mes "asked me to help him around"; mes "on the Airship. So I did, and"; mes "it was there where I found some"; mes "people playing the Dice game."; next; mes "[Fruitz]"; mes "I was bored and curious"; mes "and ended up wagering that"; mes "single Apple in a game of"; mes "dice. But for some reason,"; mes "I had this incredible lucky"; mes "streak. One apple became two... "; next; mes "[Fruitz]"; mes "Two became four and"; mes "before I knew it, I had"; mes "cornered the Apple market!"; mes "I won so many Apples, I just"; mes "started my own business here"; mes "on the Airship. Weird, huh?"; next; mes "[Fruitz]"; mes "So Apples are good"; mes "for you. They were"; mes "certainly very good"; mes "to me. Hahahahaah~!"; close; case 4: mes "[Fruitz]"; mes "Thank you for"; mes "using my shop."; mes "Farewell~"; close; } } //== International Airship Route =========================== // ... -> Izlude -> Juno -> Rachel -> ... airplane_01,243,73,0 script #AirshipWarp-3 WARPNPC,1,1,{ end; OnTouch: switch ($@airplanelocation2) { case 0: warp "ra_fild12",292,204; end; case 1: if (RENEWAL) warp "izlude",200,73; else warp "izlude",200,56; end; case 2: warp "yuno",12,261; end; } OnInit: OnHide: specialeffect EF_BASH; disablenpc strnpcinfo(0); end; OnUnhide: enablenpc strnpcinfo(0); specialeffect EF_SUMMONSLAVE; end; } airplane_01,243,29,0 duplicate(#AirshipWarp-3) #AirshipWarp-4 WARPNPC,1,1 airplane_01,1,1,0 script International_Airship FAKE_NPC,{ end; OnInit: OnEnable: initnpctimer; end; OnTimer25000: mapannounce "airplane_01","We are heading to Izlude.",bc_map,"0x00ff00"; end; OnTimer50000: mapannounce "airplane_01","We will arrive in Izlude shortly.",bc_map,"0x00ff00"; end; OnTimer60000: $@airplanelocation2 = 1; donpcevent "#AirshipWarp-3::OnUnhide"; donpcevent "#AirshipWarp-4::OnUnhide"; mapannounce "airplane_01","Welcome to Izlude. Have a safe trip.",bc_map,"0x00ff00"; end; OnTimer70000: mapannounce "airplane_01","We are currently in Izlude. The Airship will take off shortly.",bc_map,"0x00ff00"; end; OnTimer80000: donpcevent "#AirshipWarp-3::OnHide"; donpcevent "#AirshipWarp-4::OnHide"; mapannounce "airplane_01","The Airship is now taking off. Our next destination is Juno.",bc_map,"0x70dbdb"; end; OnTimer105000: mapannounce "airplane_01","We are heading to Juno.",bc_map,"0x70dbdb"; end; OnTimer130000: mapannounce "airplane_01","We will arrive in Juno shortly.",bc_map,"0x70dbdb"; end; OnTimer140000: $@airplanelocation2 = 2; donpcevent "#AirshipWarp-3::OnUnhide"; donpcevent "#AirshipWarp-4::OnUnhide"; mapannounce "airplane_01","Welcome to Juno. Have a safe trip.",bc_map,"0x70dbdb"; end; OnTimer150000: mapannounce "airplane_01","We are currently in Juno. The Airship will leave shortly.",bc_map,"0x70dbdb"; end; OnTimer160000: donpcevent "#AirshipWarp-3::OnHide"; donpcevent "#AirshipWarp-4::OnHide"; mapannounce "airplane_01","The Airship is leaving the ground. Our next destination is Rachel.",bc_map,"0xFF8200"; end; OnTimer185000: mapannounce "airplane_01","We are heading to Rachel.",bc_map,"0xFF8200"; end; OnTimer210000: mapannounce "airplane_01","We will arrive in Rachel shortly.",bc_map,"0xFF8200"; end; OnTimer220000: $@airplanelocation2 = 0; donpcevent "#AirshipWarp-3::OnUnhide"; donpcevent "#AirshipWarp-4::OnUnhide"; mapannounce "airplane_01","Welcome to Rachel. Have a safe trip.",bc_map,"0xFF8200"; end; OnTimer230000: mapannounce "airplane_01","We are currently in Rachel. The Airship will take off shortly.",bc_map,"0xFF8200"; end; OnTimer240000: donpcevent "#AirshipWarp-3::OnHide"; donpcevent "#AirshipWarp-4::OnHide"; mapannounce "airplane_01","The Airship is now taking off. Our next destination is Izlude.",bc_map,"0x00ff00"; stopnpctimer; ++.moninv; if (.moninv == 7) { if (rand(1,3) == 3) { donpcevent "Airship#airplane02::OnEnable"; end; } .moninv = 0; } initnpctimer; end; } airplane_01,240,64,5 script Exit#airplane_011a::ExitAirplane01 4_BOARD3,{ end; } airplane_01,247,64,5 duplicate(ExitAirplane01) Exit#airplane_011b 4_BOARD3 airplane_01,240,40,1 duplicate(ExitAirplane01) Exit#airplane_012a 4_BOARD3 airplane_01,247,40,1 duplicate(ExitAirplane01) Exit#airplane_012b 4_BOARD3 airplane_01,250,58,2 script Airship Staff#airplane01 1_F_02,{ mes "[Airship Staff]"; mes "Welcome"; mes "to the Airship."; mes "How may I help you?"; next; switch (select("Using the Airship", "Captain's Cabin", "Facilities", "Cancel")) { case 1: mes "[Airship Staff]"; mes "When you see a broadcast"; mes "announcing that we have"; mes "arrived at your destination,"; mes "please use one of the exits"; mes "located at the north and"; mes "south ends of the Airship."; next; mes "[Airship Staff]"; mes "If you happen to miss"; mes "your stop, don't worry."; mes "The Airship is constantly"; mes "en route and you'll get"; mes "another chance to arrive"; mes "to your intended destination."; close; case 2: mes "[Airship Staff]"; mes "The Captain's Cabin"; mes "is located at the front"; mes "of the Airship. There, you"; mes "can meet the captain and"; mes "the pilot of the Airship."; close; case 3: mes "[Airship Staff]"; mes "The Airship provides"; mes "various Mini Games for"; mes "the entertainment of all"; mes "our passengers. We invite"; mes "you to try your luck and skills"; mes "in the Airship's Mini Games~"; close; case 4: mes "[Airship Staff]"; mes "Well, I hope you"; mes "your flight aboard"; mes "our Airships. Thank"; mes "you and have a good day."; close; } } airplane_01,50,66,5 script Apple Merchant#air01 4_M_04,{ if (checkweight(Knife,1) == 0) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } mes "[Meltz]"; mes "Welcome to Meltz's"; mes "Shop where you can"; mes "purchase Apples or grind"; mes "them to make Apple Juice."; next; switch (select("Buy Apples.", "Make Apple Juice.", "Cancel.")) { case 1: mes "[Meltz]"; mes "Please enter the amount"; mes "of Apples that you wish to"; mes "buy. Each Apple is 15 zeny"; mes "and you can buy a maximum"; mes "of 500 at a time. Please enter"; mes "'0' to cancel your order."; next; while (1) { input .@input; .@pay = .@input * 15; if (.@input == 0) { mes "[Meltz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } else if (.@input < 1 || .@input > 500) { mes "[Meltz]"; mes "You've entered a number"; mes "higher than the maximum"; mes "value of 500. Please enter"; mes "the number of Apples you"; mes "wish to purchase again."; next; } else { mes "[Meltz]"; mes "A total of ^FF0000" + .@input + "^000000 Apples"; mes "will cost you ^FF0000" + .@pay + "^000000 zeny."; mes "Would you like to continue?"; next; if (select("Yes", "No") == 2) { mes "[Meltz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } break; } } if (Zeny < .@pay) { mes "[Meltz]"; mes "I'm sorry, you don't have"; mes "enough money with you."; mes "Please check your funds or"; mes "purchase less Apples."; close; } else if (checkweight(Apple,.@input) == 0) { mes "[Meltz]"; mes "Hmm, I don't think you've"; mes "got enough room to carry"; mes "this many Apples. You might"; mes "want to free up your inventory"; mes "space."; close; } else { Zeny -= .@pay; getitem Apple,.@input; mes "[Meltz]"; mes "Thanks for stopping by"; mes "my shop. I hope you enjoy"; mes "the flavor of these Apples~!"; close; } case 2: mes "[Meltz]"; mes "Okay, I'll need"; mes "^FF00003 Apples and 1 Empty Bottle^000000"; mes "to make 1 Apple Juice for you."; mes "Would you like to proceed?"; next; switch (select("Yes", "No")) { case 1: if (countitem(Apple) < 3 || countitem(Empty_Bottle) < 1) { mes "[Meltz]"; mes "I'm sorry, but you don't"; mes "have enough materials to"; mes "create a bottle of Apple Juice."; mes "Remember, I need 3 Apples"; mes "and 1 Empty Bottle to do it."; close; } else { mes "[Meltz]"; mes "Thank you, please wait."; next; mes "^3355FF*Grind* *Grind*"; mes "*Grind* *Grind*"; mes "*Clang...!*^000000"; next; delitem Apple,3; delitem Empty_Bottle,1; getitem Apple_Juice,1; mes "[Meltz]"; mes "There you go~"; mes "Please come again."; close; } case 2: mes "[Meltz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } case 3: mes "[Meltz]"; mes "Thanks for stopping"; mes "by my shop. Farewell!"; mes "Come by anytime when"; mes "you feel like having an"; mes "Apple to snack on~"; close; } } airplane_01,221,158,2 script Pilot#airplane_01 4_M_EIN_SOLDIER,{ switch (rand(1,4)) { case 1: mes "[Pilot]"; mes "Longitude, 131 degrees east."; mes "Latitude, 37 degrees north."; mes "We're right on course, captain."; close; case 2: mes "[Pilot]"; mes "Looks like a really"; mes "cloudy day. Always hard"; mes "to navigate when the skies"; mes "aren't clear. Guess we'll"; mes "need to amp the radar."; close; case 3: mes "[Pilot]"; mes "The Captain is a good"; mes "man and I can't think of"; mes "a finer person to command"; mes "this ship. Still, he's pretty"; mes "tough, a real slave driver."; next; mes "[^ff0000Tarlock^000000]"; mes "^ff0000Hey...!^000000"; mes "^ff0000Less chit-chat^000000"; mes "^ff0000and more piloting!^000000"; next; mes "[Pilot]"; mes "R-right away, sir!"; mes "(See what I mean?)"; close; default: mes "[Pilot]"; mes "This uniform is"; mes "really dapper, but"; mes "it's way too thick to"; mes "wear around the Airship."; next; mes "[Pilot]"; mes "..."; mes "......"; mes "No one ever really"; mes "comes into this room."; mes "And the captain IS a reindeer."; mes "I could just strip to my boxers."; next; emotion e_omg; mes "[Pilot]"; mes "Oh...! Hello there!"; mes "E-e-enjoying your flight?!"; close; } } airplane_01,83,61,2 script Dianne#01airplane_01 1_F_MARIA,2,2,{ mes "[Dianne]"; mes "It's so weird!"; mes "I went to visit the"; mes "Airship Captain and"; mes "all I saw was this"; mes "weird reindeer. Oh!"; mes "Do you think that..."; close; OnTouch: emotion e_sob; end; } airplane_01,69,63,2 script Mendel#01airplane_01 1_M_JOBTESTER,{ mes "[Mendel]"; mes "As I expected, the"; mes "in-flight meals are"; mes "three star quality at best."; mes "*Harrrumph* I really should"; mes "have brought my chef so that"; mes "I could enjoy a real meal."; close; } airplane_01,71,31,2 script Swordsman Shimizu#air_01 1_M_MOC_LORD,{ mes "[Swordsman Shimizu]"; mes "Finally, after five"; mes "years of waiting..."; mes "I can have my revenge!"; next; mes "[Swordsman Shimizu]"; mes "I just..."; mes "Have to make sure that"; mes "I don't keep missing my"; mes "stop. But soon, very soon,"; mes "vengeance will be mine!"; close; } //=== Typing Challenge ===================================== airplane_01,32,61,4 script Nils#ein 1_M_03,1,1,{ mes "[Nils]"; mes "Welcome to the"; mes "^ff0000RO Typing Challenge^000000."; mes "Would you like to play"; mes "a quick typing game?"; next; switch (select("Play ^ff0000RO Typing Challenge^000000", "Information", "View Top Records", "Cancel")) { case 1: mes "[Nils]"; mes "Okay, we have"; mes "a new challenger!"; mes "Enter the following"; mes "text as quickly as you"; mes "can without making any"; mes "mistakes! Let's start~!"; setarray .@line1_1$[0], "^3cbcbccallipygian salacius lascivious^000000", "^3cbcbcBy the power of^000000", "^0000ffthkelfkskeldmsiejdlslehfndkelsheidl^000000", "^3cbcbcburrdingdingdingdilidingdingdingphoohudaamb^000000", "^3cbcbcCoboman no chikara-yumei na^000000", "^3cbcbcI'm the king of All Weirdos! Now^000000", "^3cbcbcYou give me no choice. I guess it's^000000"; setarray .@line1_2$[0], "^3cbcbclicentious prurient concupiscent^000000", "^3cbcbcp-po-poi-po-poi-poin-poing^000000", "^3cbcbcskemd^000000", "^3cbcbcandoorabambarambambambambamburanbamding^000000", "^3cbcbcchikara-daiookii na chikara da ze!^000000", "^3cbcbcyou know of my true power. Obey~!^000000", "^3cbcbctime for me to reveal my secret...^000000"; setarray .@line1_3$[0], "", "^3cbcbcGOD-POING. I NEVER LOSE!^000000", "", "", "^3cbcbcCOBO ON^000000", "", ""; setarray .@word1$[0], "callipygian salacius lascivious licentious prurient concupiscent", "By the power of p-po-poi-po-poi-poin-poing GOD-POING. I NEVER LOSE!", "thkelfkskeldmsiejdlslehfndkelsheidlskemd", "burrdingdingdingdilidingdingdingphoohudaambandoorabambarambambambambamburanbamding", "Coboman no chikara-yumei na chikara-daiookii na chikara da ze! COBO ON", "I'm the king of All Weirdos! Now you know of my true power. Obey~!", "You give me no choice. I guess it's time for me to reveal my secret..."; setarray .@line2_1$[0], "^3cbcbcuNflAPPaBLe LoVaBLe SeCreTs AnD^000000", "^ff1493LiGhTsPeEd RiGhT SPEed LeFT TURn^000000", "^ff1493hfjdkeldjsieldjshfjdjeiskdlefvbd^000000", "^ff1493burapaphuralanderamduanbatuhiwooi^000000", "^ff1493belief love luck grimace sweat rush^000000", "^800080opeN, Open!op3n.openOpen0p3nOpEn0pen^000000", "^3cbcbcfReeDoM ecstAcy JoUrnaliSm ArMplt^000000"; setarray .@line2_2$[0], "^3cbcbcboWLIiNg aGaINST tHe KarMA of YoUtH^000000", "^ff1493RiGhT BuRn OrIGInAL GaNgSteR SmACk^000000", "", "^ff1493kabamturubamdingding^000000", "^ff1493folktale rodimus optimus bumblebee^000000", "^800080`open'0Pen open? open!111OPENSESAME^000000", "^3cbcbcDisCoverY hEaDaChE MoonbeAmS jUsTiCE^000000"; setarray .@word2$[0], "uNflAPPaBLe LoVaBLe SeCreTs AnD boWLIiNg aGaINST tHe KarMA of YoUtH", "LiGhTsPeEd RiGhT SPEed LeFT TURn RiGhT BuRn OrIGInAL GaNgSteR SmACk", "hfjdkeldjsieldjshfjdjeiskdlefvbd", "burapaphuralanderamduanbatuhiwooikabamturubamdingding", "belief love luck grimace sweat rush folktale rodimus optimus bumblebee", "opeN, Open!op3n.openOpen0p3nOpEn0pen`open'0Pen open? open!111OPENSESAME", "fReeDoM ecstAcy JoUrnaliSm ArMplt DisCoverY hEaDaChE MoonbeAmS jUsTiCE"; setarray .@letters[0], 1300, 1250, 1180, 1380, 1740, 1440, 1450; .@wordtest = rand(7); next; mes "[Nils]"; mes .@line1_1$[.@wordtest]; mes .@line1_2$[.@wordtest]; mes .@line1_3$[.@wordtest]; .@start_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND); next; input .@save1$; .@end_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND); .@total_time = .@end_time - .@start_time; mes "[Nils]"; mes .@line2_1$[.@wordtest]; mes .@line2_2$[.@wordtest]; .@start_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND); next; input .@save2$; .@end_time = gettime(GETTIME_HOUR)*60*60 + gettime(GETTIME_MINUTE)*60 + gettime(GETTIME_SECOND); .@total_time = .@total_time + (.@start_time - .@end_time); .@tasoo = (.@letters[.@wordtest] / .@total_time) * 6; if ((.@save1$ == .@word1$[.@wordtest]) && (.@save2$ == .@word2$[.@wordtest])) { mes "[Nils]"; mes "Your record is ^ff0000" + .@total_time + " seconds^000000 and"; mes "the total letters are " + .@tasoo + "."; next; if (.@tasoo >= 1300) { mes "[Nils]"; mes "Hmmm, this record isn't"; mes "humanly possible unless you"; mes "copy and paste the whole"; mes "sentence. Please play fairly"; mes "next time."; close; } if (.@tasoo >= $050320_ein_typing) { mes "[Nils]"; mes "The previous top record was"; mes "made by ^0000ff" + $050320_minus1_typing$ + "^000000"; mes "with the total ^0000ff" + $050320_ein_typing + "^000000 letters."; mes "However, ^ff0000" + strcharinfo(0) + "^000000,"; mes "you made the new top record"; mes "this time. Congratulations!"; $050320_minus1_typing$ = strcharinfo(0); $050320_ein_typing = .@tasoo; close; } else { mes "[Nils]"; mes "^0000ff" + $050320_minus1_typing$ + "^000000"; mes "is the current"; mes "record holder with"; mes "a letter total of ^0000ff" + $050320_ein_typing + "^000000"; mes "characters. Try to beat"; mes "that record next time~"; close; } } else { mes "[Nils]"; mes "Oooh..."; mes "I'm sorry, but"; mes "you entered the"; mes "text incorrectly..."; close; } case 2: mes "[Nils]"; mes "The ^ff0000RO Typing Challenge^000000"; mes "is a game where you enter"; mes "the given text as quickly as you"; mes "can. The name of the top player"; mes "is recorded for posterity. If you"; mes "want fame, here's your chance!"; next; mes "[Nils]"; mes "I'd just like to let"; mes "you know that you type"; mes "all the text that you see"; mes "in the single input line that"; mes "you're given. So don't press"; mes "the enter key, just click 'OK.'"; close; case 3: mes "[Nils]"; mes "^0000ff" + $050320_minus1_typing$ + "^000000"; mes "is the current"; mes "record holder with"; mes "a letter total of ^0000ff" + $050320_ein_typing + "^000000"; mes "characters. Try to beat"; mes "that record next time~"; close; case 4: mes "[Nils]"; mes "Feel free to take on the"; mes "^ff0000RO Typing Challenge^000000"; mes "anytime. I'll be here~"; close; } } //== Apple Gambling ======================================== airplane_01,33,68,4 script Clarice 1_F_MERCHANT_02,{ mes "[Clarice]"; mes "Hi, I'm Clarice~"; mes "How would you like"; mes "to wager some Apples"; mes "in a friendly game of Dice?"; next; callfunc "applegamble","Clarice"; end; } function script applegamble { switch (select("Play Dice Game", "Learn Dice Game Rules", "Cancel")) { case 3: mes "["+getarg(0)+"]"; mes "I'm up for a game of"; mes "dice whenever you feel"; mes "like it. Just talk to me if"; mes "you ever get hit with the"; mes "sudden urge to gamble, kay?"; close; case 2: mes "["+getarg(0)+"]"; mes "The rules for the Dice game"; mes "are pretty simple. First, you"; mes "place a bet by wagering Apples."; mes "You can bet a maximum of 50"; mes "Apples at a time. To keep things"; mes "legal, I can only accept Apples."; next; mes "["+getarg(0)+"]"; mes "But hey, if all that zeny"; mes "is burning a hole in your"; mes "pocket, head over to Fruitz"; mes "and you can buy as many"; mes "Apples as you want, playah~"; next; mes "["+getarg(0)+"]"; mes "Now, we begin with me"; mes "rolling two 6-sided dice."; mes "When it's your turn, you'll"; mes "roll two 6-sided dice. After"; mes "that, both of us will have the"; mes "option of rolling a third die."; next; mes "["+getarg(0)+"]"; mes "Now here's the important"; mes "thing. If your total is higher"; mes "than 12, you'll bust, meaning"; mes "that you lose. Otherwise, the"; mes "person with the higher total"; mes "is the winner. Got it?"; next; mes "["+getarg(0)+"]"; mes "Now, you'll be the first"; mes "to decide whether or not"; mes "you'll roll the third die. Then,"; mes "depending on your result, I'll"; mes "roll my third die... Or maybe not."; next; mes "["+getarg(0)+"]"; mes "When you win, you'll"; mes "receive twice as many"; mes "Apples as you wagered."; mes "But if we happen to tie, you"; mes "get the Apples that you bet"; mes "returned to you. Fair, right?"; close; case 1: break; } mes "["+getarg(0)+"]"; mes "Ooh, so you'll play with"; mes "me? Great! How many"; mes "Apples would you like to bet?"; mes "Remember, you can wager"; mes "up to 50 Apples. If you'd like"; mes "to cancel, please enter '0'."; next; while(1) { input .@amount; if (.@amount == 0) { mes "["+getarg(0)+"]"; mes "Changed your mind?"; mes "I understand. Well then,"; mes "I hope we can play sometime."; close; } else if (.@amount < 1 || .@amount > 50) { mes "["+getarg(0)+"]"; mes "You can't bet more than"; mes "50 Apples. Remember, we"; mes "need to keep these stakes"; mes "reasonable. Please enter"; mes "a value no greater than 50."; next; continue; } mes "["+getarg(0)+"]"; mes "So you'll be"; mes "betting ^FF0000"+.@amount+"^000000 Apples."; mes "Is that right?"; next; if (select("Yes", "No") == 2) { mes "["+getarg(0)+"]"; mes "Mm, made a mistake?"; mes "Alright, please enter the"; mes "number of Apples you"; mes "wish to place in this bet"; next; continue; } if (countitem(Apple) <.@amount) { mes "I'm sorry, but you"; mes "don't seem to have"; mes "enough Apples for this"; mes "bet... You can't gamble"; mes "if you can't play, you know."; next; continue; } delitem 512,.@amount; mes "["+getarg(0)+"]"; mes "Good!"; mes "Now we can start"; mes "this game! I'll roll first~"; break; } mes "^3355FF*Rolling and rumbling*^000000"; next; .@giveapple = .@amount*2; .@table1 = rand(1,6); .@table2 = rand(1,6); .@tablesub = .@table1 + .@table2; .@tabletotal = .@tablesub; mes "["+getarg(0)+"]"; mes "I got a ^0000FF" + .@table1 + "^000000 and a ^0000FF" + .@table2 + "^000000."; mes "That's a total of ^0000FF" + .@tablesub + "^000000."; mes "^FF0000" + strcharinfo(0) + "^000000, now it's your turn."; next; select("Cast Dice."); mes "^3355FF*Rolling and rumbling*^000000"; .@player1 = rand(1,6); .@player2 = rand(1,6); .@playersub = .@player1 + .@player2; if (.@playersub > 9 && .@amount > 39) { .@player1 = rand(1,6); .@player2 = rand(1,6); .@playersub = .@player1 + .@player2; } .@playertotal = .@playersub; next; mes "["+getarg(0)+"]"; mes "^FF0000" + strcharinfo(0) + "^000000, you have ^FF0000" + .@player1 + "^000000 and ^FF0000" + .@player2 + "^000000. The total is ^FF0000" + .@playersub + "^000000 ."; next; mes "["+getarg(0)+"]"; if(.@playersub == .@tablesub) { mes "Currently my total is ^0000FF" + .@tablesub + "^000000 and ^FF0000" + strcharinfo(0) + "^000000, your total is ^FF0000" + .@playersub + "^000000. We are making an even game. Would you like to cast dice again?"; } else if (.@playersub > .@tablesub) { mes "Currently my total is ^0000FF" + .@tablesub + "^000000 and ^FF0000" + strcharinfo(0) + "^000000, your total is ^FF0000" + .@playersub + "^000000. ^FF0000" + strcharinfo(0) + "^000000, you are currently winning this game. Would you like to cast dice again?"; } else if(.@tablesub > .@playersub) { mes "Currently my total is ^0000FF" + .@tablesub + "^000000 and ^FF0000" + strcharinfo(0) + "^000000, your total is ^FF0000" + .@playersub + "^000000. I am winning this game. Would you like to cast dice again?"; } next; switch (select("Cast dice.", "Cancel.")) { case 1: mes "^3355FF*Rolling and rumbling*^000000"; .@player3 = rand(1,6); .@playertotal += .@player3; next; mes "["+getarg(0)+"]"; if (.@playertotal > 12) { mes "^FF0000" + strcharinfo(0) + "^000000, you got ^FF0000" + .@player3 + "^000000 and the total is now ^FF0000" + .@playertotal + "^000000. You lost this game. I am sorry but please try again."; close; } else if (.@playertotal < .@tablesub) { mes "^FF0000" + strcharinfo(0) + "^000000, you got ^FF0000" + .@player3 + "^000000 and the total is now ^FF0000" + .@playertotal + "^000000. Even though you casted dice again, still your total is smaller than mine. You lost the game. I am sorry and please try again."; close; } else if (.@playertotal == .@tablesub) { if (.@tablesub > 8) { mes "^FF0000" + strcharinfo(0) + "^000000, you got ^FF0000" + .@player3 + "^000000 and the total is now ^FF0000" + .@playertotal + "^000000. I don't want to take any risk, let's end this game in a draw. Let's play again some other time~"; close2; getitem Apple,.@amount; end; } } else { mes "^FF0000" + strcharinfo(0) + "^000000, you got ^FF0000" + .@player3 + "^000000 and the total is now ^FF0000" + .@playertotal + "^000000. Now it is my turn."; } break; case 2: mes "["+getarg(0)+"]"; if (.@playersub > .@tablesub) { mes "I see, you don't want to take risk of losing the game. Okay, let me cast dice again."; } else if (.@playersub == .@tablesub) { if (.@tablesub > 8) { mes "I see, you don't want to take risk of losing this game. Neither do I, let's end this game in a draw. Let's play again some other time~"; close2; getitem Apple,.@amount; end; } mes "Alright."; mes "Let me cast the dice again."; } else { mes "It couldn't hurt to try."; mes "Well, I win this time."; mes "I'm sorry, let's try play"; mes "again sometime."; close; } break; } next; mes "^3355FF*Rolling and rumbling*^000000"; .@table3 = rand(1,6); .@tabletotal += .@table3; next; mes "["+getarg(0)+"]"; if (.@tabletotal > 12) { mes "I got ^0000FF" + .@table3 + "^000000 and the total is now ^0000FF" + .@tabletotal + "^000000. I lost this game since my total exceeded 12. Let me give you my apples. Congratulations, that was a great game."; close2; getitem Apple,.@giveapple; end; } else if (.@playertotal > .@tabletotal) { mes "I got ^0000FF" + .@table3 + "^000000 and the total is now ^0000FF" + .@tabletotal + "^000000. With total ^FF0000" + .@playertotal + "^000000 you won this game, ^FF0000" + strcharinfo(0) + "^000000. Let me give you my apples. It was a great game and I hope we will play again some other time."; close2; getitem Apple,.@giveapple; end; } else if (.@playertotal == .@tabletotal) { mes "I got ^0000FF" + .@table3 + "^000000 and the total is now ^0000FF" + .@tabletotal + "^000000. With total ^FF0000" + .@playertotal + "^000000 this game came out even, ^FF0000" + strcharinfo(0) + "^000000. Let me give you your apple back. It was a great game and I hope we will play again some other time."; close2; getitem Apple,.@amount; end; } else if (.@playertotal < .@tabletotal) { mes "I got ^0000FF" + .@table3 + "^000000 and the total is now ^0000FF" + .@tabletotal + "^000000. With total ^FF0000" + .@playertotal + "^000000 you lost this game, ^FF0000" + strcharinfo(0) + "^000000. I am sorry but please try again."; close; } }