#============================================================================== # 本脚本来自www.66RPG.com,使用和转载请保留此信息 #==============================================================================
#=========================================================================== # 受限技能 by SailCat #=========================================================================== # 设定方法:一堆受限状态,每一个都选为"不能使用魔法",然后在脚本里面来判定 # 判定分支的写法参见脚本注释 # 变化注释:通过强制return true可以写出在特定状态下一定可以使用的特技,但是 # 请注意状态的优先顺位问题 #=========================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 可以使用特技的判定 # skill_id : 特技 ID #-------------------------------------------------------------------------- def skill_can_use?(skill_id) # 战斗不能的情况下不能使用 if dead? return false end # 限制为"不能使用魔法"的情况下 if self.restriction == 1 # 天使之音, 攻击性特技可以无条件使用 if self.state?(21) and $data_skills[skill_id].power > 0 return true # 沈默, 纯魔法特技不能使用 elsif self.state?(5) and $data_skills[skill_id].atk_f == 0 return false # 弱力, 非魔法特技不能使用 elsif self.state?(27) and $data_skills[skill_id].atk_f != 0 return false # 虚脱, HP在一半以下时不能使用特技 elsif self.state?(28) and self.hp < self.maxhp / 2 return false # 遗忘, 学会的技能有一定的概率不能使用 elsif self.state?(25) return rand(100) < 50 ? true : false # 诅咒, 任何消耗SP的技能都不能使用 elsif self.state?(29) and $data_skills[skill_id].sp_cost != 0 return false end end # SP 不足的情况下不能使用 if $data_skills[skill_id].sp_cost > self.sp return false end # 获取可以使用的时机 occasion = $data_skills[skill_id].occasion # 战斗中的情况下 if $game_temp.in_battle # [平时] 或者是 [战斗中] 可以使用 return (occasion == 0 or occasion == 1) # 不是战斗中的情况下 else # [平时] 或者是 [菜单中] 可以使用 return (occasion == 0 or occasion == 2) end end end
#============================================================================== # 本脚本来自www.66RPG.com,使用和转载请保留此信息 #============================================================================== |