Project1

标题: 请问大佬们有没有切换地图显示地图名称的脚本呀 [打印本页]

作者: 霞露零    时间: 2024-8-10 17:54
标题: 请问大佬们有没有切换地图显示地图名称的脚本呀
我是纯小白,刚接触这个软件,就是像口袋妖怪那样的,到某个地图就弹出一个『xx市』这样的
感谢大佬们解答
作者: 魔法丶小肉包    时间: 2024-8-10 23:37
用事件做,显示图片,并行处理,显示完之后暂时消除事件(不要用独立开关),然后把xx市画到图片上去就好了
作者: 海胆泡面    时间: 2024-8-11 02:02
是这个吗 在很久以前的老游戏里面找到的一个脚本

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

作者: 霞露零    时间: 2024-8-12 12:16
海胆泡面 发表于 2024-8-11 02:02
是这个吗 在很久以前的老游戏里面找到的一个脚本

#==================================================== ...

谢谢大佬!!
作者: 霞露零    时间: 2024-8-12 12:17
魔法丶小肉包 发表于 2024-8-10 23:37
用事件做,显示图片,并行处理,显示完之后暂时消除事件(不要用独立开关),然后把xx市画到图片上去就好了 ...

谢谢大佬支招,我一开始也想用事件做但感觉都要做一遍太麻烦2333
作者: 契约师Vi    时间: 2024-8-15 22:13
可以搜索b站有范例包 还带自带背景图片 【RPG Maker XP 】地名背景工程




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