Project1

标题: 有办法依状态改变脸图吗 [打印本页]

作者: alaga1119    时间: 2018-3-1 20:11
标题: 有办法依状态改变脸图吗
如题

爬过文但是网站好像死了!?

只能发文问问看

有办法吗
作者: Williamnice    时间: 2018-3-1 21:59
是用条件分歧吗?试试看吧,我没试过。
条件分歧:当xxx状态>>更改脸图(我自己瞎想的)
作者: 百里_飞柳    时间: 2018-3-2 10:27
说详细点?
改变的是啥脸图,和状态的关系呢?
公共事件里利用角色存在的状态来进行条件分歧、变更角色脸图?
作者: 芯☆淡茹水    时间: 2018-3-2 10:38
本帖最后由 芯☆淡茹水 于 2018-3-2 12:40 编辑

用事件附加状态时好做,解除状态时就比较麻烦。

  1. #==============================================================================
  2. class Game_Actor < Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   # 1,角色备注:<StateFace:状态ID,脸图文件名,脸图序号>   #=>不要留空格!
  5.   #    例:某角色在 10 号状态时显示脸图 Actor2 ,序号是 3 ,
  6.   #    备注:<StateFace:10,Actor2,3>
  7.   #
  8.   # 2,可多个状态备注。有多个状态时,显示脸图依照状态优先度。
  9.   #
  10.   # 3,游戏中的增减: 使用 事件-脚本 对 $game_actors 或 $game_party.members 的
  11.   #    状态脸图记录进行增减。
  12.   #    增加:add_face_data(data)   # data 格式 :[状态ID,脸图文件名,脸图序号]
  13.   #    例:增加 2 号角色的 状态脸图 :
  14.   #        $game_actors[2].add_face_data([5,"Face",1])
  15.   #
  16.   #    删除:del_face_data(state_id) # state_id 所对应删除的 状态ID。
  17.   #    例:删除 4 号角色的 12 号状态的状态脸图记录:
  18.   #        $game_actors[4].del_face_data(12)
  19.   #--------------------------------------------------------------------------
  20.   alias xr_face_setup setup
  21.   def setup(actor_id)
  22.     xr_face_setup(actor_id)
  23.     setup_face_data
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   def setup_face_data
  27.     @fs_data = actor.note.scan(/<StateFace:(\S+)>/).map{|s| s[0].split(",")}
  28.     @fs_data.each{|s| s[0] = s[0].to_i; s[2] = s[2].to_i}
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   def add_face_data(data)
  32.     data.size == 3 && !@fs_data.any?{|s| s[0] == data[0]} && @fs_data << data
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   def del_face_data(state_id)
  36.     @fs_data.delete(@fs_data.find{|s| s[0] == state_id})
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   def face_name
  40.     return has_face_state? ? state_face(1) : @face_name
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   def face_index
  44.     return has_face_state? ? state_face(2) : @face_index
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def has_face_state?
  48.     return face_states.any?{|a| state?(a)}
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   def face_states
  52.     return @fs_data.map{|s| s[0]}
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   def prt_state
  56.     return @states.find{|i| face_states.include?(i)}
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   def state_face(type)
  60.     return @fs_data.find{|s| s[0] == prt_state}[type]
  61.   end
  62. end
  63. #==============================================================================
复制代码

作者: alaga1119    时间: 2018-3-2 13:17
脸图是指战斗时的

最后决定用事件解决了

原本想说用脚本比较轻鬆

仔细想想脚本越少越好




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