查看: 2406|回复: 2

[已经解决] 如何让存档界面不显示人物行走图?

[复制链接]
梦石
0
星屑
50
在线时间
58 小时
注册时间
2012-2-18
回帖
6
发表于 2013-4-1 03:41:06 | 显示全部楼层 |阅读模式

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

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

×
在存档界面里显示其他图片 例如角色的战斗图
该怎么做

梦石
0
星屑
407
在线时间
1291 小时
注册时间
2013-1-12
回帖
3349

贵宾

发表于 2013-4-1 03:57:54 | 显示全部楼层
這也要看你要把战斗图放哪 原本的跟本放不下
要去改界面坐標 一大推的   也許需要整個全新的界面? (也許)
要善用搜索功能    還有VXACE沒有战斗图這種東西
先想好再問吧.......  那叫 立绘
找不到現有資源就找別人  
@j433463   

点评

= =||小二,你这回复………………(你赢了!  发表于 2013-4-3 21:11
我其实不喜欢也不建议存档用战斗图的,脸图倒还勉强。  发表于 2013-4-1 18:44
LBQ
其实咱发现还不如重写一个存档界面呢OTL。。。。。。直接美化算了。。。。(用不了VA真可怕。。没法写脚本啊。。)  发表于 2013-4-1 07:31

回复

使用道具 举报

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-4-1 17:27:22 | 显示全部楼层
其实在国外素材还真的叫战斗图,虽然我个人也觉得那与立绘的描绘方法一样,但战斗图这个名称应该是延用以前版本的叫法,拿来与一般立绘图作为区分似乎也不错。

如果要在原来的存档界面放战斗图,是放不下的,不过,也不需要放得下,其实描绘的图超过描绘区域的部份只是看不到而已,在区域内的图还是看得到的,像这样:

未命名.PNG

但是,注意到有什么不对的地方吗?没错,战斗图有重覆!

因为默认的存档,它的 header 内容中只有行走图档案名 character_name,行走图第几组 Character_index, 存档时游戏时间 playtime 三项,

没有角色 id 资料,要怎么知道显示哪个角色的战斗图?上面的范例是直接取 Character_index 来显示,当 character_name 不同,这肯定会出错的,

那么,就要在存档时,加上参战角色 id,也就是队伍的前四位,并且在读取存档的 header 画战斗图时,用角色 id 来取图档。


知道这些之后,可以开始改脚本了,我们尽可能不要删掉原来的脚本内容,只把它注释起来,以保留恢复的可能性。

首先,最重要的存档时档头 header 加上参战成员的 id 资料,先到 Game_Party 脚本,这是处理队员的类,所以在这儿要加上存档档案显示用的角色图像讯息,

原本是  def characters_for_savefile 行走图,我们要加一个战斗图的,所以在它的 end 下加一段:

[pre lang="ruby" line="1"]  #--------------------------------------------------------------------------
  # ● 存档档案显示用的角色战斗图像讯息
  #--------------------------------------------------------------------------
  def battlers_for_savefile
    battle_members.collect do |actor|
      [actor.name, actor.id]
    end
  end
[/pre]

这样,会存入角色的名称和ID,为什么要存两个?其实只存一个 ID 也可以,但假如您的战斗图用角色名称当作档名时,有角色名称就方便了,预作另一种选择而已。

跟着,要打开 DataManager 脚本,找到生成存档的档头资料   def self.make_save_header,整个改成这样:

[pre lang="ruby" line="1"]  #--------------------------------------------------------------------------
  # ● 生成存档的头资料
  #--------------------------------------------------------------------------
  def self.make_save_header
    header = {}
    header[:characters] = $game_party.characters_for_savefile
    header[:battlers] = $game_party.battlers_for_savefile           #多了这一行
    header[:playtime_s] = $game_system.playtime_s
    header
  end
[/pre]

改好存档,这么一来,游戏存档时就会增附参战成员的名称与ID,读取档头也可以知道成员名称和ID了。

那再来,就是怎么把存读档画面的行走图改换成战斗图,打开 Window_SaveFile 脚本,找到绘制队伍角色 def draw_party_characters(x, y) 那一段,在它的 end 下方加一段:

[pre lang="ruby" line="1"]  #--------------------------------------------------------------------------
  # ● 绘制队伍角色战斗图
  #--------------------------------------------------------------------------
  def draw_party_battler
    cw = 0
    header = DataManager.load_header(@file_index)
    return unless header
    header[:battlers].each_with_index do |data, i|
      p header[:battlers]
      bitmap = Cache.load_bitmap("Graphics/Party/", "Battler_#{data[1]}")
      rect = Rect.new(0, 0, bitmap.width, bitmap.height)
      contents.blt(cw, 0, bitmap, rect, 255)
      bitmap.dispose
      cw += 100 #每画一张战斗图后,下一张图 x 位置加 100,也就是每 100 距离画一张战斗图
    end
  end
[/pre]

然后,在重新整理 def refresh 那边,将 draw_party_characters(152, 58) 注释起来,这就是绘行走图的,在它的下方加一行:

[pre lang="ruby" line="1"]draw_party_battler[/pre]

好,存档,脚本改到这儿就结束了。

但,还有一个工作要做,战斗图!对,战斗图我预设是另外放在 Graphics/Party 下的,默认没有这个 Party 资料夹,所以要自己建一个,再把战斗图放进去,

战斗图我脚本中预设的是以 ID 为档名,加上前缀 battler_ 所以档名像这样:

[pre lang="ruby" line="1"]battler_1.png
battler_2.png
battler_3.png[/pre]

如果您想用角色名称当作档名,可以把上面脚本中的 "Battler_#{data[1]}" 删掉,改成 data[0],并且您的战斗图档名格式为:

[pre lang="ruby" line="1"]艾里克.png
阿奈思特.png
瑞克.png[/pre]

测试截图:

未命名.PNG


大致上,改法就是如此,至于战斗图的排列位置和距离,这您自己去按自己喜好改吧。

讲完,收工。

点评

認可答案  发表于 2013-4-2 01:24

评分

参与人数 1梦石 +1 收起 理由
Mic_洛洛 + 1 精品文章

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部