累计送礼: 0 个 累计收礼: 1 个 TA的每日心情 开心 2026-7-12 04:10
签到天数: 209 天
连续签到: 2 天
[LV.7]常住居民III
管理员
VIP
7
卡币
58883
OK点
16
推广点
0
同能卷
50
积分 68848
Map Name Display Plus v 1.0
by Majirefy
Introduction
This script will dislpay your map name in a modified way when switching between maps in Ace.
Features
- Easy to custom style
- Good for muti-language or add descriptions for map
- Make your game more "PRO"(at least I believe that...
)
How to Use
Paste above main
Turn to Scence_Map section, on Line 161, change @map_name_window = Window_MapName.new to @map_name_window = Window_MapNamePlus.new
In Map Properties window, set Display Name in format like: name1@name2 . nam1 will be set above the split line and in bigger font size, while name2 will be below the split line and in smaller font size
Run your game and see the change.
Demo
MapNamePlus.zip
Screenshot
Script
Code:
# encoding: utf-8 #============================================================================== # ** Window_MapNamePlus #------------------------------------------------------------------------------ # This window displays the map name. #------------------------------------------------------------------------------ # This class replaces the default Window_MapName class, adding more # modification and custom. #------------------------------------------------------------------------------ # Author: Majirefy #------------------------------------------------------------------------------ # Guide: # To use this script, create a new section below Materials in Script Editor # and paste the script there. Then turn to Scene_Map section, find string # "Window_MapName.new", replace it by "Winodw_MapNamePlus.new". # Map name should be set in pattern like "拉普兰德@Lapland", using symbol "@" # to split Chinese character and English text. You can also use "@" to split # everything in map name. #------------------------------------------------------------------------------ # Version: 1.0 - 20120502 # First Release #============================================================================== class Window_MapNamePlus < Window_Base #-------------------------------------------------------------------------- # * Settings #-------------------------------------------------------------------------- FONT_NAME_CH = ["PMingLiU", "FangSong"] # Chinese Font Name FONT_SIZE_CH = 42 # Chinese Font Size FONT_NAME_EN = ["Monotype Corsiva"] # English Font Name FONT_SIZE_EN = 28 # English Font Size FONT_BOLD = false # True if Font in Bold FONT_COLOR = Color.new(255, 255, 255, 255) # Color of Font FONT_OUT = true # True if Font Has Outline OUT_COLOR = Color.new(0, 0, 0, 200) # Color of Outline Color of Font FONT_SHADOW = false # True if Text Drops Shadow MODIFIER = "~" # Modifier Added beside Map Name PADDING = 8 # Padding between Window's Frame and Contents LINE_HEIGHT = 6 # Height of Split Line #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :map_name_ch # Chinese Map Name attr_reader :map_name_en # English Map Name attr_reader :line_x # Split Line X Coordinate attr_reader :line_y # Split Line Y Coordinate #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize #---------------------------------------------------------------------- # * Set the window in the middle of screen. #---------------------------------------------------------------------- super(((Graphics.width - window_width) / 2), ((Graphics.height - (FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT)) / 2), window_width, FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT) #---------------------------------------------------------------------- # * Custom font and style. #---------------------------------------------------------------------- contents.font.bold = FONT_BOLD contents.font.color = FONT_COLOR contents.font.outline = FONT_OUT contents.font.out_color = OUT_COLOR contents.font.shadow = FONT_SHADOW #---------------------------------------------------------------------- # * Set Window Opacity #---------------------------------------------------------------------- self.opacity = 0 self.contents_opacity = 0 @show_count = 0 refresh end #-------------------------------------------------------------------------- # * Get Window Width #-------------------------------------------------------------------------- def window_width return Graphics.width end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if @show_count > 0 && $game_map.name_display update_fadein @show_count -= 1 else update_fadeout end end #-------------------------------------------------------------------------- # * Update Fadein #-------------------------------------------------------------------------- def update_fadein self.contents_opacity += 16 end #-------------------------------------------------------------------------- # * Update Fadeout #-------------------------------------------------------------------------- def update_fadeout self.contents_opacity -= 16 end #-------------------------------------------------------------------------- # * Open Window #-------------------------------------------------------------------------- def open refresh @show_count = 150 self.contents_opacity = 0 self end #-------------------------------------------------------------------------- # * Close Window #-------------------------------------------------------------------------- def close @show_count = 0 self end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear set_map_name unless $game_map.display_name.empty? draw_map_name end end #-------------------------------------------------------------------------- # * Draw Line #-------------------------------------------------------------------------- def draw_line(rect) temp_rect = rect.clone temp_rect.height = LINE_HEIGHT temp_rect.width /= 4 contents.gradient_fill_rect(temp_rect, color2, color1) temp_rect.x += temp_rect.width temp_rect.width *= 2 contents.fill_rect(temp_rect, color1) temp_rect.x += temp_rect.width temp_rect.width /= 2 contents.gradient_fill_rect(temp_rect, color1, color2) end #-------------------------------------------------------------------------- # * Set Map Name #-------------------------------------------------------------------------- def set_map_name temp_map_name = $game_map.display_name.split("@") @map_name_ch = temp_map_name[0].to_s @map_name_en = MODIFIER + " " + temp_map_name[1].to_s + " " + MODIFIER end #-------------------------------------------------------------------------- # * Draw Map Name #-------------------------------------------------------------------------- def draw_map_name set_line_position set_line_width temp_line_rect = Rect.new(@line_x, @line_y, set_line_width, LINE_HEIGHT) draw_line(temp_line_rect) temp_name_rect_ch = Rect.new(0, 0, contents.width, FONT_SIZE_CH) contents.font.name = FONT_NAME_CH contents.font.size = FONT_SIZE_CH draw_text(temp_name_rect_ch, @map_name_ch, 1) temp_name_rect_en = Rect.new(0, FONT_SIZE_CH, contents.width, FONT_SIZE_EN) contents.font.size = FONT_SIZE_EN contents.font.name = FONT_NAME_EN draw_text(temp_name_rect_en, @map_name_en, 1) end #-------------------------------------------------------------------------- # * Set Line Width #-------------------------------------------------------------------------- def set_line_width text_width_ch = text_size(@map_name_ch).width * 1.5 text_width_en = text_size(@map_name_en).width * 1.5 (text_width_ch >= text_width_en) ? (text_width_ch) : (text_width_en) end #-------------------------------------------------------------------------- # * Set Line Position #-------------------------------------------------------------------------- def set_line_position @line_x = (contents.width - set_line_width) / 2 @line_y = (contents.height - LINE_HEIGHT) / 2 end #-------------------------------------------------------------------------- # * Get Color 1 #-------------------------------------------------------------------------- def color1 Color.new(255, 255, 255, 255) end #-------------------------------------------------------------------------- # * Get Color 2 #-------------------------------------------------------------------------- def color2 Color.new(255, 255, 255, 0) end end 复制代码
Notes
This is my first time working with script and I am thirst to have some advices from you.
Have fun and give me reply if that won't bother you!
:
本贴来自国际rpgmaker官方论坛作者:Majirefy处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:
https://forums.rpgmakerweb.com/threads/modified-map-name-display.1739/
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x