加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
RTAB打起来节奏实在很快,最近想加些长动画的被动技能来提供一点中断的机会,同时令角色的特点更强。
首先被动技能先在RTAB初始化的地方设置好——
#-----------------被动技能设定---------------------# #初始化被动技能 @passive_skill_used = [] @passive_skill = [] for i in 1...$data_actors.size a=[] @passive_skill.push(a) end @passive_skill[0]=[4] @passive_skill[1]=[] @passive_skill[2]=[6] @passive_skill[3]=[5] @passive_skill[4]=[] @passive_skill[5]=[] #--------------------------------------------------#
#-----------------被动技能设定---------------------#
#初始化被动技能
@passive_skill_used = []
@passive_skill = []
for i in 1...$data_actors.size
a=[]
@passive_skill.push(a)
end
@passive_skill[0]=[4]
@passive_skill[1]=[]
@passive_skill[2]=[6]
@passive_skill[3]=[5]
@passive_skill[4]=[]
@passive_skill[5]=[]
#--------------------------------------------------#
然后在update_phase0后面增加一个update_phase6,再将RTAB里面battler.current_action.kind = 1后的内容弄一部分相似的给battler.current_action.kind = 3用,以区分主动技能和被动技能的计算公式
#============================================================================== # ■ Scene_Battle (分割定義 6) #------------------------------------------------------------------------------ # 平时被动触发技能 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● 被动技能判断開始 #-------------------------------------------------------------------------- def update_phase6 for battler in $game_party.actors unless @action_battlers.include?(battler) and @command.include?(battler) if battler.hp>0 #获取角色可以发动的被动技能id for i in @passive_skill[battler.id-1] skill = $data_skills[i] if rand(10000)<skill.hit and not @passive_skill_used.include?(i) battler.current_action.kind = 3 battler.current_action.skill_id = i action_start(battler) #一旦发动一次就不发动 @passive_skill_used.push(i) end end end end end end end
#==============================================================================
# ■ Scene_Battle (分割定義 6)
#------------------------------------------------------------------------------
# 平时被动触发技能
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 被动技能判断開始
#--------------------------------------------------------------------------
def update_phase6
for battler in $game_party.actors
unless @action_battlers.include?(battler) and @command.include?(battler)
if battler.hp>0
#获取角色可以发动的被动技能id
for i in @passive_skill[battler.id-1]
skill = $data_skills[i]
if rand(10000)<skill.hit and not @passive_skill_used.include?(i)
battler.current_action.kind = 3
battler.current_action.skill_id = i
action_start(battler)
#一旦发动一次就不发动
@passive_skill_used.push(i)
end
end
end
end
end
end
end
这时,可以保证在多钟设定下的RTAB也不会导致同时导入技能,被动技能也完全和AT槽独立开来。
另外在update_phase3下面的各个按下决定键的部分套上
unless @action_battlers.include?(@active_actor)
来阻止被动技能待发时加入其他行动出错。(RTAB写了一大长串这么多,还是几乎没有自我排错的能力啊)
求大神指导下有无其他更好的写法,改进一下效率之类的。 |