Project1

标题: 请问如何实现在某buff内才能使用某技能 [打印本页]

作者: Luska的龙虾    时间: 2025-3-6 11:02
标题: 请问如何实现在某buff内才能使用某技能
想做一个类似血怒的效果,只有在A buff下才可以使用B技能,A buff结束后B技能无法使用,求教
作者: 526396987    时间: 2025-3-7 20:04
本帖最后由 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. };
复制代码

作者: sunhihi    时间: 2025-3-9 08:22
再狀態底下掛一個習得技能就可以
作者: Luska的龙虾    时间: 2025-3-9 10:40
526396987 发表于 2025-3-7 20:04
如果还是回合制的话 就覆写一下meetsSkillConditions()
这是当前行动对象处于A状态下才可使用:

谢谢解答!!!
作者: Luska的龙虾    时间: 2025-3-9 10:42
sunhihi 发表于 2025-3-9 08:22
再狀態底下掛一個習得技能就可以

这个不太行,因为直接学会的话以后不管buff在不在就都能随意使用了
作者: soulsaga    时间: 2025-3-9 21:09
论坛搜並行公共事件




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