//===== rAthena Script =======================================
//= The Airship System Script
//===== By: ==================================================
//= rAthena Dev Team
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= The Airship System used in the official servers.
//===== Additional Comments: =================================
//= Official NPCs.
//============================================================
//============================================================
//= Domestic Airship Route
//= ... -> Juno -> Einbroch -> Lighthalzen -> Einbroch
//= -> Juno -> Hugel -> ...
//============================================================
airplane,243,73,0 script #AirshipWarp-1 45,1,1,{
end;
OnInit:
OnHide:
misceffect 16;
disablenpc strnpcinfo(0);
end;
OnUnhide:
enablenpc strnpcinfo(0);
misceffect 215;
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 45,1,1
airplane,1,1,0 script Domestic_Airship -1,{
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:
set $@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:
set $@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:
set $@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:
set $@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:
set $@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:
set $@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 857,{
end;
}
airplane,247,64,5 duplicate(ExitAirplane) Exit#airplane1b 857
airplane,240,40,1 duplicate(ExitAirplane) Exit#airplane2a 857
airplane,247,40,1 duplicate(ExitAirplane) Exit#airplane2b 857
airplane,100,69,3 script Airship Crew#ein-1 852,{
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 787,{
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 783,{
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 789,{
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 67,{
// 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 834,{
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 714,{
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 702,{
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 852,{
// 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.^FFFFFF ^000000 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 86,{
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;
set .@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(512,.@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 {
set Zeny, Zeny - .@pay;
getitem 512,.@input; //Apple
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(512) < 3 || countitem(713) < 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 512,3; //Apple
delitem 713,1; //Empty_Bottle
getitem 531,1; //Apple_Juice
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 45,1,1,{
end;
OnTouch:
switch ($@airplanelocation2) {
case 0: warp "ra_fild12",292,204; end;
case 1: warp "izlude",200,56; end;
case 2: warp "yuno",12,261; end;
}
OnInit:
OnHide:
misceffect 16;
disablenpc strnpcinfo(0);
end;
OnUnhide:
enablenpc strnpcinfo(0);
misceffect 215;
end;
}
airplane_01,243,29,0 duplicate(#AirshipWarp-3) #AirshipWarp-4 45,1,1
airplane_01,1,1,0 script International_Airship -1,{
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:
set $@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:
set $@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 shorty.",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:
set $@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;
set .moninv, .moninv + 1;
if (.moninv == 7) {
if (rand(1,3) == 3) {
donpcevent "Airship#airplane02::OnEnable";
end;
}
set .moninv, 0;
}
initnpctimer;
end;
}
airplane_01,240,64,5 script Exit#airplane_011a::ExitAirplane01 857,{
end;
}
airplane_01,247,64,5 duplicate(ExitAirplane01) Exit#airplane_011b 857
airplane_01,240,40,1 duplicate(ExitAirplane01) Exit#airplane_012a 857
airplane_01,247,40,1 duplicate(ExitAirplane01) Exit#airplane_012b 857
airplane_01,250,58,2 script Airship Staff#airplane01 67,{
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 86,{
if (checkweight(1201,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;
set .@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(512,.@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 {
set Zeny, Zeny - .@pay;
getitem 512,.@input; //Apple
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(512) < 3 || countitem(713) < 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 512,3; //Apple
delitem 713,1; //Empty_Bottle
getitem 531,1; //Apple_Juice
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 852,{
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 72,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 55,{
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 106,{
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 49,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;
set .@wordtest, rand(7);
next;
mes "[Nils]";
mes .@line1_1$[.@wordtest];
mes .@line1_2$[.@wordtest];
mes .@line1_3$[.@wordtest];
set .@start_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
next;
input .@save1$;
set .@end_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
set .@total_time, .@end_time - .@start_time;
mes "[Nils]";
mes .@line2_1$[.@wordtest];
mes .@line2_2$[.@wordtest];
set .@start_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
next;
input .@save2$;
set .@end_time, gettime(3)*60*60 + gettime(2)*60 + gettime(1);
set .@total_time, .@total_time + (.@start_time - .@end_time);
set .@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!";
set $050320_minus1_typing$, strcharinfo(0);
set $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 74,{
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(512) <.@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;
set .@giveapple, .@amount*2;
set .@table1, rand(1,6);
set .@table2, rand(1,6);
set .@tablesub, .@table1 + .@table2;
set .@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";
set .@player1, rand(1,6);
set .@player2, rand(1,6);
set .@playersub, .@player1 + .@player2;
if (.@playersub > 9 && .@amount > 39) {
set .@player1, rand(1,6);
set .@player2, rand(1,6);
set .@playersub, .@player1 + .@player2;
}
set .@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";
set .@player3, rand(1,6);
set .@playertotal, .@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 512,.@amount; //Apple
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 512,.@amount; //Apple
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";
set .@table3, rand(1,6);
set .@tabletotal, .@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 512,.@giveapple; //Apple
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 512,.@giveapple; //Apple
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 512,.@amount; //Apple
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;
}
}