Initial release of private airship system (#3354)

Fixes #3314 

Thanks to @aleos89 for his help.
This commit is contained in:
Lemongrass3110 2018-07-29 20:11:15 +02:00 committed by GitHub
parent 3de9a44f9a
commit 8dea04a8b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 858 additions and 3 deletions

View File

@ -74,3 +74,7 @@ feature.homunculus_autofeed: off
// Attendance System (Note 1)
// Requires: 2018-03-07bRagexeRE or later
feature.attendance: off
// Private Airship System (Note 1)
// Requires: 2018-03-21aRagexeRE or later
feature.privateairship: off

View File

@ -852,7 +852,10 @@
790: <MSG>3456,%d</MSG>
791: You are not allowed to use the attendance system.
//792-899 free
// Private Airship
792: The private airship system is disabled.
//793-899 free
//------------------------------------
// More atcommands message

View File

@ -11523,6 +11523,8 @@
25223,Para_Team_Coin,Eden Group Coin,3,0,,0,,,,,,,,,,,,,{},{},{}
25238,New_Normal_Lubricant,New Normal Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{}
25239,New_Advanced_Lubricant,New Advanced Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{}
//
25464,World_Moving_Rights,World Moving Rights,3,20,,0,,,,,,,,,,,,,{},{},{}
//===================================================================
// New Staves
//===================================================================

View File

@ -0,0 +1,710 @@
//===== rAthena Script =======================================
//= Mapflags:
//= privateairship_source, privateairship_destination
//===== Description: =========================================
//= Private Airship available sources and destinations
//===== Changelogs: ==========================================
//= 1.0 First Version. [Lemongrass]
//============================================================
//=======================================
// Available source maps
//=======================================
abbey01 mapflag privateairship_source
abbey02 mapflag privateairship_source
abbey03 mapflag privateairship_source
abyss_01 mapflag privateairship_source
abyss_02 mapflag privateairship_source
abyss_03 mapflag privateairship_source
alb2trea mapflag privateairship_source
alberta mapflag privateairship_source
alde_dun01 mapflag privateairship_source
alde_dun02 mapflag privateairship_source
alde_dun03 mapflag privateairship_source
alde_dun04 mapflag privateairship_source
alde_gld mapflag privateairship_source
aldebaran mapflag privateairship_source
ama_dun01 mapflag privateairship_source
ama_dun02 mapflag privateairship_source
ama_dun03 mapflag privateairship_source
ama_fild01 mapflag privateairship_source
amatsu mapflag privateairship_source
anthell01 mapflag privateairship_source
anthell02 mapflag privateairship_source
aru_gld mapflag privateairship_source
ayo_dun01 mapflag privateairship_source
ayo_dun02 mapflag privateairship_source
ayo_fild01 mapflag privateairship_source
ayothaya mapflag privateairship_source
beach_dun mapflag privateairship_source
beach_dun2 mapflag privateairship_source
beach_dun3 mapflag privateairship_source
bif_fild01 mapflag privateairship_source
bif_fild02 mapflag privateairship_source
bra_dun01 mapflag privateairship_source
bra_dun02 mapflag privateairship_source
bra_fild01 mapflag privateairship_source
brasilis mapflag privateairship_source
c_tower1 mapflag privateairship_source
c_tower2 mapflag privateairship_source
c_tower3 mapflag privateairship_source
c_tower4 mapflag privateairship_source
cmd_fild01 mapflag privateairship_source
cmd_fild02 mapflag privateairship_source
cmd_fild03 mapflag privateairship_source
cmd_fild04 mapflag privateairship_source
cmd_fild06 mapflag privateairship_source
cmd_fild07 mapflag privateairship_source
cmd_fild08 mapflag privateairship_source
cmd_fild09 mapflag privateairship_source
comodo mapflag privateairship_source
dali mapflag privateairship_source
dali02 mapflag privateairship_source
dew_dun01 mapflag privateairship_source
dew_dun02 mapflag privateairship_source
dew_fild01 mapflag privateairship_source
dewata mapflag privateairship_source
dic_dun01 mapflag privateairship_source
dic_dun02 mapflag privateairship_source
dic_dun03 mapflag privateairship_source
dic_fild01 mapflag privateairship_source
dic_fild02 mapflag privateairship_source
dicastes01 mapflag privateairship_source
dicastes02 mapflag privateairship_source
ecl_fild01 mapflag privateairship_source
ecl_tdun01 mapflag privateairship_source
ecl_tdun02 mapflag privateairship_source
ecl_tdun03 mapflag privateairship_source
eclage mapflag privateairship_source
ein_dun01 mapflag privateairship_source
ein_dun02 mapflag privateairship_source
ein_fild01 mapflag privateairship_source
ein_fild03 mapflag privateairship_source
ein_fild04 mapflag privateairship_source
ein_fild05 mapflag privateairship_source
ein_fild06 mapflag privateairship_source
ein_fild07 mapflag privateairship_source
ein_fild08 mapflag privateairship_source
ein_fild09 mapflag privateairship_source
einbech mapflag privateairship_source
einbroch mapflag privateairship_source
gef_dun00 mapflag privateairship_source
gef_dun01 mapflag privateairship_source
gef_dun02 mapflag privateairship_source
gef_fild00 mapflag privateairship_source
gef_fild01 mapflag privateairship_source
gef_fild02 mapflag privateairship_source
gef_fild03 mapflag privateairship_source
gef_fild04 mapflag privateairship_source
gef_fild05 mapflag privateairship_source
gef_fild06 mapflag privateairship_source
gef_fild07 mapflag privateairship_source
gef_fild08 mapflag privateairship_source
gef_fild09 mapflag privateairship_source
gef_fild10 mapflag privateairship_source
gef_fild11 mapflag privateairship_source
gef_fild12 mapflag privateairship_source
gef_fild13 mapflag privateairship_source
gef_fild14 mapflag privateairship_source
gefenia01 mapflag privateairship_source
gefenia02 mapflag privateairship_source
gefenia03 mapflag privateairship_source
gefenia04 mapflag privateairship_source
geffen mapflag privateairship_source
gl_cas01 mapflag privateairship_source
gl_cas02 mapflag privateairship_source
gl_church mapflag privateairship_source
gl_chyard mapflag privateairship_source
gl_dun01 mapflag privateairship_source
gl_dun02 mapflag privateairship_source
gl_in01 mapflag privateairship_source
gl_knt01 mapflag privateairship_source
gl_knt02 mapflag privateairship_source
gl_prison mapflag privateairship_source
gl_prison1 mapflag privateairship_source
gl_sew01 mapflag privateairship_source
gl_sew02 mapflag privateairship_source
gl_sew03 mapflag privateairship_source
gl_sew04 mapflag privateairship_source
gl_step mapflag privateairship_source
glast_01 mapflag privateairship_source
gon_dun01 mapflag privateairship_source
gon_dun02 mapflag privateairship_source
gon_dun03 mapflag privateairship_source
gon_fild01 mapflag privateairship_source
gonryun mapflag privateairship_source
hu_fild01 mapflag privateairship_source
hu_fild02 mapflag privateairship_source
hu_fild04 mapflag privateairship_source
hu_fild05 mapflag privateairship_source
hu_fild06 mapflag privateairship_source
hugel mapflag privateairship_source
ice_dun01 mapflag privateairship_source
ice_dun02 mapflag privateairship_source
ice_dun03 mapflag privateairship_source
in_sphinx1 mapflag privateairship_source
in_sphinx2 mapflag privateairship_source
in_sphinx3 mapflag privateairship_source
in_sphinx4 mapflag privateairship_source
in_sphinx5 mapflag privateairship_source
iz_dun00 mapflag privateairship_source
iz_dun01 mapflag privateairship_source
iz_dun02 mapflag privateairship_source
iz_dun03 mapflag privateairship_source
iz_dun04 mapflag privateairship_source
iz_dun05 mapflag privateairship_source
izlu2dun mapflag privateairship_source
izlude mapflag privateairship_source
jupe_core mapflag privateairship_source
juperos_01 mapflag privateairship_source
juperos_02 mapflag privateairship_source
kh_dun01 mapflag privateairship_source
kh_dun02 mapflag privateairship_source
lasa_dun01 mapflag privateairship_source
lasa_dun02 mapflag privateairship_source
lasa_dun03 mapflag privateairship_source
lasa_fild01 mapflag privateairship_source
lasa_fild02 mapflag privateairship_source
lasagna mapflag privateairship_source
lhz_dun01 mapflag privateairship_source
lhz_dun02 mapflag privateairship_source
lhz_dun03 mapflag privateairship_source
lhz_fild01 mapflag privateairship_source
lhz_fild02 mapflag privateairship_source
lhz_fild03 mapflag privateairship_source
lighthalzen mapflag privateairship_source
lou_dun01 mapflag privateairship_source
lou_dun02 mapflag privateairship_source
lou_dun03 mapflag privateairship_source
lou_fild01 mapflag privateairship_source
louyang mapflag privateairship_source
ma_dun01 mapflag privateairship_source
ma_fild01 mapflag privateairship_source
ma_fild02 mapflag privateairship_source
ma_scene01 mapflag privateairship_source
mag_dun01 mapflag privateairship_source
mag_dun02 mapflag privateairship_source
mal_dun01 mapflag privateairship_source
malangdo mapflag privateairship_source
malaya mapflag privateairship_source
man_fild01 mapflag privateairship_source
man_fild02 mapflag privateairship_source
man_fild03 mapflag privateairship_source
manuk mapflag privateairship_source
mid_camp mapflag privateairship_source
mjo_dun01 mapflag privateairship_source
mjo_dun02 mapflag privateairship_source
mjo_dun03 mapflag privateairship_source
mjolnir_01 mapflag privateairship_source
mjolnir_02 mapflag privateairship_source
mjolnir_03 mapflag privateairship_source
mjolnir_04 mapflag privateairship_source
mjolnir_05 mapflag privateairship_source
mjolnir_06 mapflag privateairship_source
mjolnir_07 mapflag privateairship_source
mjolnir_08 mapflag privateairship_source
mjolnir_09 mapflag privateairship_source
mjolnir_10 mapflag privateairship_source
mjolnir_11 mapflag privateairship_source
mjolnir_12 mapflag privateairship_source
moc_fild01 mapflag privateairship_source
moc_fild02 mapflag privateairship_source
moc_fild03 mapflag privateairship_source
moc_fild04 mapflag privateairship_source
moc_fild05 mapflag privateairship_source
moc_fild06 mapflag privateairship_source
moc_fild07 mapflag privateairship_source
moc_fild08 mapflag privateairship_source
moc_fild09 mapflag privateairship_source
moc_fild10 mapflag privateairship_source
moc_fild11 mapflag privateairship_source
moc_fild12 mapflag privateairship_source
moc_fild13 mapflag privateairship_source
moc_fild14 mapflag privateairship_source
moc_fild15 mapflag privateairship_source
moc_fild16 mapflag privateairship_source
moc_fild17 mapflag privateairship_source
moc_fild18 mapflag privateairship_source
moc_fild19 mapflag privateairship_source
moc_pryd01 mapflag privateairship_source
moc_pryd02 mapflag privateairship_source
moc_pryd03 mapflag privateairship_source
moc_pryd04 mapflag privateairship_source
moc_pryd05 mapflag privateairship_source
moc_pryd06 mapflag privateairship_source
moc_ruins mapflag privateairship_source
mora mapflag privateairship_source
moro_cav mapflag privateairship_source
moro_vol mapflag privateairship_source
morocc mapflag privateairship_source
moscovia mapflag privateairship_source
mosk_dun01 mapflag privateairship_source
mosk_dun02 mapflag privateairship_source
mosk_dun03 mapflag privateairship_source
mosk_fild02 mapflag privateairship_source
nameless_n mapflag privateairship_source
nif_fild01 mapflag privateairship_source
nif_fild02 mapflag privateairship_source
niflheim mapflag privateairship_source
odin_tem01 mapflag privateairship_source
odin_tem02 mapflag privateairship_source
odin_tem03 mapflag privateairship_source
orcsdun01 mapflag privateairship_source
orcsdun02 mapflag privateairship_source
pay_arche mapflag privateairship_source
pay_dun00 mapflag privateairship_source
pay_dun01 mapflag privateairship_source
pay_dun02 mapflag privateairship_source
pay_dun03 mapflag privateairship_source
pay_dun04 mapflag privateairship_source
pay_fild01 mapflag privateairship_source
pay_fild02 mapflag privateairship_source
pay_fild03 mapflag privateairship_source
pay_fild04 mapflag privateairship_source
pay_fild05 mapflag privateairship_source
pay_fild06 mapflag privateairship_source
pay_fild07 mapflag privateairship_source
pay_fild08 mapflag privateairship_source
pay_fild09 mapflag privateairship_source
pay_fild10 mapflag privateairship_source
pay_fild11 mapflag privateairship_source
payon mapflag privateairship_source
prontera mapflag privateairship_source
prt_fild00 mapflag privateairship_source
prt_fild01 mapflag privateairship_source
prt_fild02 mapflag privateairship_source
prt_fild03 mapflag privateairship_source
prt_fild04 mapflag privateairship_source
prt_fild05 mapflag privateairship_source
prt_fild06 mapflag privateairship_source
prt_fild07 mapflag privateairship_source
prt_fild08 mapflag privateairship_source
prt_fild09 mapflag privateairship_source
prt_fild10 mapflag privateairship_source
prt_fild11 mapflag privateairship_source
prt_maze01 mapflag privateairship_source
prt_maze02 mapflag privateairship_source
prt_maze03 mapflag privateairship_source
prt_monk mapflag privateairship_source
prt_sewb1 mapflag privateairship_source
prt_sewb2 mapflag privateairship_source
prt_sewb3 mapflag privateairship_source
prt_sewb4 mapflag privateairship_source
ra_fild01 mapflag privateairship_source
ra_fild03 mapflag privateairship_source
ra_fild04 mapflag privateairship_source
ra_fild05 mapflag privateairship_source
ra_fild06 mapflag privateairship_source
ra_fild08 mapflag privateairship_source
ra_fild12 mapflag privateairship_source
ra_san01 mapflag privateairship_source
ra_san02 mapflag privateairship_source
ra_san03 mapflag privateairship_source
ra_san04 mapflag privateairship_source
ra_san05 mapflag privateairship_source
ra_temple mapflag privateairship_source
rachel mapflag privateairship_source
spl_fild01 mapflag privateairship_source
spl_fild02 mapflag privateairship_source
spl_fild03 mapflag privateairship_source
splendide mapflag privateairship_source
tha_t01 mapflag privateairship_source
tha_t02 mapflag privateairship_source
tha_t03 mapflag privateairship_source
tha_t04 mapflag privateairship_source
tha_t05 mapflag privateairship_source
tha_t06 mapflag privateairship_source
tha_t07 mapflag privateairship_source
tha_t08 mapflag privateairship_source
tha_t09 mapflag privateairship_source
tha_t10 mapflag privateairship_source
tha_t11 mapflag privateairship_source
tha_t12 mapflag privateairship_source
thor_v01 mapflag privateairship_source
thor_v02 mapflag privateairship_source
thor_v03 mapflag privateairship_source
treasure01 mapflag privateairship_source
treasure02 mapflag privateairship_source
tur_dun01 mapflag privateairship_source
tur_dun02 mapflag privateairship_source
tur_dun03 mapflag privateairship_source
tur_dun04 mapflag privateairship_source
tur_dun05 mapflag privateairship_source
um_fild01 mapflag privateairship_source
um_fild02 mapflag privateairship_source
um_fild03 mapflag privateairship_source
um_fild04 mapflag privateairship_source
umbala mapflag privateairship_source
ve_fild01 mapflag privateairship_source
ve_fild02 mapflag privateairship_source
ve_fild03 mapflag privateairship_source
ve_fild04 mapflag privateairship_source
ve_fild06 mapflag privateairship_source
ve_fild07 mapflag privateairship_source
veins mapflag privateairship_source
ver_eju mapflag privateairship_source
ver_tunn mapflag privateairship_source
verus03 mapflag privateairship_source
verus04 mapflag privateairship_source
yuno mapflag privateairship_source
yuno_fild01 mapflag privateairship_source
yuno_fild02 mapflag privateairship_source
yuno_fild03 mapflag privateairship_source
yuno_fild04 mapflag privateairship_source
yuno_fild06 mapflag privateairship_source
yuno_fild07 mapflag privateairship_source
yuno_fild08 mapflag privateairship_source
yuno_fild09 mapflag privateairship_source
yuno_fild11 mapflag privateairship_source
yuno_fild12 mapflag privateairship_source
//=======================================
// Available destination maps
//=======================================
abbey01 mapflag privateairship_destination
abbey02 mapflag privateairship_destination
abbey03 mapflag privateairship_destination
abyss_01 mapflag privateairship_destination
abyss_02 mapflag privateairship_destination
abyss_03 mapflag privateairship_destination
alb2trea mapflag privateairship_destination
alberta mapflag privateairship_destination
alde_dun01 mapflag privateairship_destination
alde_dun02 mapflag privateairship_destination
alde_dun03 mapflag privateairship_destination
alde_dun04 mapflag privateairship_destination
alde_gld mapflag privateairship_destination
aldebaran mapflag privateairship_destination
ama_dun01 mapflag privateairship_destination
ama_dun02 mapflag privateairship_destination
ama_dun03 mapflag privateairship_destination
ama_fild01 mapflag privateairship_destination
amatsu mapflag privateairship_destination
anthell01 mapflag privateairship_destination
anthell02 mapflag privateairship_destination
aru_gld mapflag privateairship_destination
ayo_dun01 mapflag privateairship_destination
ayo_dun02 mapflag privateairship_destination
ayo_fild01 mapflag privateairship_destination
ayothaya mapflag privateairship_destination
beach_dun mapflag privateairship_destination
beach_dun2 mapflag privateairship_destination
beach_dun3 mapflag privateairship_destination
bif_fild01 mapflag privateairship_destination
bif_fild02 mapflag privateairship_destination
bra_dun01 mapflag privateairship_destination
bra_dun02 mapflag privateairship_destination
bra_fild01 mapflag privateairship_destination
brasilis mapflag privateairship_destination
c_tower1 mapflag privateairship_destination
c_tower2 mapflag privateairship_destination
c_tower3 mapflag privateairship_destination
c_tower4 mapflag privateairship_destination
cmd_fild01 mapflag privateairship_destination
cmd_fild02 mapflag privateairship_destination
cmd_fild03 mapflag privateairship_destination
cmd_fild04 mapflag privateairship_destination
cmd_fild06 mapflag privateairship_destination
cmd_fild07 mapflag privateairship_destination
cmd_fild08 mapflag privateairship_destination
cmd_fild09 mapflag privateairship_destination
comodo mapflag privateairship_destination
dali mapflag privateairship_destination
dali02 mapflag privateairship_destination
dew_dun01 mapflag privateairship_destination
dew_dun02 mapflag privateairship_destination
dew_fild01 mapflag privateairship_destination
dewata mapflag privateairship_destination
dic_dun01 mapflag privateairship_destination
dic_dun02 mapflag privateairship_destination
dic_dun03 mapflag privateairship_destination
dic_fild01 mapflag privateairship_destination
dic_fild02 mapflag privateairship_destination
dicastes01 mapflag privateairship_destination
dicastes02 mapflag privateairship_destination
ecl_fild01 mapflag privateairship_destination
ecl_tdun01 mapflag privateairship_destination
ecl_tdun02 mapflag privateairship_destination
ecl_tdun03 mapflag privateairship_destination
eclage mapflag privateairship_destination
ein_dun01 mapflag privateairship_destination
ein_dun02 mapflag privateairship_destination
ein_fild01 mapflag privateairship_destination
ein_fild03 mapflag privateairship_destination
ein_fild04 mapflag privateairship_destination
ein_fild05 mapflag privateairship_destination
ein_fild06 mapflag privateairship_destination
ein_fild07 mapflag privateairship_destination
ein_fild08 mapflag privateairship_destination
ein_fild09 mapflag privateairship_destination
einbech mapflag privateairship_destination
einbroch mapflag privateairship_destination
gef_dun00 mapflag privateairship_destination
gef_dun01 mapflag privateairship_destination
gef_dun02 mapflag privateairship_destination
gef_fild00 mapflag privateairship_destination
gef_fild01 mapflag privateairship_destination
gef_fild02 mapflag privateairship_destination
gef_fild03 mapflag privateairship_destination
gef_fild04 mapflag privateairship_destination
gef_fild05 mapflag privateairship_destination
gef_fild06 mapflag privateairship_destination
gef_fild07 mapflag privateairship_destination
gef_fild08 mapflag privateairship_destination
gef_fild09 mapflag privateairship_destination
gef_fild10 mapflag privateairship_destination
gef_fild11 mapflag privateairship_destination
gef_fild12 mapflag privateairship_destination
gef_fild13 mapflag privateairship_destination
gef_fild14 mapflag privateairship_destination
gefenia01 mapflag privateairship_destination
gefenia02 mapflag privateairship_destination
gefenia03 mapflag privateairship_destination
gefenia04 mapflag privateairship_destination
geffen mapflag privateairship_destination
gl_cas01 mapflag privateairship_destination
gl_cas02 mapflag privateairship_destination
gl_church mapflag privateairship_destination
gl_chyard mapflag privateairship_destination
gl_dun01 mapflag privateairship_destination
gl_dun02 mapflag privateairship_destination
gl_in01 mapflag privateairship_destination
gl_knt01 mapflag privateairship_destination
gl_knt02 mapflag privateairship_destination
gl_prison mapflag privateairship_destination
gl_prison1 mapflag privateairship_destination
gl_sew01 mapflag privateairship_destination
gl_sew02 mapflag privateairship_destination
gl_sew03 mapflag privateairship_destination
gl_sew04 mapflag privateairship_destination
gl_step mapflag privateairship_destination
glast_01 mapflag privateairship_destination
gon_dun01 mapflag privateairship_destination
gon_dun02 mapflag privateairship_destination
gon_dun03 mapflag privateairship_destination
gon_fild01 mapflag privateairship_destination
gonryun mapflag privateairship_destination
hu_fild01 mapflag privateairship_destination
hu_fild02 mapflag privateairship_destination
hu_fild04 mapflag privateairship_destination
hu_fild05 mapflag privateairship_destination
hu_fild06 mapflag privateairship_destination
hugel mapflag privateairship_destination
ice_dun01 mapflag privateairship_destination
ice_dun02 mapflag privateairship_destination
ice_dun03 mapflag privateairship_destination
in_sphinx1 mapflag privateairship_destination
in_sphinx2 mapflag privateairship_destination
in_sphinx3 mapflag privateairship_destination
in_sphinx4 mapflag privateairship_destination
in_sphinx5 mapflag privateairship_destination
iz_dun00 mapflag privateairship_destination
iz_dun01 mapflag privateairship_destination
iz_dun02 mapflag privateairship_destination
iz_dun03 mapflag privateairship_destination
iz_dun04 mapflag privateairship_destination
iz_dun05 mapflag privateairship_destination
izlu2dun mapflag privateairship_destination
izlude mapflag privateairship_destination
jupe_core mapflag privateairship_destination
juperos_01 mapflag privateairship_destination
juperos_02 mapflag privateairship_destination
kh_dun01 mapflag privateairship_destination
kh_dun02 mapflag privateairship_destination
lasa_dun01 mapflag privateairship_destination
lasa_dun02 mapflag privateairship_destination
lasa_dun03 mapflag privateairship_destination
lasa_fild01 mapflag privateairship_destination
lasa_fild02 mapflag privateairship_destination
lasagna mapflag privateairship_destination
lhz_dun01 mapflag privateairship_destination
lhz_dun02 mapflag privateairship_destination
lhz_dun03 mapflag privateairship_destination
lhz_fild01 mapflag privateairship_destination
lhz_fild02 mapflag privateairship_destination
lhz_fild03 mapflag privateairship_destination
lighthalzen mapflag privateairship_destination
lou_dun01 mapflag privateairship_destination
lou_dun02 mapflag privateairship_destination
lou_dun03 mapflag privateairship_destination
lou_fild01 mapflag privateairship_destination
louyang mapflag privateairship_destination
ma_dun01 mapflag privateairship_destination
ma_fild01 mapflag privateairship_destination
ma_fild02 mapflag privateairship_destination
ma_scene01 mapflag privateairship_destination
mag_dun01 mapflag privateairship_destination
mag_dun02 mapflag privateairship_destination
mal_dun01 mapflag privateairship_destination
malangdo mapflag privateairship_destination
malaya mapflag privateairship_destination
man_fild01 mapflag privateairship_destination
man_fild02 mapflag privateairship_destination
man_fild03 mapflag privateairship_destination
manuk mapflag privateairship_destination
mid_camp mapflag privateairship_destination
mjo_dun01 mapflag privateairship_destination
mjo_dun02 mapflag privateairship_destination
mjo_dun03 mapflag privateairship_destination
mjolnir_01 mapflag privateairship_destination
mjolnir_02 mapflag privateairship_destination
mjolnir_03 mapflag privateairship_destination
mjolnir_04 mapflag privateairship_destination
mjolnir_05 mapflag privateairship_destination
mjolnir_06 mapflag privateairship_destination
mjolnir_07 mapflag privateairship_destination
mjolnir_08 mapflag privateairship_destination
mjolnir_09 mapflag privateairship_destination
mjolnir_10 mapflag privateairship_destination
mjolnir_11 mapflag privateairship_destination
mjolnir_12 mapflag privateairship_destination
moc_fild01 mapflag privateairship_destination
moc_fild02 mapflag privateairship_destination
moc_fild03 mapflag privateairship_destination
moc_fild04 mapflag privateairship_destination
moc_fild05 mapflag privateairship_destination
moc_fild06 mapflag privateairship_destination
moc_fild07 mapflag privateairship_destination
moc_fild08 mapflag privateairship_destination
moc_fild09 mapflag privateairship_destination
moc_fild10 mapflag privateairship_destination
moc_fild11 mapflag privateairship_destination
moc_fild12 mapflag privateairship_destination
moc_fild13 mapflag privateairship_destination
moc_fild14 mapflag privateairship_destination
moc_fild15 mapflag privateairship_destination
moc_fild16 mapflag privateairship_destination
moc_fild17 mapflag privateairship_destination
moc_fild18 mapflag privateairship_destination
moc_fild19 mapflag privateairship_destination
moc_pryd01 mapflag privateairship_destination
moc_pryd02 mapflag privateairship_destination
moc_pryd03 mapflag privateairship_destination
moc_pryd04 mapflag privateairship_destination
moc_pryd05 mapflag privateairship_destination
moc_pryd06 mapflag privateairship_destination
moc_ruins mapflag privateairship_destination
mora mapflag privateairship_destination
moro_cav mapflag privateairship_destination
moro_vol mapflag privateairship_destination
morocc mapflag privateairship_destination
moscovia mapflag privateairship_destination
mosk_dun01 mapflag privateairship_destination
mosk_dun02 mapflag privateairship_destination
mosk_dun03 mapflag privateairship_destination
mosk_fild02 mapflag privateairship_destination
nameless_n mapflag privateairship_destination
nif_fild01 mapflag privateairship_destination
nif_fild02 mapflag privateairship_destination
niflheim mapflag privateairship_destination
odin_tem01 mapflag privateairship_destination
odin_tem02 mapflag privateairship_destination
odin_tem03 mapflag privateairship_destination
orcsdun01 mapflag privateairship_destination
orcsdun02 mapflag privateairship_destination
pay_arche mapflag privateairship_destination
pay_dun00 mapflag privateairship_destination
pay_dun01 mapflag privateairship_destination
pay_dun02 mapflag privateairship_destination
pay_dun03 mapflag privateairship_destination
pay_dun04 mapflag privateairship_destination
pay_fild01 mapflag privateairship_destination
pay_fild02 mapflag privateairship_destination
pay_fild03 mapflag privateairship_destination
pay_fild04 mapflag privateairship_destination
pay_fild05 mapflag privateairship_destination
pay_fild06 mapflag privateairship_destination
pay_fild07 mapflag privateairship_destination
pay_fild08 mapflag privateairship_destination
pay_fild09 mapflag privateairship_destination
pay_fild10 mapflag privateairship_destination
pay_fild11 mapflag privateairship_destination
payon mapflag privateairship_destination
prontera mapflag privateairship_destination
prt_fild00 mapflag privateairship_destination
prt_fild01 mapflag privateairship_destination
prt_fild02 mapflag privateairship_destination
prt_fild03 mapflag privateairship_destination
prt_fild04 mapflag privateairship_destination
prt_fild05 mapflag privateairship_destination
prt_fild06 mapflag privateairship_destination
prt_fild07 mapflag privateairship_destination
prt_fild08 mapflag privateairship_destination
prt_fild09 mapflag privateairship_destination
prt_fild10 mapflag privateairship_destination
prt_fild11 mapflag privateairship_destination
prt_maze01 mapflag privateairship_destination
prt_maze02 mapflag privateairship_destination
prt_maze03 mapflag privateairship_destination
prt_monk mapflag privateairship_destination
prt_sewb1 mapflag privateairship_destination
prt_sewb2 mapflag privateairship_destination
prt_sewb3 mapflag privateairship_destination
prt_sewb4 mapflag privateairship_destination
ra_fild01 mapflag privateairship_destination
ra_fild03 mapflag privateairship_destination
ra_fild04 mapflag privateairship_destination
ra_fild05 mapflag privateairship_destination
ra_fild06 mapflag privateairship_destination
ra_fild08 mapflag privateairship_destination
ra_fild12 mapflag privateairship_destination
ra_san01 mapflag privateairship_destination
ra_san02 mapflag privateairship_destination
ra_san03 mapflag privateairship_destination
ra_san04 mapflag privateairship_destination
ra_san05 mapflag privateairship_destination
ra_temple mapflag privateairship_destination
rachel mapflag privateairship_destination
spl_fild01 mapflag privateairship_destination
spl_fild02 mapflag privateairship_destination
spl_fild03 mapflag privateairship_destination
splendide mapflag privateairship_destination
tha_t01 mapflag privateairship_destination
tha_t02 mapflag privateairship_destination
tha_t03 mapflag privateairship_destination
tha_t04 mapflag privateairship_destination
tha_t05 mapflag privateairship_destination
tha_t06 mapflag privateairship_destination
tha_t07 mapflag privateairship_destination
tha_t08 mapflag privateairship_destination
tha_t09 mapflag privateairship_destination
tha_t10 mapflag privateairship_destination
tha_t11 mapflag privateairship_destination
tha_t12 mapflag privateairship_destination
thor_v01 mapflag privateairship_destination
thor_v02 mapflag privateairship_destination
thor_v03 mapflag privateairship_destination
treasure01 mapflag privateairship_destination
treasure02 mapflag privateairship_destination
tur_dun01 mapflag privateairship_destination
tur_dun02 mapflag privateairship_destination
tur_dun03 mapflag privateairship_destination
tur_dun04 mapflag privateairship_destination
tur_dun05 mapflag privateairship_destination
um_fild01 mapflag privateairship_destination
um_fild02 mapflag privateairship_destination
um_fild03 mapflag privateairship_destination
um_fild04 mapflag privateairship_destination
umbala mapflag privateairship_destination
ve_fild01 mapflag privateairship_destination
ve_fild02 mapflag privateairship_destination
ve_fild03 mapflag privateairship_destination
ve_fild04 mapflag privateairship_destination
ve_fild06 mapflag privateairship_destination
ve_fild07 mapflag privateairship_destination
veins mapflag privateairship_destination
ver_eju mapflag privateairship_destination
ver_tunn mapflag privateairship_destination
verus03 mapflag privateairship_destination
verus04 mapflag privateairship_destination
yuno mapflag privateairship_destination
yuno_fild01 mapflag privateairship_destination
yuno_fild02 mapflag privateairship_destination
yuno_fild03 mapflag privateairship_destination
yuno_fild04 mapflag privateairship_destination
yuno_fild06 mapflag privateairship_destination
yuno_fild07 mapflag privateairship_destination
yuno_fild08 mapflag privateairship_destination
yuno_fild09 mapflag privateairship_destination
yuno_fild11 mapflag privateairship_destination
yuno_fild12 mapflag privateairship_destination

View File

@ -13,6 +13,7 @@ npc: npc/re/mapflag/nosave.txt
npc: npc/re/mapflag/noteleport.txt
npc: npc/re/mapflag/nowarpto.txt
//npc: npc/re/mapflag/partylock.txt
npc: npc/re/mapflag/privateairship.txt
npc: npc/re/mapflag/night.txt
npc: npc/re/mapflag/restricted.txt
npc: npc/re/mapflag/town.txt

View File

@ -165,12 +165,13 @@ CREATE TABLE IF NOT EXISTS `npclog` (
# Lotter(Y)
# (Z) Merged Items
# (Q)uest
# Private Airs(H)ip
CREATE TABLE IF NOT EXISTS `picklog` (
`id` int(11) NOT NULL auto_increment,
`time` datetime NOT NULL,
`char_id` int(11) NOT NULL default '0',
`type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$','F','Y','Z','Q') NOT NULL default 'P',
`type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$','F','Y','Z','Q','H') NOT NULL default 'P',
`nameid` smallint(5) unsigned NOT NULL default '0',
`amount` int(11) NOT NULL default '1',
`refine` tinyint(3) unsigned NOT NULL default '0',

View File

@ -0,0 +1,2 @@
ALTER TABLE `picklog`
MODIFY COLUMN `type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$','F','Y','Z','Q','H') NOT NULL default 'P';

View File

@ -8505,6 +8505,7 @@ static const struct _battle_data {
{ "summoner_trait", &battle_config.summoner_trait, 3, 0, 3, },
{ "homunculus_autofeed_always", &battle_config.homunculus_autofeed_always, 1, 0, 1, },
{ "feature.attendance", &battle_config.feature_attendance, 1, 0, 1, },
{ "feature.privateairship", &battle_config.feature_privateairship, 1, 0, 1, },
#include "../custom/battle_config_init.inc"
};
@ -8649,6 +8650,13 @@ void battle_adjust_conf()
}
#endif
#if PACKETVER < 20180321
if( battle_config.feature_privateairship ){
ShowWarning("conf/battle/feature.conf private airship system is enabled but it requires PACKETVER 2018-03-21 or newer, disabling...\n");
battle_config.feature_privateairship = 0;
}
#endif
#ifndef CELL_NOSTACK
if (battle_config.custom_cell_stack_limit != 1)
ShowWarning("Battle setting 'custom_cell_stack_limit' takes no effect as this server was compiled without Cell Stack Limit support.\n");

View File

@ -645,6 +645,7 @@ struct Battle_Config
int summoner_trait;
int homunculus_autofeed_always;
int feature_attendance;
int feature_privateairship;
#include "../custom/battle_config_struct.inc"
};

View File

@ -20388,6 +20388,121 @@ void clif_weight_limit( struct map_session_data* sd ){
#endif
}
enum e_private_airship_response : uint32{
PRIVATEAIRSHIP_OK,
PRIVATEAIRSHIP_RETRY,
PRIVATEAIRSHIP_ITEM_NOT_ENOUGH,
PRIVATEAIRSHIP_DESTINATION_MAP_INVALID,
PRIVATEAIRSHIP_SOURCE_MAP_INVALID,
PRIVATEAIRSHIP_ITEM_UNAVAILABLE
};
/// Send out the response to a private airship request
/// 0A4A <response>.L
void clif_private_airship_response( struct map_session_data* sd, enum e_private_airship_response response ){
#if PACKETVER >= 20180321
nullpo_retv( sd );
int fd = sd->fd;
WFIFOHEAD( fd, packet_len( 0xA4A ) );
WFIFOW( fd, 0 ) = 0xA4A;
WFIFOL( fd, 2 ) = response;
WFIFOSET( fd, packet_len( 0xA4A ) );
#endif
}
/// Parses a request for a private airship
/// 0A49 <mapname>.16B <itemid>.W
void clif_parse_private_airship_request( int fd, struct map_session_data* sd ){
#if PACKETVER >= 20180321
// Check if the feature is enabled
if( !battle_config.feature_privateairship ){
clif_messagecolor( &sd->bl, color_table[COLOR_RED], msg_txt( sd, 792 ), false, SELF ); // The private airship system is disabled.
return;
}
// Check if the player is allowed to warp from the source map
if( !map_getmapflag( sd->bl.m, MF_PRIVATEAIRSHIP_SOURCE ) ){
clif_private_airship_response( sd, PRIVATEAIRSHIP_SOURCE_MAP_INVALID );
return;
}
char mapname[MAP_NAME_LENGTH_EXT];
safestrncpy( mapname, RFIFOCP( fd, 2 ), MAP_NAME_LENGTH_EXT );
int16 mapindex = mapindex_name2id( mapname );
// Check if we know the mapname
if( mapindex < 0 ){
clif_private_airship_response( sd, PRIVATEAIRSHIP_DESTINATION_MAP_INVALID );
return;
}
int16 mapid = map_mapindex2mapid( mapindex );
// Check if the map is available on this server
if( mapid < 0 ){
// TODO: add multi map-server support, cant validate the mapflags of the other server
return;
}
// Check if the player tried to warp to the map he is on
if( sd->bl.m == mapid ){
// This is blocked by the client, but just to be sure
return;
}
// This can only be a hack, so we prevent it
if( map_getmapdata( mapid )->instance_id ){
// Ignore requests to warp directly into a running instance
return;
}
// Check if the player is allowed to warp to the target map
if( !map_getmapflag( mapid, MF_PRIVATEAIRSHIP_DESTINATION ) ){
clif_private_airship_response( sd, PRIVATEAIRSHIP_DESTINATION_MAP_INVALID );
return;
}
// The UI only offers these two buttons(items) for now
uint16 item_ids[] = {
ITEMID_ACTINIDIA_CAT_FRUIT,
ITEMID_WORLD_MOVING_RIGHTS
};
uint16 item_id = RFIFOW( fd, 2 + MAP_NAME_LENGTH_EXT );
int i;
ARR_FIND( 0, ARRAYLENGTH( item_ids ), i, item_ids[i] == item_id );
// Check if the item sent by the client is known to us
if( i == ARRAYLENGTH( item_ids ) ){
clif_private_airship_response( sd, PRIVATEAIRSHIP_ITEM_UNAVAILABLE );
return;
}
int idx = pc_search_inventory( sd, item_id );
// Check if the player has the item at all
if( idx < 0 ){
clif_private_airship_response( sd, PRIVATEAIRSHIP_ITEM_NOT_ENOUGH );
return;
}
// Delete the chosen item
if( pc_delitem( sd, idx, 1, 0, 0, LOG_TYPE_PRIVATE_AIRSHIP ) ){
clif_private_airship_response( sd, PRIVATEAIRSHIP_RETRY );
return;
}
// Warp the player to a random spot on the destination map
pc_setpos( sd, mapindex, 0, 0, CLR_TELEPORT );
#endif
}
/*==========================================
* Main client packet processing function
*------------------------------------------*/

View File

@ -2396,7 +2396,7 @@
// 2018-03-21aRagexeRE
#if PACKETVER >= 20180321
parseable_packet(0x0A49,20,clif_parse_dull,0);
parseable_packet(0x0A49,20,clif_parse_private_airship_request,0);
packet(0x0A4A,6);
packet(0x0A4B,22);
packet(0x0A4C,28);

View File

@ -80,6 +80,7 @@ enum item_itemid
ITEMID_PAINT_BRUSH = 6122,
ITEMID_MAGIC_GEAR_FUEL = 6146,
ITEMID_STRANGE_EMBRYO = 6415,
ITEMID_ACTINIDIA_CAT_FRUIT = 6909,
ITEMID_STONE = 7049,
ITEMID_FIRE_BOTTLE = 7135,
ITEMID_ACID_BOTTLE = 7136,
@ -120,6 +121,7 @@ enum item_itemid
ITEMID_WOB_RACHEL = 14584,
ITEMID_WOB_LOCAL = 14585,
ITEMID_SIEGE_TELEPORT_SCROLL = 14591,
ITEMID_WORLD_MOVING_RIGHTS = 25464,
};
///Rune Knight

View File

@ -84,6 +84,7 @@ static char log_picktype2char(e_log_pick_type type)
case LOG_TYPE_ROULETTE: return 'Y'; // Roulette Lotter(Y)
case LOG_TYPE_MERGE_ITEM: return 'Z'; // Merged Item
case LOG_TYPE_QUEST: return 'Q'; // (Q)uest Item
case LOG_TYPE_PRIVATE_AIRSHIP: return 'H'; // Private Airs(H)ip
}
// should not get here, fallback

View File

@ -49,6 +49,7 @@ enum e_log_pick_type : uint32
LOG_TYPE_ROULETTE = 0x100000,
LOG_TYPE_MERGE_ITEM = 0x200000,
LOG_TYPE_QUEST = 0x400000,
LOG_TYPE_PRIVATE_AIRSHIP = 0x800000,
// combinations
LOG_TYPE_LOOT = LOG_TYPE_PICKDROP_MONSTER|LOG_TYPE_CONSUME,
// all

View File

@ -587,6 +587,8 @@ enum e_mapflag : int16 {
MF_HIDEMOBHPBAR,
MF_NOLOOT,
MF_NOEXP,
MF_PRIVATEAIRSHIP_SOURCE,
MF_PRIVATEAIRSHIP_DESTINATION,
MF_MAX
};

View File

@ -453,6 +453,8 @@
export_constant(MF_HIDEMOBHPBAR);
export_constant(MF_NOLOOT);
export_constant(MF_NOEXP);
export_constant(MF_PRIVATEAIRSHIP_SOURCE);
export_constant(MF_PRIVATEAIRSHIP_DESTINATION);
/* setcell types */
export_constant(CELL_WALKABLE);