Project1

标题: 怎么做技能冷却,就是几回合几回合的冷却 [打印本页]

作者: 头酱233    时间: 2024-9-29 11:03
标题: 怎么做技能冷却,就是几回合几回合的冷却
用完技能后机会和内不能用
作者: kangxi0109    时间: 2024-9-29 12:23
因为某些原因近期不能碰电脑,所以给思路吧。
用脚本的方法:
1.重定义一个skill的方法作为技能冷却的回合数,再重新定义技能名,将技能名称以“,”分割,前面的部分是技能名,后面加上数字,作为冷却回合数。
2.如果这个技能是可多人各自习得的,就要再设置一个数组,作为队伍中分别计算冷却时间使用。如果是专属技能,就只要设置一个变量就行。一旦技能被使用,对应的变量就变成对应技能的冷却回合数。
3.在每次回个结束时,将这个数组(变量)的各项数值-1
4.在技能适用的部分,加上若对应技能的冷却回合数不为0则不能使用的判定即可。
用事件的方法(繁琐,不建议):
1.设置该技能对应的,不能使用的“冷却中的技能”。
2.设置技能事件,使用技能后遗忘该技能,习得“冷却中的技能”,同时设置一个变量作为技能冷却时间,设置一个开关作为计时开始的开关。
3.在敌人队伍设置中设置公共事件,当开关打开时并行处理,技能冷却时间变量-1,当冷却变量回0时关闭开关,重新习得该技能,遗忘“冷却中的技能”。
作者: soulsaga    时间: 2024-9-29 17:33
简易事件做法
该技能为空技能
执行公共事件强制行动
=你本来的技能
本来的技能附加几回合的状态
本公共事件判断指定角色有该状态时不执行强制行动

作者: 无忧谷主幻    时间: 2024-10-3 04:19
正好做过这个,当然因为是脚本小白,所以步骤有些繁琐
1,打开脚本编辑器,找到Game_Battler 3

RUBY 代码复制
  1. # ● 可以使用特技的判定
  2.   #     skill_id : 特技 ID
  3.   #--------------------------------------------------------------------------
  4.   def skill_can_use?(skill_id)
  5.     # SP 不足的情况下不能使用
  6.     if $data_skills[skill_id].sp_cost > self.sp
  7.       return false
  8.     end
  9.     # 战斗不能的情况下不能使用
  10.     if dead?
  11.       return false
  12.     end
  13.     # 沉默状态的情况下、物理特技以外的特技不能使用
  14.     if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
  15.       return false
  16.     end

的下面插入
RUBY 代码复制
  1. if skill_id == 92 and self.states.include?(44)
  2.      #状态存在时,技能无法使用
  3.      return false
  4.    end

(前面是技能ID,后面是状态ID)
2,技能关联公共事件,施展后为该角色赋予一个状态,需要冷却几回合该状态就设定几回合解除,这样的话甚至想要每场战斗只能使用一次的技能也是可以做到的
记得把该状态的定量设为0,这样就不会有渲染文字了

这个方法除了可以做到需要冷却的技能外,也可以做到持有某些物品的才能使用的消耗物品技能与消耗HP技能,原理上都差不多





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1