设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 155|回复: 3
打印 上一主题 下一主题

[有事请教] 关于技能核心的自定义需求和执行

[复制链接]

Lv1.梦旅人

梦石
0
星屑
26
在线时间
20 小时
注册时间
2022-12-9
帖子
2
跳转到指定楼层
1
发表于 2025-1-12 23:48:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
20星屑
代码小白,请问如果要设计一个技能只能在特定状态(如ID25号状态)下使用,该如何实现呢

Lv1.梦旅人

梦石
0
星屑
144
在线时间
14 小时
注册时间
2023-4-16
帖子
1
2
发表于 2025-1-13 00:18:39 | 只看该作者
插眼,我也想知道。
虽然手头有个淘来的技能插件,但似乎不起作用
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
216
在线时间
26 小时
注册时间
2025-1-7
帖子
6
3
发表于 2025-1-13 01:36:16 | 只看该作者
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. };
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5084
在线时间
496 小时
注册时间
2017-5-30
帖子
37
4
发表于 2025-1-13 18:14:40 | 只看该作者
yep技能核心有备注啊,翻一翻就翻到了。
  <Custom Requirement>
   if (user.isStateAffected(25)) {
     value = true;
   } else {
     value = false;
   }
  </Custom Requirement>
判断使用者是否处于25状态中,是就允许使用,不是就不能
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-27 06:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表