//===== Hercules Script ====================================== //= Warper //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4c //===== Description: ========================================= //= A complete - but very condensed - warper script. //= Some coordinates written by Tekno-Kanix and ToastOfDoom. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Added missing duplicates and fixed coordinates. //= 1.2 Added new episodes and simplified functions. //= 1.3 Added Renewal checks and Instances menu. //= Aligned coordinates with @go. //= 1.4 Added new Guild Dungeons. //= 1.4a Slight edits. //= 1.4b Added Wolfchev's Laboratory warp. //= 1.4c Switched out "Last Warp" with "Recent Warp" feature. //= (Thanks vBrenth for idea) [ Aeromesi ] //= Also added in Favorite Warps that allows you to //= Save your Recent Warps List to choose from. //= 1.4d Added in menu selection instead of input [ vBrenth ] //= Adjusted to Hercules, added menu for Fav. [ Aeromesi] //============================================================ - script OnInitSetup -,{ OnInit: $@MaxListW = 5; end; } - script Warper FAKE_NPC,{ function Go; function Disp; function Pick; function Restrict; // -------------------------------------------------- // Main Menu: // -------------------------------------------------- MainMenu: mes @header$ = "[Warper]"; mes "Where would you like to go?"; next; menu "Favorite Warps",FavoriteWarps, "Recent Warps",RecentWarps, " ~ Towns",Towns, " ~ Fields",Fields, " ~ Dungeons",Dungeons, " ~ Guild Castles",Castles, " ~ Guild Dungeons",Guild_Dungeons, " ~ Instances",Instances, " ~ Special Areas",Special; FavoriteWarps: if ( recentwarp$[1] == "" ) { mes @header$; mes "You have never warped anywhere before."; next; callsub MainMenu; } switch(select("[Save] - Recent Warps","[Select] - Favorite Warp")) { case 1: // Save Most Recent Warps favwarp$[1] = recentwarp$[1]; favwarpx[1] = recentwarpx[1]; favwarpy[1] = recentwarpy[1]; favwarp$[2] = recentwarp$[2]; favwarpx[2] = recentwarpx[2]; favwarpy[2] = recentwarpy[2]; favwarp$[3] = recentwarp$[3]; favwarpx[3] = recentwarpx[3]; favwarpy[3] = recentwarpy[3]; favwarp$[4] = recentwarp$[4]; favwarpx[4] = recentwarpx[4]; favwarpy[4] = recentwarpy[4]; favwarp$[5] = recentwarp$[5]; favwarpx[5] = recentwarpx[5]; favwarpy[5] = recentwarpy[5]; mes @header$; mes "Saved."; next; callsub MainMenu; end; case 2: .@menu$ = ""; for ( .n = 1; .n <= $@MaxListW; .n++ ) { .@menu$ = .@menu$ + (.@n == 1 ? "":":") + (( favwarp$[.n])?""+.n+".) " +favwarp$[.n]+"," +favwarpx[.n]+","+favwarpy[.n] +"":""+.n+".) No data yet")+""; } .@choice = select(.@menu$) - 1; if ( favwarp$[.@choice] == "" ) { next; callsub MainMenu; } else warp favwarp$[.n2],favwarpx[.n2],favwarpy[.n2]; end; } // -------------------------------------------------- // Recent Warps Option: // -------------------------------------------------- RecentWarps: mes @header$; if ( recentwarp$[1] == "" ) { mes "Not single warp done yet."; next; callsub MainMenu; } .@menu$ = ""; for ( .n = 1; .n <= $@MaxListW; .n++ ) { .@menu$ = .@menu$ + (.@n == 1 ? "":":") + (( recentwarp$[.n])?""+.n+".) "+recentwarp$[.n]+","+recentwarpx[.n]+","+recentwarpy[.n]+"":""+.n+".) No data yet")+""; } .@choice = select(.@menu$) - 1; if ( recentwarp$[.@choice] == "" ) { next; callsub MainMenu; } else warp recentwarp$[.@choice],recentwarpx[.@choice],recentwarpy[.@choice]; end; // ------------------- Functions ------------------- // * Go("",,); // ~ Warps directly to a map. // // * Disp("",,); // * Pick(""{,}); // ~ Dynamic menu and map selection (auto-numbered). // // * Disp("