じ☆ve冰风 发表于 2026-8-1 19:24:01

Fast Travel Script

Fast Travel Script 1.1
by Black Mage​
Introduction
Fast travel is a concept where you have several locations in a map (Usually this map is called an overworld map) and by selecting one of those locations, you’re transported to their respective location. That's this script's main function.

Features
1. Allow you to fast travel between location.
2. You can use big map for your overworld.
3. Customizable BGM & SFX for the map.
4. Several additional windows for the map.
5. Animated location icon.

Screenshots
I'll put a video instead. It's showing how the map selection works.

https://www.youtube.com/embed/IZGUaf3DN0M

How to Use
1. Put the script on your game.
2. Put the map graphic inside Graphics/System folder. Make sure you named the graphics “Map_Select”.
3. Put the location selection window graphic inside Graphics/System folder. Make sure you named the graphic “Window_Map”.
4. Put an empty graphic named “Empty”. This graphic is needed to run the script, mostly as a placeholder.
5. Put the locations on the script.
6. Customize where each location will transfer the player when they're selected.
7. Customize a lot of other variables found within the script.
8. Call the map using this script call:
SceneManager.call(Scene_Map_Select)

Demo
Demo using Script V-1.0 (Mediafire)
Demo using Script V-1.1 (Mediafire)

Script
                Code:       
#----------------------------------------------------------------------------
# Fast Travel Script By Black Mage (Credit required to use)
# Version: 1.1
#----------------------------------------------------------------------------
#
# * The script creates a map that hovers through listed locations.
#
# * The background image is named "Map_Select", and placed inside
#   Graphics/System folder.
#
# * The image named "Empty" is required as dummy and placeholder in several cases.
#   You can use an empty PNG file for it.
#   The image is placed inside Graphics/System folder.
#
# * The image named "Window_Map" is used as the location selection window.
#   The image is placed inside Graphics/System folder.
#
#----------------------------------------------------------------------------
#
# * How to use:
#
# * Enlist every available location into MAP_LIST.
#
# * Assign a switch for each location. Put them on SWITCH_LIST.
#
# * When you want a map is listed on the Map Select menu, simply turn their
#   respective switch value to "true".
#
# * Assign x and y variables for the screen to hover when a location is
#   highlighted. Put them on LOCATION_COORDINATE
#
# * Assign where to teleport when a location is selected. Put them on
#   TELEPORT_LIST.
#
# * Enjoy your map select menu.
#
#----------------------------------------------------------------------------
#
# * There's several additional option below. Feel free to edit them.
#
#----------------------------------------------------------------------------

module BLACK_MAP_LIST

#--------------------------------------------------------------------------
# Map name list. This is needed for metaprogramming.
#--------------------------------------------------------------------------
MAP_LIST = ["Australia",
             "Russia",
             "America"]

#--------------------------------------------------------------------------
# Switches that enable the map.
#--------------------------------------------------------------------------
SWITCH_LIST = [1, # When switch 01 is on, you can transfer to Australia.
                3, # When switch 03 is on, you can transfer to Russia.
                2] # And so on.

#--------------------------------------------------------------------------
# Assign each map name where to teleport.
#--------------------------------------------------------------------------
#               Map ID, x,y,player direction
TELEPORT_LIST = [, # This is where "Australia" is going to be.
                  , # "Russia".
                  ] # and so on.

#--------------------------------------------------------------------------
# Assign overworld location coordinate.
#--------------------------------------------------------------------------
LOCATION_COORDINATE = [[-470,-100], #The map will move here when "Australia" is highlighted
                        [-120,560],
                        ]

#--------------------------------------------------------------------------
# Assign text color for location selection. The color depends on Window
# graphic that you use. 0 is the default color.
#--------------------------------------------------------------------------
TEXT_LOCA_COLOR = [0,
                  3,
                  2]

#--------------------------------------------------------------------------
# Position of the background image.
#--------------------------------------------------------------------------
MAP_POSITION = #
#--------------------------------------------------------------------------
# How far the background image is zoomed out.
#--------------------------------------------------------------------------
MAP_ZOOM_OUT = #
#--------------------------------------------------------------------------
# How far the background image is zoomed in when a location is selected.
#--------------------------------------------------------------------------
MAP_ZOOM_IN = #
#--------------------------------------------------------------------------
# Maximum magnify speed when the scene is started.
#--------------------------------------------------------------------------
MAX_ZOOM_SPEED = 0.01

#--------------------------------------------------------------------------
# Position of the available choices.
#--------------------------------------------------------------------------
CHOICE_POSITION = #
#--------------------------------------------------------------------------
# Position of the window that holds list of the available choices.
#--------------------------------------------------------------------------
WINDOW_POSITION = #
#--------------------------------------------------------------------------
# The width for location selection choices.
#--------------------------------------------------------------------------
MAP_WINDOW_WIDTH = 132
#--------------------------------------------------------------------------
# The height for location selection choices.
#--------------------------------------------------------------------------
MAP_WINDOW_HEIGHT = 10 # Amount of visible choices in the window.
#--------------------------------------------------------------------------
# Maximum scroll speed when scrolling through the map.
#--------------------------------------------------------------------------
MAX_SCROLL_SPEED = 20
#--------------------------------------------------------------------------
# The map won't scrolled until the zoom is above this number for x and y.
#--------------------------------------------------------------------------
SCROLL_BOUNDARY = #

#--------------------------------------------------------------------------
# Position of location selection window picture.
#--------------------------------------------------------------------------
WINDOW_PIC_POSITION = #
#--------------------------------------------------------------------------
# Opacity of location selection window picture.
#--------------------------------------------------------------------------
WINDOW_PIC_OPACITY = 200

#--------------------------------------------------------------------------
# Map Menu BGM.
#--------------------------------------------------------------------------
MAP_MENU_BGM = ["Field3", 100, 100] #["BGM name", Volume, Pitch]

#--------------------------------------------------------------------------
# SFX played when the selection is changed.
#--------------------------------------------------------------------------
MAP_MENU_SFX = ["Wind1", 100, 100] #["SFX name", Volume, Pitch]


#--------------------------------------------------------------------------
#
# * Below is the configuration of additional information window.
#
#--------------------------------------------------------------------------

#--------------------------------------------------------------------------
# Location name.
#--------------------------------------------------------------------------
ADD_LOC_NAME = true # Set this to true to enable the location name info
#--------------------------------------------------------------------------
# Location name info position.
#--------------------------------------------------------------------------
ADD_LOC_NAME_POS =
#--------------------------------------------------------------------------
# Location name info width & height.
#--------------------------------------------------------------------------
ADD_LOC_NAME_W_H = #
#--------------------------------------------------------------------------
# Location name font size.
#--------------------------------------------------------------------------
ADD_LOC_NAME_F_SIZE = 20


#--------------------------------------------------------------------------
# Location description.
#--------------------------------------------------------------------------
ADD_LOC_DESC = true # Set this to true to enable the location description info
#--------------------------------------------------------------------------
# Location description position.
#--------------------------------------------------------------------------
ADD_LOC_DESC_POS = #
#--------------------------------------------------------------------------
# Location description width & height.
#--------------------------------------------------------------------------
ADD_LOC_DESC_W_H = #
#--------------------------------------------------------------------------
# Location description font size.
#--------------------------------------------------------------------------
ADD_LOC_DESC_F_SIZE = 20
#--------------------------------------------------------------------------
# Description for each location.
#--------------------------------------------------------------------------
ADD_LOC_DESC_VALUE = ["Australia is, well," + "\n" + "Australia.",# Desc. for Australia.
                     "Russia..." + "\n" + "Yeah, Russia.",         # Desc. for Russia.
                     "America is America."]                        # and so on.
                     
#--------------------------------------------------------------------------
# Location thumbnail.
#--------------------------------------------------------------------------
ADD_LOC_THUMB = true # Set this to true to enable the location thumbnail.
#--------------------------------------------------------------------------
# Location description position.
#--------------------------------------------------------------------------
ADD_LOC_THUMB_POS = #

#--------------------------------------------------------------------------
# Location quests.
#--------------------------------------------------------------------------
ADD_LOC_QUEST = true
#--------------------------------------------------------------------------
# Location quests switches.
#--------------------------------------------------------------------------
ADD_LOC_QUEST_S = [[],
                  ,
                  ]
#--------------------------------------------------------------------------
# Location quests text.
#--------------------------------------------------------------------------
#               
ADD_LOC_Q_TEXT = [,
                   ,
                   ]
#--------------------------------------------------------------------------
# Location quests position.
#--------------------------------------------------------------------------
ADD_LOC_QUEST_POS = #
#--------------------------------------------------------------------------
# Location quests width & height.
#--------------------------------------------------------------------------
ADD_LOC_QUEST_W_H = #
#--------------------------------------------------------------------------
# Location quests font size.
#--------------------------------------------------------------------------
ADD_LOC_QUEST_F_SIZE = 20

#--------------------------------------------------------------------------
# Information Window Picture.
#--------------------------------------------------------------------------
ADD_WIN_PIC = true # Set this to true to enable the information window picture.
#--------------------------------------------------------------------------
# Position of additional information window picture.
#--------------------------------------------------------------------------
ADD_WIN_PIC_POS = #
#--------------------------------------------------------------------------
# Opacity of additional information window picture.
#--------------------------------------------------------------------------
ADD_WIN_PIC_OPA = 200

#--------------------------------------------------------------------------
# Current Party Window.
#--------------------------------------------------------------------------
ADD_CUR_PARTY = true
#--------------------------------------------------------------------------
# Location quests position.
#--------------------------------------------------------------------------
ADD_CUR_PARTY_POS = #
#--------------------------------------------------------------------------
# Location quests width & height.
#--------------------------------------------------------------------------
ADD_CUR_PARTY_W_H = #

#--------------------------------------------------------------------------
# * This is an instruction if you want to use an icon for your location.
# * First, the icon canvas mus be as big as the overworld canvas. This is
#   the case to make sure the scrolling is as smooth as possible.
# * Second, the icon must be named after the location found in MAP_LIST.
# * Third, after the icon name, put the frame number of the icon. The number
#   starts from 0.
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# * Location animated icon.
#--------------------------------------------------------------------------
LOC_ANI_ICON = true
#--------------------------------------------------------------------------
# * Location animated icon delay.
#   You can call this animation speed. Decrease the value to make the animation
#   faster.
#--------------------------------------------------------------------------
LOC_ANI_ICON_DELAY = 10


end

#----------------------------------------------------------------------------
# * Beyond this is the sacred land of code. You need programming qualification
#   to delve deeper, or it'll cause many unnecessary problems. Proceed on your
#   own risk.
#----------------------------------------------------------------------------

class Scene_Map_Select < Scene_Base

include BLACK_MAP_LIST

def start
   super
   @last_map = "placeholder"
   @first_sfx = false

   @last_position = , MAP_POSITION]
   @distance_x = 0
   @distance_y = 0

   @last_zoom = , MAP_ZOOM_OUT]

   @icon_max = 0
   @icon_current = 0
   @icon_delay_cur = 0

   create_maplist

   create_information_window
   create_command_window

   create_background
   create_map_icon
   create_map_window
   location_update_index
   RPG::BGM.new(MAP_MENU_BGM, MAP_MENU_BGM, MAP_MENU_BGM).play
end

def create_information_window
   if ADD_LOC_NAME
   @information_window_1 = Window_Information_1.new
   @information_window_1.opacity = 0
   end
   if ADD_LOC_DESC
   @information_window_2 = Window_Information_2.new
   @information_window_2.opacity = 0
   end
   if ADD_LOC_THUMB
   @information_window_3 = Sprite.new
   @information_window_3.bitmap = Cache.system("Empty")
   @information_window_3.ox = 0
   @information_window_3.oy = 0
   @information_window_3.x = ADD_LOC_THUMB_POS
   @information_window_3.y = ADD_LOC_THUMB_POS
   @information_window_3.z = 2
   end
   if ADD_LOC_QUEST
   @information_window_4 = Window_Information_4.new
   @information_window_4.opacity = 0
   end
   if ADD_WIN_PIC
   @info_window = Sprite.new
   @info_window.bitmap = Cache.system("Window_Info")
   @info_window.ox = 0
   @info_window.oy = 0
   @info_window.x = ADD_WIN_PIC_POS
   @info_window.y = ADD_WIN_PIC_POS
   @info_window.z = 2
   @info_window.opacity = 0
   end
   if ADD_CUR_PARTY
   @current_party_window = Window_Current_Party.new
   @current_party_window.opacity = 0
   @current_party_window.refresh
   end
end

def create_map_window
   @map_window = Sprite.new
   @map_window.bitmap = Cache.system("Window_Map")
   @map_window.ox = 0
   @map_window.oy = 0
   @map_window.x = WINDOW_PIC_POSITION
   @map_window.y = WINDOW_PIC_POSITION
   @map_window.z = 2
   @map_window.opacity = 0
end

def create_maplist
   @map_list = []
   for i in 0..MAP_LIST.size - 1
   if $game_switches] == true
       @map_list.push(MAP_LIST)
   end
   end
end

alias black_update update
def update
   black_update
   if @map_list.size != 0
   icon_update if @map_window != nil
   end
end

def location_update_index
   if @command_window != nil
   @last_map = @map_list[@command_window.index].to_s
   
   if LOC_ANI_ICON
       @map_name = assigned_number(@map_list[@command_window.index].to_s)
       @map_name = @map_list[@command_window.index].to_s
       @map_icon.bitmap = Cache.system(@map_name + "0")
       @icon_max = pic_list_number
       @icon_current = 0
   else
       @map_icon.bitmap = Cache.system("Empty")
   end
   
   end
   if @first_sfx == true
   RPG::SE.new(MAP_MENU_SFX, MAP_MENU_SFX, MAP_MENU_SFX).play
   end
end

def pic_list_number
   @map_name
   @pic_frames = []
   for index in 0..999
   begin
       picture = Cache.system(@map_name + index.to_s).nil?
   rescue
       nil
   else
       @pic_frames = index
   end
   break if @pic_frames == nil
   end
   return @pic_frames.size
end

def icon_update
   if LOC_ANI_ICON
   if @icon_delay_cur < LOC_ANI_ICON_DELAY
       @icon_delay_cur += 1
   else
       @icon_delay_cur = 0
       if @icon_current.to_i < (@icon_max - 1)
         @map_icon.bitmap = Cache.system(@map_name + (@icon_current.to_i + 1).to_s)
         @icon_current += 1
       else
         @map_icon.bitmap = Cache.system(@map_name + "0")
         @icon_current = 0
       end
   end
   end

   @map_window.opacity = WINDOW_PIC_OPACITY
   @info_window.opacity = ADD_WIN_PIC_OPA if ADD_WIN_PIC

   @map_index = assigned_number(@map_list[@command_window.index].to_s)
   map_move(@last_position, @last_position,
            LOCATION_COORDINATE[@map_index], LOCATION_COORDINATE[@map_index],
            255)
         
   #--------------------------------------------------------------------------
   # Define the magnifying speed.
   #--------------------------------------------------------------------------
   @magnify_x = (MAP_ZOOM_IN - @last_zoom)/10

   if @magnify_x > 0
   @magnify_x = .min
   end
   if @magnify_x < 0
   @magnify_x = .max
   end
   
   if @magnify_x < 0.005 and @magnify_x > 0
       @magnify_x = 0.005
   elsif @magnify_x > -0.005 and @magnify_x < 0
       @magnify_x = -0.005
   end
         
   @magnify_y = (MAP_ZOOM_IN - @last_zoom)/10

   if @magnify_y > 0
   @magnify_y = .min
   end
   if @magnify_y < 0
   @magnify_y = .max
   end

   if @magnify_y < 0.005 and @magnify_y > 0
       @magnify_y = 0.005
   elsif @magnify_y > -0.005 and @magnify_y < 0
       @magnify_y = -0.005
   end
      
   #--------------------------------------------------------------------------
   # Scrolling.
   #--------------------------------------------------------------------------
   if @background_sprite.zoom_x > SCROLL_BOUNDARY and @background_sprite.zoom_y > SCROLL_BOUNDARY
   if @first_sfx == false
       RPG::SE.new(MAP_MENU_SFX, MAP_MENU_SFX, MAP_MENU_SFX).play
       @first_sfx = true
   end
   @background_sprite.x = @background_sprite.x + @distance_x
   @background_sprite.y = @background_sprite.y + @distance_y
   @map_icon.x = @map_icon.x + @distance_x
   @map_icon.y = @map_icon.y + @distance_y
   end

   @background_sprite.zoom_x = @background_sprite.zoom_x + @magnify_x
   @map_icon.zoom_x = @map_icon.zoom_x + @magnify_x
   if @magnify_x == 0.005
   if @background_sprite.zoom_x > MAP_ZOOM_IN
       @background_sprite.zoom_x = MAP_ZOOM_IN
       @map_icon.zoom_x = MAP_ZOOM_IN
   end
   elsif @magnify_x == -0.005
   if @background_sprite.zoom_x < MAP_ZOOM_IN
       @background_sprite.zoom_x = MAP_ZOOM_IN
       @map_icon.zoom_x = MAP_ZOOM_IN
   end
   end

   @background_sprite.zoom_y = @background_sprite.zoom_y + @magnify_y
   @map_icon.zoom_y = @map_icon.zoom_y + @magnify_y
   if @magnify_y == 0.005
   if @background_sprite.zoom_y > MAP_ZOOM_IN
       @background_sprite.zoom_y = MAP_ZOOM_IN
       @map_icon.zoom_y = MAP_ZOOM_IN
   end
   elsif @magnify_y == -0.005
   if @background_sprite.zoom_y < MAP_ZOOM_IN
       @background_sprite.zoom_y = MAP_ZOOM_IN
       @map_icon.zoom_y = MAP_ZOOM_IN
   end
   end
      
   #--------------------------------------------------------------------------
   # Adjust the position.
   #--------------------------------------------------------------------------
   @last_position = @background_sprite.x
   @last_position = @background_sprite.y
   @last_zoom = @background_sprite.zoom_x
   @last_zoom = @background_sprite.zoom_y

end

def map_move(f_x, f_y, x, y, opacity)

   @distance_x = (x - f_x)/10
   if @distance_x > 0
   @distance_x = .min
   end
   if @distance_x < 0
   @distance_x = [(MAX_SCROLL_SPEED*(-1)), @distance_x].max
   end

   if @distance_x == 0
   if @last_position == LOCATION_COORDINATE[@map_index]
   elsif (x - f_x) < 0
       @distance_x = -1
   else
       @distance_x = 1      
   end
   end

   @distance_y = (y - f_y)/10
   if @distance_y > 0
   @distance_y = .min
   end
   if @distance_y < 0
   @distance_y = [(MAX_SCROLL_SPEED*(-1)), @distance_y].max
   end

   if @distance_y == 0
   if @last_position == LOCATION_COORDINATE[@map_index]
   elsif (y - f_y) < 0
       @distance_y = -1
   else
       @distance_y = 1      
   end
   end

end

def create_command_window
   @command_window = Window_MapSelect.new
   @command_window.x = WINDOW_POSITION
   @command_window.y = WINDOW_POSITION
   for i in 0..MAP_LIST.size - 1
   @command_window.set_handler(MAP_LIST.to_sym, method(MAP_LIST.to_sym))
   end
   @command_window.set_handler(:cancel,    method(:return_scene))
   @command_window.information_window_1 = @information_window_1
   @command_window.information_window_2 = @information_window_2
   @command_window.information_window_4 = @information_window_4
   @command_window.information_1_update if ADD_LOC_NAME
   @command_window.information_2_update if ADD_LOC_DESC
   information_3_update if ADD_LOC_THUMB
   @command_window.information_4_update if ADD_LOC_QUEST
end

def information_3_update
   if @information_window_3 != nil and @command_window !=nil
   bitmap_pic = @map_list[@command_window.index].to_s + "_Thumb"
   @information_window_3.bitmap = Cache.system(bitmap_pic)
   end
end

def create_background
   @background_sprite = Sprite.new
   @background_sprite.bitmap = Cache.system("Map_Select")
   @background_sprite.ox = @background_sprite.bitmap.width / 2
   @background_sprite.oy = @background_sprite.bitmap.height / 2
   @background_sprite.x = Graphics.width / 2
   @background_sprite.y = Graphics.height / 2
   @background_sprite.zoom_x = MAP_ZOOM_OUT
   @background_sprite.zoom_y = MAP_ZOOM_OUT
end

def create_map_icon
   @map_icon = Sprite.new
   @map_icon.bitmap = Cache.system("Empty")
   @map_icon.ox = @background_sprite.bitmap.width / 2
   @map_icon.oy = @background_sprite.bitmap.height / 2
   @map_icon.zoom_x = MAP_ZOOM_OUT
   @map_icon.zoom_y = MAP_ZOOM_OUT
   @map_icon.x = Graphics.width / 2
   @map_icon.y = Graphics.height / 2
   @map_icon.z = 1
end

MAP_LIST.each do |map_name|
   define_method(map_name) do
   list_number = assigned_number(map_name)
   transfer_map(list_number)
   end
end

def assigned_number(map_name)
   for i in 0..MAP_LIST.size - 1
   if MAP_LIST == map_name
       return i
   end
   end
end

def transfer_map(a)
   b = TELEPORT_LIST
   $game_temp.fade_type = 2
   $game_player.reserve_transfer(b,b,b,b)
   return_scene
end

def close_command_window
   @command_window.close
   update until @command_window.close?
   fadeout_all
   @command_window.dispose
   @background_sprite.bitmap = nil
end

def black_dispose
   @command_window.dispose
   @map_window.bitmap.dispose ; @map_window.dispose ; @map_window = nil
   @map_icon.bitmap.dispose ; @map_icon.dispose ; @map_icon = nil

   if ADD_WIN_PIC
   @info_window.bitmap.dispose
   @info_window.dispose
   @info_window = nil
   end

   if @background_sprite.bitmap != nil
   @background_sprite.bitmap.dispose
   end
   @background_sprite.dispose
   @background_sprite = nil

   @information_window_1.dispose if ADD_LOC_NAME
   @information_window_2.dispose if ADD_LOC_DESC

   if ADD_LOC_THUMB
   @information_window_3.bitmap.dispose
   @information_window_3.dispose
   @information_window_3 = nil
   end

   @information_window_4.dispose if ADD_LOC_QUEST
   @current_party_window.dispose if ADD_CUR_PARTY
end

def return_scene
   close_command_window
   black_dispose
   super
   RPG::BGM.fade(500)
   $game_map.autoplay
end

end

#--------------------------------------------------------------------------
# * Map Command List Window
#--------------------------------------------------------------------------
class Window_MapSelect < Window_Command

include BLACK_MAP_LIST

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
   create_maplist
   super(0, 0)
   self.openness = 0
   open
   self.opacity = 0
end

#--------------------------------------------------------------------------
# * Get Window Width
#--------------------------------------------------------------------------
def window_width
   return MAP_WINDOW_WIDTH
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
   for i in 0..@map_list.size - 1
   if @map_list.size != 0
       add_command(@map_list, @map_list.to_sym)
   end
   end
end

#--------------------------------------------------------------------------
# * Get unlocked map list
#--------------------------------------------------------------------------
def create_maplist
   @map_list = []
   for i in 0..MAP_LIST.size - 1
   if $game_switches] == true
       @map_list.push(MAP_LIST)
   end
   end
end

def index=(index)
   super
   SceneManager.scene.location_update_index
   information_1_update if ADD_LOC_NAME
   information_2_update if ADD_LOC_DESC
   SceneManager.scene.information_3_update if ADD_LOC_THUMB
   information_4_update if ADD_LOC_QUEST
end

#--------------------------------------------------------------------------
# * Draw Item
#--------------------------------------------------------------------------
def draw_item(index)
   font_color = assigned_number(command_name(index))
   change_color(text_color(TEXT_LOCA_COLOR), command_enabled?(index))
   draw_text(item_rect_for_text(index), command_name(index), alignment)
end

#--------------------------------------------------------------------------
# * Get Window Height
#--------------------------------------------------------------------------
def window_height
   fitting_height(MAP_WINDOW_HEIGHT)
end

#--------------------------------------------------------------------------
# * Information Window
#--------------------------------------------------------------------------
def information_window_1=(information_window)
   @information_window_1 = information_window
end

def information_window_2=(information_window)
   @information_window_2 = information_window
end

def information_window_4=(information_window)
   @information_window_4 = information_window
end

def information_1_update
   if @information_window_1 != nil
   @information_window_1.clear
   text = @map_list.to_s
   @information_window_1.set_text(text)
   end
end

def information_2_update
   if @information_window_2 != nil
   @information_window_2.clear
   text = ADD_LOC_DESC_VALUE.to_s)]
   @information_window_2.set_text(text)
   end
end

def information_4_update
   if @information_window_4 != nil
   @information_window_4.clear
   text = ""
   map_num = assigned_number(@map_list.to_s)
   for i in 0..ADD_LOC_QUEST_S.size - 1
       if ADD_LOC_QUEST_S.size != -1
         if $game_switches]
         quest_desc = assigned_quest(ADD_LOC_QUEST_S)
         text = text + "\n" + ADD_LOC_Q_TEXT
         end
       end
   end
   @information_window_4.set_text(text)
   end
end

#--------------------------------------------------------------------------
# * Return location number from location name
#--------------------------------------------------------------------------
def assigned_number(map_name)
   for i in 0..MAP_LIST.size - 1
   if MAP_LIST == map_name
       return i
   end
   end
end

#--------------------------------------------------------------------------
# * Return quest number from quest switch
#--------------------------------------------------------------------------
def assigned_quest(quest_switch)
   for i in 0..ADD_LOC_Q_TEXT.size - 1
   if ADD_LOC_Q_TEXT == quest_switch
       return i
   end
   end
end

end

#--------------------------------------------------------------------------
# * Map Additional Location Name Window
#--------------------------------------------------------------------------
class Window_Information_1 < Window_Base

include BLACK_MAP_LIST

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
   super(ADD_LOC_NAME_POS, ADD_LOC_NAME_POS, ADD_LOC_NAME_W_H, ADD_LOC_NAME_W_H)
end
#--------------------------------------------------------------------------
# * Set Text
#--------------------------------------------------------------------------
def set_text(text)
   if text != @text
   @text = text
   refresh
   end
end
#--------------------------------------------------------------------------
# * Clear
#--------------------------------------------------------------------------
def clear
   set_text("")
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
   contents.clear
   draw_text_ex(4, 0, @text)
end

def reset_font_settings
   super # run's Window_Base's reset_font_settings
   contents.font.size = ADD_LOC_NAME_F_SIZE
end

end

class Window_Information_2 < Window_Base

include BLACK_MAP_LIST

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
   super(ADD_LOC_DESC_POS, ADD_LOC_DESC_POS, ADD_LOC_DESC_W_H, ADD_LOC_DESC_W_H)
end
#--------------------------------------------------------------------------
# * Set Text
#--------------------------------------------------------------------------
def set_text(text)
   if text != @text
   @text = text
   refresh
   end
end
#--------------------------------------------------------------------------
# * Clear
#--------------------------------------------------------------------------
def clear
   set_text("")
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
   contents.clear
   draw_text_ex(4, 0, @text)
end

def reset_font_settings
   super # run's Window_Base's reset_font_settings
   contents.font.size = ADD_LOC_DESC_F_SIZE
end

end

class Window_Information_4 < Window_Base

include BLACK_MAP_LIST

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
   super(ADD_LOC_QUEST_POS, ADD_LOC_QUEST_POS, ADD_LOC_QUEST_W_H, ADD_LOC_QUEST_W_H)
end
#--------------------------------------------------------------------------
# * Set Text
#--------------------------------------------------------------------------
def set_text(text)
   if text != @text
   @text = text
   refresh
   end
end
#--------------------------------------------------------------------------
# * Clear
#--------------------------------------------------------------------------
def clear
   set_text("")
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
   contents.clear
   draw_text_ex(4, 0, @text)
end

def reset_font_settings
   super # run's Window_Base's reset_font_settings
   contents.font.size = ADD_LOC_QUEST_F_SIZE
end

end

#--------------------------------------------------------------------------
# * Window Current Party
#--------------------------------------------------------------------------
class Window_Current_Party < Window_Base

include BLACK_MAP_LIST

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
   super(ADD_CUR_PARTY_POS, ADD_CUR_PARTY_POS, ADD_CUR_PARTY_W_H, ADD_CUR_PARTY_W_H)
end
#--------------------------------------------------------------------------
# * Draw Item
#--------------------------------------------------------------------------
def item_max
   return $game_party.members.size
end
def draw_all_items
   item_max.times {|i| draw_item(i) }
end

def draw_item(index)
   @actor = $game_party.members
   if @actor != nil
   x_pos = 60
   draw_actor_graphic(@actor, index*40 + 20, 45)
   end
end

#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
   contents.clear
   draw_all_items
end

end


FAQ
None yet.

Credit and Thanks
Black Mage.
Thanks to Sixth for reminding me that I forgot to put the dispose method inside the script. Also for several other contributions.
data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7

Author's Note
If you having trouble on using this script, and it seems that I rarely appeared here, you can go directly to my wordpress, and ask something there. I mostly roaming around there so there's no need to worry that your question will be left unanswered.

Here's a link to the pages of this script in my wordpress.
Fast Travel Script


本贴来自国际rpgmaker官方论坛作者:BlackMage处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/fast-travel-script.78185/
页: [1]
查看完整版本: Fast Travel Script