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 编辑
用事件附加状态时好做,解除状态时就比较麻烦。
#==============================================================================
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
#==============================================================================
复制代码
作者:
alaga1119
时间:
2018-3-2 13:17
脸图是指战斗时的
最后决定用事件解决了
原本想说用脚本比较轻鬆
仔细想想脚本越少越好
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1