累计送礼: 0 个 累计收礼: 1 个 TA的每日心情 开心 2026-7-12 04:10
签到天数: 209 天
连续签到: 2 天
[LV.7]常住居民III
管理员
VIP
7
卡币
58883
OK点
16
推广点
0
同能卷
50
积分 68848
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 = [[2, 8, 1, 2], # This is where "Australia" is going to be. [3, 8, 11, 8], # "Russia". [1, 15, 7, 4]] # and so on. #-------------------------------------------------------------------------- # Assign overworld location coordinate. #-------------------------------------------------------------------------- LOCATION_COORDINATE = [[-470,-100], #The map will move here when "Australia" is highlighted [-120,560], [880,300]] #-------------------------------------------------------------------------- # 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 = [0,0] #[x,y] #-------------------------------------------------------------------------- # How far the background image is zoomed out. #-------------------------------------------------------------------------- MAP_ZOOM_OUT = [0.25, 0.25] #[zoom_x, zoom_y] #-------------------------------------------------------------------------- # How far the background image is zoomed in when a location is selected. #-------------------------------------------------------------------------- MAP_ZOOM_IN = [1, 1] #[x, y] #-------------------------------------------------------------------------- # Maximum magnify speed when the scene is started. #-------------------------------------------------------------------------- MAX_ZOOM_SPEED = 0.01 #-------------------------------------------------------------------------- # Position of the available choices. #-------------------------------------------------------------------------- CHOICE_POSITION = [0,0] #[x,y] #-------------------------------------------------------------------------- # Position of the window that holds list of the available choices. #-------------------------------------------------------------------------- WINDOW_POSITION = [0,10] #[x,y] #-------------------------------------------------------------------------- # 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 = [0.5, 0.5] #[zoom_x, zoom_y] #-------------------------------------------------------------------------- # Position of location selection window picture. #-------------------------------------------------------------------------- WINDOW_PIC_POSITION = [0, 0] #[x, y] #-------------------------------------------------------------------------- # 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 = [347,0] #-------------------------------------------------------------------------- # Location name info width & height. #-------------------------------------------------------------------------- ADD_LOC_NAME_W_H = [200,100] # [width, height] #-------------------------------------------------------------------------- # 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 = [347,155] # [x, y] #-------------------------------------------------------------------------- # Location description width & height. #-------------------------------------------------------------------------- ADD_LOC_DESC_W_H = [300,100] # [width, height] #-------------------------------------------------------------------------- # 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 = [376,47] # [x, y] #-------------------------------------------------------------------------- # Location quests. #-------------------------------------------------------------------------- ADD_LOC_QUEST = true #-------------------------------------------------------------------------- # Location quests switches. #-------------------------------------------------------------------------- ADD_LOC_QUEST_S = [[], [6], [4,5]] #-------------------------------------------------------------------------- # Location quests text. #-------------------------------------------------------------------------- # [switch number, text to show when the value is true] ADD_LOC_Q_TEXT = [[4, "* Find a way to" + "\n" + "Russia!"], [5, "* Get the package!"], [6, "* Deliver the package"]] #-------------------------------------------------------------------------- # Location quests position. #-------------------------------------------------------------------------- ADD_LOC_QUEST_POS = [347,200] # [x, y] #-------------------------------------------------------------------------- # Location quests width & height. #-------------------------------------------------------------------------- ADD_LOC_QUEST_W_H = [300,300] # [width, height] #-------------------------------------------------------------------------- # 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 = [350, 3] #[x, y] #-------------------------------------------------------------------------- # 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 = [352,340] # [x, y] #-------------------------------------------------------------------------- # Location quests width & height. #-------------------------------------------------------------------------- ADD_CUR_PARTY_W_H = [180,80] # [width, height] #-------------------------------------------------------------------------- # * 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[0], MAP_POSITION[1]] @distance_x = 0 @distance_y = 0 @last_zoom = [MAP_ZOOM_OUT[0], MAP_ZOOM_OUT[1]] @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[0], MAP_MENU_BGM[1], MAP_MENU_BGM[2]).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[0] @information_window_3.y = ADD_LOC_THUMB_POS[1] @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[0] @info_window.y = ADD_WIN_PIC_POS[1] @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[0] @map_window.y = WINDOW_PIC_POSITION[1] @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[SWITCH_LIST[i]] == true @map_list.push(MAP_LIST[i]) 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[0], MAP_MENU_SFX[1], MAP_MENU_SFX[2]).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] = index end break if @pic_frames[index] == 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[0], @last_position[1], LOCATION_COORDINATE[@map_index][0], LOCATION_COORDINATE[@map_index][1], 255) #-------------------------------------------------------------------------- # Define the magnifying speed. #-------------------------------------------------------------------------- @magnify_x = (MAP_ZOOM_IN[0] - @last_zoom[0])/10 if @magnify_x > 0 @magnify_x = [MAX_ZOOM_SPEED, @magnify_x].min end if @magnify_x < 0 @magnify_x = [MAX_ZOOM_SPEED, @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[1] - @last_zoom[1])/10 if @magnify_y > 0 @magnify_y = [MAX_ZOOM_SPEED, @magnify_y].min end if @magnify_y < 0 @magnify_y = [MAX_ZOOM_SPEED, @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[0] and @background_sprite.zoom_y > SCROLL_BOUNDARY[1] if @first_sfx == false RPG::SE.new(MAP_MENU_SFX[0], MAP_MENU_SFX[1], MAP_MENU_SFX[2]).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[0] @background_sprite.zoom_x = MAP_ZOOM_IN[0] @map_icon.zoom_x = MAP_ZOOM_IN[0] end elsif @magnify_x == -0.005 if @background_sprite.zoom_x < MAP_ZOOM_IN[0] @background_sprite.zoom_x = MAP_ZOOM_IN[0] @map_icon.zoom_x = MAP_ZOOM_IN[0] 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[1] @background_sprite.zoom_y = MAP_ZOOM_IN[1] @map_icon.zoom_y = MAP_ZOOM_IN[1] end elsif @magnify_y == -0.005 if @background_sprite.zoom_y < MAP_ZOOM_IN[1] @background_sprite.zoom_y = MAP_ZOOM_IN[1] @map_icon.zoom_y = MAP_ZOOM_IN[1] end end #-------------------------------------------------------------------------- # Adjust the position. #-------------------------------------------------------------------------- @last_position[0] = @background_sprite.x @last_position[1] = @background_sprite.y @last_zoom[0] = @background_sprite.zoom_x @last_zoom[1] = @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 = [MAX_SCROLL_SPEED, @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[0] == LOCATION_COORDINATE[@map_index][0] 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 = [MAX_SCROLL_SPEED, @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[1] == LOCATION_COORDINATE[@map_index][1] 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[0] @command_window.y = WINDOW_POSITION[1] for i in 0..MAP_LIST.size - 1 @command_window.set_handler(MAP_LIST[i].to_sym, method(MAP_LIST[i].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[0] @background_sprite.zoom_y = MAP_ZOOM_OUT[1] 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[0] @map_icon.zoom_y = MAP_ZOOM_OUT[1] @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[i] == map_name return i end end end def transfer_map(a) b = TELEPORT_LIST $game_temp.fade_type = 2 $game_player.reserve_transfer(b[a][0],b[a][1],b[a][2],b[a][3]) 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[i], @map_list[i].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[SWITCH_LIST[i]] == true @map_list.push(MAP_LIST[i]) 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[font_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[self.index].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[assigned_number(@map_list[self.index].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[self.index].to_s) for i in 0..ADD_LOC_QUEST_S[map_num].size - 1 if ADD_LOC_QUEST_S[map_num].size != -1 if $game_switches[ADD_LOC_QUEST_S[map_num][i]] quest_desc = assigned_quest(ADD_LOC_QUEST_S[map_num][i]) text = text + "\n" + ADD_LOC_Q_TEXT[quest_desc][1] 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[i] == 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[i][0] == 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[0], ADD_LOC_NAME_POS[1], ADD_LOC_NAME_W_H[0], ADD_LOC_NAME_W_H[1]) 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[0], ADD_LOC_DESC_POS[1], ADD_LOC_DESC_W_H[0], ADD_LOC_DESC_W_H[1]) 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[0], ADD_LOC_QUEST_POS[1], ADD_LOC_QUEST_W_H[0], ADD_LOC_QUEST_W_H[1]) 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[0], ADD_CUR_PARTY_POS[1], ADD_CUR_PARTY_W_H[0], ADD_CUR_PARTY_W_H[1]) 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[index] 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.
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/
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x