Project1

标题: 为什么用了地图名显示脚本会这样? [打印本页]

作者: 502141070    时间: 2012-9-1 14:06
标题: 为什么用了地图名显示脚本会这样?
本帖最后由 hcm 于 2012-9-25 12:42 编辑

用了这脚本,传送后名字还是在哪?过一会才会消失
这是脚本:
  1. #==============================================================================
  2. # 本脚本来
  3. 自[url]www.66RPG.com[/url],使用和转载请保留此信息
  4. #==============================================================================


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

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

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

  20.   # 暂时屏蔽用的开关
  21.   SWITCH = 3
  22.   
  23.   # 窗口位置设定
  24.   NAME_X = 200      # 矩形左上顶点X坐标
  25.   NAME_Y = 20       # 矩形左上顶点Y坐标
  26.   NAME_W = 220      # 矩形宽
  27.   NAME_H = 60       # 矩形高
  28.   
  29.   # 显示时间设置
  30.   SHOW_TIME_0 = 0  # 地图名出现前等待的帧数
  31.   SHOW_TIME_1 = 10  # 地图名从不可见变成可见的帧数
  32.   SHOW_TIME_2 = 34  # 地图名完全可见的帧数
  33.   SHOW_TIME_3 = 16  # 地图名从可见变成不可见的帧数
  34.   
  35.   # 完全可见时的透明度设置
  36.   OPACITY_1 = -255   # 边框
  37.   OPACITY_2 = 200   # 背景
  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

  125. #==============================================================================
  126. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  127. #==============================================================================
复制代码

捕获.PNG (3.54 KB, 下载次数: 5)

捕获.PNG

作者: 失落的乐章    时间: 2012-9-1 14:10
试试把SHOW_TIME_0加大一点,比如10左右
作者: 502141070    时间: 2012-9-1 14:16
失落的乐章 发表于 2012-9-1 14:10
试试把SHOW_TIME_0加大一点,比如10左右

不行,其他都试过了
作者: 没是的人    时间: 2012-9-1 21:15
本帖最后由 没是的人 于 2012-9-1 21:16 编辑
  1. #_______________________________________________________________________________
  2. # MOG_MPW Map_Name V1.2            
  3. #_______________________________________________________________________________
  4. # By Moghunter      
  5. # http://www.atelier-rgss.com


  6. #_Translated by Tabris Air.______________________________________________________________________________
  7. module MOG
  8. #描绘地图名称的字体名称,记得改成中文字体
  9. MPFONT = "楷体_GB2312"
  10. #是否渐变
  11. MPNMFD = true
  12. #渐变时间(单位秒)
  13. MPNMTM = 10
  14. #显示位置
  15. # 0 = 上方左侧
  16. # 1 = 下方左侧
  17. # 2 = 上方右侧
  18. # 3 = 下方右侧
  19. MPNMPS = 3
  20. # 打开该开关时不显示地名
  21. WM_SWITCH_VIS_DISABLE = 8
  22. end
  23. #_________________________________________________
  24. $mogscript = {} if $mogscript == nil
  25. $mogscript["mpmapname"] = true
  26. ###############
  27. # Game_System #
  28. ###############
  29. class Game_System
  30. attr_accessor :fdtm
  31. attr_accessor :mpnm_x
  32. attr_accessor :mpnm_y
  33. alias mog24_initialize initialize
  34. def initialize
  35. mog24_initialize
  36. @fdtm = 255 + 40 * MOG::MPNMTM
  37. if MOG::MPNMPS == 0
  38. @mpnm_x = -300
  39. @mpnm_y = 0
  40. elsif MOG::MPNMPS == 1
  41. @mpnm_x = -300
  42. @mpnm_y = 380
  43. elsif MOG::MPNMPS == 2
  44. @mpnm_x = 640
  45. @mpnm_y = 0
  46. else
  47. @mpnm_x = 640
  48. @mpnm_y = 380
  49. end  
  50. end
  51. def mpnm_x
  52. return @mpnm_x
  53. end
  54. def mpnm_y
  55. return @mpnm_y
  56. end
  57. def fdtm
  58. if @fdtm <= 0
  59. @fdtm = 0
  60. end
  61. return @fdtm
  62. end
  63. end
  64. ############
  65. # Game_Map #
  66. ############
  67. class Game_Map
  68. attr_reader   :map_id  
  69. def mpname
  70. $mpname = load_data("Data/MapInfos.rxdata")
  71. $mpname[@map_id].name
  72. end
  73. end
  74. ###############
  75. # Window Base #
  76. ###############
  77. class Window_Base < Window
  78. def nd_mapic
  79. mapic = RPG::Cache.picture("")     
  80. end  
  81. def draw_mpname(x,y)
  82. mapic = RPG::Cache.picture("Mpname") rescue nd_mapic   
  83. cw = mapic.width
  84. ch = mapic.height
  85. src_rect = Rect.new(10, 0, cw, ch)
  86. self.contents.blt(x , 10, mapic, src_rect)
  87. self.contents.font.name = MOG::MPFONT
  88. self.contents.font.size = 14
  89. #self.contents.font.color = Color.new(0,0,0,255)
  90. #self.contents.draw_text(x + 76, y + 27, 110, 32, $game_map.mpname.to_s,1)
  91. self.contents.font.color = Color.new(231,206,156,255)
  92. self.contents.draw_text(x + 75, 5, 110, 32, $game_map.mpname.to_s ,1)
  93. end
  94. end
  95. ##########
  96. # Mpname #
  97. ##########
  98. class Mpname < Window_Base
  99. def initialize
  100. super($game_system.mpnm_x, 0, 250, 100)
  101. self.contents = Bitmap.new(width - 32, height - 32)
  102. self.opacity = 0
  103. refresh
  104. end
  105. def refresh
  106. self.contents.clear
  107. draw_mpname(10,-20)   
  108. end
  109. end
  110. #############
  111. # Scene_Map #
  112. #############
  113. class Scene_Map
  114. alias mog24_main main
  115. def main
  116. @mpnm = Mpname.new
  117. @mpnm.contents_opacity = $game_system.fdtm
  118. if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == false
  119. @mpnm.visible = true
  120. else
  121. @mpnm.visible = false  
  122. end  
  123. mog24_main
  124. @mpnm.dispose
  125. end
  126. alias mog24_update update
  127. def update
  128. mog24_update  
  129. $game_system.mpnm_x = @mpnm.x
  130. @mpnm.y = -25
  131. $game_system.mpnm_y = -20
  132. if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == false
  133. if $game_system.fdtm <= 0
  134. @mpnm.visible = false  
  135. else
  136. @mpnm.visible = true  
  137. end
  138. else
  139. @mpnm.visible = false  
  140. end
  141. if MOG::MPNMPS == 0 or MOG::MPNMPS == 1
  142. if @mpnm.x < 0
  143.    @mpnm.x += 8
  144. elsif @mpnm.x >= 0
  145.    @mpnm.x = 0
  146. end   
  147. else
  148. if @mpnm.x > 410
  149.    @mpnm.x -= 8
  150. elsif @mpnm.x <= 410
  151.    @mpnm.x = 410
  152. end     
  153. end
  154. @mpnm.contents_opacity = $game_system.fdtm
  155. if MOG::MPNMFD == true
  156. $game_system.fdtm -= 3
  157. end
  158. end
  159. alias mog24_transfer_player transfer_player
  160. def transfer_player
  161. mog24_transfer_player
  162. if MOG::MPNMPS == 0
  163. $game_system.mpnm_x = -300
  164. $game_system.mpnm_y = 0
  165. elsif MOG::MPNMPS == 1
  166. $game_system.mpnm_x = -300
  167. $game_system.mpnm_y = 0
  168. elsif MOG::MPNMPS == 2
  169. $game_system.mpnm_x = 640
  170. $game_system.mpnm_y = 100
  171. else
  172. $game_system.mpnm_x = 640
  173. $game_system.mpnm_y = 0
  174. end  
  175. @mpnm.y = $game_system.mpnm_y
  176. @mpnm.x = $game_system.mpnm_x
  177. $game_system.fdtm = 255 + 40 * MOG::MPNMTM
  178. @mpnm.refresh
  179. end
  180. end
复制代码
试试这个,记得在Graphics\Pictures文件夹加个背景图片,名字为Mpname
比如这样的

作者: wsj0502    时间: 2012-9-12 10:41
@没是的人你这个只显示 图片,没有显示地图名称啊
作者: wsj0502    时间: 2012-9-12 12:44
wsj0502 发表于 2012-9-12 10:41
@没是的人你这个只显示 图片,没有显示地图名称啊

@没是的人 嗯,可以了,但是为什么有些图的场景切换什么都不显示啊?




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