设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2383|回复: 10
打印 上一主题 下一主题

[已经解决] 地图名显示脚本报错,请问可以帮我看看吗

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
跳转到指定楼层
1
发表于 2012-12-14 21:57:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 wangyu950208 于 2012-12-21 14:20 编辑

#==============================================================================
# 跳转地图时显示地图名 by 沉影不器(修改by银翼)
#------------------------------------------------------------------------------
# 功能: 在初进地图时,渐显地图名,随后渐隐
#       对于不需要显示地图名的地图,请在地图名里添加字符"@"

#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
  #-------------------------------------------------------------------

-------
  # ● 参数
  #--------------------------------------------------------------------------
  # 基本设定
  MAX_OPACITY = 212                      # 最大不透明度
  SHOW_COUNT = 120                       # 显示时间(均以帧为单位)
  TRANS_COUNT = 60                       # 渐变时间
  NAME_WIN_WIDTH = 192                   # 名称窗体宽度
  NAME_WIN_HEIGHT = 56                   # 名称窗体高度
  
  # 美化选项
  FONT_SIZE = 20                         # 名称字体大小
  FONT_COLOR = Color.new(255,255,255)    # 名称字体颜色
  FONT_SHADOW = true                     # 名称字体是否描绘阴影
  SKIN = "Window"                    # 名称窗体自定义皮肤(空字符时隐藏窗体)
  ANIMATION_ID = 32                      # 显示名称时的动画 ID(0以下为无动画)
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias ini initialize
  def initialize
    # 获取地图名
    name = get_map_name($game_map.map_id)
    if $game_temp.old_map_name != name
      $game_temp.old_map_name = name
      unless name.include? "@"
        create_name_window
      end
    end
    ini
  end
  #--------------------------------------------------------------------------
  # ○ 生成名窗体
  #--------------------------------------------------------------------------
  def create_name_window
    # 初始化参数
    @show_count = SHOW_COUNT
    @trans_count_1 = TRANS_COUNT
    @trans_count_2 = TRANS_COUNT
    animation_id = get_animation_id($game_map.map_id)
    animation_id = ANIMATION_ID if animation_id <= 0
    x = (Graphics.width - NAME_WIN_WIDTH)/2
    y = (Graphics.height - NAME_WIN_HEIGHT)/2
    # 生成窗体
    @name_window = Window_Base.new(x, y, NAME_WIN_WIDTH, NAME_WIN_HEIGHT)
    @name_window.windowskin = Cache.system(SKIN)
    @name_window.contents.font.size = FONT_SIZE
    @name_window.contents.font.color = FONT_COLOR
    @name_window.contents.font.shadow = FONT_SHADOW
    @name_window.viewport = @viewport3
    @name_window.opacity = 0
    @name_window.contents_opacity = 0
    # 地图名
    text = $game_temp.old_map_name
    @name_window.contents.draw_text(0,0,NAME_WIN_WIDTH-32,FONT_SIZE+4,text,1)
  end
  #--------------------------------------------------------------------------
  # ○ 获取地图名
  #     map_id : 地图 ID
  #--------------------------------------------------------------------------
  def get_map_name(map_id)
    mapinfo = load_data("Data/MapInfos.rvdata")
    result = mapinfo[map_id].name
    return result.split(/,/)[0].split(/_/)[0]
  end
  #--------------------------------------------------------------------------
  # ○ 获取动画 ID
  #     map_id : 地图 ID
  #--------------------------------------------------------------------------
  def get_animation_id(map_id)
    mapinfo = load_data("Data/MapInfos.rvdata")
    result = mapinfo[map_id].name
    return result.split(/,/)[0].split(/_/)[1].to_i
  end
  #--------------------------------------------------------------------------
  # ○ 更新名窗体
  #--------------------------------------------------------------------------
  def update_name_window
    return if @name_window == nil
    # 已关闭时不需更新
    return unless @name_window.visible
    # 更新动画
    # 渐现
    if @trans_count_1 >= 0
      @trans_count_1 -= 1
      @name_window.opacity += MAX_OPACITY/TRANS_COUNT
      @name_window.contents_opacity += MAX_OPACITY/TRANS_COUNT
    end
    # 显示时间计数
    if @show_count >=0
      @show_count -= 1
    end
    # 渐隐
    if @show_count <= 0
      if @trans_count_2 > 0
        @trans_count_2 -= 1
        @name_window.opacity -= MAX_OPACITY/TRANS_COUNT
        @name_window.contents_opacity -= MAX_OPACITY/TRANS_COUNT
      end
      if @trans_count_2 <= 0
        @name_window.visible = false
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  alias old_dispose dispose
  def dispose
    old_dispose
    return if @name_window == nil
    @name_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  alias old_update update
  def update
    old_update
    update_name_window
  end
end

#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :old_map_name        # 背景位图
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias ini initialize
  def initialize
    ini
    @old_map_name = ""
  end
end







说是149行(倒数第四行)有问题,求指导。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
2
 楼主| 发表于 2012-12-14 22:42:43 | 只看该作者
刚研究了一下,应该是截图存档的脚本和地图名显示的有冲突,求解决方法
回复 支持 反对

使用道具 举报

Lv1.梦旅人

哆啦菌

梦石
0
星屑
46
在线时间
795 小时
注册时间
2010-7-24
帖子
3800
3
发表于 2012-12-14 23:03:12 | 只看该作者
工程在哪里
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
4
 楼主| 发表于 2012-12-15 19:13:38 | 只看该作者
fxwd 发表于 2012-12-14 23:03
工程在哪里

额,怎么发大于一兆的东西呢?

点评

那等我传一下  发表于 2012-12-15 19:24
网盘或者分包……  发表于 2012-12-15 19:16
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
5
 楼主| 发表于 2012-12-15 20:18:20 | 只看该作者
fxwd 发表于 2012-12-14 23:03
工程在哪里

范例

麻烦大家帮忙看看
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
6
 楼主| 发表于 2012-12-15 20:19:13 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
7
 楼主| 发表于 2012-12-15 21:00:51 | 只看该作者
需要审核。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
8
 楼主| 发表于 2012-12-16 10:45:55 | 只看该作者
%http:%//pan.baidu.com%/share/link?shareid=173030&uk=2753978404%
把%去掉,麻烦各位帮帮忙
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
26 小时
注册时间
2012-11-17
帖子
18
9
 楼主| 发表于 2012-12-20 11:45:13 | 只看该作者
拜托帮帮忙啊各位大神,没人知道吗
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
10
发表于 2012-12-20 14:07:29 | 只看该作者
其实,还有别的地名显示脚本可以用,而且是美化程度更好的。
  1. #===============================================================================
  2. # MOG_Location_Name_VX V1.0            
  3. #===============================================================================
  4. # By Moghunter       汉化:火鸡三毛老大
  5. #===============================================================================
  6. module MOG
  7. #地图名字体.
  8. MPFONT = "Georgia"
  9. #------------------------------------------------
  10. #消失 ON/OFF(True - False).
  11. MPNMFD = true
  12. #------------------------------------------------
  13. #窗口消失时间.
  14. MPNMTM = 20
  15. #------------------------------------------------
  16. #窗口提示位置.
  17. # 0 = 左上角.
  18. # 1 = 左下角.
  19. # 2 = 右上角.
  20. # 3 = 右下角.
  21. MPNMPS = 0
  22. #------------------------------------------------
  23. # 关闭开启显示提示(ID).
  24. WM_SWITCH_VIS_DISABLE = 50
  25. end
  26. #------------------------------------------------
  27. ###############
  28. # Game_System #
  29. ###############
  30. class Game_System
  31. attr_accessor :fdtm
  32. attr_accessor :mpnm_x
  33. attr_accessor :mpnm_y
  34. alias mog_vx06_initialize initialize
  35. def initialize
  36. mog_vx06_initialize
  37. @fdtm = 255 + 35 * MOG::MPNMTM
  38. if MOG::MPNMPS == 0
  39. @mpnm_x = -320
  40. @mpnm_y = 0
  41. elsif MOG::MPNMPS == 1
  42. @mpnm_x = -300
  43. @mpnm_y = 320
  44. elsif MOG::MPNMPS == 2
  45. @mpnm_x = 640
  46. @mpnm_y = 0
  47. else
  48. @mpnm_x = 640
  49. @mpnm_y = 320
  50. end  
  51. end
  52. def mpnm_x
  53. return @mpnm_x
  54. end
  55. def mpnm_y
  56. return @mpnm_y
  57. end
  58. def fdtm
  59. if @fdtm <= 0
  60. @fdtm = 0
  61. end
  62. return @fdtm
  63. end
  64. end
  65. ############
  66. # Game_Map #
  67. ############
  68. class Game_Map
  69. attr_reader   :map_id  
  70. def mpname
  71. $mpname = load_data("Data/MapInfos.rvdata")
  72. $mpname[@map_id].name
  73. end
  74. end
  75. ###############
  76. # Window Base #
  77. ###############
  78. class Window_Base < Window
  79. def nd_mapic
  80. mapic = Cache.system("")     
  81. end  
  82. def draw_mpname(x,y)
  83. mapic = Cache.system("Mpname") rescue nd_mapic   
  84. cw = mapic.width  
  85. ch = mapic.height
  86. src_rect = Rect.new(0, 0, cw, ch)
  87. self.contents.blt(x , y - ch + 65, mapic, src_rect)
  88. self.contents.font.name = MOG::MPFONT
  89. self.contents.font.size = 22
  90. self.contents.font.bold = true
  91. self.contents.font.shadow = true
  92. self.contents.font.color = Color.new(0,0,0,255)
  93. self.contents.draw_text(x +35, y + 30, 110, 32, $game_map.mpname.to_s,1)
  94. self.contents.font.color = Color.new(255,255,255,255)
  95. self.contents.draw_text(x +35, y + 30, 110, 32, $game_map.mpname.to_s,1)
  96. end
  97. end
  98. ##########
  99. # Mpname #
  100. ##########
  101. class Mpname < Window_Base
  102. def initialize(x , y)
  103. super($game_system.mpnm_x , $game_system.mpnm_y, 250, WLH + 70)
  104. self.opacity = 0
  105. refresh
  106. end
  107. def refresh
  108. self.contents.clear
  109. draw_mpname(0,0)   
  110. end
  111. end
  112. #############
  113. # Scene_Map #
  114. #############
  115. class Scene_Map
  116. alias mog_vx06_start start
  117. def start
  118. @mpnm = Mpname.new($game_system.mpnm_x, $game_system.mpnm_y)
  119. @mpnm.contents_opacity = $game_system.fdtm
  120. if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == false
  121. @mpnm.visible = true
  122. else
  123. @mpnm.visible = false  
  124. end  
  125. mog_vx06_start  
  126. end  
  127. alias mog_vx06_terminate terminate
  128. def terminate
  129. mog_vx06_terminate
  130. @mpnm.dispose
  131. end
  132. alias mog_vx06_update update
  133. def update
  134. mog_vx06_update  
  135. location_name_update
  136. end
  137. def location_name_update
  138. $game_system.mpnm_x = @mpnm.x
  139. $game_system.mpnm_y = @mpnm.y
  140. if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == true or $game_system.fdtm <= 0
  141. @mpnm.visible = false  
  142. else
  143. @mpnm.visible = true
  144. end
  145. if MOG::MPNMPS == 0 or MOG::MPNMPS == 1
  146. if @mpnm.x < 0
  147. @mpnm.x += 4
  148. elsif @mpnm.x >= 0
  149. @mpnm.x = 0
  150. end   
  151. else
  152. if @mpnm.x > 300
  153. @mpnm.x -= 5
  154. elsif @mpnm.x <= 300
  155. @mpnm.x = 300
  156. end     
  157. end
  158. @mpnm.contents_opacity = $game_system.fdtm
  159. if MOG::MPNMFD == true
  160. $game_system.fdtm -= 3
  161. end
  162. end
  163. alias mog_vx06_update_transfer_player update_transfer_player
  164. def update_transfer_player
  165. return unless $game_player.transfer?
  166. @mpnm.contents_opacity = 0
  167. mog_vx06_update_transfer_player
  168. if MOG::MPNMPS == 0
  169. $game_system.mpnm_x = -340
  170. $game_system.mpnm_y = 0
  171. elsif MOG::MPNMPS == 1
  172. $game_system.mpnm_x = -340
  173. $game_system.mpnm_y = 320
  174. elsif MOG::MPNMPS == 2
  175. $game_system.mpnm_x = 640
  176. $game_system.mpnm_y = 0
  177. else
  178. $game_system.mpnm_x = 640
  179. $game_system.mpnm_y = 320
  180. end  
  181. @mpnm.y = $game_system.mpnm_y
  182. @mpnm.x = $game_system.mpnm_x
  183. $game_system.fdtm = 235 + 60 * MOG::MPNMTM
  184. @mpnm.refresh
  185. end
  186. end
  187. $mogscript = {} if $mogscript == nil
  188. $mogscript["location_name_vx"] = true
复制代码
使用方法很简单,趁着无聊,顺便帮你做一个背景图片。
自己挑挑里面的坐标把显示位置弄合适就行了。
图片名"mpname",放Graphics/System里

点评

先去试试,多谢前辈  发表于 2012-12-21 14:12
有问题那就发帖子,附带最简无错工程,然后@P叔帮你看看。不要发悬赏帖!喵!  发表于 2012-12-20 14:25
撞车,打错  发表于 2012-12-20 14:12

评分

参与人数 1星屑 +1 收起 理由
怪蜀黍 + 1 装车

查看全部评分

这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 04:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表