Project1

标题: VX版地图名显示+修改 [打印本页]

作者: mabingjun626    时间: 2013-2-2 17:06
标题: VX版地图名显示+修改
本帖最后由 feizhaodan 于 2013-2-2 21:11 编辑
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ 地图名显示脚本
  6. #     by Yuee
  7. #   修改 龙魂 Q767444342
  8. #------------------------------------------------------------------------------
  9. # 在Main的上方插入一个页,将本脚本复制到那页中即可
  10. #==============================================================================

  11. #==============================================================================
  12. # ■ Window_MapName
  13. #------------------------------------------------------------------------------
  14. #  显示地图名字的窗口。
  15. #==============================================================================

  16. class Window_MapName < Window_Base
  17.   #--------------------------------------------------------------------------
  18.   # ● 类常量定义
  19.   #--------------------------------------------------------------------------

  20.   # 暂时屏蔽用的开关
  21.   SWITCH = 35
  22.   
  23.   # 窗口位置设定
  24.   NAME_X = 210      # 矩形左上顶点X坐标
  25.   NAME_Y = 20       # 矩形左上顶点Y坐标
  26.   NAME_W = 220      # 矩形宽
  27.   NAME_H = 60       # 矩形高
  28.   
  29.   # 显示时间设置
  30.   SHOW_TIME_0 = 10  # 地图名出现前等待的帧数
  31.   SHOW_TIME_1 = 15  # 地图名从不可见变成可见的帧数
  32.   SHOW_TIME_2 = 40  # 地图名完全可见的帧数
  33.   SHOW_TIME_3 = 15  # 地图名从可见变成不可见的帧数
  34.   
  35.   # 完全可见时的透明度设置
  36.   OPACITY_1 = 244   # 边框
  37.   OPACITY_2 = 144   # 背景
  38.   OPACITY_3 = 255   # 文字
  39.   
  40.   # 地图名字的颜色
  41.   TEXT_COLOR = Color.new(255, 255, 255, 255)
  42.    
  43.   #--------------------------------------------------------------------------
  44.   # ● 初始化状态
  45.   #--------------------------------------------------------------------------
  46.   def initialize
  47.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  48.     # 初始化窗口透明度
  49.     self.opacity = 0
  50.     self.back_opacity = 0
  51.     self.contents_opacity = 0
  52.     self.contents = Bitmap.new(width - 32, height - 32)
  53.     # 剩余帧数初始化
  54.     @show_time = 0
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 输出文字
  58.   #--------------------------------------------------------------------------
  59.   def setname   
  60.     unless $game_switches[SWITCH]==true
  61.       # 获取地图ID
  62.       newid = $game_map.map_id
  63.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  64.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  65.       if newid != @id
  66.         @id = newid
  67.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  68.       # 剩余帧数为0是时,全部窗口透明
  69.       elsif @show_time < 1
  70.         self.opacity = 0
  71.         self.back_opacity = 0
  72.         self.contents_opacity = 0
  73.         return
  74.       end      
  75.       self.contents.clear
  76.       self.contents.font.color = TEXT_COLOR
  77.       # 描绘地图名
  78.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
  79.       # 根本帧数设定窗口透明度
  80.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  81.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  82.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  83.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  84.       else
  85.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  86.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  87.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  88.       end      
  89.       @show_time -= 1
  90.     end
  91.   end
  92. end

  93. #==============================================================================
  94. # ■ Scene_Map
  95. #------------------------------------------------------------------------------
  96. #  处理地图画面的类。(追加定义)
  97. #==============================================================================

  98. class Scene_Map
  99.   alias smn_main main
  100.   def main
  101.     @mapname = Window_MapName.new
  102.     smn_main
  103.     @mapname.dispose
  104.   end
  105.   
  106.   alias smn_update update
  107.   def update
  108.     @mapname.setname
  109.     smn_update
  110.   end
  111. end

  112. #==============================================================================
  113. # ■ Scene_Title
  114. #------------------------------------------------------------------------------
  115. #  处理标题画面的类。(追加定义)
  116. #==============================================================================

  117. class Scene_Title
  118.   alias smn_main main
  119.   def main
  120.     # 读取地图信息文件
  121.     $data_mapinfos = load_data("Data/MapInfos.rxdata")
  122.     smn_main
  123.   end
  124. end
复制代码
啊~~我做游戏很久很久大约N年了。。今天弄出来的这个脚本。。大家有问题可以来找我。。我随时可以帮助你们哦!!
本人QQ 767444342 。
作者: feizhaodan    时间: 2013-2-2 21:06
确认Yueee是你么。。。
作者: asdbnm166    时间: 2013-12-1 16:39
VX地图后缀不是 rvdata么。。。rxdata。。可不行。。
作者: 紫叶枫魂    时间: 2014-1-1 22:54
C:\Users\Administrator\Desktop
作者: 2424023293    时间: 2014-2-12 22:45
找不到DATA/MapInfos.rxdata文件
作者: ankesu    时间: 2014-8-24 18:20
记得把脚本里的 rxdata 改为 rvdata 就可以用了




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