查看: 2107|回复: 5

[已经解决] 在角色拥有XX状态时可使用特定技能

[复制链接]
梦石
0
星屑
572
在线时间
70 小时
注册时间
2022-10-15
回帖
5
发表于 2023-1-5 12:26:31 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 寂静的夜里 于 2023-1-11 22:36 编辑

1.如何实现“在角色XX级时从一回合一动变成一回合X动”
2.如何实现“在角色拥有XX状态时可使用特定技能(技能本身已经学会,但需要拥有XX状态才能发动);在XX状态结束时同时解除角色身上指定的A或B状态"
Flowing through the seas of time~
Memories that were left behind~
梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2023-1-5 13:43:59 | 显示全部楼层
本帖最后由 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
复制代码
回复 1 0

使用道具 举报

梦石
0
星屑
572
在线时间
70 小时
注册时间
2022-10-15
回帖
5
 楼主| 发表于 2023-1-5 14:09:09 | 显示全部楼层
alexncf125 发表于 2023-1-5 13:43
1.如何实现“在角色XX级时从一回合一动变成一回合X动”

3.我描述有误,是”在A状态和B状态中只要有一个状态结束时就结束XX状态“

点评

解决了没有?  发表于 2023-1-5 22:08
改了  发表于 2023-1-5 14:17
Flowing through the seas of time~
Memories that were left behind~
回复

使用道具 举报

梦石
0
星屑
572
在线时间
70 小时
注册时间
2022-10-15
回帖
5
 楼主| 发表于 2023-1-6 08:44:14 | 显示全部楼层
已解决,感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部