查看: 4090|回复: 4

[交流讨论] 【自定义角色属性】通过YEP基础参数插件+事件来实现

[复制链接]
梦石
0
星屑
158
在线时间
29 小时
注册时间
2022-7-4
回帖
7
发表于 2022-9-1 22:34:16 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 TaniyamaMinami 于 2022-9-2 04:47 编辑

[fold=前言]最近一直在纠结RMMV怎么加入自定义角色属性,在P1上找到了两个插件,一个是<BOB_CustomStats>,另一个是<FTKR_AddOriginalParameters>,两者都是非常不错的插件,前者推荐英语较好的朋友使用,后者推荐日语较好的朋友使用。
如果英语不好,日语不懂也没关系,现在通过<YEP基础参数>、<YEP职业参数>插件+事件也可以实现自定义参数(您也可以看作是<YEP基础参数>和<YEP职业参数>的使用教程)[/fold]

进行自定义角色属性的设置所需插件:
YEP_BaseParamControl  -  核心
YEP_X_ClassBaseParam

由于站内有很多个人汉化的YEP插件,所以在此不提供。




那么,我们开始吧!

一、安装YEP基础参数控制与YEP职业参数插件;
[fold=如何安装?]将<YEP_XXX.js>文件移动至"Project1\js\plugins"中,并在RMMV的插件管理器中添加并启用。[/fold]

二、设定一个影响基本属性的参数,我们这里以<体质>影响生命为例:
随意打开一个事件,选择<变量操作>,将变量[1]设定为<体质>。

三、打开数据库,在职业注释中写入:
<Custom Class Parameters>
  maxhp = level * $gameVariables.value(1) + 150;
</Custom Class Parameters>

角色的初始生命为150,每当角色升级或当变量[1]发生改变时,角色的最大生命值都会受到影响:
当玩家等级为1时,且当<体质>为1时,最大生命值为150;
当玩家等级为1时,且当<体质>为2时,最大生命值为152;
当玩家等级为2时,且当<体质>为1时,最大生命值为152;
当玩家等级为2时,且当<体质>为2时,最大生命值为154。

到此为止,参数<体质>就已经对角色的最大生命值产生影响了;
但是这时候的体质仍是一个常量,我们需要将它与等级变量相关联,以便<体质>可以随着等级的提升而提升。

四、设定升级检测:
1.在地图中新建一个事件,选择<并行处理>,在执行内容中新建一个变量x,给其赋值 = 1;新建一个开关a,将其打开;
2.新建事件页,选择<并行处理>,出现条件选择当开关a打开时;新建变量y,给其赋值 = 角色[1]的等级;再新建变量z,写入以下脚本:
$gameVariables.value(y) - $gameVariables.value(x)

此处x应为常数1,y应为角色[1]的等级。
3.新建分歧,当变量z的值 = 1时,执行:
<变量[1] + 1>       (即<体质> +1)
<变量[x] + 1>

到此为止,参数<体质>不仅对角色生命值产生了影响,而且还变成了一个变量;
但是,当您进入游戏测试时,会发现升级之后跟公式计算的值不符;这时,我们需要对参数<体质>进行实时刷新。

五:参数实时刷新
在地图中新建一个事件,选择<并行处理>,<增减 HP, 角色[1] -1> ,<增减 HP, 角色[1] +1>

到此为止,参数<体质>就能进行实时刷新了。
但是,当您进入游戏测试时,会发现升级后角色并不是满状态。

目前我能想到的方法只有一种,即角色处于地图中可以自动回血;否则,这样就基本完成了(////)




相关问题:

[fold=自定义角色属性的变量是通用的吗?]不是!RMMV的变量为全局变量!
由于RMMV变量的底层逻辑,在采用变量设定影响角色基础属性的参数时,需要对每个角色、职业设定不同的变量来保证每个变量的独立性和正常运行。
如果您有多个角色或者多个职业,请分别设定它们的<体质>,例如:爱梅特赛尔克_体质、古代人_体质;在这里,如果您的角色可以进行转职,那么需要设置角色与职业的N中情况,由于数据过大,此处不做说明。[/fold]

[fold=自定义角色属性的变量对属性造成影响后不能实时刷新怎么办?]值得注意的是,由于RMMV中的变量改变后,并不会立即对影响的参数直接造成影响,需要改变影响的参数的值以便更新数据。
您可以在公共事件中写入:恢复角色生命 * 1点,再扣除角色生命 * 1,给其设定一个开关并并行处理。
若角色升级时影响了<体质>,此时角色应该处于满状态,但由于变量不会实时刷新,您可以在升级后再给角色完全恢复来保证升级后的状态恢复。[/fold]

[fold=YEP基础参数能够修改变量的公式吗?]不能。因为YEP基础参数控制与YEP职业参数插件只能对基础参数的公式进行修改。若您使用变量来对角色属性造成影响,请按第四点的设定升级检测进行操作。[/fold]

[fold=我的游戏中存在扣除的等级的设定,这种情况我要怎么设定自定义属性?]值得注意的是,如果您的游戏中存在扣除等级的设定;您既需要设定当等级提升的情况,又要设定当等级被扣除的情况,这两种情况如何同时存在又不会互相影响,请您自己考虑。[/fold]

[fold=如何给装备加入<体质>这一设定?]使用事件即可解决,我们这里以<初心者上衣>为例(假设初心者上衣提供3点体质):
创建一个公共事件,选择分歧:如果角色装备了<初心者上衣>,那么选择变量[1] +3,否则变量[1] -3;然后在<初心者上衣>的特性栏中选择此公共事件[/fold]

[fold=如何给道具加入<体质>这一设定呢?]使用事件即可解决,我们这里以<体质水晶>为例(假设体质水晶提供10点体质):
创建一个公共事件,选择变量[1] +10,并扣除1个<体质水晶>;然后在<体质水晶>的特性栏中选择此公共事件[/fold]

[fold=如何给敌人加入<体质>这一设定?]敌人没有职业,无法对其设定自定义属性[/fold]

[fold=如何在角色状态中显示自定义参数?]由于变量是全局参数,不会脚本无法将变量与职业相绑定;如果有需求,请使用<YEP_Status Menu Core>与<YEP_X_ActorVariables>,即YEP状态核心插件与YEP角色变量插件;或者您可以尝试使用Drill&MOG插件,是否有相关功能;否则,此方法只能作为隐藏属性来使用。[/fold]

以上,为自定义角色属性的方法。

<完>
梦石
0
星屑
396
在线时间
49 小时
注册时间
2009-10-1
回帖
3
发表于 2022-9-1 23:57:37 | 显示全部楼层
感谢大佬,正好想搞一下自定属性的角色
回复

使用道具 举报

梦石
0
星屑
118
在线时间
19 小时
注册时间
2022-11-19
回帖
22
发表于 2022-11-21 23:08:18 | 显示全部楼层
大佬有个问题 ,我想改变属性对hp的影响比如体质1点增加10点hp这种怎么调整呐?

评分

参与人数 1赞 +1 收起 理由
TaniyamaMinami + 1 可以用两个变量来实现,一个是直接套入公式.

查看全部评分

回复

使用道具 举报

梦石
0
星屑
158
在线时间
29 小时
注册时间
2022-7-4
回帖
7
 楼主| 发表于 2023-1-11 02:18:00 | 显示全部楼层
ssyss 发表于 2022-11-21 23:08
大佬有个问题 ,我想改变属性对hp的影响比如体质1点增加10点hp这种怎么调整呐? ...

可以用两个变量来实现,跟你讲讲具体思路。
首先你设定一个变量x,在设定一个变量y;
然后   1变量x = 10变量y;
再将变量y带入升级公式中即可还原你的这种想法。
回复

使用道具 举报

梦石
0
星屑
1669
在线时间
230 小时
注册时间
2018-12-9
回帖
131
发表于 2023-4-27 09:53:09 | 显示全部楼层
感谢大佬,辛苦了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部