Project1

标题: 关于技能核心的自定义需求和执行 [打印本页]

作者: dwm2461029805    时间: 2025-1-12 23:48
标题: 关于技能核心的自定义需求和执行
代码小白,请问如果要设计一个技能只能在特定状态(如ID25号状态)下使用,该如何实现呢
作者: 破碎旗帜    时间: 2025-1-13 00:18
插眼,我也想知道。
虽然手头有个淘来的技能插件,但似乎不起作用
作者: 治晗于    时间: 2025-1-13 01:36
RPG Maker 中自带了系统方法来判断技能是否能使用。当玩家选择技能时,游戏会检查角色是否满足技能使用条件。(比如MP是否足够)我们可以扩展这个方法,加一个额外的判断条件:检查角色是否处于特定状态。

首先我们要判断角色的状态。我们可以用方法 isStateAffected(stateId) 来检查角色是否处于某个状态。当游戏判断一个技能是否可以使用时,我们在现有逻辑中加入“角色必须处于特定状态”的条件:

JAVASCRIPT 代码复制
  1. if (skill.id === 10 && !this.isStateAffected(25)) {
  2.         return false;
  3.     }


然后就能通过技能的编号和状态编号来实现具体限制,如在上面的例子中,技能10 只能在状态25下使用。

下面是一个简单的代码示例:

JAVASCRIPT 代码复制
  1. Game_BattlerBase.prototype.meetsSkillConditions = function(skill) {
  2.     // 原本的判断条件
  3.     const canUse = Game_BattlerBase.prototype.meetsSkillConditions.call(this, skill);
  4.  
  5.     // 如果技能ID是10,要求角色必须处于状态25
  6.     if (skill.id === 10 && !this.isStateAffected(25)) {
  7.         return false; // 如果角色不在状态25,技能10不能使用
  8.     }
  9.  
  10.     return canUse; // 如果通过所有条件,技能可以使用
  11. };

作者: 船走听雨眠    时间: 2025-1-13 18:14
yep技能核心有备注啊,翻一翻就翻到了。
  <Custom Requirement>
   if (user.isStateAffected(25)) {
     value = true;
   } else {
     value = false;
   }
  </Custom Requirement>
判断使用者是否处于25状态中,是就允许使用,不是就不能




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