//===== eAthena Script =======================================
//= The Airship System Script
//===== By: ==================================================
//= MasterOfMuppets
//===== Current Version: =====================================
//= 0.2
//===== Compatible With: =====================================
//= eAthena SVN 3422+(Requires jA Script System)
//===== Description: =========================================
//= The Airship System used in the official servers, however this
//= one is still about 25% custom and is missing some npcs.
//===== Additional Comments: =================================
//= 0.1 Added first version, it might be a little buggy [MasterOfMuppets]
//= 0.1a Fixed the Airport Staff#Iz which was [MasterOfMuppets]
//= warping you to the same location as Airport Staff#Ein
//= 0.2 Implemented some more airship NPCs, more are to come.
//= 0.3 Implemented some more NPCs [MasterOfMuppets]
//============================================================
//============================================================
//= The Airship System (Yuno -> Hugel -> Einbroch -> Lighthalzen -> repeat)
//============================================================
airplane.gat,243,74,4 script #AirshipWarp-1 45,2,2{
OnTouch:
if($airplanelocation == 1)warp "einbroch.gat",90,275;
if($airplanelocation == 2)warp "yuno.gat",85,265;
if($airplanelocation == 3)warp "lighthalzen.gat",302,75;
if($airplanelocation == 4)warp "hugel.gat",182,150;
end;
OnHide:
misceffect 16;
end;
OnUnhide:
misceffect 215;
end;
}
airplane.gat,243,29,4 script #AirshipWarp-2 45,2,2{
OnTouch:
if($airplanelocation == 1)warp "einbroch.gat",90,275;
if($airplanelocation == 2)warp "yuno.gat",85,265;
if($airplanelocation == 3)warp "lighthalzen.gat",302,75;
if($airplanelocation == 4)warp "hugel.gat",182,150;
end;
OnHide:
misceffect 16;
end;
OnUnhide:
misceffect 215;
end;
}
airplane.gat,1,1,0 script EinYuno_Airship -1,{
OnInit:
while(1)
{
initnpctimer;
setnpctimer 0;
set $airplanelocation,0;
donpcevent "#AirshipWarp-1::OnHide";
donpcevent "#AirshipWarp-2::OnHide";
disablenpc "#AirshipWarp-1";
disablenpc "#AirshipWarp-2";
mapannounce "airplane.gat","The Airship is leaving the ground. Our next destination is Hugel.",1,0xBA55D3;
end;
OnTimer15000:
mapannounce "airplane.gat","We are heading to Hugel.",1,0xBA55D3;
end;
OnTimer30000:
mapannounce "airplane.gat","We will arrive in Hugel shortly.",1,0xBA55D3;
end;
OnTimer45000:
set $airplanelocation,4;
enablenpc "#AirshipWarp-1";
enablenpc "#AirshipWarp-2";
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane.gat","Welcome to Hugel. Have a safe trip.",1,0xBA55D3;
end;
OnTimer55000:
mapannounce "airplane.gat","Currently we are in Hugel. The Airship will leave shortly.",1,0xBA55D3;
end;
OnTimer65000:
set $airplanelocation,0;
donpcevent "#AirshipWarp-1::OnHide";
donpcevent "#AirshipWarp-2::OnHide";
disablenpc "#AirshipWarp-1";
disablenpc "#AirshipWarp-2";
mapannounce "airplane.gat","The Airship is leaving the ground. Our next destination is Einbroch.",1,0x00FF00;
end;
OnTimer80000:
mapannounce "airplane.gat","We are heading to Einbroch.",1,0x00FF00;
end;
OnTimer95000:
mapannounce "airplane.gat","We will arrive in Einbroch shortly.",1,0x00FF00;
end;
OnTimer110000:
set $airplanelocation,1;
enablenpc "#AirshipWarp-1";
enablenpc "#AirshipWarp-2";
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane.gat","Welcome to Einbroch. Have a safe trip.",1,0x00FF00;
end;
OnTimer120000:
mapannounce "airplane.gat","Currently we are in Einbroch. The Airship will take off shortly.",1,0x00FF00;
end;
OnTimer130000:
set $airplanelocation,0;
donpcevent "#AirshipWarp-1::OnHide";
donpcevent "#AirshipWarp-2::OnHide";
disablenpc "#AirshipWarp-1";
disablenpc "#AirshipWarp-2";
mapannounce "airplane.gat","The Airship is leaving the ground. Our next destination is Lighthalzen.",1,0xFF8600;
end;
OnTimer145000:
mapannounce "airplane.gat","We are heading to Lighthalzen.",1,0xFF8600;
end;
OnTimer160000:
mapannounce "airplane.gat","We will arrive in Lighthalzen shortly.",1,0xFF8600;
end;
OnTimer175000:
set $airplanelocation,3;
enablenpc "#AirshipWarp-1";
enablenpc "#AirshipWarp-2";
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane.gat","Welcome to Lighthalzen. Have a safe trip.",1,0xFF8600;
end;
OnTimer185000:
mapannounce "airplane.gat","Currently we are in Lighthalzen. The Airship will leave shortly.",1,0xFF8600;
end;
OnTimer195000:
set $airplanelocation,0;
donpcevent "#AirshipWarp-1::OnHide";
donpcevent "#AirshipWarp-2::OnHide";
disablenpc "#AirshipWarp-1";
disablenpc "#AirshipWarp-2";
mapannounce "airplane.gat","The Airship is now taking off. Our next destination is Yuno.",1,0x70DBDB;
end;
OnTimer210000:
mapannounce "airplane.gat","We are heading to Yuno.",1,0x70DBDB;
end;
OnTimer225000:
mapannounce "airplane.gat","We will arrive in Yuno shortly.",1,0x70DBDB;
end;
OnTimer240000:
set $airplanelocation,2;
enablenpc "#AirshipWarp-1";
enablenpc "#AirshipWarp-2";
donpcevent "#AirshipWarp-1::OnUnhide";
donpcevent "#AirshipWarp-2::OnUnhide";
mapannounce "airplane.gat","Welcome to Yuno. Have a safe trip.",1,0x70DBDB;
end;
OnTimer250000:
mapannounce "airplane.gat","Currently we are in Yuno. The Airship will leave shortly.",1,0x70DBDB;
end;
OnTimer260000:
stoptimer;
}
}
//C4644E
//============================================================
//= Some normal NPCS (airplane.gat)
//============================================================
airplane.gat,240,64,5 script Exit 857,{
end;
}
airplane.gat,247,64,5 duplicate(Exit) Exit 857
airplane.gat,240,39,1 duplicate(Exit) Exit 857
airplane.gat,247,39,1 duplicate(Exit) Exit 857
airplane.gat,100,69,2 script Airship Crew 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 you patronage.";
close;
}
airplane.gat,250,59,3 script Airship Staff::AirshipInfo 67,{
mes "[Airship Staff]";
mes "Welcome";
mes "to the Airship.";
mes "How may I help you?";
next;
menu "Using the Airship",s_Use,"Captain's Cabin",s_Capt,"Facilities",s_Faci,"Cancel",-;
mes "[Airship Staff]";
mes "Well, I hope you like";
mes "your flight aboard";
mes "our Airships. Thank";
mes "you and have a good day.";
close;
s_Use:
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 "on route and you'll get";
mes "another chance to arrive";
mes "to your intended destination.";
close;
s_Capt:
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;
s_Faci:
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;
}
airplane.gat,50,66,4 script Meltz::AirshipApples 86,{
mes "[Meltz]";
mes "Welcome to Meltz's";
mes "Shop where you can";
mes "purchase Apples or grind";
mes "them to make Apple Juice.";
next;
menu "Buy Apples",s_Buy,"Make Apple Juice",s_Juice,"Cancel.",-;
s_Cancel:
mes "[Meltz]";
mes "Thanks for stopping";
mes "by my shop. Farewell!";
mes "Come back anytime when";
mes "you feel like having an";
mes "Apple to snack on~";
close;
s_Buy:
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;
input @tempapple;
if(!@tempapple)goto s_Cancel;
if(@tempapple > 0 && @tempapple < 501)goto s_AppleBuy;
if(@tempapple < 0)close;
mes "[Meltz]";
mes "The maximum amount of apples";
mes "you can buy at the same time";
mes "is 500. " + @tempapple + " is clearly";
mes "over 500.";
close;
s_AppleBuy:
mes "[Meltz]";
mes "A total of ^FF0000" + @tempapple + "^000000 Apples.";
mes "will cost you ^FF0000" + @tempapple * 15 + "^000000 zeny.";
mes "Would you like to continue?";
next;
menu "Yes",-,"No",s_Cancel;
if(zeny < (@tempapple * 15))goto s_NEnoughZeny;
mes "[Meltz]";
mes "Thanks for stopping by";
mes "my shop. I hope you enjoy";
mes "the flavor of these Apples~!";
getitem 512,@tempapple;
set zeny,zeny - (@tempapple * 15);
close;
s_NEnoughZeny:
mes "[Meltz]";
mes "I'm sorry buy you don't";
mes "seem to have enough zeny.";
mes "Come back anytime when";
mes "you feel like having an";
mes "Apple to snack on~";
close;
s_Juice:
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;
menu "Yes",-,"No",s_Cancel;
if(countitem(512) < 3 || !countitem(713))goto s_Material;
mes "[Meltz]";
mes "Thank you,";
mes "please wait";
mes "just a moment.";
next;
mes "*Grind grind*";
mes "*Grind grind*";
mes "*Clang...!*";
next;
mes "[Meltz]";
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~";
delitem 512,3;
delitem 713,1;
getitem 531,1;
close;
s_Material:
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;
}
airplane.gat,33,69,4 script Kaci 73,{
end;
OnLose:
emotion e_wah;
end;
OnWin:
emotion e_no1;
end;
}
airplane.gat,80,71,4 script Zerta 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.gat,65,63,4 script Maelin 714,{
mes "[Maelin]";
mes "Um, this Airship is";
mes "to Lutie, isn't it? I've";
mes "been waiting so long,";
mes "but I haven't heard any";
mes "broadcast about Lutie.";
close;
}
//============================================================
//= The Airship System (Yuno -> Izlude -> Repeat)
//============================================================
airplane_01.gat,243,74,4 script #AirshipWarp-3 45,2,2{
OnTouch:
if($airplanelocation2 == 1)warp "izlude.gat",202,56;
if($airplanelocation2 == 2)warp "yuno.gat",20,265;
end;
OnHide:
misceffect 16;
end;
OnUnhide:
misceffect 215;
end;
}
airplane_01.gat,243,29,4 script #AirshipWarp-4 45,2,2{
OnTouch:
if($airplanelocation2 == 1)warp "izlude.gat",202,56;
if($airplanelocation2 == 2)warp "yuno.gat",20,265;
OnHide:
misceffect 16;
end;
OnUnhide:
misceffect 215;
end;
}
airplane_01.gat,1,1,0 script YunoIzl_Airship -1,{
OnInit:
while(1)
{
initnpctimer;
setnpctimer 0;
set $airplanelocation2,0;
donpcevent "#AirshipWarp-3::OnHide";
donpcevent "#AirshipWarp-4::OnHide";
disablenpc "#AirshipWarp-3";
disablenpc "#AirshipWarp-4";
mapannounce "airplane_01.gat","The Airship is leaving the ground. Our next destination is Izlude.",1,0x00FF00;
end;
OnTimer15000:
mapannounce "airplane_01.gat","We are heading to Izlude.",1,0x00FF00;
end;
OnTimer30000:
mapannounce "airplane_01.gat","We will arrive in Izlude shortly.",1,0x00FF00;
end;
OnTimer45000:
set $airplanelocation2,1;
enablenpc "#AirshipWarp-3";
enablenpc "#AirshipWarp-4";
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01.gat","Welcome to Izlude. Have a safe trip.",1,0x00FF00;
end;
OnTimer55000:
mapannounce "airplane_01.gat","Currently we are in Izlude. The Airship will leave shortly.",1,0x00FF00;
end;
OnTimer65000:
set $airplanelocation2,0;
donpcevent "#AirshipWarp-3::OnHide";
donpcevent "#AirshipWarp-4::OnHide";
disablenpc "#AirshipWarp-3";
disablenpc "#AirshipWarp-4";
mapannounce "airplane_01.gat","The Airship is leaving the ground. Our next destination is Yuno.",1,0x70DBDB;
end;
OnTimer80000:
mapannounce "airplane_01.gat","We are heading to Yuno.",1,0x70DBDB;
end;
OnTimer95000:
mapannounce "airplane_01.gat","We will arrive in Yuno shortly.",1,0x70DBDB;
end;
OnTimer110000:
set $airplanelocation2,2;
enablenpc "#AirshipWarp-3";
enablenpc "#AirshipWarp-4";
donpcevent "#AirshipWarp-3::OnUnhide";
donpcevent "#AirshipWarp-4::OnUnhide";
mapannounce "airplane_01.gat","Welcome to Yuno. Have a safe trip.",1,0x70DBDB;
end;
OnTimer120000:
mapannounce "airplane_01.gat","Currently we are in Yuno. The Airship will take off shortly.",1,0x70DBDB;
end;
OnTimer130000:
stoptimer;
}
}
//============================================================
//= Some normal NPCS (airplane_01.gat)
//============================================================
airplane_01.gat,240,64,5 duplicate(Exit) Exit 857
airplane_01.gat,247,64,5 duplicate(Exit) Exit 857
airplane_01.gat,240,39,1 duplicate(Exit) Exit 857
airplane_01.gat,247,39,1 duplicate(Exit) Exit 857
airplane_01.gat,100,69,2 duplicate(Airship Crew) Airship Crew 852
airplane_01.gat,250,59,3 duplicate(AirshipInfo) Airship Staff 67
airplane_01.gat,50,66,4 duplicate(AirshipApples) Meltz 86
airplane_01.gat,83,61,2 script Girl 72,{
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;
}
airplane_01.gat,69,63,2 script Old Man 55,{
mes "[Mendel]";
mes "As I expected, the";
mes "in-flight meals are";
mes "three star quality at best.";
mes "^111111*Harrrumph*^000000 I really should";
mes "have brought my chef so that";
mes "I could enjoy a real meal.";
close;
}
//============================================================
//= The Izlude Airship Staff
//============================================================
izlude.gat,201,54,3 script Airship Staff#izl 91,{
mes "[Airship Staff]";
mes "Welcome to the Izlude Airship.";
mes "How may I help you?";
next;
menu "Board the Airship",-,"Cancel",L_Cancel;
mes "[Airship Staff]";
mes "The Airship boarding fee";
mes "is 1,200 zeny, but if you've";
mes "got a Free Ticket for Airship,";
mes "the fee will be waived. Will";
mes "you board the Airship?";
next;
menu "Yes",-,"No",L_Cancel;
if(countitem(7311) > 0) goto L_GotTicket;
if(Zeny < 1200) goto L_NoZeny;
set Zeny, Zeny - 1200;
warp "airplane_01.gat",224,64;
close;
L_GotTicket:
delitem 7311,1;
warp "airplane_01.gat",224,64;
close;
L_NoZeny:
mes "[Airship Staff]";
mes "You don't have enough zeny.";
close;
L_Cancel:
mes "[Airship Staff]";
mes "Thank you and";
mes "have a nice day.";
close;
}
//============================================================
//= The Hugel Airship Staff
//============================================================
hugel.gat,182,150,3 script Airship Staff#hu 91,{
mes "[Airship Staff]";
mes "Welcome to the Schwartzwald Republic's Airship.";
mes "How may I help you?";
next;
menu "Board the Airship",-,"Cancel",L_Cancel;
mes "[Airship Staff]";
mes "The Airship boarding fee";
mes "is 1,200 zeny, but if you've";
mes "got a Free Ticket for Airship,";
mes "the fee will be waived. Will";
mes "you board the Airship?";
next;
menu "Yes",-,"No",L_Cancel;
if(countitem(7311) > 0) goto L_GotTicket;
if(Zeny < 1200) goto L_NoZeny;
set Zeny, Zeny - 1200;
warp "airplane.gat",224,64;
close;
L_GotTicket:
delitem 7311,1;
warp "airplane.gat",224,64;
close;
L_NoZeny:
mes "[Airship Staff]";
mes "You don't have enough zeny.";
close;
L_Cancel:
mes "[Airship Staff]";
mes "Thank you and";
mes "have a nice day.";
close;
}
//============================================================
//= Yuno Airport NPCs
//============================================================
y_airport.gat,144,63,4 script Airport Staff#Ein 91,{
mes "[Airship Staff]";
mes "Good day!";
mes "Would you like to go";
mes "to ^FF0000Einbroch^000000,^FF0000Hugel^000000 or";
mes "^FF0000Lighthalzen^000000?";
next;
menu "Yes.",s_Warp,"No.",-;
mes "[Airship Staff]";
mes "Thank you and";
mes "have a nice day.";
close;
s_Warp:
mes "[Airship Staff]";
mes "Thank you and";
mes "have a nice day.";
close2;
warp "yuno.gat",57,240;
end;
}
y_airport.gat,141,63,4 script Airport Staff#Izl 91,{
mes "[Airship Staff]";
mes "Good day!";
mes "Would you like to go";
mes "to ^FF0000Izlude^000000?";
next;
menu "Yes.",s_Warp,"No.",-;
mes "[Airship Staff]";
mes "Thank you and";
mes "have a nice day.";
close;
s_Warp:
mes "[Airship Staff]";
mes "Thank you and";
mes "have a nice day.";
close2;
warp "yuno.gat",50,240;
end;
}