Project1

标题: 在角色拥有XX状态时可使用特定技能 [打印本页]

作者: TerraTraveler    时间: 2023-1-5 12:26
标题: 在角色拥有XX状态时可使用特定技能
本帖最后由 寂静的夜里 于 2023-1-11 22:36 编辑

1.如何实现“在角色XX级时从一回合一动变成一回合X动”
2.如何实现“在角色拥有XX状态时可使用特定技能(技能本身已经学会,但需要拥有XX状态才能发动);在XX状态结束时同时解除角色身上指定的A或B状态"
作者: alexncf125    时间: 2023-1-5 13:43
本帖最后由 alexncf125 于 2023-1-5 14:14 编辑

1.如何实现“在角色XX级时从一回合一动变成一回合X动”
  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 决定行动回数
  4.   #--------------------------------------------------------------------------
  5.   alias :level_change_make_action_times :make_action_times
  6.   def make_action_times
  7.     t = level_change_make_action_times
  8.     if actor?
  9.       case level
  10.       when 21..50          #在角色21-50级时从一回合一动变成一回合二动
  11.         t += 1
  12.       when 51..99          #在角色51-99级时从一回合一动变成一回合三动
  13.         t += 2
  14.       end
  15.     end
  16.     t
  17.   end
  18. end
复制代码


2.如何实现在角色拥有XX状态时可使用特定技能(技能本身已经学会,但需要拥有XX状态才能发动)
  1. class Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 检查技能的使用条件
  4.   #--------------------------------------------------------------------------
  5.   alias :state_join_skill_conditions_met? :skill_conditions_met?
  6.   def skill_conditions_met?(skill)
  7.     return false if actor? && skill.id == 特定技能的ID && !state?(XX状态的ID)
  8.     state_join_skill_conditions_met?(skill)
  9.   end
  10. end
复制代码


3.在A状态和B状态中只要有一个状态结束时就结束XX状态
  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 解除状态
  4.   #--------------------------------------------------------------------------
  5.   alias :remove_extra_state :remove_state
  6.   def remove_state(state_id)
  7.     s = state?(state_id)
  8.     remove_extra_state(state_id)
  9.     remove_state(XX状态的ID) if s && [A状态的ID, B状态的ID].any? {|sid| sid == state_id}
  10.   end
  11. end
复制代码

作者: TerraTraveler    时间: 2023-1-5 14:09
alexncf125 发表于 2023-1-5 13:43
1.如何实现“在角色XX级时从一回合一动变成一回合X动”

3.我描述有误,是”在A状态和B状态中只要有一个状态结束时就结束XX状态“
作者: TerraTraveler    时间: 2023-1-6 08:44
已解决,感谢




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