mirror of
https://github.com/ZZZure/ZZZ-Plugin.git
synced 2025-12-16 05:07:46 +00:00
新增柏妮思伤害计算等
This commit is contained in:
parent
6573f1d600
commit
b51acca73e
19 changed files with 1053 additions and 164 deletions
|
|
@ -211,6 +211,9 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
> - T 核心技
|
||||
> - 核心技中的技能各不相同,自行定义即可
|
||||
|
||||
> - Y 影画(如柏妮思6影额外伤害)
|
||||
> - 影画中的技能各不相同,自行定义即可
|
||||
|
||||
> - 属性异常(特殊)
|
||||
> - 强击
|
||||
> - 灼烧
|
||||
|
|
@ -221,11 +224,11 @@ Buff来源可分为三大类:武器、套装、角色(影画、核心被动
|
|||
|
||||
#### 技能类型命名解释说明
|
||||
|
||||
1. 首字母为技能所属基类,不可更改、不可单独作为技能名,后跟字母表示技能分支
|
||||
1. 首字母为技能所属**基类**,不可更改、不可单独作为技能名,后跟字母表示技能分支
|
||||
|
||||
2. 树状命名,后一位字母代表基于其前一位字母的分支,取技能名发音(倒着读);属性异常较特殊,直接以异常名作为技能类型名
|
||||
2. **树状命名**,后一位字母代表基于其前一位字母的分支,取技能名发音(倒着读);属性异常较特殊,直接以异常名作为技能类型名
|
||||
|
||||
3. 后跟数字可表示段数,如AP1表示第一段普攻;为避免混淆,数字仅表示同一技能不同段数,不用于区分不同技能
|
||||
3. 后跟数字可表示**段数**,如AP1表示第一段普攻;为避免混淆,数字仅表示同一技能不同段数,不用于区分不同技能
|
||||
|
||||
4. 当不需要进一步细分分支时,必须遵守此标准命名,否则可能导致Buff计算错误
|
||||
|
||||
|
|
@ -259,7 +262,7 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
- 如果只包括**CCX**(巡游冲刺攻击),则代表对“冲刺攻击:冰渊潜袭”生效(无论普通或蓄力)
|
||||
- 如果只包括**CCXX**(蓄力巡游冲刺攻击),则代表只对“冲刺攻击:冰渊潜袭”的蓄力巡游冲刺攻击生效
|
||||
|
||||
[点此查看](./character/艾莲/calc.js#L12)艾莲实际伤害计算文件
|
||||
[点此查看](./character/艾莲/calc.js#L24)艾莲实际伤害计算文件
|
||||
|
||||
### 技能倍率
|
||||
|
||||
|
|
@ -271,6 +274,50 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
|
||||
需要自定义data.json时,同样复制一份重命名为**data_user.json**即可
|
||||
|
||||
角色每个技能各等级对应的倍率建议在[米游社官网图鉴](https://baike.mihoyo.com/zzz/wiki/channel/map/2/43)中查询。不建议使用第三方图鉴工具(如B站的绝区零wiki),其技能倍率可能存在错误
|
||||
|
||||
技能倍率大部分情况下为**等差数列**,少数情况下增量**存在变化**,请注意甄别。对于等差数列的技能倍率,我写了一个简易的生成函数,你可复制粘贴直接使用:
|
||||
|
||||
<details>
|
||||
<summary>点击展开</summary>
|
||||
|
||||
```js
|
||||
import { exec } from 'child_process'
|
||||
|
||||
const copyToClipboard = (text) => {
|
||||
exec('clip').stdin.end(text)
|
||||
}
|
||||
|
||||
function counter(first, second, num = 16) {
|
||||
if (first > 100 && second > 100) {
|
||||
first = Math.round(first * 100)
|
||||
second = Math.round(second * 100)
|
||||
} else {
|
||||
first = Math.round(first * 10000)
|
||||
second = Math.round(second * 10000)
|
||||
}
|
||||
const step = second - first
|
||||
const arr = [first / 10000]
|
||||
let txt = first / 10000 + ''
|
||||
for (let i = 1; i < num; i++) {
|
||||
const next = (first + step * i) / 10000
|
||||
txt += ',' + +next.toFixed(4)
|
||||
arr.push(next)
|
||||
}
|
||||
if (process.platform === 'win32') {
|
||||
copyToClipboard(txt)
|
||||
}
|
||||
console.log(txt)
|
||||
return arr
|
||||
}
|
||||
|
||||
// 可按照实际数值填写,当倍率大于100%时可忽略百分号填写
|
||||
// 参数依次为:1级倍率 2级倍率 生成长度
|
||||
counter(145.7, 159, 16)
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 注册技能
|
||||
|
||||
伤害计算模块提供了注册各技能的接口[Calculator](./Calculator.ts),所有技能都需要通过此类的实例**calc**进行注册
|
||||
|
|
@ -285,7 +332,9 @@ buff作用范围将以技能类型命名为依据向后覆盖。以上述[艾莲
|
|||
|
||||
- 若某技能所造成伤害的属性与角色属性不符,应指定该技能的属性**element**
|
||||
|
||||
- 技能的参数有较多可选的拓展,用于处理更复杂的情况,如有需要请自行查看[Calculator源码](./Calculator.ts)和已有角色的计算案例
|
||||
- 技能的参数有较多可选的拓展,用于处理更复杂的情况,如有需要请自行查看[Calculator源码](./Calculator.ts)和已有角色的计算案例(较为复杂的计算案例可参考[柏妮思的伤害计算](./character/柏妮思/calc.js))
|
||||
|
||||
- 后续会根据需要,新增/调整拓展参数,对于已有的拓展会尽量保持兼容
|
||||
|
||||
- 目前只可注册角色的技能,部分武器有独立的造成额外伤害的机制,暂不考虑
|
||||
|
||||
|
|
@ -352,6 +401,10 @@ export function calc(buffM, calc, avatar) {
|
|||
|
||||
建议开启[在线调试](#管理buff)
|
||||
|
||||
## 鸣谢
|
||||
|
||||
感谢[紫罗兰打烊啦](https://www.miyoushe.com/zzz/accountCenter/postList?id=279259320)对伤害计算细则的评测指正
|
||||
|
||||
---
|
||||
|
||||
[伤害计算]:https://www.miyoushe.com/zzz/article/55265618
|
||||
Loading…
Add table
Add a link
Reference in a new issue