查看: 1147|回复: 5

[有事请教] 请问如何实现在某buff内才能使用某技能

[复制链接]
梦石
0
星屑
211
在线时间
19 小时
注册时间
2018-7-2
回帖
2
发表于 2025-3-6 11:02:20 | 显示全部楼层 |阅读模式

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

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

×
想做一个类似血怒的效果,只有在A buff下才可以使用B技能,A buff结束后B技能无法使用,求教
梦石
0
星屑
6334
在线时间
287 小时
注册时间
2018-1-22
回帖
207
发表于 2025-3-7 20:04:51 | 显示全部楼层
本帖最后由 526396987 于 2025-3-7 20:05 编辑

如果还是回合制的话 就覆写一下meetsSkillConditions()
这是当前行动对象处于A状态下才可使用:
  1. Game_Actor.prototype.meetsSkillConditions = function(skill) {
  2.     return Game_Battler.prototype.meetsSkillConditions.call(this, skill) && (skill.id !== B技能id || this.isStateAffected(A状态id));
  3. };
复制代码


如果要敌对目标处于A状态下 会更复杂一些,还要加上目标选择的处理:
  1. Game_Actor.prototype.meetsSkillConditions = function(skill) {
  2.     return Game_Battler.prototype.meetsSkillConditions.call(this, skill) && (skill.id !== B技能id || $gameTroop.members().some(e => e.isStateAffected(A状态id)));
  3. };

  4. Window_BattleEnemy.prototype.isCurrentItemEnabled = function() {
  5.     var canUseSkillB = true;
  6.     const action = BattleManager.inputtingAction();
  7.     if (action.isSkill() && action.item().id === B技能id) canUseSkillB = this.enemy().isStatusAffected(A状态id);
  8.     return Window_Selectable.prototype.isCurrentItemEnabled.call(this) && canUseSkillB;
  9. };
复制代码
自分自身の神様になること
回复

使用道具 举报

梦石
0
星屑
8580
在线时间
1499 小时
注册时间
2018-9-29
回帖
543
发表于 2025-3-9 08:22:28 | 显示全部楼层
再狀態底下掛一個習得技能就可以
回复

使用道具 举报

梦石
0
星屑
211
在线时间
19 小时
注册时间
2018-7-2
回帖
2
 楼主| 发表于 2025-3-9 10:40:05 | 显示全部楼层
526396987 发表于 2025-3-7 20:04
如果还是回合制的话 就覆写一下meetsSkillConditions()
这是当前行动对象处于A状态下才可使用:

谢谢解答!!!
回复

使用道具 举报

梦石
0
星屑
211
在线时间
19 小时
注册时间
2018-7-2
回帖
2
 楼主| 发表于 2025-3-9 10:42:01 | 显示全部楼层
sunhihi 发表于 2025-3-9 08:22
再狀態底下掛一個習得技能就可以

这个不太行,因为直接学会的话以后不管buff在不在就都能随意使用了
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2025-3-9 21:09:50 | 显示全部楼层
论坛搜並行公共事件
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部