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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 根五
打印 上一主题 下一主题

[有事请教] 同样的技能,伤害加入了变量,怎样区分谁用的技能

[复制链接]

Lv2.观梦者

梦石
0
星屑
714
在线时间
224 小时
注册时间
2009-2-19
帖子
227
11
 楼主| 发表于 2023-10-16 11:51:58 | 只看该作者
shiroin 发表于 2023-10-13 16:07
我随手写了个模板给你参考下
给公共被动池加入这个状态,全员就拥有了火元素亲和力这个属性,你可以通过装 ...

大佬,你给的模板我明白了,你继续往下说说,我现在有几个问题
1.技能和装备怎样附加这个值。我希望的效果是遗忘技能和卸下装备后,这个值会被减去。
2.全员都有这个状态(包括敌人),是怎么样分别计算这个值的,user._fireAffinity +=20这里,好像每个人都是20。还有敌人怎么样附加这个值。
3.就是你上面说的怎么显示这个数值。
[img][/img]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5469
在线时间
1231 小时
注册时间
2016-12-6
帖子
391
12
发表于 2023-10-16 15:33:04 | 只看该作者
根五 发表于 2023-10-16 11:51
大佬,你给的模板我明白了,你继续往下说说,我现在有几个问题
1.技能和装备怎样附加这个值。我希望的效 ...

1. 因为已经定制了自变量,所以学正常变量调节一样去增减这个值就行,难点则是如何只在学习技能和装备某件物品时生效(反之也是遗忘技能和脱下装备会失去效果),这里有两个方法:一是继续制作被动技能,让技能或装备去捆绑这个被动技能,二是额外使用WAY_CustomOnEquipEval插件,它可以使装备物品、脱下物品两个操作都进行自定义的代码运算,你可以利用这个机制去增减一些自定义属性

2.被动状态会自动识别捆绑的对象,所以你无需担心对象问题,user._fireAffinity的user前缀就是捆绑了状态的持有者,以及也是因为这个原因我建议全员被动只负责初始化这个值(改写成user._fireAffinity = user._fireAffinity || 0),附加值交由其他工具去增减,至于敌人怎么增加,敌人也可以绑定被动技能的

3.显示的问题需要你去增添draw代码捆绑变量,你显示状态的窗口是默认的还是也用了YEP_StatusMenuCore,后者的话有扩展插件去额外定制显示的属性,如果你是期望在战斗中显示这个值供玩家参考,也有其他方法
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
714
在线时间
224 小时
注册时间
2009-2-19
帖子
227
13
 楼主| 发表于 2023-10-17 16:14:24 | 只看该作者
shiroin 发表于 2023-10-16 15:33
1. 因为已经定制了自变量,所以学正常变量调节一样去增减这个值就行,难点则是如何只在学习技能和装备某 ...

WAY_CustomOnEquipEval这个插件我没有,我在站内和百度都没搜索到,不过对于我这种不懂代码,只能简单的修改一下数字的人来说,不知道能不能用的了
我尝试多制作一些被动,但是突然发现不知道怎么把状态加入到装备和技能里
至于显示的问题,我确实是用的YEP_StatusMenuCore,请问怎么显示

点评

姑且先把WAY_CustomOnEquipEval搬运到论坛里了,你可以直接下载  发表于 2023-10-17 19:01
[img][/img]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5469
在线时间
1231 小时
注册时间
2016-12-6
帖子
391
14
发表于 2023-10-17 17:37:19 | 只看该作者
根五 发表于 2023-10-17 16:14
WAY_CustomOnEquipEval这个插件我没有,我在站内和百度都没搜索到,不过对于我这种不懂代码,只能简单的 ...

用google搜,很多插件国内没有的,还有这插件和YEP插件基本一个用法,你会用YEP插件就很好上手

被动技能加入进装备和技能里的书写格式也一样都是<Passive State: X>,但要注意技能只有习得时才能获得被动效果,通过装备、状态的特性得到的技能不会获取对应的被动效果,这是插件故意的限制

把自定义变量显示在YEP_StatusMenuCore里则确实需要一点改代码能力,但也有CaeX_YEPStatusMenuExt扩展插件提供了更加便捷的添加自定义显示的工具,估计一样只能靠google搜到
有空我搬运汉化下丢论坛里好了,也应该有不少人需要
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6459
在线时间
819 小时
注册时间
2021-8-28
帖子
91
15
发表于 2023-10-17 18:43:10 | 只看该作者
本帖最后由 Rose_shadows 于 2023-10-18 12:29 编辑

自定义属性的话……我最近刚好鼓捣了个插件,功能挺全面的,可以绑定到8种数据库对象,支持属性值动态变化,可用于伤害公式,而且使用方法也不难,粗略测试了一下没什么问题,你可以试一试:

自定义隐藏属性v1.0.2.zip (4.8 KB, 下载次数: 2)
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
714
在线时间
224 小时
注册时间
2009-2-19
帖子
227
16
 楼主| 发表于 2023-10-17 21:37:47 | 只看该作者
shiroin 发表于 2023-10-17 17:37
用google搜,很多插件国内没有的,还有这插件和YEP插件基本一个用法,你会用YEP插件就很好上手

被动技能 ...

感谢大佬,WAY_CustomOnEquipEval我已经下载了,研究实验了下,也能简单的使用了。
下一步我研究下怎么显示出来!
[img][/img]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6459
在线时间
819 小时
注册时间
2021-8-28
帖子
91
17
发表于 2023-10-18 12:23:21 | 只看该作者
本帖最后由 Rose_shadows 于 2023-10-18 12:27 编辑

如果是在使用YEP_StatusMenuCore.js 的话,可以搭配使用我修改过的 CaeX_YEPStatusMenuExt.js 来显示自定义属性。
测试了一下,没有什么问题。

如果用了我的插件,配置好相应的属性后,可以这样添加属性到状态界面:

1. 将所有插件按照如下顺序安装:
RSSD_HiddenParams.js
YEP_StatusMenuCore.js
CaeX_YEPStatusMenuExt.js

2. 打开 CaeX_YEPStatusMenuExt.js,点击唯一的插件参数,注册新的属性对象。
假设在隐藏属性插件中设置了一个短名为“np”的自定义属性,则属性对象可以按照如下格式书写:
Key: np          (建议是属性短名)
Label: TextManager.cusparamName('np')          (通过短名获取属性名)
Value: this._actor._np



3. 设置好 CaeX_YEPStatusMenuExt.js 参数后,打开 YEP_StatusMenuCore.js,找到 Attributes 一栏设置,将刚才设置的 Key 写入到任一列参数中就可以了。



最后显示的结果是这样的:



不过这个方法只能用于显示浮点数/百分比数,例如 0.4 就会显示 40%。

以下是插件:
plugins.zip (6.66 KB, 下载次数: 1)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5469
在线时间
1231 小时
注册时间
2016-12-6
帖子
391
18
发表于 2023-10-18 14:19:20 | 只看该作者
Rose_shadows 发表于 2023-10-18 12:23
如果是在使用YEP_StatusMenuCore.js 的话,可以搭配使用我修改过的 CaeX_YEPStatusMenuExt.js 来显示自定义 ...

只能显示百分比数是因为它只使用了drawAttributeRate函数,这是原代码,看得出效果就是把固定数转化成百分比:

Window_StatusInfo.prototype.drawAttributeRate = function(rate, dx, dy, dw) {
    var value = (rate * 100).toFixed(Yanfly.Param.StatusAttrDec) + '%';
    this.setRateColor(rate);
    this.drawAttributeValue(value, dx, dy, dw);
};

但插件里原本也有drawAttributeValue函数给你调用,所以把Rate改成Value就能显示固定数了

点评

原来如此,我试试看能不能做一下适配,感谢感谢  发表于 2023-10-18 14:44
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
82
在线时间
55 小时
注册时间
2020-9-26
帖子
8
19
发表于 2024-7-25 19:07:55 | 只看该作者
一个简单的方法是在伤害公式中使用isSkillSealed(),用于判断目标是否被封印了技能
例如:a.isSkillSealed(1) ? a.atk * v[1] : a.atk * v[2];
判断使用者是否被封印了技能ID为1的技能,是的话就使用 a.atk * v[1],否则使用a.atk * v[2]作为伤害公式
你可以做几个没有任何用的技能,在人物特性中封印这个技能,就能区分开来了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 16:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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