mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 13:17:32 +00:00
Upd:伤害计算文档
This commit is contained in:
parent
3f8e64af66
commit
6573f1d600
1 changed files with 63 additions and 20 deletions
|
|
@ -3,13 +3,11 @@
|
|||
|
||||
> 注意:如需自定义伤害计算,请先确保你拥有对伤害计算的基础知识,可参考[此帖][伤害计算]了解伤害计算的组成部分与计算方法。
|
||||
|
||||
角色伤害计算文件为[character/角色名/calc.js](./character/),如需自定义,将**calc.js**复制一份并重命名为**calc_user.js**后自行修改其中逻辑即可。**data.json**为技能倍率、天赋加成数据,如需自定义,同理将**data.json**复制一份并重命名为**data_user.json**后自行修改即可。[套装计算](./set/)和[武器计算](./weapon/)同理。
|
||||
|
||||
如需新增角色伤害计算,可复制[模板](./character/模板/)并重命名后修改相应逻辑。
|
||||
如需省流请直接查看[总结](#总结)
|
||||
|
||||
后文将带你入门插件伤害计算逻辑,只要你需要自定义伤害计算,都建议你完整阅读:
|
||||
|
||||
> 开发者已对伤害计算进行了规范化、模块化,只需要填参数就可以实现常见的伤害计算逻辑,即使不懂代码也可以参考模板独立完成。若存在问题,可于插件群内提问,或联系我的邮箱:UCPr251@gmail.com
|
||||
> 底层已对伤害计算进行了规范化、模块化,只需要填参数就可以实现常见的伤害计算逻辑,即使不懂代码也可以参考模板独立完成。若存在问题、建议,可于插件群内询问,或联系我的邮箱:UCPr251@gmail.com
|
||||
|
||||
伤害计算需要明确这几部分:**初始属性**、**局内Buff**、**技能属性**、**敌方属性**,后文将分别说明
|
||||
|
||||
|
|
@ -21,13 +19,13 @@
|
|||
|
||||
## 局内Buff
|
||||
|
||||
局内Buff,即仅在局内生效的所有增益,一个buff只能对单一属性进行增益,但可以同时作用于多个技能。合理管控buff,是做好伤害计算最重要的一步
|
||||
局内Buff,即仅在局内生效的所有增益,一个buff只能对单一属性进行增益,但可以同时作用于多个技能。合理管控buff,是做好伤害计算**最重要**的一步
|
||||
|
||||
### 认识buff
|
||||
|
||||
每个buff由各项[buff参数](./BuffManager.ts#L46)组成,重要参数:
|
||||
|
||||
```JS
|
||||
```js
|
||||
{
|
||||
/** Buff名称 */
|
||||
name: string
|
||||
|
|
@ -49,7 +47,7 @@
|
|||
* @string
|
||||
* 角色自身的buff提高值可能随技能/天赋等级提高而提高,此时可以于data.json的"buff"中添加对应的倍率信息,此时value即为键名,其首字母必须为对应技能的基类(参考技能类型命名标准)
|
||||
*/
|
||||
value: number | Function | string
|
||||
value: number | number[] | Function | string
|
||||
/** Buff增益技能类型范围,无则对全部生效;参考技能类型命名标准 */
|
||||
range?: string[]
|
||||
/** Buff增益属性类型,无则对全部属性生效 */
|
||||
|
|
@ -69,7 +67,7 @@
|
|||
|
||||
- **range**:Buff增益技能类型范围。该参数用于鉴别不同buff的[生效范围](#技能类型命名对buff作用的影响)(比如只对普攻生效),[填写方法](#技能类型命名标准)会在技能属性中详细说明
|
||||
|
||||
- **element**:Buff增益属性类型。该参数用于鉴别不同buff的生效属性(比如只对冰属性伤害生效)。查看[属性类型](./BuffManager.ts#L6)
|
||||
- **element**:Buff增益属性类型,可为字符串或字符串数组。该参数用于鉴别不同buff的生效属性(比如只对冰属性伤害生效)。查看[属性类型](./BuffManager.ts#L6)
|
||||
|
||||
### 注册buff
|
||||
|
||||
|
|
@ -77,7 +75,7 @@
|
|||
|
||||
Buff来源可分为三大类:武器、套装、角色(影画、核心被动、额外能力、技能),buff的注册也分为此三步骤、三部分。具体计算文件分别位于[武器](./weapon/) [套装](./set/) [角色](./character/)
|
||||
|
||||
- 自定义方法:复制对应的计算文件,重命名为**原名_user.js**(如:星见雅_user.js),修改相应逻辑重启即可
|
||||
- 自定义方法:复制对应的计算文件,重命名为**原名_user.js**(如:calc_user.js),修改相应逻辑重启即可
|
||||
|
||||
- buff注册方法:武器、套装、角色每部分buff的注册,我都为你提供了两种方式:
|
||||
|
||||
|
|
@ -93,6 +91,7 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
### 武器Buff
|
||||
|
||||
[武器buff计算文件模板](./weapon/模板.js)
|
||||
|
||||
[武器buff两种导出方式实例](./weapon/霰落星殿.js)
|
||||
|
||||
注意事项:
|
||||
|
|
@ -108,6 +107,7 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
### 套装Buff
|
||||
|
||||
[套装buff计算文件模板](./set/模板.js)
|
||||
|
||||
[套装buff两种导出方式实例](./set/折枝剑歌.js)
|
||||
|
||||
注意事项:
|
||||
|
|
@ -121,17 +121,18 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
### 角色Buff
|
||||
|
||||
[角色buff计算文件模板](./character/模板/calc.js)
|
||||
|
||||
[角色buff两种导出方式实例](./character/星见雅/calc.js)
|
||||
|
||||
角色buff分为影画、核心被动、额外能力、技能此四个来源
|
||||
|
||||
- **影画·Rank**
|
||||
|
||||
**name**建议按照模板填写,此时命座检查会自动进行
|
||||
参数**name**建议按照模板填写,此时命座检查会自动进行
|
||||
|
||||
- **核心被动·Talent**
|
||||
|
||||
核心被动中的**buff增益值**可能随核心技等级提升而提升,此时**value**的类型对应字符串情况,并且需要于data.json中添加对应的倍率信息,你可参考[安东伤害计算](./character/安东/calc.js#L17)的处理
|
||||
核心被动buff参数中的**buff增益值**可能随核心技等级提升而提升,此时**value**的类型对应字符串情况,并且需要于data.json中添加对应的倍率信息,你可参考[安东伤害计算](./character/安东/calc.js#L17)的处理
|
||||
|
||||
- **额外能力·Addition**
|
||||
|
||||
|
|
@ -147,13 +148,13 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
|
||||
- 较为推荐的管理buff方式为:在使用**直接导出**注册相应的buff的基础上,通过**导出函数**来管理buff,在函数中调整各buff
|
||||
|
||||
- **在线调试**:将云崽底层的日志类型(根目录/config/config/bot.yaml中的log_level)修改为**debug**并重启后,插件会自动监听当前各计算文件,实时更新,并会在控制台输出伤害计算的详细过程:初始属性、buff情况、技能数据、buff生效情况、各乘区数据,可据此调试
|
||||
- **在线调试**:将云崽底层的日志类型(根目录/config/config/bot.yaml中的log_level)修改为**debug**并重启后,插件会自动监听当前各计算文件,实时更新,并会在控制台输出伤害计算的详细过程:初始属性、buff情况、技能数据、buff生效情况、各乘区数据,可据此调试(在未开启在线调试的情况下,每次修改都需要重启才能生效。开启在线调试后,对当前已有计算文件的修改会直接生效,但新增计算文件仍需重启才能生效。)
|
||||
|
||||
- 游戏中的buff生效情况难以确定,但通过[自定义敌方属性](#自定义敌方属性)和对buff的精确管控,插件的计算结果将与游戏实机十分吻合
|
||||
- 游戏中的buff生效情况错综复杂,但通过[自定义敌方属性](#自定义敌方属性)和对buff的精确管控,插件的计算结果将与游戏实机十分吻合
|
||||
|
||||
<p align="center">
|
||||
<img width="251" src="https://s2.loli.net/2025/01/14/o6mi3LKdgGtT2RP.jpg" title="她真好看">
|
||||
<img width="251" src="https://s2.loli.net/2025/01/14/Ue5kLpha7N621Px.jpg" title="她真好看">
|
||||
<img width="251" src="https://s2.loli.net/2025/01/14/o6mi3LKdgGtT2RP.jpg" title="悠真伤害统计">
|
||||
<img width="251" src="https://s2.loli.net/2025/01/14/Ue5kLpha7N621Px.jpg" title="悠真游戏实机">
|
||||
</p>
|
||||
|
||||
## 技能属性
|
||||
|
|
@ -166,7 +167,7 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
|
||||
每个技能由各项[技能参数](./Calculator.ts#L9)组成,必需参数:
|
||||
|
||||
```JS
|
||||
```js
|
||||
{
|
||||
/** 技能名,唯一 */
|
||||
name: string
|
||||
|
|
@ -258,6 +259,8 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
- 如果只包括**CCX**(巡游冲刺攻击),则代表对“冲刺攻击:冰渊潜袭”生效(无论普通或蓄力)
|
||||
- 如果只包括**CCXX**(蓄力巡游冲刺攻击),则代表只对“冲刺攻击:冰渊潜袭”的蓄力巡游冲刺攻击生效
|
||||
|
||||
[点此查看](./character/艾莲/calc.js#L12)艾莲实际伤害计算文件
|
||||
|
||||
### 技能倍率
|
||||
|
||||
[点此查看模板技能倍率](./character/模板/data.json)
|
||||
|
|
@ -282,7 +285,7 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
|
||||
- 若某技能所造成伤害的属性与角色属性不符,应指定该技能的属性**element**
|
||||
|
||||
- 技能的参数有较多可选的拓展,用于处理更复杂的情况,请自行查看[源码](./Calculator.ts)和已有角色的计算案例
|
||||
- 技能的参数有较多可选的拓展,用于处理更复杂的情况,如有需要请自行查看[Calculator源码](./Calculator.ts)和已有角色的计算案例
|
||||
|
||||
- 目前只可注册角色的技能,部分武器有独立的造成额外伤害的机制,暂不考虑
|
||||
|
||||
|
|
@ -295,8 +298,6 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
- **防御力**:影响防御乘区。影响直伤和异常伤害计算
|
||||
- **抗性、弱点**:影响抗性乘区。影响直伤和异常伤害计算
|
||||
|
||||
敌方属性可查看[此表](https://img.nga.178.com/attachments/mon_202407/16/axvkQq44x-2xpiZyT3cSwm-1hf.png)
|
||||
|
||||
### 自定义敌方属性
|
||||
|
||||
可以用 **等级、1级基础防御力、抗性区常量** 三个参数来替代**防御力、抗性、弱点**:
|
||||
|
|
@ -305,10 +306,52 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
|
||||
- **抗性区常量**:敌方存在对应的弱点时,此值为 **0.2**;敌方存在对应的抗性时,此值为 **-0.2**;既不抗也不弱,此值为 **0**。插件默认抗性区常量=0.2
|
||||
|
||||
通过在角色伤害计算文件中导出**calc**函数,调用Calculator的[defEnemy](./Calculator.ts)方法,你可以对此三个参数进行自定义
|
||||
通过在角色伤害计算文件中导出**calc**函数,调用函数参数中calc的[defEnemy](./Calculator.ts)方法,你可以对此三个参数进行自定义
|
||||
|
||||
敌方基础属性可查看[此表](https://img.nga.178.com/attachments/mon_202407/16/axvkQq44x-2xpiZyT3cSwm-1hf.png)
|
||||
|
||||
例如将敌人的1级基础防御力设置为36:
|
||||
|
||||
```JS
|
||||
export function calc(buffM, calc, avatar) {
|
||||
calc.defEnemy('basicDEF', 36)
|
||||
}
|
||||
```
|
||||
|
||||
目前暂不支持指令自定义,暂不支持直接指定具体敌人
|
||||
|
||||
## 总结
|
||||
|
||||
角色伤害计算文件为[character/角色名/calc.js](./character/),如需自定义,将**calc.js**复制一份并重命名为**calc_user.js**后自行修改其中逻辑即可。**data.json**为技能倍率、天赋加成数据,如需自定义,同理将**data.json**复制一份并重命名为**data_user.json**后自行修改即可。[套装计算](./set/)和[武器计算](./weapon/)同理。
|
||||
|
||||
请在对[伤害计算]有一定了解的基础上再进行伤害计算的修改
|
||||
|
||||
新增角色伤害计算的一般步骤为:
|
||||
|
||||
1. 复制一份[模板](./character/模板/)文件夹,重命名为对应角色名
|
||||
|
||||
2. 修改其中**calc.js**,选择你喜欢的[导出方式](#注册buff),一般推荐**直接导出**
|
||||
|
||||
3. 了解对应角色技能的变体,参考[技能类型命名标准](#技能类型命名标准)为每个需要注册的技能命名(即使有的技能变体你不需要计算,也推荐你按照标准命名进行拓展命名,便于后续拓展)
|
||||
|
||||
4. [注册对应的技能](#注册技能)(只有先明确每个技能参数的type如何命名,你才能知道如何填buff参数的range)
|
||||
|
||||
5. [注册对应的buff](#注册buff)
|
||||
|
||||
6. 填写[技能倍率](#技能倍率)、[天赋倍率](#角色buff)
|
||||
|
||||
修改现有角色伤害计算的一般步骤为:
|
||||
|
||||
1. 复制一份该角色对应的calc.js文件重命名为calc_user.js
|
||||
|
||||
2. 根据需要修改其中的逻辑,可以通过组合使用[导出方式](#注册buff)进行管理
|
||||
|
||||
3. 如需新增技能倍率,复制一份该角色对应的data.json文件重命名为data_user.json
|
||||
|
||||
4. 根据需要填写[技能倍率](#技能倍率)、[天赋倍率](#角色buff)
|
||||
|
||||
建议开启[在线调试](#管理buff)
|
||||
|
||||
---
|
||||
|
||||
[伤害计算]:https://www.miyoushe.com/zzz/article/55265618
|
||||
Loading…
Add table
Add a link
Reference in a new issue