じ☆ve冰风 发表于 2026-8-2 19:45:44

Modified Map Name Display

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

https://forums.rpgmakerweb.com/data/attachments/0/120-7e8686373c185fe588af3cfd6f1f84c6.jpg

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.to_s
        @map_name_en= MODIFIER + " " + temp_map_name.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/
页: [1]
查看完整版本: Modified Map Name Display