diff options
author | eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-26 16:45:57 +0000 |
---|---|---|
committer | eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-26 16:45:57 +0000 |
commit | 3a33fdcbb4d21c73f2a2ab21a7698dcf6ce6b125 (patch) | |
tree | d5d7edbd3b8427e1106676c8fa39bff14bb237ae | |
parent | d865e6b3af8dddcd0db3d7281ae2cfd3b28b0e27 (diff) | |
download | hercules-3a33fdcbb4d21c73f2a2ab21a7698dcf6ce6b125.tar.gz hercules-3a33fdcbb4d21c73f2a2ab21a7698dcf6ce6b125.tar.bz2 hercules-3a33fdcbb4d21c73f2a2ab21a7698dcf6ce6b125.tar.xz hercules-3a33fdcbb4d21c73f2a2ab21a7698dcf6ce6b125.zip |
* functions_kafra.txt was pretty buggy, including a zeny exploit (free warps). Thanks to OZ over IRC for pointing out. It needs more optimization too. [erKURITA]
* eAAC Update: quest_warper.txt [erKURITA]
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6293 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | npc/Changelog.txt | 4 | ||||
-rw-r--r-- | npc/custom/eAAC_Scripts/quest_warper.txt | 521 | ||||
-rw-r--r-- | npc/kafras/functions_kafras.txt | 12 |
3 files changed, 478 insertions, 59 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt index 16472b849..48b692e91 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -27,6 +27,10 @@ Nexon Date Added
======
+04/26
+ * functions_kafra.txt was pretty buggy, including a zeny exploit (free warps). Thanks to OZ over IRC
+ for pointing out. It needs more optimization too. [erKURITA]
+ * eAAC Update: quest_warper.txt [erKURITA]
04/25
* Re-made the Izlude NPCs with new dialogues among other things. Thanks to Muad_Dib [Kargha]
* Added two Alberta NPCs thanks to Sousuke [Playtester]
diff --git a/npc/custom/eAAC_Scripts/quest_warper.txt b/npc/custom/eAAC_Scripts/quest_warper.txt index 04d8d2aab..a4802eeb8 100644 --- a/npc/custom/eAAC_Scripts/quest_warper.txt +++ b/npc/custom/eAAC_Scripts/quest_warper.txt @@ -1,5 +1,5 @@ //===== eAthena Script ============================================
-//= Quest Warper Script
+//= *BETA* Quest Warper Script
//===== By: =======================================================
//= Old Warper 2 by Darkchild - Remade with quest format by DZeroX
//= Huge Rewrite by Neouni
@@ -35,10 +35,17 @@ // - kafra storage code security added
// - Healing scripts pricing added
// - Heal Part script added
-//= 1.6 - Unfinished Dungeon variable menu's see *BETA* 1.6a comments
-//= 1.6a - Dungeon warp [Neouni]
+//= 1.6 - Dungeon warp [Neouni]
// - added option to add a extra fee for going down deeper into dungeon
// partly by rebuilding the dungeon warping into variable menu's
+//= 1.6a - alot of fixes for beta release [Neouni]
+// - fixed syntax problems
+// - fixed missing pyramid gats in @DGat$ array
+// - removed the culver level 5 that didn't exist
+// and caused quite alot of problems (i didn't check while converting)
+//-1.7 - Readability of Dungeon menu array building increased
+// - Thanatos Tower & Louyang Dungeon added
+
//=================================================================
@@ -285,8 +292,8 @@ L_town: L_dungeon:
callfunc "QWS_Darray";
-
- set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27]);
+// current max 31 items
+ set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30]);
if (@pDmenuitems$[@Dmenuref[DWMenu-1]] == "Cancel") goto L_end;
set @DwarpMenu, (@Dmenuref[@DWMenu-1]);
@@ -580,6 +587,8 @@ stampcard: if (#juperos == 1) set @Dstamp,@Dstamp+1;
//----------------LIGHTHALZEN BIO LAB
if (#lighthalzen_dun == 1) set @Dstamp,@Dstamp+1;
+//----------------LOUYANG DUNGEON
+ if (#louyang_dun == 1) set @Dstamp,@Dstamp+1;
//----------------MAGMA DUNGEON
if (#mag_dun == 1) set @Dstamp,@Dstamp+1;
//----------------ODIN TEMPLE
@@ -594,13 +603,15 @@ stampcard: if (#in_sphinx == 1) set @Dstamp,@Dstamp+1;
//----------------SUNKEN SHIP
if (#treasure == 1) set @Dstamp,@Dstamp+1;
+//----------------THANATOS TOWER
+ if (#thanatos_tower == 1) set @Dstamp,@Dstamp+1;
//----------------TOY FACTORY
if (#xmas_dun == 1) set @Dstamp,@Dstamp+1;
//----------------TURTLE ISTLAND
if (#tur_dun == 1) set @Dstamp,@Dstamp+1;
//----------------UMBALA
if (#um_dun == 1) set @Dstamp,@Dstamp+1;
- mes "you collected^00FF00 "+@Dstamp+" of 26 ^000000Dungeons";
+ mes "you collected^00FF00 "+@Dstamp+" of 28 ^000000Dungeons";
mes "To unlock a dungeon, search for my colleague.";
mes "You can usually find him near the end or middle of the dungeon";
return;
@@ -813,206 +824,593 @@ function script QWS_Tarray { return;
}
-
//====================Dungeon=Menu=Arrays==========================
-// arrays:
-// @pDmenuitems$, dungeons names
-// @pDmenugoto$, dungeon variable names
-// @pDprice, warp prices (Basic, Advanced, Overseas)
+//----------------A FAKE DUNGEON FOR EXAMPLE // I do this to find back sections quickly altho almost the same name is a line below it now
+// setarray @pDmenuitems$[@Di], "Fake Dungeon"; // Name of Dungeon shown in Dungeon select Menu
+// setarray @pDprice[@Di], $QW_BW_PRICE; // warp prices (Basic ($QW_BW_PRICE), Advanced ($QW_AW_PRICE), Overseas $QW_OW_PRICE)
+// setarray @DLevels[@Di], 2; //number of levels in dungeon (very important if incorrect will shift all leveldata!!)
+//
+// setarray @DGat$[@Dref], "example_01.gat", "example_02.gat"; // mapfilename of dungeon level
+// setarray @DLevelName$[@Dref], "Example Level 1", "Example Level 2"; // level name shown in dungeon level select
+// setarray @DXcoords[@Dref], 123, 234; // X warp coords
+// setarray @DYcoords[@Dref], 123, 234;// Y warp coords
+// setarray @DDepth[@Dref], 0, 1; // relative depth to entrance to calculate extra warp fee
+//
+// if (#fake_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di]; // Builds menu item if there is a price for warping
+// if (#fake_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]; // Builds menu item if warping is free
+// if (#fake_dun == 1) set @Dmenuref[@Dj],@Di; // Allows the menu to find back which Dungeon you selected as it shifts because of dynamic menu's
+// if (#fake_dun == 1) set @Dj,@Dj+1; // set Dj higher because menu item has been added and make sure it doesn't get overwriten
+//
+// setarray @DLocRef[@Di], @Dref; // @DLocRef, reference to locate where the first level of the dungeon warp information is in the other arrays
+// set @Dref, @Dref+@DLevels[@Di]; // same as @Dj but then for the leveldata which fills up alot more quickly
+// set @Di,@Di+1; // loop counter to get data in right order and to make sure i can find back what option you select
+//
+// Small note:
+// when adding your own dungeon data, you can leave 'if (#fake_dun == 1)' out and everyone will get the option to warp to
+// if you want to use a variable make your own dungeon unlocker inside the dungeon (usually half way near a warp to next level)
+// example:
+//( syntax: example_01.gat,xcoord,ycoord,directionfacing script Name of NPC NPC-ID,{ )
+//
+//example_01.gat,213,213,4 script Warpra Helper 112,{
+// if (#fake_dun == 1) mes "[Warpra]";
+// if (#fake_dun == 1) mes "Sorry I can only unlock this location.";
+// if (#fake_dun == 1) close;
+// set #fake_dun,1;
+// mes "[Warpra]";
+// mes "A FAKE DUNGEON FOR EXAMPLE unlocked!";
+// close;
+// }
+
+ set @Di,0;
+ set @Dj,0;
+ set @Dref,0;
function script QWS_Darray {
- setarray @pDmenuitems$[0], "Abyss Lake", "Amatsu Dungeon", "Ant Hell Dungeon", "Ayotaya Dungeon", "Byalan Dungeon", "Clock Tower Dungeon", "Coal Mine Dungeon", "Culvert Dungeon", "Einbech Dungeon", "Gefenia Dungeon", "Geffen Dungeon", "Glast Heim Dungeon", "Gonryun Dungeon", "Hidden Dungeon", "Juperos Cave", "Lighthalzen Bio Lab", "Magma Dungeon", "Odin Temple", "Orc Dungeon", "Payon Dungeon", "Pyramids Dungeon", "Sphinx Dungeon", "Sunken Ship Dungeon", "Toy Factory Dungeon", "Turtle Island Dungeon", "Umbala Dungeon", "Cancel";
- setarray @pDmenugoto$[0], "abyss", "ama_dun", "anthell", "ayotaya_dun", "iz_dun", "c_tower", "mjo_dun", "prt_sewb", "einbech_dun", "gefenia", "gef_dun", "gl_dun", "gon_dun", "hid_dun", "juperos", "lighthalzen_dun", "mag_dun", "odintemple", "orcsdun", "pay_dun", "moc_pryd", "in_sphinx", "treasure", "xmas_dun", "tur_dun", "um_dun", "L_End";
- setarray @pDprice[0], $QW_AW_PRICE, $QW_OW_PRICE, $QW_BW_PRICE, $QW_OW_PRICE, $QW_BW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_BW_PRICE, $QW_AW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_OW_PRICE, $QW_BW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_OW_PRICE, 0;
- set @Di,0; // That's our loop counter.
- set @Dj,0; // That's the menu lines counter.
//----------------ABYSS LAKE
+ setarray @pDmenuitems$[@Di], "Abyss Lake";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "abyss_01.gat", "abyss_02.gat", "abyss_03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 265, 275, 116;
+ setarray @DYcoords[@Dref], 273, 270, 27;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#abyss == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#abyss == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#abyss == 1) set @Dmenuref[@Dj],@Di;
if (#abyss == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------AMATSU DUNGEON
+ setarray @pDmenuitems$[@Di], "Amatsu Dungeon";
+ setarray @pDprice[@Di], $QW_OW_PRICE;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "ama_dun01.gat", "ama_dun02.gat", "ama_dun03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 227, 32, 119;
+ setarray @DYcoords[@Dref], 10, 43, 15;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#ama_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#ama_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#ama_dun == 1) set @Dmenuref[@Dj],@Di;
if (#ama_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------ANT HELL
+ setarray @pDmenuitems$[@Di], "Ant Hell Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[2], 2;
+
+ setarray @DGat$[@Dref], "anthell01.gat", "anthell02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 32, 34;
+ setarray @DYcoords[@Dref], 262, 263;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#anthell == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#anthell == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#anthell == 1) set @Dmenuref[@Dj],@Di;
if (#anthell == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------AYOTAYA
+ setarray @pDmenuitems$[@Di], "Ayotaya Dungeon";
+ setarray @pDprice[@Di], $QW_OW_PRICE;
+ setarray @DLevels[3], 2;
+
+ setarray @DGat$[@Dref], "ayo_dun01.gat", "ayo_dun02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 275, 150;
+ setarray @DYcoords[@Dref], 17, 13;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#ayotaya_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#ayotaya_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#ayotaya_dun == 1) set @Dmenuref[@Dj],@Di;
if (#ayotaya_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------BYALAN
+ setarray @pDmenuitems$[@Di], "Byalan Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[4], 5;
+
+ setarray @DGat$[@Dref], "iz_dun00.gat", "iz_dun01.gat", "iz_dun02.gat", "iz_dun03.gat", "iz_dun04.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5";
+ setarray @DXcoords[@Dref], 168, 41, 236, 32, 26;
+ setarray @DYcoords[@Dref], 168, 37, 204, 63, 27;
+ setarray @DDepth[@Dref], 0, 1, 2, 3, 4;
+
if (#iz_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#iz_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#iz_dun == 1) set @Dmenuref[@Dj],@Di;
if (#iz_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------CLOCK TOWER
+ setarray @pDmenuitems$[@Di], "Clock Tower Dungeon";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[5], 8;
+
+ setarray @DGat$[@Dref], "c_tower1.gat", "c_tower2.gat", "c_tower3.gat", "c_tower4.gat", "alde_dun01.gat", "alde_dun02.gat", "alde_dun03.gat", "alde_dun04.gat";
+ setarray @DLevelName$[@Dref], "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F";
+ setarray @DXcoords[@Dref], 200, 268, 64, 32, 197, 262, 276, 130;
+ setarray @DYcoords[@Dref], 163, 26, 148, 63, 25, 41, 53, 130;
+ setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2, 3, 4;
+
if (#c_tower == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#c_tower == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#c_tower == 1) set @Dmenuref[@Dj],@Di;
if (#c_tower == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------COAL MINE
+ setarray @pDmenuitems$[@Di], "Coal Mine Dungeon";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[6], 3;
+
+ setarray @DGat$[@Dref], "mjo_dun01.gat", "mjo_dun02.gat", "mjo_dun03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 52, 381, 302;
+ setarray @DYcoords[@Dref], 17, 343, 261;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#mjo_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#mjo_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#mjo_dun == 1) set @Dmenuref[@Dj],@Di;
if (#mjo_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------CULVERT
+ setarray @pDmenuitems$[@Di], "Culvert Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[7], 4;
+
+ setarray @DGat$[@Dref], "prt_sewb1.gat", "prt_sewb2.gat", "prt_sewb3.gat", "prt_sewb4.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4";
+ setarray @DXcoords[@Dref], 132, 19, 180, 100;
+ setarray @DYcoords[@Dref], 248, 19, 169, 92;
+ setarray @DDepth[@Dref], 0, 1, 2, 3;
+
if (#prt_sewb == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#prt_sewb == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#prt_sewb == 1) set @Dmenuref[@Dj],@Di;
if (#prt_sewb == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------EINBECH DUNGEON
+ setarray @pDmenuitems$[@Di], "Einbech Dungeon";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[8], 2;
+
+ setarray @DGat$[@Dref], "ein_dun01.gat", "ein_dun02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 22, 292;
+ setarray @DYcoords[@Dref], 14, 290;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#einbech_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#einbech_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#einbech_dun == 1) set @Dmenuref[@Dj],@Di;
if (#einbech_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------GEFENIA DUNGEON
- if (#gefenia == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
- if (#gefenia == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
- if (#gefenia == 1) set @Dmenuref[@Dj],@Di;
- if (#gefenia == 1) set @Dj,@Dj+1;
+ setarray @pDmenuitems$[@Di], "Gefenia Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[9], 4;
+
+ setarray @DGat$[@Dref], "gefenia01.gat", "gefenia02.gat", "gefenia03.gat", "gefenia04.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4";
+ setarray @DXcoords[@Dref], 59, 201, 264, 33;
+ setarray @DYcoords[@Dref], 167, 35, 236, 270;
+ setarray @DDepth[@Dref], 0, 1, 2, 3;
+
+ if (#gef_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
+ if (#gef_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
+ if (#gef_dun == 1) set @Dmenuref[@Dj],@Di;
+ if (#gef_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------GEFFEN DUNGEON
+ setarray @pDmenuitems$[@Di], "Geffen Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 4;
+
+ setarray @DGat$[@Dref], "gef_dun00.gat", "gef_dun01.gat", "gef_dun02.gat", "gef_dun03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4";
+ setarray @DXcoords[@Dref], 104, 115, 106, 203;
+ setarray @DYcoords[@Dref], 100, 236, 132, 200;
+ setarray @DDepth[@Dref], 0, 1, 2, 3;
+
if (#gef_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#gef_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#gef_dun == 1) set @Dmenuref[@Dj],@Di;
if (#gef_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------GLAST HEIM
+ setarray @pDmenuitems$[@Di], "Glast Heim Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+
+ setarray @DLevels[@Di], 17;
+
+ setarray @DGat$[@Dref], "glast_01.gat", "gl_church.gat", "gl_chyard.gat", "gl_in01.gat", "gl_cas01.gat", "gl_cas02.gat", "gl_knt01.gat", "gl_knt02.gat", "gl_prison.gat", "gl_prison1.gat", "gl_step.gat", "gl_sew01.gat", "gl_sew02.gat", "gl_sew03.gat", "gl_sew04.gat", "gl_dun01.gat", "gl_dun02.gat";
+ setarray @DLevelName$[@Dref], "Glast Heim Entrance", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2", "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2";
+ setarray @DXcoords[@Dref], 370, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224;
+ setarray @DYcoords[@Dref], 300, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274;
+ setarray @DDepth[@Dref], 0, 1, 2, 1, 1, 2, 1, 2, 2, 3, 1, 4, 2, 3, 4, 5, 6;
+
if (#gl_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#gl_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#gl_dun == 1) set @Dmenuref[@Dj],@Di;
if (#gl_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------GONRYUN DUNGEON
+ setarray @pDmenuitems$[@Di], "Gonryun Dungeon";
+ setarray @pDprice[@Di], $QW_OW_PRICE;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "gon_dun01.gat", "gon_dun02.gat", "gon_dun03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 143, 17, 68;
+ setarray @DYcoords[@Dref], 59, 114, 9;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#gon_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#gon_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#gon_dun == 1) set @Dmenuref[@Dj],@Di;
if (#gon_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------HIDDEN DUNGEON
+ setarray @pDmenuitems$[@Di], "Hidden Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "prt_maze01.gat", "prt_maze02.gat", "prt_maze03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 176, 94, 23;
+ setarray @DYcoords[@Dref], 6, 19, 8;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#hid_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#hid_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#hid_dun == 1) set @Dmenuref[@Dj],@Di;
if (#hid_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------JUPEROS CAVE
- if (#juperos == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
- if (#juperos == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
- if (#juperos == 1) set @Dmenuref[@Dj],@Di;
- if (#juperos == 1) set @Dj,@Dj+1;
+ setarray @pDmenuitems$[@Di], "Juperos Cave";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "juperos_01.gat", "juperos_02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 53, 36;
+ setarray @DYcoords[@Dref], 247, 60;
+ setarray @DDepth[@Dref], 0, 1;
+
+ if (#lighthalzen_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
+ if (#lighthalzen_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
+ if (#lighthalzen_dun == 1) set @Dmenuref[@Dj],@Di;
+ if (#lighthalzen_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------LIGHTHALZEN BIO LAB
+ setarray @pDmenuitems$[@Di], "Lighthalzen Bio Lab", "Louyang Dungeon", "Magma Dungeon", "Odin Temple", "Orc Dungeon", "Payon Dungeon", "Pyramids Dungeon", "Sphinx Dungeon", "Sunken Ship Dungeon", "Thanatos Tower", "Toy Factory Dungeon", "Turtle Island Dungeon", "Umbala Dungeon", "Cancel";
+ setarray @pDprice[@Di], $QW_AW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_BW_PRICE, $QW_AW_PRICE, $QW_AW_PRICE, $QW_OW_PRICE, 0;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "lhz_dun01.gat", "lhz_dun02.gat", "lhz_dun03.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 150, 150, 140;
+ setarray @DYcoords[@Dref], 287, 18, 137;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#lighthalzen_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#lighthalzen_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#lighthalzen_dun == 1) set @Dmenuref[@Dj],@Di;
if (#lighthalzen_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
+ set @Di,@Di+1;
+//----------------LOUYANG DUNGEON
+ setarray @pDmenuitems$[@Di], "Louyang Dungeon";
+ setarray @pDprice[@Di], $QW_OW_PRICE;
+ setarray @DLevels[@Di], 2;
+
+ setarray @DGat$[@Dref], "lou_dun02.gat", "lou_dun03.gat";
+ setarray @DLevelName$[@Dref], "Royal Tomb Level 1", "Royal Tomb Level 2";
+ setarray @DXcoords[@Dref], 282, 165;
+ setarray @DYcoords[@Dref], 20, 38;
+ setarray @DDepth[@Dref], 0, 1;
+
+ if (#louyang_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
+ if (#louyang_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
+ if (#louyang_dun == 1) set @Dmenuref[@Dj],@Di;
+ if (#louyang_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------MAGMA DUNGEON
+ setarray @pDmenuitems$[@Di], "Magma Dungeon";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 2;
+
+ setarray @DGat$[@Dref], "mag_dun01.gat", "mag_dun02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 126, 47;
+ setarray @DYcoords[@Dref], 69, 32;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#mag_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#mag_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#mag_dun == 1) set @Dmenuref[@Dj],@Di;
if (#mag_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------ODIN TEMPLE
+ setarray @pDmenuitems$[@Di], "Odin Temple";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 1;
+
+ setarray @DGat$[@Dref], "odin_tem01.gat";
+ setarray @DLevelName$[@Dref], "Level 1";
+ setarray @DXcoords[@Dref], 96;
+ setarray @DYcoords[@Dref], 145;
+ setarray @DDepth[@Dref], 0;
+
if (#odintemple == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#odintemple == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#odintemple == 1) set @Dmenuref[@Dj],@Di;
if (#odintemple == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------ORC DUNGEON
+ setarray @pDmenuitems$[@Di], "Orc Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 2;
+
+ setarray @DGat$[@Dref], "orcsdun01.gat", "orcsdun02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 32, 21;
+ setarray @DYcoords[@Dref], 169, 185;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#orcsdun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#orcsdun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#orcsdun == 1) set @Dmenuref[@Dj],@Di;
if (#orcsdun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------PAYON DUNGEON
+ setarray @pDmenuitems$[@Di], "Payon Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 5;
+
+ setarray @DGat$[@Dref], "pay_dun00.gat", "pay_dun01.gat", "pay_dun02.gat", "pay_dun03.gat", "pay_dun04.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5";
+ setarray @DXcoords[@Dref], 22, 19, 19, 155, 201;
+ setarray @DYcoords[@Dref], 180, 33, 63, 159, 204;
+ setarray @DDepth[@Dref], 0, 1, 2, 3, 4;
+
if (#pay_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#pay_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#pay_dun == 1) set @Dmenuref[@Dj],@Di;
if (#pay_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------PYRAMIDS
+ setarray @pDmenuitems$[@Di], "Pyramids Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 6;
+
+ setarray @DGat$[@Dref], "moc_pryd01.gat", "moc_pryd02.gat", "moc_pryd03.gat", "moc_pryd04.gat", "moc_pryd05.gat", "moc_pryd06.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1", "Basement 2";
+ setarray @DXcoords[@Dref], 192, 10, 100, 181, 94, 192;
+ setarray @DYcoords[@Dref], 9, 192, 92, 11, 96, 8;
+ setarray @DDepth[@Dref], 0, 1, 2, 3, 1, 2;
+
if (#moc_pryd == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#moc_pryd == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#moc_pryd == 1) set @Dmenuref[@Dj],@Di;
if (#moc_pryd == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------SPHINX
+ setarray @pDmenuitems$[@Di], "Sphinx Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 5;
+
+ setarray @DGat$[@Dref], "in_sphinx1.gat", "in_sphinx2.gat", "in_sphinx3.gat", "in_sphinx4.gat", "in_sphinx5.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5";
+ setarray @DXcoords[@Dref], 192, 149, 210, 10, 100;
+ setarray @DYcoords[@Dref], 9, 81, 54, 222, 99;
+ setarray @DDepth[@Dref], 0, 1, 2, 3, 4;
+
if (#in_sphinx == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#in_sphinx == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#in_sphinx == 1) set @Dmenuref[@Dj],@Di;
if (#in_sphinx == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------SUNKEN SHIP
+ setarray @pDmenuitems$[@Di], "Sunken Ship Dungeon";
+ setarray @pDprice[@Di], $QW_BW_PRICE;
+ setarray @DLevels[@Di], 2;
+
+ setarray @DGat$[@Dref], "treasure01.gat", "treasure02.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2";
+ setarray @DXcoords[@Dref], 69, 102;
+ setarray @DYcoords[@Dref], 24, 27;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#treasure == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#treasure == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#treasure == 1) set @Dmenuref[@Dj],@Di;
if (#treasure == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
+ set @Di,@Di+1;
+//----------------THANATOS TOWER
+ setarray @pDmenuitems$[@Di], "Thanatos Tower";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 13;
+
+ setarray @DGat$[@Dref], "tha_t01.gat", "tha_t02.gat", "tha_t03.gat", "tha_t04.gat", "tha_t05.gat", "tha_t06.gat", "tha_t07.gat", "tha_t08.gat", "tha_t09.gat", "tha_t10.gat", "tha_t11.gat", "tha_t12.gat", "thana_boss.gat";
+ setarray @DLevelName$[@Dref], "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 6", "Level 7", "Level 8", "Level 9", "Level 10", "Level 11", "Level 12", "Thanatos Boss";
+ setarray @DXcoords[@Dref], 150, 150, 220, 59, 62, 206, 35, 105, 88, 168, 90, 129, 85;
+ setarray @DYcoords[@Dref], 35, 136, 158, 143, 11, 8, 166, 44, 145, 138, 36, 83, 76;
+ setarray @DDepth[@Dref], 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;
+
+ if (#thanatos_tower == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
+ if (#thanatos_tower == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
+ if (#thanatos_tower == 1) set @Dmenuref[@Dj],@Di;
+ if (#thanatos_tower == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------TOY FACTORY
+ setarray @pDmenuitems$[@Di], "Toy Factory Dungeon";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 2;
+
+ setarray @DGat$[@Dref], "xmas_dun01.gat", "xmas_dun02.gat";
+ setarray @DLevelName$[@Dref], "Factory Warehouse", "Classifying Room";
+ setarray @DXcoords[@Dref], 205, 129;
+ setarray @DYcoords[@Dref], 16, 133;
+ setarray @DDepth[@Dref], 0, 1;
+
if (#xmas_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#xmas_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#xmas_dun == 1) set @Dmenuref[@Dj],@Di;
if (#xmas_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------TURTLE ISTLAND
+ setarray @pDmenuitems$[@Di], "Turtle Island Dungeon";
+ setarray @pDprice[@Di], $QW_AW_PRICE;
+ setarray @DLevels[@Di], 4;
+
+ setarray @DGat$[@Dref], "tur_dun01.gat", "tur_dun02.gat", "tur_dun03.gat", "tur_dun04.gat";
+ setarray @DLevelName$[@Dref], "Outside", "Level 1", "Level 2", "Level 3";
+ setarray @DXcoords[@Dref], 161, 148, 132, 100;
+ setarray @DYcoords[@Dref], 34, 256, 190, 192;
+ setarray @DDepth[@Dref], 0, 0, 1, 2;
+
if (#tur_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#tur_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#tur_dun == 1) set @Dmenuref[@Dj],@Di;
if (#tur_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------UMBALA
+ setarray @pDmenuitems$[@Di], "Umbala Dungeon";
+ setarray @pDprice[@Di], $QW_OW_PRICE;
+ setarray @DLevels[@Di], 3;
+
+ setarray @DGat$[@Dref], "um_dun01.gat", "um_dun02.gat", "yggdrasil01.gat";
+ setarray @DLevelName$[@Dref], "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain";
+ setarray @DXcoords[@Dref], 205, 48, 40;
+ setarray @DYcoords[@Dref], 16, 30, 63;
+ setarray @DDepth[@Dref], 0, 1, 2;
+
if (#um_dun == 1)&&(@pDprice[@Di] != 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di]+" -> "+@pDprice[@Di];
if (#um_dun == 1)&&(@pDprice[@Di] == 0) set @Dmenulist$[@Dj], @pDmenuitems$[@Di];
if (#um_dun == 1) set @Dmenuref[@Dj],@Di;
if (#um_dun == 1) set @Dj,@Dj+1;
+
+ setarray @DLocRef[@Di], @Dref;
+ set @Dref, @Dref+@DLevels[@Di];
set @Di,@Di+1;
//----------------Cancel
+ setarray @pDmenuitems$[@Di], "Cancel";
+ setarray @pDprice[@Di], 0;
+
set @Dmenulist$[@Dj],@pDmenuitems$[@Di];
set @Dmenuref[@Dj],@Di;
return;
- }
-
-//====================Dungeon=Warp=Arrays==========================
-
-// @DLevels, amount of levels in dungeon - 1
-// @DLocRef, reference to locate where the first
-// level of the dungeon warp information is in the other arrays
-// @DGat$, mapname of dungeon level
-// @DLevelName$, areaname of dungeon level
-// @DXcoords && @DYcoords, warp coords
-// @DDepth, relative depth to entrance to calculate extra warp fee
-// If your wondering why i cut my lines, there seems to be a problem with a maximum line length
+}
function script QWS_DLarray {
- setarray @DLevels[0], 2, 2, 1, 1, 4, 7, 2, 3, 1, 3, 3, 15, 2, 2, 1, 2, 1, 0, 1, 4, 5, 4, 1, 1, 3, 2;
- setarray @DLocRef[0], 0, 3, 6, 8, 10, 15, 23, 26, 30, 32, 36, 40, 56, 59, 62, 64, 67, 69, 70, 72, 77, 83, 88, 90, 92, 96, 99;
- setarray @DGat$[0], "abyss_01.gat", "abyss_02.gat", "abyss_03.gat", "ama_dun01.gat", "ama_dun02.gat", "ama_dun03.gat", "anthell01.gat", "anthell02.gat", "ayo_dun01.gat", "ayo_dun02.gat", "iz_dun00.gat", "iz_dun01.gat", "iz_dun02.gat", "iz_dun03.gat", "iz_dun04.gat", "c_tower1.gat", "c_tower2.gat", "c_tower3.gat", "c_tower4.gat", "alde_dun01.gat", "alde_dun02.gat", "alde_dun03.gat", "alde_dun04.gat", "mjo_dun01.gat", "mjo_dun02.gat", "mjo_dun03.gat", "prt_sewb1.gat", "prt_sewb2.gat", "prt_sewb3.gat", "prt_sewb4.gat", "ein_dun01.gat",
- "ein_dun02.gat", "gefenia01.gat", "gefenia02.gat", "gefenia03.gat", "gefenia04.gat", "gef_dun00.gat", "gef_dun01.gat", "gef_dun02.gat", "gef_dun03.gat", "gl_church.gat", "gl_chyard.gat", "gl_in01.gat", "gl_cas01.gat", "gl_cas02.gat", "gl_knt01.gat", "gl_knt02.gat", "gl_prison.gat", "gl_prison1.gat", "gl_step.gat", "gl_sew01.gat", "gl_sew02.gat", "gl_sew03.gat", "gl_sew04.gat", "gl_dun01.gat", "gl_dun02.gat", "prt_maze01.gat", "prt_maze02.gat", "prt_maze03.gat", "juperos_01.gat", "juperos_02.gat", "gon_dun01.gat",
- "gon_dun02.gat", "gon_dun03.gat", "lhz_dun01.gat", "lhz_dun02.gat", "lhz_dun03.gat", "mag_dun01.gat", "mag_dun02.gat", "odin_tem01.gat", "orcsdun01.gat", "orcsdun02.gat", "pay_dun00.gat", "pay_dun01.gat", "pay_dun02.gat", "pay_dun03.gat", "pay_dun04.gat", "moc_pryd01.gat", "moc_pryd02.gat", "moc_pryd03.gat", "moc_pryd04.gat", "moc_pryd05.gat", "moc_pryd06.gat", "in_sphinx1.gat", "in_sphinx2.gat", "in_sphinx3.gat", "in_sphinx4.gat", "in_sphinx5.gat", "treasure01.gat", "treasure02.gat", "xmas_dun01.gat", "xmas_dun02.gat", "tur_dun01.gat", "tur_dun02.gat", "tur_dun03.gat", "tur_dun04.gat", "um_dun01.gat", "um_dun02.gat", "yggdrasil01.gat";
- setarray @DLevelName$[0], "Level 1", "Level 2", "Level 3", "Level 1", "Level 2", "Level 3", "Level 1", "Level 2", "Level 1", "Level 2", "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Clock Tower Level 1", "Clock Tower Level 2", "Clock Tower Level 3", "Clock Tower Level 4", "Basement 1F", "Basement 2F", "Basement 3F", "Basement 4F", "Level 1", "Level 2", "Level 3", "Level 1", "Level 2", "Level 3", "Level 4", "Level 1", "Level 2", "Level 1", "Level 2", "Level 3", "Level 4", "Level 1", "Level 2",
- "Level 3", "Level 4", "St. Abbey", "Churchyard", "Inside Glast Heim", "Castle 1", "Castle 2",
- "Chivalry 1", "Chivalry 2", "Prison 1", "Prison 2", "Steps", "Sewers 1", "Sewers 2", "Sewers 3", "Sewers 4", "Lowest Cave 1", "Lowest Cave 2", "Level 1", "Level 2", "Level 3", "Level 1", "Level 2", "Level 1", "Level 2", "Level 3", "Level 1", "Level 2", "Level 3", "Level 1", "Level 2", "Level 1", "Level 1", "Level 2", "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 1", "Level 2", "Level 3", "Level 4", "Basement 1",
- "Basement 2", "Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Level 1", "Level 2", "Factory Warehouse", "Classifying Room", "Outside", "Level 1", "Level 2", "Level 3", "Carpenter's Shop in The Tree", "Passage to a Foreign World", "Hvergelmir's Fountain";
- setarray @DXcoords[0], 265, 275, 116, 227, 32, 119, 32, 34, 275, 150, 168, 41, 236, 32, 26, 200, 268, 64, 32, 197, 262, 276, 130, 52, 381, 302, 132, 19, 180, 100, 22, 292, 59, 201, 264, 33, 104, 115, 106, 203, 156, 147, 121, 199, 104, 150, 157, 14, 150, 117, 258, 108, 171, 68, 133, 224, 176, 94, 23, 53, 36, 143, 17, 68, 150, 150, 140, 126, 47, 96, 32, 21, 22, 19, 19, 155, 201, 192, 10, 100, 181, 94, 192, 192, 149, 210, 10, 100, 69, 102, 205, 129, 161, 148, 132, 100, 205, 48, 40;
- setarray @DYcoords[0], 273, 270, 27, 10, 43, 15, 262, 263, 17, 13, 168, 37, 204, 63, 27, 163, 26, 148, 63, 25, 41, 53, 130, 17, 343, 261, 248, 19, 169, 92, 14, 290, 167, 35, 236, 270, 100, 236, 132, 200, 8, 15, 59, 29, 25, 10, 287, 70, 14, 124, 255, 291, 273, 277, 271, 274, 6, 19, 8, 247, 60, 59, 114, 9, 287, 18, 137, 69, 32, 145, 169, 185, 180, 33, 63, 159, 204, 9, 192, 92, 11, 96, 8, 9, 81, 54, 222, 99, 24, 27, 16, 133, 34, 256, 190, 192, 16, 30, 63;
- setarray @DDepth[0], 0, 1, 2, 0, 1, 2, 0, 1, 0, 1, 0, 1, 2, 3, 4, 1, 2, 3, 4, 0, 1, 2, 3, 0, 1, 2, 0, 1, 2, 3, 0, 1, 0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 1, 1, 2, 1, 2, 2, 3, 1, 4, 2, 3, 4, 5, 6, 0, 1, 2, 0, 1, 0, 1, 2, 0, 1, 2, 0, 1, 0, 0, 1, 0, 1, 2, 3, 4, 0, 1, 2, 3, 1, 2, 0, 1, 2, 3, 4, 0, 1, 0, 1, 0, 0, 1, 2, 0, 1, 2;
+//----------------Start building Menu
set @DWi,@DLocRef[@DwarpMenu]; // That's our loop counter.
set @DWj,0; // That's the menu lines counter.
cleararray @DWLmenulist$[0],"",20; // Clearing the array to get rid off ghost items in menu
@@ -1023,15 +1421,14 @@ Loop: if (@warpprice == 0) set @DWLmenulist$[@DWj], @DLevelName$[@DWi];
set @DWLmenuref[@DWj],@DWi;
- if (@DWj == @DLevels[@DwarpMenu]) goto make_exit;
-
set @DWj,@DWj+1;
set @DWi,@DWi+1;
+ if (@DWj == @DLevels[@DwarpMenu]) goto make_exit;
+
goto Loop;
make_exit:
- set @DWj,@DWj+1;
set @DWLmenulist$[@DWj], "Exit";
set @DWLmenuref[@DWj],1337; //impossible number easy to track back
return;
@@ -1230,6 +1627,7 @@ yuno.gat,138,162,4 script Warpra 113,{ mes "Yuno Town unlocked!";
close;
}
+
abyss_02.gat,274,266,1 script Warpra 113,{
if (#abyss == 1) mes "[Warpra]";
if (#abyss == 1) mes "Sorry I can only unlock this location.";
@@ -1239,6 +1637,7 @@ abyss_02.gat,274,266,1 script Warpra 113,{ mes "Abyss Lake unlocked!";
close;
}
+
ama_dun02.gat,192,118,5 script Warpra Helper 112,{
if (#ama_dun == 1) mes "[Warpra]";
if (#ama_dun == 1) mes "Sorry I can only unlock this location.";
@@ -1379,6 +1778,16 @@ lhz_dun02.gat,156,151,3 script Warpra Helper 112,{ close;
}
+lou_dun02.gat,168,264,4 script Warpra Helper 112,{
+ if (#louyang_dun == 1) mes "[Warpra]";
+ if (#louyang_dun == 1) mes "Sorry I can only unlock this location.";
+ if (#louyang_dun == 1) close;
+ set #louyang_dun,1;
+ mes "[Warpra]";
+ mes "Louyang Dungeon unlocked!";
+ close;
+}
+
mag_dun02.gat,46,41,3 script Warpra Helper 112,{
if (#mag_dun == 1) mes "[Warpra]";
if (#mag_dun == 1) mes "Sorry I can only unlock this location.";
@@ -1439,6 +1848,16 @@ in_sphinx2.gat,274,268,1 script Warpra Helper 112,{ close;
}
+tha_t07.gat,111,162,3 script Warpra Helper 112,{
+ if (#thanatos_tower == 1) mes "[Warpra]";
+ if (#thanatos_tower == 1) mes "Sorry I can only unlock this location.";
+ if (#thanatos_tower == 1) close;
+ set #thanatos_tower,1;
+ mes "[Warpra]";
+ mes "Thanatos Tower unlocked!";
+ close;
+}
+
treasure02.gat,104,40,3 script Warpra Helper 112,{
if (#treasure == 1) mes "[Warpra]";
if (#treasure == 1) mes "Sorry I can only unlock this location.";
diff --git a/npc/kafras/functions_kafras.txt b/npc/kafras/functions_kafras.txt index 831e0f01b..a210e9a53 100644 --- a/npc/kafras/functions_kafras.txt +++ b/npc/kafras/functions_kafras.txt @@ -30,6 +30,8 @@ //= 4.0 Added Kafra storage password protection. [Lupus]
//= to block Kafra Password, read comments at 350 line
//= Note: You can change '1337' value to another to raise password protection
+//= 5.0 Fixed the close2;....close; end; lines. Who let them slip away? =/ [erKURITA]
+//= Also, the kafra upon warp was giving back the zeny. Removed. [erKURITA]
//============================================================
@@ -138,7 +140,6 @@ function script F_KafStor { close2;
openstorage;
cutin "", 255;
- close;
end;
sL_JbLvl:
@@ -160,7 +161,6 @@ L_Guild: mes "right now. Please wait until that person is finished.";
close2;
cutin "", 255;
- close;
end;
}
@@ -217,10 +217,7 @@ function script F_KafTele { if (@wrpD$[@num] == "Orc Dungeon") warp "gef_fild10.gat", 52, 326;
if (@wrpD$[@num] == "Umbala") warp "umbala.gat", 130, 130;
if (@wrpD$[@num] == "Yuno") warp "yuno.gat", 157, 123;
- close2; // this part safegaurds against errors/typos
- set zeny, zeny + @wrpP[@num];
cutin "", 255;
- close;
end;
sL_CantTele:
@@ -228,7 +225,6 @@ function script F_KafTele { mes "Dear you don't have enough money. Please check your funds again.";
close2;
cutin "", 255;
- close;
end;
}
@@ -414,7 +410,7 @@ function script F_CheckKafCode { dispbottom "Wrong storage password.";
close2;
cutin "",255;
- close;
+ end;
}
set @kafcode_try,0;
set @code_,0;
@@ -501,7 +497,7 @@ L_ZENY: M_END:
close2;
cutin "",255;
- close;
+ end;
}
// Basic Password Validation Function ====================
|