赞 | 669 |
VIP | 62 |
好人卡 | 144 |
积分 | 334 |
经验 | 110435 |
最后登录 | 2024-11-1 |
在线时间 | 5108 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 33440
- 在线时间
- 5108 小时
- 注册时间
- 2012-11-19
- 帖子
- 4878
|
本帖最后由 芯☆淡茹水 于 2018-3-2 12:40 编辑
用事件附加状态时好做,解除状态时就比较麻烦。
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # 1,角色备注:<StateFace:状态ID,脸图文件名,脸图序号> #=>不要留空格!
- # 例:某角色在 10 号状态时显示脸图 Actor2 ,序号是 3 ,
- # 备注:<StateFace:10,Actor2,3>
- #
- # 2,可多个状态备注。有多个状态时,显示脸图依照状态优先度。
- #
- # 3,游戏中的增减: 使用 事件-脚本 对 $game_actors 或 $game_party.members 的
- # 状态脸图记录进行增减。
- # 增加:add_face_data(data) # data 格式 :[状态ID,脸图文件名,脸图序号]
- # 例:增加 2 号角色的 状态脸图 :
- # $game_actors[2].add_face_data([5,"Face",1])
- #
- # 删除:del_face_data(state_id) # state_id 所对应删除的 状态ID。
- # 例:删除 4 号角色的 12 号状态的状态脸图记录:
- # $game_actors[4].del_face_data(12)
- #--------------------------------------------------------------------------
- alias xr_face_setup setup
- def setup(actor_id)
- xr_face_setup(actor_id)
- setup_face_data
- end
- #--------------------------------------------------------------------------
- def setup_face_data
- @fs_data = actor.note.scan(/<StateFace:(\S+)>/).map{|s| s[0].split(",")}
- @fs_data.each{|s| s[0] = s[0].to_i; s[2] = s[2].to_i}
- end
- #--------------------------------------------------------------------------
- def add_face_data(data)
- data.size == 3 && !@fs_data.any?{|s| s[0] == data[0]} && @fs_data << data
- end
- #--------------------------------------------------------------------------
- def del_face_data(state_id)
- @fs_data.delete(@fs_data.find{|s| s[0] == state_id})
- end
- #--------------------------------------------------------------------------
- def face_name
- return has_face_state? ? state_face(1) : @face_name
- end
- #--------------------------------------------------------------------------
- def face_index
- return has_face_state? ? state_face(2) : @face_index
- end
- #--------------------------------------------------------------------------
- def has_face_state?
- return face_states.any?{|a| state?(a)}
- end
- #--------------------------------------------------------------------------
- def face_states
- return @fs_data.map{|s| s[0]}
- end
- #--------------------------------------------------------------------------
- def prt_state
- return @states.find{|i| face_states.include?(i)}
- end
- #--------------------------------------------------------------------------
- def state_face(type)
- return @fs_data.find{|s| s[0] == prt_state}[type]
- end
- end
- #==============================================================================
复制代码 |
|