summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/Changelog.txt2
-rw-r--r--npc/custom/eAAC_Scripts/kafraExpress/kafras.txt156
-rw-r--r--npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt43
-rw-r--r--npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt509
-rw-r--r--npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt399
-rw-r--r--npc/custom/eAAC_Scripts/kafraExpress/readme.txt11
6 files changed, 795 insertions, 325 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index 16e6a821d..5535bac6a 100644
--- a/npc/Changelog.txt
+++ b/npc/Changelog.txt
@@ -35,6 +35,8 @@ Playtester
Date Added
======
08/03
+ * Updated the Kafra Express files to the July 28 release as requested on
+ the forums. [Skotlex]
* Fixed the DTS warper zeny bug [Evera]
08/02
* Re-enabled the Culvert Save [Evera]
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt b/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt
index b7df781e2..bb3fe643f 100644
--- a/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt
+++ b/npc/custom/eAAC_Scripts/kafraExpress/kafras.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Skotlex
//===== Current Version: =====================================
-//= 1.9
+//= 2.2
//===== Compatible With: =====================================
//= Any eAthena Version with function support; RO Episode 8+ (LightHalzen)
//===== Description: =========================================
@@ -18,275 +18,279 @@
//callfunc "F_KafraExpress","NPC Name","Image File", type, "Save Map", Save X, Save Y;
//Town Kafras
-alberta.gat,113,53,7 script Kafra Express 116,{
+alberta.gat,113,60,5 script Kafra Express::Alberta 116,{
callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"alberta.gat",116,57;
}
-aldebaran.gat,133,124,5 script Kafra Express 115,{
+aldebaran.gat,133,124,5 script Kafra Express::AlDeBaran 115,{
callfunc "F_KafraExpress","Kafra Express","kafra_03",2,"aldebaran.gat",139,131;
}
-amatsu.gat,201,80,8 script Kafra Express 114,{
+amatsu.gat,201,80,8 script Kafra Express::Amatsu 114,{
callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"amatsu.gat",197,81;
}
-ayothaya.gat,195,160,8 script Kafra Express 112,{
+ayothaya.gat,195,160,8 script Kafra Express::Ayothaya 112,{
callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"ayothaya.gat",194,173;
}
-comodo.gat,190,153,5 script Kafra Express 721,{
+comodo.gat,190,153,5 script Kafra Express::Comodo 721,{
callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"comodo.gat",189,166;
}
-geffen.gat,121,62,8 script Kafra Express 113,{
+geffen.gat,121,62,8 script Kafra Express::Geffen 113,{
callfunc "F_KafraExpress","Kafra Express","kafra_05",0,"geffen.gat",119,56;
}
-gonryun.gat,169,188,2 script Kafra Express 117,{
+gonryun.gat,169,188,2 script Kafra Express::GonRyun 117,{
callfunc "F_KafraExpress","Kafra Express","kafra_01",2,"gonryun.gat",168,199;
}
-einbech.gat,182,124,3 script Kafra Express 117,{
- callfunc "F_KafraExpress","Kafra Express","kafra_01",0,"einbech.gat",182,133;
+einbech.gat,143,243,3 script Kafra Express::Einbech 860,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"einbech.gat",157,250;
}
-einbroch.gat,58,207,4 script Kafra Express 115,{
- callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"einbroch.gat",64,184;
+einbroch.gat,58,207,4 script Kafra Express::Einbroch 860,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"einbroch.gat",64,184;
}
-izlude.gat,136,94,2 script Kafra Express 115,{
+hugel.gat,101,117,1 script Kafra Express::Hugel 115,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"hugel.gat",102,109;
+}
+
+izlude.gat,136,94,2 script Kafra Express::Izlude 115,{
callfunc "F_KafraExpress","Kafra Express","kafra_03",0,"izlude.gat",147,99;
}
-jawaii.gat,208,217,7 script Kafra Express 721,{
+jawaii.gat,208,217,7 script Kafra Express::Jawaii 721,{
callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"jawaii.gat",213,209;
}
-lighthalzen.gat,165,106,3 script Kafra Express 114,{
- callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"lighthalzen.gat",152,106;
+lighthalzen.gat,165,106,3 script Kafra Express::Lighthalzen 861,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_09",0,"lighthalzen.gat",152,106;
}
-louyang.gat,220,123,3 script Kafra Express 117,{
+louyang.gat,220,123,3 script Kafra Express::LouYang 117,{
callfunc "F_KafraExpress","Kafra Express","kafra_01",0,"louyang.gat",221,128;
}
-xmas.gat,148,126,4 script Kafra Express 112,{
+xmas.gat,148,126,4 script Kafra Express::Lutie 112,{
callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"xmas.gat",149,117;
}
-morocc.gat,156,97,3 script Kafra Express 721,{
+morocc.gat,156,97,3 script Kafra Express::Morocc 721,{
callfunc "F_KafraExpress","Kafra Express","kafra_07",0,"morocc.gat",156,91;
}
-niflheim.gat,196,192,3 script Kafra Express 791,{
+niflheim.gat,196,192,3 script Kafra Express::Niflheim 791,{
callfunc "F_KafraExpress","Kafra Express","",3,"niflheim.gat",194,185;
}
-payon.gat,152,181,5 script Kafra Express 114,{
+payon.gat,152,181,5 script Kafra Express::Payon 114,{
callfunc "F_KafraExpress","Kafra Express","kafra_04",0,"payon.gat",162,182;
}
-prontera.gat,157,187,4 script Kafra Express 116,{
+prontera.gat,147,177,7 script Kafra Express::Prontera 116,{
callfunc "F_KafraExpress","Kafra Express","kafra_02",0,"prontera.gat",156,195;
}
-umbala.gat,89,159,4 script Kafra Express 112,{
- callfunc "F_KafraExpress","Kafra Express","kafra_06",0,"umbala.gat",91,159;
+umbala.gat,89,159,4 script Kafra Express::Umbala 860,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_08",0,"umbala.gat",91,159;
}
-yuno.gat,159,87,5 script Kafra Express 113,{
- callfunc "F_KafraExpress","Kafra Express","kafra_05",0,"yuno.gat",159,52;
+yuno.gat,159,87,5 script Kafra Express::Yuno 861,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_09",0,"yuno.gat",159,52;
}
//Dungeon Kafras
//Abyss Lake
-hu_fild05.gat,170,305,7 script Kafra Express 721,{
- callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"hu_fild05.gat",160,302;
+hu_fild05.gat,170,305,7 script Kafra Express::D_Abyss 861,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"hu_fild05.gat",160,302;
}
//Amatsu D
-ama_in02.gat,115,184,6 script Kafra Express 117,{
+ama_in02.gat,115,184,6 script Kafra Express::D_Amatsu 117,{
callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"ama_in02.gat",118,184;
}
//AntHell North
-moc_fild04.gat,231,332,5 script Kafra Express 114,{
- callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild04.gat",232,322;
+moc_fild04.gat,208,323,1 script Kafra Express::D_Anthell1 114,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild04.gat",207,332;
}
//AntHell South
-moc_fild15.gat,251,243,3 script Kafra Express 114,{
+moc_fild15.gat,251,243,3 script Kafra Express::D_Anthell2 114,{
callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"moc_fild15.gat",246,251;
}
//Ayothaya Dungeon
-ayo_fild02.gat,289,144,3 script Kafra Express 116,{
+ayo_fild02.gat,289,144,3 script Kafra Express::D_Ayothaya 116,{
callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"ayo_fild02.gat",289,155;
}
//Byalan Island
-izlu2dun.gat,101,82,7 script Kafra Express 112,{
+izlu2dun.gat,101,82,7 script Kafra Express::D_Byalan 112,{
callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"izlu2dun.gat",112,84;
}
//Comodo East Cave
-cmd_fild01.gat,33,321,4 script Kafra Express 721,{
+cmd_fild01.gat,33,321,4 script Kafra Express::D_ComodoE 721,{
callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"cmd_fild01.gat",34,325;
}
//Comodo West Cave
-comodo.gat,31,218,4 script Kafra Express 721,{
+comodo.gat,31,218,4 script Kafra Express::D_ComodoW 721,{
callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"comodo.gat",32,209;
}
//Comodo North Cave
-comodo.gat,182,347,2 script Kafra Express 721,{
+comodo.gat,182,347,2 script Kafra Express::D_ComodoN 721,{
callfunc "F_KafraExpress","Kafra Express","kafra_07",1,"comodo.gat",180,352;
}
//Coal Mines
-mjolnir_02.gat,85,365,4 script Kafra Express 114,{
- callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"mjolnir_02.gat",89,358;
+mjolnir_02.gat,83,364,4 script Kafra Express::D_Coal 861,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"mjolnir_02.gat",89,358;
}
//Culvert
-prt_fild05.gat,275,219,5 script Kafra Express 112,{
+prt_fild05.gat,275,219,5 script Kafra Express::D_Culvert 112,{
callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"prt_fild05.gat",274,208;
}
-//Einbroch Station
-einbech.gat,182,124,3 script Kafra Express 117,{
- callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"einbech.gat",182,133;
-}
-
//Gefenia
-gefenia01.gat,56,171,6 script Kafra Express 116,{
- callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"gefenia01.gat",59,169;
+gefenia01.gat,56,171,6 script Kafra Express::D_Gefenia1 861,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_09",1,"gefenia01.gat",59,169;
}
//Geffen Dungeon
-gef_tower.gat,156,33,3 script Kafra Express 113,{
+gef_tower.gat,156,33,3 script Kafra Express::D_Geffen 113,{
callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"gef_tower.gat",147,35;
}
//GH: Church
-glast_01.gat,193,136,5 script Kafra Express 791,{
+glast_01.gat,193,136,5 script Kafra Express::D_GHChurch 791,{
callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",206,136;
}
//GH: Castle
-glast_01.gat,200,350,4 script Kafra Express 791,{
+glast_01.gat,200,350,4 script Kafra Express::D_GHCastle 791,{
callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",200,347;
}
//GH: Staircase
-glast_01.gat,58,103,7 script Kafra Express 791,{
+glast_01.gat,58,103,7 script Kafra Express::D_GHStair 791,{
callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",62,107;
}
//GH: Chivalry
-glast_01.gat,62,198,6 script Kafra Express 791,{
+glast_01.gat,62,198,6 script Kafra Express::D_GHChivalry 791,{
callfunc "F_KafraExpress","Kafra Express","",1,"glast_01.gat",69,193;
}
-//LightHalzen Rekkenber
-lighthalzen.gat,69,57,7 script Kafra Express 113,{
- callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"lighthalzen.gat",78,57;
+//LightHalzen Rekkenber (Sewer Entrance)
+lighthalzen.gat,311,293,17 script Kafra Express::D_Lhz 860,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"lighthalzen.gat",301,286;
}
+//LightHalzen Rekkenber (Rekkenber Entrance)(
+//lighthalzen.gat,69,57,7 script Kafra Express::D_Lhz 860,{
+// callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"lighthalzen.gat",78,57;
+//}
+
//Juperos
-jupe_cave.gat,45,55,5 script Kafra Express 115,{
- callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"jupe_cave.gat",45,48;
+jupe_cave.gat,45,55,5 script Kafra Express::D_Juperos 860,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_08",1,"jupe_cave.gat",45,48;
}
//Laberynth
-prt_fild01.gat,143,365,3 script Kafra Express 112,{
+prt_fild01.gat,143,365,3 script Kafra Express::D_Maze 112,{
callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"prt_fild01.gat",136,361;
}
//LouYang D
-louyang.gat,35,276,6 script Kafra Express 117,{
+louyang.gat,35,276,6 script Kafra Express::D_Louyang 117,{
callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"louyang.gat",41,267;
}
//Magma D
-yuno_fild03.gat,34,143,5 script Kafra Express 115,{
+yuno_fild03.gat,34,143,5 script Kafra Express::D_Magma 115,{
callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"yuno_fild03.gat",35,135;
}
//Orc D North
-in_orcs01.gat,24,165,5 script Kafra Express 116,{
+in_orcs01.gat,24,165,5 script Kafra Express::D_OrcsN 116,{
callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"in_orcs01.gat",34,165;
}
//Orc D South
-in_orcs01.gat,103,99,5 script Kafra Express 116,{
+in_orcs01.gat,103,99,5 script Kafra Express::D_OrcsS 116,{
callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"in_orcs01.gat",112,99;
}
//Payon D
-pay_arche.gat,38,138,6 script Kafra Express 112,{
+pay_arche.gat,38,138,6 script Kafra Express::D_Payon 112,{
callfunc "F_KafraExpress","Kafra Express","kafra_06",1,"pay_arche.gat",41,133;
}
//Pyramids D
-moc_ruins.gat,60,166,5 script Kafra Express 115,{
+moc_ruins.gat,60,166,5 script Kafra Express::D_Pyramid 115,{
callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"moc_ruins.gat",62,162;
}
//Sphinx D
-moc_fild19.gat,106,97,8 script Kafra Express 115,{
+moc_fild19.gat,106,97,8 script Kafra Express::D_Sphinx 115,{
callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"moc_fild19.gat",107,100;
}
//Sunken Ship
-alb2trea.gat,75,101,5 script Kafra Express 114,{
+alb2trea.gat,75,101,5 script Kafra Express::D_Sunken 114,{
callfunc "F_KafraExpress","Kafra Express","kafra_04",1,"alb2trea.gat",87,103;
}
//Thanatos Tower
-tha_t01.gat,155,33,4 script Kafra Express 113,{
- callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tha_t01.gat",144,33;
+tha_scene01.gat,139,194,0 script Kafra Express::D_Thanatos 113,{
+ callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tha_scene01.gat",132,220;
}
//Toy Factory
-xmas.gat,138,307,6 script Kafra Express 116,{
+xmas.gat,138,307,6 script Kafra Express::D_Toy 116,{
callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"xmas.gat",144,306;
}
//Turtle Cave Entrance
-tur_dun01.gat,147,237,6 script Kafra Express 113,{
+tur_dun01.gat,147,237,6 script Kafra Express::D_TCave 113,{
callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tur_dun01.gat",155,234;
}
//Turtle Island Entrance
-tur_dun01.gat,148,54,6 script Kafra Express 113,{
+tur_dun01.gat,148,54,6 script Kafra Express::D_TIsland 113,{
callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"tur_dun01.gat",153,47;
}
//Umbala D
-umbala.gat,120,284,3 script Kafra Express 117,{
+umbala.gat,120,284,3 script Kafra Express::D_Umbala 117,{
callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"umbala.gat",113,282;
}
//Guild War Kafras: Disabled by Default!
//Al De Baran Guild Grounds
-//alde_gld.gat,156,165,3 script Kafra Express 116,{
+//alde_gld.gat,156,165,3 script Kafra Express::G_AlDeBaran 116,{
// callfunc "F_KafraExpress","Kafra Express","kafra_02",1,"alde_gld.gat",156,157;
//}
//Geffen Guild Grounds
-//gef_fild13.gat,237,182,6 script Kafra Express 113,{
+//gef_fild13.gat,237,182,6 script Kafra Express::G_Geffen 113,{
// callfunc "F_KafraExpress","Kafra Express","kafra_05",1,"gef_fild13.gat",231,181;
//}
//Payon Guild Grounds
-//pay_gld.gat,243,172,6 script Kafra Express 117,{
+//pay_gld.gat,243,172,6 script Kafra Express::G_Payon 117,{
// callfunc "F_KafraExpress","Kafra Express","kafra_01",1,"pay_gld.gat",243,178;
//}
//Prontera Guild Grounds
-//prt_gld.gat,127,163,5 script Kafra Express 115,{
+//prt_gld.gat,127,163,5 script Kafra Express::G_Prontera 115,{
// callfunc "F_KafraExpress","Kafra Express","kafra_03",1,"prt_gld.gat",129,170;
//}
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
index ee2d7b79f..3a5add8fd 100644
--- a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
+++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
@@ -3,9 +3,9 @@
//===== By: ==================================================
//= Skotlex
//===== Current Version: =====================================
-//= 3.1
+//= 3.4
//===== Compatible With: =====================================
-//= eAthena SVN R3424+
+//= eAthena SVN R7896+
//===== Description: =========================================
//= Part of the Kafra Express Script Package.
//= Enables job changing among classes of the same 'type'
@@ -183,55 +183,55 @@ function SF_switch {
switch (@kmenu)
{
case 2: //ALCHEMIST
- if (SF_swapJob(callfunc("GF_getJobId", Job_Alchem, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Alchem, Upper),@cost,@preserve))
return 0;
break;
case 3: //ASSASSIN
- if (SF_swapJob(callfunc("GF_getJobId", Job_Assassin, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Assassin, Upper),@cost,@preserve))
return 0;
break;
case 4: //BARD
- if (SF_swapJob(callfunc("GF_getJobId", Job_Bard, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Bard, Upper),@cost,@preserve))
return 0;
break;
case 5: //BLACKSMITH
- if (SF_swapJob(callfunc("GF_getJobId", Job_Blacksmith, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Blacksmith, Upper),@cost,@preserve))
return 0;
break;
case 6: //CRUSADER
- if (SF_swapJob(callfunc("GF_getJobId", Job_Crusader, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Crusader, Upper),@cost,@preserve))
return 0;
break;
case 7: //DANCER
- if (SF_swapJob(callfunc("GF_getJobId", Job_Dancer, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Dancer, Upper),@cost,@preserve))
return 0;
break;
case 8: //HUNTER
- if (SF_swapJob(callfunc("GF_getJobId", Job_Hunter, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Hunter, Upper),@cost,@preserve))
return 0;
break;
case 9: //KNIGHT
- if (SF_swapJob(callfunc("GF_getJobId", Job_Knight, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Knight, Upper),@cost,@preserve))
return 0;
break;
case 10: //MONK
- if (SF_swapJob(callfunc("GF_getJobId", Job_Monk, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Monk, Upper),@cost,@preserve))
return 0;
break;
case 11: //PRIEST
- if (SF_swapJob(callfunc("GF_getJobId", Job_Priest, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Priest, Upper),@cost,@preserve))
return 0;
break;
case 12: //ROGUE
- if (SF_swapJob(callfunc("GF_getJobId", Job_Rogue, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Rogue, Upper),@cost,@preserve))
return 0;
break;
case 13: //SAGE
- if (SF_swapJob(callfunc("GF_getJobId", Job_Sage, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Sage, Upper),@cost,@preserve))
return 0;
break;
case 14: //WIZARD
- if (SF_swapJob(callfunc("GF_getJobId", Job_Wizard, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Wizard, Upper),@cost,@preserve))
return 0;
break;
}
@@ -296,8 +296,16 @@ function SF_swapJob {
}
set @basic, getSkilllv(1);
+ set @preserve, skillpointcount() -JobLevel -@basic +@newjoblv; //Preserve holds the final amount of SkillPoints you should have.
+
+ if (@preserve < 0) {
+ callfunc "F_keIntro", e_gasp, "You need "+(-@preserve)+" more skill points to change class!";
+ return 0;
+ }
+
set @thisJoblevel, JobLevel;
resetSkill;
+
//Set previous job as needed.
if ($@kejs_revertPolicy) {
set kej_prev_job, Class;
@@ -311,10 +319,10 @@ function SF_swapJob {
setlook 7,0;
jobchange @newjobId, 0;
skill 1,@basic,0;
- set SkillPoint, SkillPoint-@thisJoblevel+1-@basic;
-
set JobLevel, @newjoblv;
+ set SkillPoint, @preserve;
setoption(0);
+ sc_end -1;
callfunc "F_keCharge",getarg(2),$@kejs_swapDiscount,1;
emotion e_ok;
@@ -366,6 +374,7 @@ function SF_revertJob {
set kej_prev_joblv, @thisJobLv;
set kej_prev_skills, @skill;
setoption(0);
+ sc_end -1;
if ($@kejs_announce)
announce strcharinfo(0)+" has changed from "+callfunc ("GF_getJobName",@thisJobId)+" to "+@newjob$+"...",16;
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt
index aeafec4da..805f1c795 100644
--- a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt
+++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_dungeon.txt
@@ -3,14 +3,44 @@
//===== By: ==================================================
//= Skotlex
//===== Current Version: =====================================
-//= 3.1
+//= 3.5
//===== Compatible With: =====================================
-//= eAthena SVN R3424+, RO Episode 8+ (LightHalzen)
+//= eAthena SVN R3424+, RO Episode 8+ (Hugel)
//===== Description: =========================================
//= Part of the Kafra Express Script Package.
//= Offers warping to dungeons.
//===== Additional Comments: =================================
//= See config.txt for configuration.
+//= Flag values used for dungeons:
+//= 0x00000001 Abyss Lake
+//= 0x00000002 Amatsu
+//= 0x00000004 AntHell
+//= 0x00000008 Ayothaya
+//= 0x00000010 Byalan
+//= 0x00000020 Comodo
+//= 0x00000040 Clock tower
+//= 0x00000080 Coal Mines
+//= 0x00000100 Culvert
+//= 0x00000200 Einbech
+//= 0x00000400 Gefenia
+//= 0x00000800 Geffen
+//= 0x00001000 GlastHeim
+//= 0x00002000 Gon Ryun
+//= 0x00004000 Hidden Temple
+//= 0x00008000 Juperos
+//= 0x00010000 Lighthalzen
+//= 0x00020000 Lou Yang
+//= 0x00040000 Magma Caves
+//= 0x00080000 Orcs
+//= 0x00100000 Payon
+//= 0x00200000 Pyramid
+//= 0x00400000 Sphinx
+//= 0x00800000 Sunken Ship
+//= 0x01000000 Thanatos
+//= 0x02000000 Toy Factory
+//= 0x04000000 Turtle Island
+//= 0x08000000 Umbala
+
//============================================================
- script keInit_warpDungeon {
@@ -49,7 +79,8 @@ function SF_thanatosTower;
function SF_toyFactory;
function SF_turtleIsland;
function SF_umbala;
-
+ //Store player map, will be needed in any of the submenus.
+ set @map$, getarg(0);
do {
set @discount,callfunc("F_keCost",100,$@kewd_discount);
if ($@kewd_showOnline) {
@@ -252,25 +283,25 @@ function SF_umbala;
} while (@kmenu > 1);
return;
-//Subfunction SF_check(flag1, flag2, cost, floor-count, player-map, dungeon-map#, map#1, map#2, ...)
-//If kewd_travel is set, both flags need to be one to be able to work there.
+//Subfunction SF_check(flag, cost, floor-count, player-map, dungeon-map#, map#1, map#2, ...)
+//If kewd_travel is set, the flag needs to match to be to warp there.
//Floor count is the amount of levels the dungeon needs a price for,
//dungeon-map# is the number of maps passed that need to be checked against
//the player's map to see if they are warping from within the entrance.
function SF_check {
- if ($@kewd_travel && getarg(0) == 0 && getarg(1) == 0) {
+ if ($@kewd_travel && !((kewd_travel|#kewd_travel)&getarg(0))) {
callfunc "F_keIntro", e_sry, "Sorry, but we can only warp you to dungeons you have saved in before.";
return 0;
}
- set @cost, getarg(2);
+ set @cost, getarg(1);
set @discount,100;
- set @map$, getarg(4);
- set @mapI, getarg(5);
+ set @map$, getarg(3);
+ set @mapI, getarg(4);
while (@mapI > 0)
{
- if (@map$ == getarg(5+@mapI)) {
+ if (@map$ == getarg(4+@mapI)) {
set @discount,100-$@kewd_entryDiscount;
break;
}
@@ -288,7 +319,7 @@ function SF_check {
if ($@kewd_deep == 0)
return 1;
- switch (getarg(3)) {
+ switch (getarg(2)) {
case 9:
set @cost9, @cost +8*@inc;
case 8:
@@ -310,7 +341,7 @@ function SF_check {
}
function SF_abyssLake {
- if (!(SF_check(kewd_abyss, #kewd_abyss, $@kewd_abyssLake, 3, getarg(0), 1, "hu_fild05.gat")))
+ if (!(SF_check(0x1, $@kewd_abyssLake, 3, @map$, 1, "hu_fild05.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -343,7 +374,7 @@ function SF_abyssLake {
}
function SF_amatsu {
- if (!(SF_check(kewd_amatsu, #kewd_amatsu, $@kewd_amatsu, 3, getarg(0), 1, "ama_in02.gat")))
+ if (!(SF_check(0x2, $@kewd_amatsu, 3, @map$, 1, "ama_in02.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -376,7 +407,7 @@ function SF_amatsu {
}
function SF_antHell {
- if (!(SF_check(kewd_antHell, #kewd_antHell, $@kewd_antHell, 1, getarg(0), 2, "moc_fild04.gat","moc_fild15.gat")))
+ if (!(SF_check(0x4, $@kewd_antHell, 1, @map$, 2, "moc_fild04.gat","moc_fild15.gat")))
return;
if ($@kewd_showOnline) {
set @submenu, select(
@@ -393,7 +424,7 @@ function SF_antHell {
}
switch (@submenu) {
case 2:
- callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild04.gat",232,322;
+ callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild04.gat",201,327;
break;
case 3:
callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"moc_fild15.gat",246,251;
@@ -402,7 +433,7 @@ function SF_antHell {
}
function SF_ayothaya {
- if (!(SF_check(kewd_ayothaya, #kewd_ayothaya, $@kewd_ayothaya, 2, getarg(0), 1, "ayo_fild02.gat")))
+ if (!(SF_check(0x8, $@kewd_ayothaya, 2, @map$, 1, "ayo_fild02.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -430,7 +461,7 @@ function SF_ayothaya {
}
function SF_byalan {
- if (!(SF_check(kewd_byalan, #kewd_byalan, $@kewd_byalan, 5, getarg(0), 1, "izlu2dun.gat")))
+ if (!(SF_check(0x10, $@kewd_byalan, 5, @map$, 1, "izlu2dun.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -473,7 +504,7 @@ function SF_byalan {
}
function SF_comodo {
- if (!(SF_check(kewd_comodo, #kewd_comodo, $@kewd_comodo, 1, getarg(0), 2, "comodo.gat","cmd_fild01.gat")))
+ if (!(SF_check(0x20, $@kewd_comodo, 1, @map$, 2, "comodo.gat","cmd_fild01.gat")))
return;
if ($@kewd_showOnline) {
@@ -505,7 +536,7 @@ function SF_comodo {
}
function SF_clockTower {
- if (!(SF_check(kewd_clockTower, #kewd_clockTower, $@kewd_clockTower, 5, getarg(0), 1, "aldebaran.gat")))
+ if (!(SF_check(0x40, $@kewd_clockTower, 5, @map$, 1, "aldebaran.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -563,7 +594,7 @@ function SF_clockTower {
}
function SF_coalMine {
- if (!(SF_check(kewd_coalMines, #kewd_coalMines, $@kewd_coalMines, 3, getarg(0), 1, "mjolnir_02.gat")))
+ if (!(SF_check(0x80, $@kewd_coalMines, 3, @map$, 1, "mjolnir_02.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -596,7 +627,7 @@ function SF_coalMine {
}
function SF_culvert {
- if (!(SF_check(kewd_culvert, #kewd_culvert, $@kewd_culvert, 4, getarg(0), 1, "prt_fild05.gat")))
+ if (!(SF_check(0x100, $@kewd_culvert, 4, @map$, 1, "prt_fild05.gat")))
return;
if ($@kewd_deep == 0) {
set @submenu, 2;
@@ -634,7 +665,7 @@ function SF_culvert {
}
function SF_einbech {
- if (!(SF_check(kewd_einbech, #kewd_einbech, $@kewd_einbech, 2, getarg(0), 1, "einbech.gat")))
+ if (!(SF_check(0x200, $@kewd_einbech, 2, @map$, 1, "einbech.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -662,7 +693,7 @@ function SF_einbech {
}
function SF_geffen {
- if (!(SF_check(kewd_geffen, #kewd_geffen, $@kewd_geffen, 4, getarg(0), 1, "gef_tower.gat")))
+ if (!(SF_check(0x800, $@kewd_geffen, 3, @map$, 1, "gef_tower.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -671,16 +702,16 @@ function SF_geffen {
"- Cancel warp to Geffen Dungeon",
"- Entrance ("+@cost+"z/"+getmapusers("gef_dun00.gat")+" "+$@ked_users$+")",
"- Level 2 ("+@cost2+"z/"+getmapusers("gef_dun01.gat")+" "+$@ked_users$+")",
- "- Level 3 ("+@cost3+"z/"+getmapusers("gef_dun02.gat")+" "+$@ked_users$+")",
- "- Level 4 ("+@cost4+"z/"+getmapusers("gef_dun03.gat")+" "+$@ked_users$+")"
+ "- Level 3 ("+@cost3+"z/"+getmapusers("gef_dun02.gat")+" "+$@ked_users$+")"
+// "- Level 4 ("+@cost4+"z/"+getmapusers("gef_dun03.gat")+" "+$@ked_users$+")"
);
} else {
set @submenu, select(
"- Cancel warp to Geffen Dungeon",
"- Entrance ("+@cost+"z)",
"- Level 2 ("+@cost2+"z)",
- "- Level 3 ("+@cost3+"z)",
- "- Level 4 ("+@cost4+"z)"
+ "- Level 3 ("+@cost3+"z)"
+// "- Level 4 ("+@cost4+"z)"
);
}
switch (@submenu) {
@@ -700,7 +731,7 @@ function SF_geffen {
}
function SF_gefenia {
- if (!(SF_check(kewd_gefenia, #kewd_gefenia, $@kewd_gefenia, 2, getarg(0), 4, "gefenia01.gat","gefenia02.gat","gefenia03.gat","gefenia04.gat")))
+ if (!(SF_check(0x400, $@kewd_gefenia, 2, @map$, 4, "gefenia01.gat","gefenia02.gat","gefenia03.gat","gefenia04.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -738,7 +769,7 @@ function SF_gefenia {
}
function SF_glastHeim {
- if (!(SF_check(kewd_glastHeim, #kewd_glastHeim, $@kewd_glastHeim, 7, getarg(0), 1, "glast_01.gat")))
+ if (!(SF_check(0x1000, $@kewd_glastHeim, 7, @map$, 1, "glast_01.gat")))
return;
if ($@kewd_deep == 0) {
if ($@kewd_showOnline) {
@@ -844,7 +875,7 @@ function SF_glastHeim {
}
function SF_gonRyun {
- if (!(SF_check(kewd_gonRyun, #kewd_gonRyun, $@kewd_gonRyun, 3, getarg(0), 1, "gonryun.gat")))
+ if (!(SF_check(0x2000, $@kewd_gonRyun, 3, @map$, 1, "gonryun.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -877,7 +908,7 @@ function SF_gonRyun {
}
function SF_hiddenTemple {
- if (!(SF_check(kewd_hiddenTemple, #kewd_hiddenTemple, $@kewd_hiddenTemple, 3, getarg(0), 1, "prt_fild01.gat")))
+ if (!(SF_check(0x4000, $@kewd_hiddenTemple, 3, @map$, 1, "prt_fild01.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -910,7 +941,7 @@ function SF_hiddenTemple {
}
function SF_juperos {
- if (!(SF_check(kewd_juperos, #kewd_juperos, $@kewd_juperos, 3, getarg(0), 1, "jupe_cave.gat")))
+ if (!(SF_check(0x8000, $@kewd_juperos, 3, @map$, 1, "jupe_cave.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -923,7 +954,7 @@ function SF_juperos {
);
} else {
set @submenu, select(
- "- Cancel warp to the Laberynth Forest",
+ "- Cancel warp to Juperos",
"- Entrance ("+@cost+"z)",
"- Level 2 ("+@cost2+"z)",
"- Core ("+@cost3+"z)"
@@ -943,7 +974,7 @@ function SF_juperos {
}
function SF_lightHalzen {
- if (!(SF_check(kewd_lightHalzen, #kewd_lightHalzen, $@kewd_lightHalzen, 3, getarg(0), 1, "lighthalzen.gat")))
+ if (!(SF_check(0x10000, $@kewd_lightHalzen, 3, @map$, 1, "lighthalzen.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -964,7 +995,9 @@ function SF_lightHalzen {
}
switch (@submenu) {
case 2:
- callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen.gat",74,72;
+//This is the Rekkenber building entrance, which officially is only a dungeon exit.
+// callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen.gat",74,72;
+ callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"lighthalzen.gat",303,302;
break;
case 3:
callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"lhz_dun02.gat",154,18;
@@ -976,7 +1009,7 @@ function SF_lightHalzen {
}
function SF_louYang {
- if (!(SF_check(kewd_louYang, #kewd_louYang, $@kewd_louYang, 3, getarg(0), 1, "louyang.gat")))
+ if (!(SF_check(0x20000, $@kewd_louYang, 3, @map$, 1, "louyang.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1009,7 +1042,7 @@ function SF_louYang {
}
function SF_magma {
- if (!(SF_check(kewd_magma, #kewd_magma, $@kewd_magma, 2, getarg(0), 1, "yuno_fild03.gat")))
+ if (!(SF_check(0x40000, $@kewd_magma, 2, @map$, 1, "yuno_fild03.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1037,7 +1070,7 @@ function SF_magma {
}
function SF_orcs {
- if (!(SF_check(kewd_orc, #kewd_orc, $@kewd_orc, 2, getarg(0), 1, "gef_fild10.gat")))
+ if (!(SF_check(0x80000, $@kewd_orc, 2, @map$, 1, "gef_fild10.gat")))
return;
if ($@kewd_showOnline) {
set @submenu, select(
@@ -1063,7 +1096,7 @@ function SF_orcs {
}
function SF_payon {
- if (!(SF_check(kewd_payon, #kewd_payon, $@kewd_payon, 5, getarg(0), 1, "pay_arche.gat")))
+ if (!(SF_check(0x100000, $@kewd_payon, 5, @map$, 1, "pay_arche.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1106,7 +1139,7 @@ function SF_payon {
}
function SF_pyramid {
- if (!(SF_check(kewd_pyramid, #kewd_pyramid, $@kewd_pyramid, 4, getarg(0),1, "moc_ruins.gat")))
+ if (!(SF_check(0x200000, $@kewd_pyramid, 4, @map$,1, "moc_ruins.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1154,7 +1187,7 @@ function SF_pyramid {
}
function SF_sphinx {
- if (!(SF_check(kewd_sphinx, #kewd_sphinx, $@kewd_sphinx, 5, getarg(0), 1, "moc_fild19.gat")))
+ if (!(SF_check(0x400000, $@kewd_sphinx, 5, @map$, 1, "moc_fild19.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1198,7 +1231,7 @@ function SF_sphinx {
}
function SF_sunkenShip {
- if (!(SF_check(kewd_sunkenShip, #kewd_sunkenShip, $@kewd_sunkenShip, 2, getarg(0), 1, "alb2trea.gat")))
+ if (!(SF_check(0x800000, $@kewd_sunkenShip, 2, @map$, 1, "alb2trea.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1227,7 +1260,7 @@ function SF_sunkenShip {
}
function SF_thanatosTower {
- if (!(SF_check(kewd_thanatosTower, #kewd_thanatosTower, $@kewd_thanatosTower, 9, getarg(0), 1, "tha_t01.gat")))
+ if (!(SF_check(0x1000000, $@kewd_thanatosTower, 9, @map$, 1, "tha_t01.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1260,7 +1293,7 @@ function SF_thanatosTower {
}
switch (@submenu) {
case 2:
- callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tha_t01.gat",149,40;
+ callfunc "F_keWarp",@cost*100/@discountKP,$@kewd_discount,e_hmm,"tha_scene01.gat",139,201;
break;
case 3:
callfunc "F_keWarp",@cost2*100/@discountKP,$@kewd_discount,e_hmm,"tha_t02.gat",149,136;
@@ -1290,7 +1323,7 @@ function SF_thanatosTower {
}
function SF_toyFactory {
- if (!(SF_check(kewd_toyFactory, #kewd_toyFactory, $@kewd_toyFactory, 2, getarg(0), 1, "xmas.gat")))
+ if (!(SF_check(0x2000000, $@kewd_toyFactory, 2, @map$, 1, "xmas.gat")))
return;
if ($@kewd_deep == 0)
@@ -1320,7 +1353,7 @@ function SF_toyFactory {
}
function SF_turtleIsland {
- if (!(SF_check(kewd_turtleIsland, #kewd_turtleIsland, $@kewd_turtleIsland, 3, getarg(0), 1, "tur_dun01.gat")))
+ if (!(SF_check(0x4000000, $@kewd_turtleIsland, 3, @map$, 1, "tur_dun01.gat")))
return;
if ($@kewd_deep == 0) {
if ($@kewd_turtleCave)
@@ -1361,7 +1394,7 @@ function SF_turtleIsland {
}
function SF_umbala {
- if (!(SF_check(kewd_umbala, #kewd_umbala, $@kewd_umbala, 2, getarg(0), 1, "umbala.gat")))
+ if (!(SF_check(0x8000000, $@kewd_umbala, 2, @map$, 1, "umbala.gat")))
return;
if ($@kewd_deep == 0)
set @submenu, 2;
@@ -1393,116 +1426,336 @@ function SF_umbala {
//Invoked when we want to add a map to the list of travelled-to dungeons
function script F_keAddTravelDungeon {
set @map$, getarg(0);
+// Temporary code to update the previous variable format to the new one.
+ if(kewd_abyss) {
+ set kewd_travel,kewd_travel|0x1;
+ set kewd_abyss,0;
+ }
+ if(kewd_amatsu) {
+ set kewd_travel,kewd_travel|0x2;
+ set kewd_amatsu,0;
+ }
+ if(kewd_antHell) {
+ set kewd_travel,kewd_travel|0x4;
+ set kewd_antHell,0;
+ }
+ if(kewd_ayothaya) {
+ set kewd_travel,kewd_travel|0x8;
+ set kewd_ayothaya,0;
+ }
+ if(kewd_byalan) {
+ set kewd_travel,kewd_travel|0x10;
+ set kewd_byalan,0;
+ }
+ if(kewd_comodo) {
+ set kewd_travel,kewd_travel|0x20;
+ set kewd_comodo,0;
+ }
+ if(kewd_clockTower) {
+ set kewd_travel,kewd_travel|0x40;
+ set kewd_clockTower,0;
+ }
+ if(kewd_coalMines) {
+ set kewd_travel,kewd_travel|0x80;
+ set kewd_coalMines,0;
+ }
+ if(kewd_culvert) {
+ set kewd_travel,kewd_travel|0x100;
+ set kewd_culvert,0;
+ }
+ if(kewd_einbech) {
+ set kewd_travel,kewd_travel|0x200;
+ set kewd_einbech,0;
+ }
+ if(kewd_geffen) {
+ set kewd_travel,kewd_travel|0x800;
+ set kewd_geffen,0;
+ }
+ if(kewd_glastHeim) {
+ set kewd_travel,kewd_travel|0x1000;
+ set kewd_glastHeim,0;
+ }
+ if(kewd_gonRyun) {
+ set kewd_travel,kewd_travel|0x2000;
+ set kewd_gonRyun,0;
+ }
+ if(kewd_hiddenTemple) {
+ set kewd_travel,kewd_travel|0x4000;
+ set kewd_hiddenTemple,0;
+ }
+ if(kewd_juperos) {
+ set kewd_travel,kewd_travel|0x8000;
+ set kewd_juperos,0;
+ }
+ if(kewd_lightHalzen) {
+ set kewd_travel,kewd_travel|0x10000;
+ set kewd_lightHalzen,0;
+ }
+ if(kewd_louYang) {
+ set kewd_travel,kewd_travel|0x20000;
+ set kewd_louYang,0;
+ }
+ if(kewd_magma) {
+ set kewd_travel,kewd_travel|0x40000;
+ set kewd_magma,0;
+ }
+ if(kewd_orc) {
+ set kewd_travel,kewd_travel|0x80000;
+ set kewd_orc,0;
+ }
+ if(kewd_payon) {
+ set kewd_travel,kewd_travel|0x100000;
+ set kewd_payon,0;
+ }
+ if(kewd_pyramid) {
+ set kewd_travel,kewd_travel|0x200000;
+ set kewd_pyramid,0;
+ }
+ if(kewd_sphinx) {
+ set kewd_travel,kewd_travel|0x400000;
+ set kewd_sphinx,0;
+ }
+ if(kewd_sunkenShip) {
+ set kewd_travel,kewd_travel|0x800000;
+ set kewd_sunkenShip,0;
+ }
+ if(kewd_thanatosTower) {
+ set kewd_travel,kewd_travel|0x1000000;
+ set kewd_thanatosTower,0;
+ }
+ if(kewd_toyFactory) {
+ set kewd_travel,kewd_travel|0x2000000;
+ set kewd_toyFactory,0;
+ }
+ if(kewd_turtleIsland) {
+ set kewd_travel,kewd_travel|0x4000000;
+ set kewd_turtleIsland,0;
+ }
+ if(kewd_umbala) {
+ set kewd_travel,kewd_travel|0x8000000;
+ set kewd_umbala,0;
+ }
+
+ if(#kewd_abyss) {
+ set #kewd_travel,#kewd_travel|0x1;
+ set #kewd_abyss,0;
+ }
+ if(#kewd_amatsu) {
+ set #kewd_travel,#kewd_travel|0x2;
+ set #kewd_amatsu,0;
+ }
+ if(#kewd_antHell) {
+ set #kewd_travel,#kewd_travel|0x4;
+ set #kewd_antHell,0;
+ }
+ if(#kewd_ayothaya) {
+ set #kewd_travel,#kewd_travel|0x8;
+ set #kewd_ayothaya,0;
+ }
+ if(#kewd_byalan) {
+ set #kewd_travel,#kewd_travel|0x10;
+ set #kewd_byalan,0;
+ }
+ if(#kewd_comodo) {
+ set #kewd_travel,#kewd_travel|0x20;
+ set #kewd_comodo,0;
+ }
+ if(#kewd_clockTower) {
+ set #kewd_travel,#kewd_travel|0x40;
+ set #kewd_clockTower,0;
+ }
+ if(#kewd_coalMines) {
+ set #kewd_travel,#kewd_travel|0x80;
+ set #kewd_coalMines,0;
+ }
+ if(#kewd_culvert) {
+ set #kewd_travel,#kewd_travel|0x100;
+ set #kewd_culvert,0;
+ }
+ if(#kewd_einbech) {
+ set #kewd_travel,#kewd_travel|0x200;
+ set #kewd_einbech,0;
+ }
+ if(#kewd_geffen) {
+ set #kewd_travel,#kewd_travel|0x800;
+ set #kewd_geffen,0;
+ }
+ if(#kewd_glastHeim) {
+ set #kewd_travel,#kewd_travel|0x1000;
+ set #kewd_glastHeim,0;
+ }
+ if(#kewd_gonRyun) {
+ set #kewd_travel,#kewd_travel|0x2000;
+ set #kewd_gonRyun,0;
+ }
+ if(#kewd_hiddenTemple) {
+ set #kewd_travel,#kewd_travel|0x4000;
+ set #kewd_hiddenTemple,0;
+ }
+ if(#kewd_juperos) {
+ set #kewd_travel,#kewd_travel|0x8000;
+ set #kewd_juperos,0;
+ }
+ if(#kewd_lightHalzen) {
+ set #kewd_travel,#kewd_travel|0x10000;
+ set #kewd_lightHalzen,0;
+ }
+ if(#kewd_louYang) {
+ set #kewd_travel,#kewd_travel|0x20000;
+ set #kewd_louYang,0;
+ }
+ if(#kewd_magma) {
+ set #kewd_travel,#kewd_travel|0x40000;
+ set #kewd_magma,0;
+ }
+ if(#kewd_orc) {
+ set #kewd_travel,#kewd_travel|0x80000;
+ set #kewd_orc,0;
+ }
+ if(#kewd_payon) {
+ set #kewd_travel,#kewd_travel|0x100000;
+ set #kewd_payon,0;
+ }
+ if(#kewd_pyramid) {
+ set #kewd_travel,#kewd_travel|0x200000;
+ set #kewd_pyramid,0;
+ }
+ if(#kewd_sphinx) {
+ set #kewd_travel,#kewd_travel|0x400000;
+ set #kewd_sphinx,0;
+ }
+ if(#kewd_sunkenShip) {
+ set #kewd_travel,#kewd_travel|0x800000;
+ set #kewd_sunkenShip,0;
+ }
+ if(#kewd_thanatosTower) {
+ set #kewd_travel,#kewd_travel|0x1000000;
+ set #kewd_thanatosTower,0;
+ }
+ if(#kewd_toyFactory) {
+ set #kewd_travel,#kewd_travel|0x2000000;
+ set #kewd_toyFactory,0;
+ }
+ if(#kewd_turtleIsland) {
+ set #kewd_travel,#kewd_travel|0x4000000;
+ set #kewd_turtleIsland,0;
+ }
+ if(#kewd_umbala) {
+ set #kewd_travel,#kewd_travel|0x8000000;
+ set #kewd_umbala,0;
+ }
+
+// End transition code.
if ($@kewd_travel > 1) {
- if (@map$ == "hu_fild05.gat" || kewd_abyss)
- set #kewd_abyss,1;
- if (@map$ == "ama_in02.gat" || kewd_amatsu)
- set #kewd_amatsu,1;
- if (@map$ == "moc_fild04.gat" || @map$ == "moc_fild15.gat" || kewd_antHell)
- set #kewd_antHell,1;
- if (@map$ == "ayo_fild02.gat" || kewd_ayothaya)
- set #kewd_ayothaya,1;
- if (@map$ == "izlu2dun.gat" || kewd_byalan)
- set #kewd_byalan,1;
- if (@map$ == "comodo.gat" || @map$ == "cmd_fild01.gat" || kewd_comodo)
- set #kewd_comodo,1;
- if (@map$ == "aldebaran.gat" || kewd_clockTower)
- set #kewd_clockTower,1;
- if (@map$ == "mjolnir_02.gat" || kewd_coalMines)
- set #kewd_coalMines,1;
- if (@map$ == "prt_fild05.gat" || kewd_culvert)
- set #kewd_culvert,1;
- if (@map$ == "einbech.gat" || kewd_einbech)
- set #kewd_einbech,1;
- if (@map$ == "gef_tower.gat" || kewd_geffen)
- set #kewd_geffen,1;
- if (@map$ == "glast_01.gat" || kewd_glastHeim)
- set #kewd_glastHeim,1;
- if (@map$ == "gonryun.gat" || kewd_gonRyun)
- set #kewd_gonRyun,1;
- if (@map$ == "prt_fild01.gat" || kewd_hiddenTemple)
- set #kewd_hiddenTemple,1;
- if (@map$ == "jupe_cave.gat" || kewd_juperos)
- set #kewd_juperos,1;
- if (@map$ == "lighthalzen.gat" || kewd_lightHalzen)
- set #kewd_lightHalzen,1;
- if (@map$ == "louyang.gat" || kewd_louYang)
- set #kewd_louYang,1;
- if (@map$ == "yuno_fild03.gat" || kewd_magma)
- set #kewd_magma,1;
- if (@map$ == "in_orcs01.gat" || kewd_orc)
- set #kewd_orc,1;
- if (@map$ == "pay_arche.gat" || kewd_payon)
- set #kewd_payon,1;
- if (@map$ == "moc_ruins.gat" || kewd_pyramid)
- set #kewd_pyramid,1;
- if (@map$ == "moc_fild19.gat" || kewd_sphinx)
- set #kewd_sphinx,1;
- if (@map$ == "alb2trea.gat" || kewd_sunkenShip)
- set #kewd_sunkenShip,1;
- if (@map$ == "tha_t01.gat" || kewd_thanatosTower)
- set #kewd_thanatosTower,1;
- if (@map$ == "xmas.gat" || kewd_toyFactory)
- set #kewd_toyFactory,1;
- if (@map$ == "tur_dun01.gat" || kewd_turtleIsland)
- set #kewd_turtleIsland,1;
- if (@map$ == "umbala.gat" || kewd_umbala)
- set #kewd_umbala,1;
+ if (@map$ == "hu_fild05.gat" || kewd_travel&0x1)
+ set #kewd_travel,#kewd_travel|0x1;
+ if (@map$ == "ama_in02.gat" || kewd_travel&0x2)
+ set #kewd_travel,#kewd_travel|0x2;
+ if (@map$ == "moc_fild04.gat" || @map$ == "moc_fild15.gat" || kewd_travel&0x4)
+ set #kewd_travel,#kewd_travel|0x4;
+ if (@map$ == "ayo_fild02.gat" || kewd_travel&0x8)
+ set #kewd_travel,#kewd_travel|0x8;
+ if (@map$ == "izlu2dun.gat" || kewd_travel&0x10)
+ set #kewd_travel,#kewd_travel|0x10;
+ if (@map$ == "comodo.gat" || @map$ == "cmd_fild01.gat" || kewd_travel&0x20)
+ set #kewd_travel,#kewd_travel|0x20;
+ if (@map$ == "aldebaran.gat" || kewd_travel&0x40)
+ set #kewd_travel,#kewd_travel|0x40;
+ if (@map$ == "mjolnir_02.gat" || kewd_travel&0x80)
+ set #kewd_travel,#kewd_travel|0x80;
+ if (@map$ == "prt_fild05.gat" || kewd_travel&0x100)
+ set #kewd_travel,#kewd_travel|0x100;
+ if (@map$ == "einbech.gat" || kewd_travel&0x200)
+ set #kewd_travel,#kewd_travel|0x200;
+ if (@map$ == "gef_tower.gat" || kewd_travel&0x800)
+ set #kewd_travel,#kewd_travel|0x800;
+ if (@map$ == "glast_01.gat" || kewd_travel&0x1000)
+ set #kewd_travel,#kewd_travel|0x1000;
+ if (@map$ == "gonryun.gat" || kewd_travel&0x2000)
+ set #kewd_travel,#kewd_travel|0x2000;
+ if (@map$ == "prt_fild01.gat" || kewd_travel&0x4000)
+ set #kewd_travel,#kewd_travel|0x4000;
+ if (@map$ == "jupe_cave.gat" || kewd_travel&0x8000)
+ set #kewd_travel,#kewd_travel|0x8000;
+ if (@map$ == "lighthalzen.gat" || kewd_travel&0x10000)
+ set #kewd_travel,#kewd_travel|0x10000;
+ if (@map$ == "louyang.gat" || kewd_travel&0x20000)
+ set #kewd_travel,#kewd_travel|0x20000;
+ if (@map$ == "yuno_fild03.gat" || kewd_travel&0x40000)
+ set #kewd_travel,#kewd_travel|0x40000;
+ if (@map$ == "in_orcs01.gat" || kewd_travel&0x80000)
+ set #kewd_travel,#kewd_travel|0x80000;
+ if (@map$ == "pay_arche.gat" || kewd_travel&0x100000)
+ set #kewd_travel,#kewd_travel|0x100000;
+ if (@map$ == "moc_ruins.gat" || kewd_travel&0x200000)
+ set #kewd_travel,#kewd_travel|0x200000;
+ if (@map$ == "moc_fild19.gat" || kewd_travel&0x400000)
+ set #kewd_travel,#kewd_travel|0x400000;
+ if (@map$ == "alb2trea.gat" || kewd_travel&0x800000)
+ set #kewd_travel,#kewd_travel|0x800000;
+ if (@map$ == "tha_t01.gat" || kewd_travel&0x1000000)
+ set #kewd_travel,#kewd_travel|0x1000000;
+ if (@map$ == "xmas.gat" || kewd_travel&0x2000000)
+ set #kewd_travel,#kewd_travel|0x2000000;
+ if (@map$ == "tur_dun01.gat" || kewd_travel&0x4000000)
+ set #kewd_travel,#kewd_travel|0x4000000;
+ if (@map$ == "umbala.gat" || kewd_travel&0x8000000)
+ set #kewd_travel,#kewd_travel|0x8000000;
} else {
if (@map$ == "hu_fild05.gat")
- set kewd_abyss,1;
+ set kewd_travel,kewd_travel|0x1;
if (@map$ == "ama_in02.gat")
- set kewd_amatsu,1;
+ set kewd_travel,kewd_travel|0x2;
if (@map$ == "moc_fild04.gat" || @map$ == "moc_fild15.gat")
- set kewd_antHell,1;
+ set kewd_travel,kewd_travel|0x4;
if (@map$ == "ayo_fild02.gat")
- set kewd_ayothaya,1;
+ set kewd_travel,kewd_travel|0x8;
if (@map$ == "izlu2dun.gat")
- set kewd_byalan,1;
+ set kewd_travel,kewd_travel|0x10;
if (@map$ == "comodo.gat" || @map$ == "cmd_fild01.gat")
- set kewd_comodo,1;
+ set kewd_travel,kewd_travel|0x20;
if (@map$ == "aldebaran.gat")
- set kewd_clockTower,1;
+ set kewd_travel,kewd_travel|0x40;
if (@map$ == "mjolnir_02.gat")
- set kewd_coalMines,1;
+ set kewd_travel,kewd_travel|0x80;
if (@map$ == "prt_fild05.gat")
- set kewd_culvert,1;
+ set kewd_travel,kewd_travel|0x100;
if (@map$ == "einbech.gat")
- set kewd_einbech,1;
+ set kewd_travel,kewd_travel|0x200;
if (@map$ == "gef_tower.gat")
- set kewd_geffen,1;
+ set kewd_travel,kewd_travel|0x800;
if (@map$ == "glast_01.gat")
- set kewd_glastHeim,1;
+ set kewd_travel,kewd_travel|0x1000;
if (@map$ == "gonryun.gat")
- set kewd_gonRyun,1;
+ set kewd_travel,kewd_travel|0x2000;
if (@map$ == "prt_fild01.gat")
- set kewd_hiddenTemple,1;
+ set kewd_travel,kewd_travel|0x4000;
if (@map$ == "jupe_cave.gat")
- set kewd_juperos,1;
+ set kewd_travel,kewd_travel|0x8000;
if (@map$ == "lighthalzen.gat")
- set kewd_lightHalzen,1;
+ set kewd_travel,kewd_travel|0x10000;
if (@map$ == "louyang.gat")
- set kewd_louYang,1;
+ set kewd_travel,kewd_travel|0x20000;
if (@map$ == "yuno_fild03.gat")
- set kewd_magma,1;
+ set kewd_travel,kewd_travel|0x40000;
if (@map$ == "in_orcs01.gat")
- set kewd_orc,1;
+ set kewd_travel,kewd_travel|0x80000;
if (@map$ == "pay_arche.gat")
- set kewd_payon,1;
+ set kewd_travel,kewd_travel|0x100000;
if (@map$ == "moc_ruins.gat")
- set kewd_pyramid,1;
+ set kewd_travel,kewd_travel|0x200000;
if (@map$ == "moc_fild19.gat")
- set kewd_sphinx,1;
+ set kewd_travel,kewd_travel|0x400000;
if (@map$ == "alb2trea.gat")
- set kewd_sunkenShip,1;
+ set kewd_travel,kewd_travel|0x800000;
if (@map$ == "tha_t01.gat")
- set kewd_thanatosTower,1;
+ set kewd_travel,kewd_travel|0x1000000;
if (@map$ == "xmas.gat")
- set kewd_toyFactory,1;
+ set kewd_travel,kewd_travel|0x2000000;
if (@map$ == "tur_dun01.gat")
- set kewd_turtleIsland,1;
+ set kewd_travel,kewd_travel|0x4000000;
if (@map$ == "umbala.gat")
- set kewd_umbala,1;
+ set kewd_travel,kewd_travel|0x8000000;
}
return;
}
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt
index df6d6b132..0198d1b34 100644
--- a/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt
+++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt
@@ -3,14 +3,36 @@
//===== By: ==================================================
//= Skotlex
//===== Current Version: =====================================
-//= 1.8
+//= 2.1
//===== Compatible With: =====================================
-//= eAthena SVN R3424+, RO Episode 8+ (LightHalzen)
+//= eAthena SVN R3424+, RO Episode 8+ (Hugel)
//===== Description: =========================================
//= Part of the Kafra Express Script Package.
//= Offers warp services to towns.
//===== Additional Comments: =================================
//= See config.txt for configuration.
+//= Flag values used for towns:
+//= 0x00000001 Alberta
+//= 0x00000002 AlDeBaran
+//= 0x00000004 Amatsu
+//= 0x00000008 Ayothaya
+//= 0x00000010 Comodo
+//= 0x00000020 Einbech
+//= 0x00000040 Einbroch
+//= 0x00000080 Geffen
+//= 0x00000100 Gon Ryun
+//= 0x00000200 Hugel
+//= 0x00000400 Izlude
+//= 0x00000800 Jawaii
+//= 0x00001000 LightHalzen
+//= 0x00002000 Lou Yang
+//= 0x00004000 Lutie
+//= 0x00008000 Morocc
+//= 0x00010000 Niflheim
+//= 0x00020000 Payon
+//= 0x00040000 Prontera
+//= 0x00080000 Umbala
+//= 0x00100000 Yuno
//============================================================
- script keInit_warpTown {
@@ -45,6 +67,7 @@ function script F_keWarpTown {
"- Geffen ("+@cost+"z/"+(getmapusers("geffen.gat")+getmapusers("geffen_in.gat")+getmapusers("gef_tower.gat"))
+" "+$@ked_users$+")",
"- Gon Ryun ("+@cost+"z/"+(getmapusers("gonryun.gat")+getmapusers("gon_in.gat"))+" "+$@ked_users$+")",
+ "- Hugel ("+@cost+"z/"+(getmapusers("hugel.gat")+getmapusers("hu_in01.gat"))+" "+$@ked_users$+")",
"- Izlude ("+@cost+"z/"+(getmapusers("izlude.gat")+getmapusers("izlude_in.gat"))+" "+$@ked_users$+")",
"- Jawaii ("+@cost+"z/"+(getmapusers("jawaii.gat")+getmapusers("jawaii_in.gat"))+" "+$@ked_users$+")",
"- LightHalzen ("+@cost+"z/"+(getmapusers("lighthalzen.gat")+getmapusers("lhz_in01.gat")
@@ -52,7 +75,7 @@ function script F_keWarpTown {
"- Lou Yang ("+@cost+"z/"+(getmapusers("louyang.gat")+getmapusers("lou_in01.gat")+getmapusers("lou_in02.gat"))
+" "+$@ked_users$+")",
"- Lutie ("+@cost+"z/"+(getmapusers("xmas.gat")+getmapusers("xmas_in.gat"))+" "+$@ked_users$+")",
- "- Morroc ("+@cost+"z/"+(getmapusers("morocc.gat")+getmapusers("morocc_in.gat")+getmapusers("moc_castle.gat"))
+ "- Morocc ("+@cost+"z/"+(getmapusers("morocc.gat")+getmapusers("morocc_in.gat")+getmapusers("moc_castle.gat"))
+" "+$@ked_users$+")",
"- Niflheim ("+@niflcost+"z/"+(getmapusers("niflheim.gat")+getmapusers("nif_in.gat"))+" "+$@ked_users$+")",
"- Payon ("+@cost+"z/"+(getmapusers("payon.gat")+getmapusers("payon_in01.gat")+getmapusers("payon_in02.gat"))
@@ -75,12 +98,13 @@ function script F_keWarpTown {
"- Einbroch ("+@cost+"z)",
"- Geffen ("+@cost+"z)",
"- Gon Ryun ("+@cost+"z)",
+ "- Hugel ("+@cost+"z)",
"- Izlude ("+@cost+"z)",
"- Jawaii ("+@cost+"z)",
"- LightHalzen ("+@cost+"z)",
"- Lou Yang ("+@cost+"z)",
"- Lutie ("+@cost+"z)",
- "- Morroc ("+@cost+"z)",
+ "- Morocc ("+@cost+"z)",
"- Niflheim ("+@niflcost+"z)",
"- Payon ("+@cost+"z)",
"- Prontera ("+@cost+"z)",
@@ -90,67 +114,71 @@ function script F_keWarpTown {
}
switch (@kmenu) {
case 2: //Alberta
- if (SF_check(ketw_alberta, #ketw_alberta))
+ if (SF_check(0x1))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"alberta.gat",117,56;
break;
case 3: //AlDeBaran
- if (SF_check(ketw_aldebaran, #ketw_aldebaran))
+ if (SF_check(0x2))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"aldebaran.gat",139,124;
break;
case 4: //Amatsu
- if (SF_check(ketw_amatsu, #ketw_amatsu))
+ if (SF_check(0x4))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"amatsu.gat",197,88;
break;
case 5: //Ayathoya
- if (SF_check(ketw_ayothaya, #ketw_ayothaya))
+ if (SF_check(0x8))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"ayothaya.gat",202,174;
break;
case 6: //Comodo
- if (SF_check(ketw_comodo, #ketw_comodo))
+ if (SF_check(0x10))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"comodo.gat",189,150;
break;
case 7: //Einbech
- if (SF_check(ketw_einbech, #ketw_einbech))
- SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbech.gat",165,127;
+ if (SF_check(0x20))
+ SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbech.gat",137,220;
break;
case 8: //Einbroch
- if (SF_check(ketw_einbroch, #ketw_einbroch))
+ if (SF_check(0x40))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"einbroch.gat",64,199;
break;
case 9: //Geffen
- if (SF_check(ketw_geffen, #ketw_geffen))
+ if (SF_check(0x80))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"geffen.gat",120,66;
break;
case 10: //GonRyun
- if (SF_check(ketw_gonryun, #ketw_gonryun))
+ if (SF_check(0x100))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"gonryun.gat",160,180;
break;
- case 11: //Izlude
- if (SF_check(ketw_izlude, #ketw_izlude))
+ case 11: //Hugel
+ if (SF_check(0x200))
+ SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"hugel.gat",96,105;
+ break;
+ case 12: //Izlude
+ if (SF_check(0x400))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"izlude.gat",127,97;
break;
- case 12: //Jawaii
- if (SF_check(ketw_jawaii, #ketw_jawaii))
+ case 13: //Jawaii
+ if (SF_check(0x800))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"jawaii.gat",214,223;
break;
- case 13: //LightHalzen
- if (SF_check(ketw_lighthalzen, #ketw_lighthalzen))
+ case 14: //LightHalzen
+ if (SF_check(0x1000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"lighthalzen.gat",158,92;
break;
- case 14: //LouYang
- if (SF_check(ketw_louyang, #ketw_louyang))
+ case 15: //LouYang
+ if (SF_check(0x2000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"louyang.gat",218,118;
break;
- case 15: //Lutie
- if (SF_check(ketw_lutie, #ketw_lutie))
+ case 16: //Lutie
+ if (SF_check(0x4000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"xmas.gat",148,133;
break;
- case 16: //Morroc
- if (SF_check(ketw_morroc, #ketw_morroc))
+ case 17: //Morocc
+ if (SF_check(0x8000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"morocc.gat",162,91;
break;
- case 17: //Niflheim
- if (SF_check(ketw_niflheim, #ketw_niflheim)) {
+ case 18: //Niflheim
+ if (SF_check(0x10000)) {
if (nif_q_done != 1) {
mes "...?";
callfunc "F_keIntro", e_no, "For some reason I can't warp you there!";
@@ -158,19 +186,20 @@ function script F_keWarpTown {
callfunc "F_keWarp",$@kewt_niflCost,$@kewd_discount,e_yawn,"niflheim.gat",194,185;
}
break;
- case 18: //Payon
- if (SF_check(ketw_payon, #ketw_payon))
+ case 19: //Payon
+ if (SF_check(0x20000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"payon.gat",159,181;
- case 19: //Prontera
- if (SF_check(ketw_prontera, #ketw_prontera))
+ break;
+ case 20: //Prontera
+ if (SF_check(0x40000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"prontera.gat",156,175;
break;
- case 20: //Umbala
- if (SF_check(ketw_umbala, #ketw_umbala))
+ case 21: //Umbala
+ if (SF_check(0x80000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"umbala.gat",88,153;
break;
- case 21: //Yuno
- if (SF_check(ketw_yuno, #ketw_yuno))
+ case 22: //Yuno
+ if (SF_check(0x100000))
SF_warp $@kewt_cost,$@kewt_discount,e_yawn,"yuno.gat",158,77;
break;
}
@@ -181,7 +210,7 @@ function script F_keWarpTown {
//Checks if the character can warp to that town taking into consideration
//traveller's mode.
function SF_check {
- if ($@kewt_travel && getarg(0) == 0 && getarg(1) == 0) {
+ if ($@kewt_travel && !((kewt_travel|#kewt_travel)&getarg(0))) {
callfunc "F_keIntro", e_sry, "Sorry, but we can only warp you to towns you have saved in at least once.";
return 0;
}
@@ -208,88 +237,264 @@ function SF_warp {
//Invoked when we want to add a map to the list of travelled-to towns
function script F_keAddTravelTown {
set @map$, getarg(0);
+// Temporary code to update variables from old format to new.
+ if(ketw_alberta) {
+ set kewt_travel,kewt_travel|0x1;
+ set ketw_alberta,0;
+ }
+ if(ketw_aldebaran) {
+ set kewt_travel,kewt_travel|0x2;
+ set ketw_aldebaran,0;
+ }
+ if(ketw_amatsu) {
+ set kewt_travel,kewt_travel|0x4;
+ set ketw_amatsu,0;
+ }
+ if(ketw_ayothaya) {
+ set kewt_travel,kewt_travel|0x8;
+ set ketw_ayothaya,0;
+ }
+ if(ketw_comodo) {
+ set kewt_travel,kewt_travel|0x10;
+ set ketw_comodo,0;
+ }
+ if(ketw_einbech) {
+ set kewt_travel,kewt_travel|0x20;
+ set ketw_einbech,0;
+ }
+ if(ketw_einbroch) {
+ set kewt_travel,kewt_travel|0x40;
+ set ketw_einbroch,0;
+ }
+ if(ketw_geffen) {
+ set kewt_travel,kewt_travel|0x80;
+ set ketw_geffen,0;
+ }
+ if(ketw_gonryun) {
+ set kewt_travel,kewt_travel|0x100;
+ set ketw_gonryun,0;
+ }
+ if(ketw_hugel) {
+ set kewt_travel,kewt_travel|0x200;
+ set ketw_hugel,0;
+ }
+ if(ketw_izlude) {
+ set kewt_travel,kewt_travel|0x400;
+ set ketw_izlude,0;
+ }
+ if(ketw_jawaii) {
+ set kewt_travel,kewt_travel|0x800;
+ set ketw_jawaii,0;
+ }
+ if(ketw_lighthalzen) {
+ set kewt_travel,kewt_travel|0x1000;
+ set ketw_lighthalzen,0;
+ }
+ if(ketw_louyang) {
+ set kewt_travel,kewt_travel|0x2000;
+ set ketw_louyang,0;
+ }
+ if(ketw_lutie) {
+ set kewt_travel,kewt_travel|0x4000;
+ set ketw_lutie,0;
+ }
+ if(ketw_morroc) {
+ set kewt_travel,kewt_travel|0x8000;
+ set ketw_morroc,0;
+ }
+ if(ketw_niflheim) {
+ set kewt_travel,kewt_travel|0x10000;
+ set ketw_niflheim,0;
+ }
+ if(ketw_payon) {
+ set kewt_travel,kewt_travel|0x20000;
+ set ketw_payon,0;
+ }
+ if(ketw_prontera) {
+ set kewt_travel,kewt_travel|0x40000;
+ set ketw_prontera,0;
+ }
+ if(ketw_umbala) {
+ set kewt_travel,kewt_travel|0x80000;
+ set ketw_umbala,0;
+ }
+ if(ketw_yuno) {
+ set kewt_travel,kewt_travel|0x100000;
+ set ketw_yuno,0;
+ }
+
+ if(#ketw_alberta) {
+ set #kewt_travel,#kewt_travel|0x1;
+ set #ketw_alberta,0;
+ }
+ if(#ketw_aldebaran) {
+ set #kewt_travel,#kewt_travel|0x2;
+ set #ketw_aldebaran,0;
+ }
+ if(#ketw_amatsu) {
+ set #kewt_travel,#kewt_travel|0x4;
+ set #ketw_amatsu,0;
+ }
+ if(#ketw_ayothaya) {
+ set #kewt_travel,#kewt_travel|0x8;
+ set #ketw_ayothaya,0;
+ }
+ if(#ketw_comodo) {
+ set #kewt_travel,#kewt_travel|0x10;
+ set #ketw_comodo,0;
+ }
+ if(#ketw_einbech) {
+ set #kewt_travel,#kewt_travel|0x20;
+ set #ketw_einbech,0;
+ }
+ if(#ketw_einbroch) {
+ set #kewt_travel,#kewt_travel|0x40;
+ set #ketw_einbroch,0;
+ }
+ if(#ketw_geffen) {
+ set #kewt_travel,#kewt_travel|0x80;
+ set #ketw_geffen,0;
+ }
+ if(#ketw_gonryun) {
+ set #kewt_travel,#kewt_travel|0x100;
+ set #ketw_gonryun,0;
+ }
+ if(#ketw_hugel) {
+ set #kewt_travel,#kewt_travel|0x200;
+ set #ketw_hugel,0;
+ }
+ if(#ketw_izlude) {
+ set #kewt_travel,#kewt_travel|0x400;
+ set #ketw_izlude,0;
+ }
+ if(#ketw_jawaii) {
+ set #kewt_travel,#kewt_travel|0x800;
+ set #ketw_jawaii,0;
+ }
+ if(#ketw_lighthalzen) {
+ set #kewt_travel,#kewt_travel|0x1000;
+ set #ketw_lighthalzen,0;
+ }
+ if(#ketw_louyang) {
+ set #kewt_travel,#kewt_travel|0x2000;
+ set #ketw_louyang,0;
+ }
+ if(#ketw_lutie) {
+ set #kewt_travel,#kewt_travel|0x4000;
+ set #ketw_lutie,0;
+ }
+ if(#ketw_morroc) {
+ set #kewt_travel,#kewt_travel|0x8000;
+ set #ketw_morroc,0;
+ }
+ if(#ketw_niflheim) {
+ set #kewt_travel,#kewt_travel|0x10000;
+ set #ketw_niflheim,0;
+ }
+ if(#ketw_payon) {
+ set #kewt_travel,#kewt_travel|0x20000;
+ set #ketw_payon,0;
+ }
+ if(#ketw_prontera) {
+ set #kewt_travel,#kewt_travel|0x40000;
+ set #ketw_prontera,0;
+ }
+ if(#ketw_umbala) {
+ set #kewt_travel,#kewt_travel|0x80000;
+ set #ketw_umbala,0;
+ }
+ if(#ketw_yuno) {
+ set #kewt_travel,#kewt_travel|0x100000;
+ set #ketw_yuno,0;
+ }
+// End update code.
+
if ($@kewt_travel > 1) {
- if (@map$ == "alberta.gat" || ketw_alberta)
- set #ketw_alberta,1;
- if (@map$ == "aldebaran.gat" || ketw_aldebaran)
- set #ketw_aldebaran,1;
- if (@map$ == "amatsu.gat" || ketw_amatsu)
- set #ketw_amatsu,1;
- if (@map$ == "ayothaya.gat" || ketw_ayothaya)
- set #ketw_ayothaya,1;
- if (@map$ == "comodo.gat" || ketw_comodo)
- set #ketw_comodo,1;
- if (@map$ == "einbech.gat" || ketw_einbech)
- set #ketw_einbech,1;
- if (@map$ == "einbroch.gat" || ketw_einbroch)
- set #ketw_einbroch,1;
- if (@map$ == "geffen.gat" || ketw_geffen)
- set #ketw_geffen,1;
- if (@map$ == "gonryun.gat" || ketw_gonryun)
- set #ketw_gonryun,1;
- if (@map$ == "izlude.gat" || ketw_izlude)
- set #ketw_izlude,1;
- if (@map$ == "jawaii.gat" || ketw_jawaii)
- set #ketw_jawaii,1;
- if (@map$ == "lighthalzen.gat" || ketw_lighthalzen)
- set #ketw_lighthalzen,1;
- if (@map$ == "louyang.gat" || ketw_louyang)
- set #ketw_louyang,1;
- if (@map$ == "xmas.gat" || ketw_lutie)
- set #ketw_lutie,1;
- if (@map$ == "morocc.gat" || ketw_morroc)
- set #ketw_morroc,1;
- if (@map$ == "niflheim.gat" || ketw_niflheim)
- set #ketw_niflheim,1;
- if (@map$ == "payon.gat" || ketw_payon)
- set #ketw_payon,1;
- if (@map$ == "prontera.gat" || ketw_prontera)
- set #ketw_prontera,1;
- if (@map$ == "umbala.gat" || ketw_umbala)
- set #ketw_umbala,1;
- if (@map$ == "yuno.gat" || ketw_yuno)
- set #ketw_yuno,1;
+ if (@map$ == "alberta.gat" || kewt_travel&0x1)
+ set #kewt_travel,#kewt_travel|0x1;
+ if (@map$ == "aldebaran.gat" || kewt_travel&0x2)
+ set #kewt_travel,#kewt_travel|0x2;
+ if (@map$ == "amatsu.gat" || kewt_travel&0x4)
+ set #kewt_travel,#kewt_travel|0x4;
+ if (@map$ == "ayothaya.gat" || kewt_travel&0x8)
+ set #kewt_travel,#kewt_travel|0x8;
+ if (@map$ == "comodo.gat" || kewt_travel&0x10)
+ set #kewt_travel,#kewt_travel|0x10;
+ if (@map$ == "einbech.gat" || kewt_travel&0x20)
+ set #kewt_travel,#kewt_travel|0x20;
+ if (@map$ == "einbroch.gat" || kewt_travel&0x40)
+ set #kewt_travel,#kewt_travel|0x40;
+ if (@map$ == "geffen.gat" || kewt_travel&0x80)
+ set #kewt_travel,#kewt_travel|0x80;
+ if (@map$ == "gonryun.gat" || kewt_travel&0x100)
+ set #kewt_travel,#kewt_travel|0x100;
+ if (@map$ == "hugel.gat" || kewt_travel&0x200)
+ set #kewt_travel,#kewt_travel|0x200;
+ if (@map$ == "izlude.gat" || kewt_travel&0x400)
+ set #kewt_travel,#kewt_travel|0x400;
+ if (@map$ == "jawaii.gat" || kewt_travel&0x800)
+ set #kewt_travel,#kewt_travel|0x800;
+ if (@map$ == "lighthalzen.gat" || kewt_travel&1000)
+ set #kewt_travel,#kewt_travel|0x1000;
+ if (@map$ == "louyang.gat" || kewt_travel&0x2000)
+ set #kewt_travel,#kewt_travel|0x2000;
+ if (@map$ == "xmas.gat" || kewt_travel&0x4000)
+ set #kewt_travel,#kewt_travel|0x4000;
+ if (@map$ == "morocc.gat" || kewt_travel&0x8000)
+ set #kewt_travel,#kewt_travel|0x8000;
+ if (@map$ == "niflheim.gat" || kewt_travel&0x10000)
+ set #kewt_travel,#kewt_travel|0x10000;
+ if (@map$ == "payon.gat" || kewt_travel&0x20000)
+ set #kewt_travel,#kewt_travel|0x20000;
+ if (@map$ == "prontera.gat" || kewt_travel&0x40000)
+ set #kewt_travel,#kewt_travel|0x40000;
+ if (@map$ == "umbala.gat" || kewt_travel&0x80000)
+ set #kewt_travel,#kewt_travel|0x80000;
+ if (@map$ == "yuno.gat" || kewt_travel&0x100000)
+ set #kewt_travel,#kewt_travel|0x100000;
} else {
if (@map$ == "alberta.gat")
- set ketw_alberta,1;
+ set kewt_travel,kewt_travel|0x1;
if (@map$ == "aldebaran.gat")
- set ketw_aldebaran,1;
+ set kewt_travel,kewt_travel|0x2;
if (@map$ == "amatsu.gat")
- set ketw_amatsu,1;
+ set kewt_travel,kewt_travel|0x4;
if (@map$ == "ayothaya.gat")
- set ketw_ayothaya,1;
+ set kewt_travel,kewt_travel|0x8;
if (@map$ == "comodo.gat")
- set ketw_comodo,1;
+ set kewt_travel,kewt_travel|0x10;
if (@map$ == "einbech.gat")
- set ketw_einbech,1;
+ set kewt_travel,kewt_travel|0x20;
if (@map$ == "einbroch.gat")
- set ketw_einbroch,1;
+ set kewt_travel,kewt_travel|0x40;
if (@map$ == "geffen.gat")
- set ketw_geffen,1;
+ set kewt_travel,kewt_travel|0x80;
if (@map$ == "gonryun.gat")
- set ketw_gonryun,1;
+ set kewt_travel,kewt_travel|0x100;
+ if (@map$ == "hugel.gat")
+ set kewt_travel,kewt_travel|0x200;
if (@map$ == "izlude.gat")
- set ketw_izlude,1;
+ set kewt_travel,kewt_travel|0x400;
if (@map$ == "jawaii.gat")
- set ketw_jawaii,1;
+ set kewt_travel,kewt_travel|0x800;
if (@map$ == "lighthalzen.gat")
- set ketw_lighthalzen,1;
+ set kewt_travel,kewt_travel|0x1000;
if (@map$ == "louyang.gat")
- set ketw_louyang,1;
+ set kewt_travel,kewt_travel|0x2000;
if (@map$ == "xmas.gat")
- set ketw_lutie,1;
+ set kewt_travel,kewt_travel|0x4000;
if (@map$ == "morocc.gat")
- set ketw_morroc,1;
+ set kewt_travel,kewt_travel|0x8000;
if (@map$ == "niflheim.gat")
- set ketw_niflheim,1;
+ set kewt_travel,kewt_travel|0x10000;
if (@map$ == "payon.gat")
- set ketw_payon,1;
+ set kewt_travel,kewt_travel|0x20000;
if (@map$ == "prontera.gat")
- set ketw_prontera,1;
+ set kewt_travel,kewt_travel|0x40000;
if (@map$ == "umbala.gat")
- set ketw_umbala,1;
+ set kewt_travel,kewt_travel|0x80000;
if (@map$ == "yuno.gat")
- set ketw_yuno,1;
+ set kewt_travel,kewt_travel|0x100000;
}
return;
}
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/readme.txt b/npc/custom/eAAC_Scripts/kafraExpress/readme.txt
index b03070d81..8952d1913 100644
--- a/npc/custom/eAAC_Scripts/kafraExpress/readme.txt
+++ b/npc/custom/eAAC_Scripts/kafraExpress/readme.txt
@@ -6,7 +6,7 @@ This file's purpose is to give an indepth explanation about setting up, and
configuring the Kafra Express Script Package (KESP). It is intended to be
viewed by a text editor using fixed-width font and 80-character long lines.
-Document Version v1.8 (05/February/2006)
+Document Version v1.9 (15/June/2006)
////////////////////////////////////////////////////////////////////////////////
Table of Contents
////////////////////////////////////////////////////////////////////////////////
@@ -915,11 +915,10 @@ There are three valid values for this variable: 0, 1, 2.
0 - Disables this mode.
1 - Uses the mode on a per character basis; that is, each character needs to
travel to that town and save and that unlocks warping only for that
-character (note that this mode can mean up to 15+ variables per character,
-which can become quite the overload on a large server).
+character.
2 - Uses the mode on a per account basis; that is, once a character has saved
on a town, all other (and future) characters from the same account have the
-warp unlocked (uses up to 15+ variables per account).
+warp unlocked.
(1) kewt_free
-------------
@@ -960,11 +959,9 @@ Enables the traveller system. Just like the traveller's system for towns,
you can't warp to any dungeon to which you have not visited first on foot and
saved with the corresponding Kafra Express first.
If 1, traveller's mode is enabled on a per character basis (so once a
-character saves, only that character has unlocked the warp). Note that this
-method stores up to 25 extra variables per character.
+character saves, only that character has unlocked the warp).
If 2, traveller's mode is enabled on a per account basis (so once a character
saves, all charaters of the corresponding account have the warp unlocked).
-Note that this method stores up to 25 extra variables per account.
(1) kewd_deep
-------------