用法:插入脚本到Main之前
说明:之所以想到做这个系统是因为站上的按键更改领队教程不但无端增加一个全局并行的公共事件,更麻烦的是因为它改变了队伍的次序,在处理战斗事件的强制行动等情况时,会发生不可知的结果.因此做了这个不用改队伍次序就能换领队的插件脚本.领队的更迭会在地图的行走画面上反映出来,利用条件分歧的功能也可以方便的触发领队不同的不同事件
#============================================================================== # 领队更换系统 by SailCat #------------------------------------------------------------------------------ # 添加此脚本后,在地图画面按下X键更换当前的领队。 # 领队更改不会造成战斗队伍、菜单队伍次序的更改。 # 若要在条件分歧中调用领队,请用脚本:$game_party.leader == 序号 # 序号为0-3的值,最大不会超过队伍的角色数目减1。 #============================================================================== class Game_Party #-------------------------------------------------------------------------- # ● 追加实例变量 #-------------------------------------------------------------------------- attr_reader :leader alias sailcat_initialize initialize alias sailcat_setup_starting_members setup_starting_members #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- def initialize # 生成领队 @leader = 0 sailcat_initialize end #-------------------------------------------------------------------------- # ● 设置初期同伴 #-------------------------------------------------------------------------- def setup_starting_members sailcat_setup_starting_members # 生成领队 @leader = 0 end #-------------------------------------------------------------------------- # ● 设置领队 #-------------------------------------------------------------------------- def switch_leader @leader += 1 @leader %= @actors.size end end class Game_Player alias sailcat_update update #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh # 同伴人数为 0 的情况下 if $game_party.actors.size == 0 # 清除角色的文件名及对像 @character_name = "" @character_hue = 0 # 分支结束 return end # 获取带头的角色 actor = $game_party.actors[$game_party.leader] # 设置角色的文件名及对像 @character_name = actor.character_name @character_hue = actor.character_hue # 初始化不透明度和合成方式 @opacity = 255 @blend_type = 0 end #-------------------------------------------------------------------------- # ● 画面更新 #-------------------------------------------------------------------------- def update # 按下 X 键的情况下 if Input.trigger?(Input::X) # 更换领队 $game_party.switch_leader refresh end sailcat_update end end |