- #============================================================================== 
- # ■ 地图显示变量 
- #  作者:影月千秋 
- #  版本:V 1.0 
- #  最近更新:2014.02.08 
- #  适用:VA 
- #------------------------------------------------------------------------------ 
- # ● 简介 
- #  在地图上显示变量,可以附加文字 
- #============================================================================== 
- # ● 使用方法 
- #   将此脚本插入到其他脚本以下,Main以上,在下方进行设置即可 
- #============================================================================== 
- # ● 更新 
- #   V 1.0 2014.02.08 新建 
- #============================================================================== 
- # ● 声明 
- #   本脚本来自【影月千秋】,使用、修改和转载请保留此信息 
- #============================================================================== 
-   
-   
- #============================================================================== 
- # ■ Smomo::VarWin 
- #============================================================================== 
- module Smomo 
-   module VarWin 
-     SWI = 0 
-     # 当此开关打开 才会显示变量 
-     # 如果想要一直显示 就设为0 
-   
-     Var = [ 
-     # 变量和显示方式 
-     #·填写方式 
-     # [[横坐标, 纵坐标], "显示模板", [需要显示的变量ID], 可省略{窗口背景是否可见}] 
-     # 最后一项如果省略 默认可见 
-     #  横纵坐标是显示位置左上角的坐标 
-     #  显示模板是sprintf使用的格式化字符串,对于不懂脚本的人: 
-     #    使用【%s】来代替变量,使用【%02d】控制变量格式 
-     #    看不懂的话 下面有例子 
-     #  需要显示的变量形如【[3,9,10]】依次显示三个变量 
-     # 
-     #·例子 
-     # 先假设1号变量的值为 19,2号为 4 
-     # 下面两个例子省略前后两个项目 但是实际操作时前面一个必须填写 
-     # "苹果有%s个, 香蕉有%s个",[1,2] 
-     #  显示为:苹果有19个, 香蕉有4个 
-     # "现在是%02d分%02d秒",[1,2] 
-     #  显示为:现在是19分04秒 
-     # 
-     #·特别说明 
-     # 显示模板中 允许使用跳脱字符和对话框用的控制符 但是控制符需要多些一个\ 
-     #  比如\I[9]绘制九号图标 写成 \\I[9] 
-     # 换行符之类跳脱字符 原样写即可 
-     #  比如 \n 还是 \n 
-   
-     # 模板 ↓  复制下面一行(或第二行) 填写后按Ctrl + Q即可生效 
- #~     [[0,0], "%04d.%02d.%02d", [1,2,3], false], 
- #~     [[0,0], "口袋上有%s个洞", [4]], 
-   
-       [[0,0], "\\I[224]%04d年%02d月%02d日", [5,6,7], false], 
-       [[0,100],"我要填坑,\\{还有%s天!\\}",[8], true], 
-       [[0,200],"换个行看看吧╮(╯▽╰)╭\n再换个行\n变量的值:%s",[9]], 
-   
- #=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+# 
- #------------------------------------------------------------------------------# 
- #                               请勿跨过这块区域                                # 
- #------------------------------------------------------------------------------# 
- #+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=# 
-       "close the array" 
-     ] # close the array 
-     Var.pop 
-     Var.each_with_index{|v, i| Var[i][3] = true if v[3].nil?} 
-   end 
- end 
- #============================================================================== 
- # ■ Window_MoVarShow 
- #============================================================================== 
- class Window_MoVarShow < Window_Base 
-   #-------------------------------------------------------------------------- 
-   # ● 初始化 
-   #-------------------------------------------------------------------------- 
-   def initialize(x, y, opa, fmt, *varid) 
-     @fmt = fmt 
-     @varid = varid 
-     @vars = [] 
-     @varid.each_with_index{|id, index| @vars[index] = $game_variables[id]} 
-     super(x, y, *window_size) 
-     self.openness = 0 
-     self.opacity = opa ? 255 : 0 
-     refresh 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 获取窗口合适的大小 
-   #-------------------------------------------------------------------------- 
-   def window_size 
-     temp_win = Window_Base.new(Graphics.width, 0, Graphics.width, 1) 
-     temp_win.reset_font_settings 
-     sr = temp_win.convert_escape_characters(sprintf(@fmt, *@vars)) 
-     wd = 0 
-     pos = {:x =>0, :y =>0, :new_x =>0, :height => temp_win.calc_line_height(sr)} 
-     sr.each_line do |s| 
-       s.gsub!(/[\n]/){""} 
-       temp_win.process_character(s.slice!(0, 1), s, pos) until s.empty? 
-       wd = [pos[:x], wd].max 
-       pos[:x] = pos[:new_x] 
-       pos[:y] += pos[:height] 
-       pos[:height] = temp_win.calc_line_height(s) 
-     end 
-     temp_win.dispose 
-     [wd + standard_padding * 2, pos[:y] + standard_padding * 2] 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 更新 
-   #-------------------------------------------------------------------------- 
-   def update 
-     super 
-     if Smomo::VarWin::SWI == 0 || $game_switches[Smomo::VarWin::SWI] 
-       open if close? 
-       refresh if $game_map.need_refresh 
-     else 
-       close if open? 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 刷新 
-   #-------------------------------------------------------------------------- 
-   def refresh 
-     contents.clear 
-     @varid.each_with_index{|id, index| @vars[index] = $game_variables[id]} 
-     self.move(self.x, self.y, *window_size) 
-     draw_text_ex(0, 0, sprintf(@fmt, *@vars)) 
-   end 
- end 
- #============================================================================== 
- # ■ Scene_Map 
- #============================================================================== 
- class Scene_Map 
-   #-------------------------------------------------------------------------- 
-   # ● 生成所有窗口 
-   #-------------------------------------------------------------------------- 
-   alias :mo_241e43c6451d79ce81a94bc0b22c3ea5_caw :create_all_windows 
-   def create_all_windows 
-     mo_241e43c6451d79ce81a94bc0b22c3ea5_caw 
-     create_mo_var_show_window 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 生成变量窗口 
-   #-------------------------------------------------------------------------- 
-   def create_mo_var_show_window 
-     @mo_var_show_window = [] 
-     Smomo::VarWin::Var.each_with_index do |((x, y), fmt, vars, opa), id| 
-       @mo_var_show_window[id] = Window_MoVarShow.new(x, y, opa, fmt, *vars) 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 更新画面 
-   #-------------------------------------------------------------------------- 
-   alias :mo_241e43c6451d79ce81a94bc0b22c3ea5_update :update 
-   def update 
-     update_mo_var_show_window 
-     mo_241e43c6451d79ce81a94bc0b22c3ea5_update  
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 更新变量窗口 
-   #-------------------------------------------------------------------------- 
-   def update_mo_var_show_window 
-     @mo_var_show_window.each{|win| win.update} 
-   end 
- end