在RGSS的Game_Battler 3中第26行左右插入如下内容
#===========BY 叶子=========== #冷却的情况下不能使用 #冷却的技能ID(xx) 和这个技能对应附加的状态ID(yy) if skill_id == xx and self.states.include?(yy) #状态存在时,技能无法使用 return false end #在下面可以继续添加其他需要冷却的技能 #如果添加 or 语句,还可以多技能实现共同冷却 #===========BY 叶子===========
也就是变成这个样子
class Game_Battler #-------------------------------------------------------------------------- # ● 可以使用特技的判定 # skill_id : 特技 ID #-------------------------------------------------------------------------- def skill_can_use?(skill_id) # SP 不足的情况下不能使用 if $data_skills[skill_id].sp_cost > self.sp return false end # 战斗不能的情况下不能使用 if dead? return false end # 沉默状态的情况下、物理特技以外的特技不能使用 if $data_skills[skill_id].atk_f == 0 and self.restriction == 1 return false end #===========BY 叶子=========== #冷却的情况下不能使用 #冷却的技能ID(xx) 和这个技能对应附加的状态ID(yy) if skill_id == xx and self.states.include?(yy) #状态存在时,技能无法使用 return false end #在下面可以继续添加其他需要冷却的技能 #如果添加 or 语句,还可以多技能实现共同冷却 #===========BY 叶子=========== # 获取可以使用的时机 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
使用方法:一个技能(id:xx)对应一个状态(id:yy) 例如:要让第80号技能火球术有冷却,就设置一个状态(假设是40号),设置好第n回合解除,定量可以设得小一点,不可抵抗(当然,你喜欢的
话,可以抵抗,变成有时有冷却,有时没冷却),要冷却2回合的话,就设置一回合后100%解除 火球术带公共事件,给使用者加上40号状态(配合SailCat的“23种战斗特效公共事件版”的脚本效果更好) 只要40号状态继续存在,使用者就无法再次使用火球术
扩展:1.可以多个技能共用一个冷却 2.可以弄个取消冷却的技能(WOW里法师那个冰系天赋) 3.物品也带冷却...(药水,地精迫击炮...)
呼~貌似DOT,咏唱,冷却都解决了..口朝讽半解决..瞬发技能尚未解决......离目标又近了一步...
|