Project1

标题: 地图显示名称和菜单显示地图名冲突菜单地点不显示 [打印本页]

作者: 契约师Vi    时间: 2022-12-19 14:18
标题: 地图显示名称和菜单显示地图名冲突菜单地点不显示

RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5. #==============================================================================
  6. # ■ 地图名显示脚本
  7. #     by Yuee
  8. #------------------------------------------------------------------------------
  9. # 在Main的上方插入一个页,将本脚本复制到那页中即可
  10. #==============================================================================
  11.  
  12. #==============================================================================
  13. # ■ Window_MapName
  14. #------------------------------------------------------------------------------
  15. #  显示地图名字的窗口。
  16. #==============================================================================
  17.  
  18. class Window_MapName < Window_Base
  19.   #--------------------------------------------------------------------------
  20.   # ● 类常量定义
  21.   #--------------------------------------------------------------------------
  22.  
  23.   # 暂时屏蔽用的开关
  24.   SWITCH = 35
  25.  
  26.   # 窗口位置设定
  27.   NAME_X = 380      # 矩形左上顶点X坐标
  28.   NAME_Y = 20       # 矩形左上顶点Y坐标
  29.   NAME_W = 220      # 矩形宽
  30.   NAME_H = 60       # 矩形高
  31.  
  32.   # 显示时间设置
  33.   SHOW_TIME_0 = 10  # 地图名出现前等待的帧数
  34.   SHOW_TIME_1 = 10  # 地图名从不可见变成可见的帧数
  35.   SHOW_TIME_2 = 34  # 地图名完全可见的帧数
  36.   SHOW_TIME_3 = 16  # 地图名从可见变成不可见的帧数
  37.  
  38.   # 完全可见时的透明度设置
  39.   OPACITY_1 = 244   # 边框
  40.   OPACITY_2 = 144   # 背景
  41.   OPACITY_3 = 255   # 文字
  42.  
  43.   # 地图名字的颜色
  44.   TEXT_COLOR = Color.new(255, 255, 255, 255)
  45.  
  46.   #--------------------------------------------------------------------------
  47.   # ● 初始化状态
  48.   #--------------------------------------------------------------------------
  49.   def initialize
  50.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  51.     # 初始化窗口透明度
  52.     self.opacity = 0
  53.     self.back_opacity = 0
  54.     self.contents_opacity = 0
  55.     self.contents = Bitmap.new(width - 32, height - 32)
  56.     # 剩余帧数初始化
  57.     @show_time = 0
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 输出文字
  61.   #--------------------------------------------------------------------------
  62.   def setname   
  63.     unless $game_switches[SWITCH]==true
  64.       # 获取地图ID
  65.       newid = $game_map.map_id
  66.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  67.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  68.       if newid != @id
  69.         @id = newid
  70.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  71.       # 剩余帧数为0是时,全部窗口透明
  72.       elsif @show_time < 1
  73.         self.opacity = 0
  74.         self.back_opacity = 0
  75.         self.contents_opacity = 0
  76.         return
  77.       end      
  78.       self.contents.clear
  79.       self.contents.font.color = TEXT_COLOR
  80.       # 描绘地图名
  81.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
  82.       # 根本帧数设定窗口透明度
  83.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  84.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  85.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  86.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  87.       else
  88.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  89.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  90.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  91.       end      
  92.       @show_time -= 1
  93.     end
  94.   end
  95. end
  96.  
  97. #==============================================================================
  98. # ■ Scene_Map
  99. #------------------------------------------------------------------------------
  100. #  处理地图画面的类。(追加定义)
  101. #==============================================================================
  102.  
  103. class Scene_Map
  104.   alias smn_main main
  105.   def main
  106.     @mapname = Window_MapName.new
  107.     smn_main
  108.     @mapname.dispose
  109.   end
  110.  
  111.   alias smn_update update
  112.   def update
  113.     @mapname.setname
  114.     smn_update
  115.   end
  116. end
  117.  
  118. #==============================================================================
  119. # ■ Scene_Title
  120. #------------------------------------------------------------------------------
  121. #  处理标题画面的类。(追加定义)
  122. #==============================================================================
  123.  
  124. class Scene_Title
  125.   alias smn_main main
  126.   def main
  127.     # 读取地图信息文件
  128.     $data_mapinfos = load_data("Data/MapInfos.rxdata")
  129.     smn_main
  130.   end
  131. end
  132.  
  133. #==============================================================================
  134. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息


RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_MapName
  3. # Location Script by Sunrunner
  4. #------------------------------------------------------------------------------
  5. #  メニュー画面で歩数を表示するウィンドウです。
  6. #==============================================================================
  7.  
  8. class Window_MapName < Window_Base
  9. #--------------------------------------------------------------------------
  10. # ● オブジェクト初期化
  11. #--------------------------------------------------------------------------
  12. def initialize
  13.   super(0, 0, 160, 70)
  14.   self.contents = Bitmap.new(width - 32, height - 32)
  15.   self.contents.font.name = $fontface
  16.    self.contents.font.size = $fontsize
  17.   refresh
  18. end
  19. #--------------------------------------------------------------------------
  20. # ● リフレッシュ
  21. #--------------------------------------------------------------------------
  22. def refresh
  23.   self.contents.clear
  24.   self.contents.font.color = system_color
  25.   self.contents.draw_text(0, -10, 120, 32, "Location")
  26.   self.contents.font.color = normal_color
  27.   $maps = load_data("Data/MapInfos.rxdata")
  28. @map_id = $game_map.map_id
  29. @currentmap = $maps[@map_id].name
  30. self.contents.font.size = 15
  31. self.contents.draw_text(40,-8,440,64,@currentmap)
  32.  
  33. end
  34. end

作者: qq634488405    时间: 2022-12-19 15:54
两个脚本都定义Window_MapName当然会冲突,改名并修改脚本




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1