星星发生

星星发生公式及其说明

星星发生公式

星星发生
1.从者基础出星率
+
2.(卡牌倍率 × 3.色卡性能BUFF + 4.首位加成)
+
5.敌方补正
+
6.星星发生BUFF
+
7.暴击补正
+
8.OVER KILL补正

计算结果说明

战斗过程中,每个单次攻击(例如一张Quick卡攻击)都会按照上面公式计算1次。
每个单次攻击可能会分为若干 hit(即攻击动作时产生若干伤害数字),每次 hit 使用该值产生一定数量星星,但最大不超过3个。
具体逻辑可以参考下面伪代码:

// 执行上述计算(但排除最后一步 overkill 补正),结果转换为 int
int attackStar = (int)(actor.getAttackStart() * 1000.0); 

 // 举例,此处Quick卡有 3hits,这里是每个 hit 造成的伤害。遍历每个hit值。
int[] hits = {3238, 2329, 8827}; 
for(int i = 0; i < hits.count; i++) {
     // 如果这次hit会导致被攻击者血量到达0,则从该 hit 开始都算是 overkill
     bool isOverkill = target.resultDamage(hits[i]); 
     // 即最后一步 overkill 补正,注意这里结果仍然是 int 类型
     if (isOverkill) attackStar += 300; 

     // 该 hit 掉落的星星数,例如 attackStar 为 2400,则此处为 100% 100% 40%
     int starCount = 0; 
     for (int n = MIN(attackStar, 3000), n >0; n -= 1000) {
           starCount += Random.getNext(1000) >= n ? 0 : 1;
     }
}

举例:
杰克的绿卡是 5 hits,
基础出星率 0.255(25.5%)
杰克使用保有技能「雾夜杀人A」后,Quick卡性能提升50%,
被敌人释放技能,星星发生率下降60%
三绿连携,第3张卡产生了暴击,且这张卡 5 hits 中,后 2 hits 都是 overkill,
则计算第3张卡的暴击星掉落数:

0.255 (从者基础星星发生率)
+1.8 × (1 + 0.5) + 0.2 (卡牌倍率 × 色卡BUFF + 首位加成)

0 (敌方补正)
+
-0.6 (星星发生BUFF)
+0.2 (暴击补正)
=2.755

对于没有 overkill 的 hit,掉星数为 2.755,即有 24.5% 概率掉落2颗星,75.5% 概率掉落3颗星。
对于 overkill 的 hit,掉星数为 2.755+0.3=3.055,已经超过上限3,即100%概率掉落3颗星。
最终,该卡掉星数预计为 2.755×3 + 3×2 = 14.265。

计算公式说明

1.从者基础掉星率

每个从者有一个固定的掉星率(starRate),
例如玛修 0.099、玉藻猫 0.05、杰克 0.255。
通常来说,Rider、Archer 较高,Caster、Avenger、Berserker 较低。

2.卡牌倍率

按以下倍率取值:

指令卡第1位第2位第3位第4位
Quick0.81.31.8
Arts0.00.00.0
Buster0.10.150.2
Extra


1.0

注意,宝具卡也会按照颜色取值,但不论处在第几位,都按照第1位来处理。

3.色卡性能BUFF

该模块计算方式为 1.0 + 攻击者(色卡性能BUFF) - 防御者(色卡性能BUFF)
防御者的色卡性能BUFF体现为色卡耐性BUFF。
如果该模块最终结果小于 0.0,则修改为 0.0。

色卡性能BUFF包括:

图标效果
spacer.gif3f57a72aa9c7afdb49cc63fd268a7681.jpgQuick 指令卡攻击力提升/性能提升
spacer.gifc96c7b8bfefac3386c1df8baf0886249.jpgArts 指令卡攻击力提升/性能提升
spacer.gif82508e8d0897b7c7a3f96635cc66f00e.jpgBuster 指令卡攻击力提升/性能提升
spacer.gif69e60a4c404745301f6b5182ca1586d9.jpgQuick 指令卡攻击力下降/性能下降
spacer.gifbecf26cc3c8bc059074175967ee9a470.jpgArts 指令卡攻击力提升/性能下降
spacer.gife31cc46f20cc0d660ebd1745877f51d2.jpgBuster 指令卡攻击力下降/性能下降

色卡性能BUFF计算方式为:

float rate = 1.0 + (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 5.0) rate = 5.0; // 上限
if (rate < 0.001) rate = 0.001; // 下限

举例:攻击者有一个Quick 卡性能提升 20% 和 Quick 卡性能下降 10% 两个 buff,
防御者Quick卡耐性下降20%,
则此处取值为 1.0 + (1.0 + 0.2 - 0.1) - (1.0 - 0.2) = 1.3

4.首位加成

如果这次攻击的第一张卡是Quick卡(绿色),则取值 0.2。
宝具卡不参与该运算(即此处取值 0.0),但可以当做"首绿"给其他普通卡和EX卡提供加成。

5.敌方补正

敌方从者身上带有的一个值 (downStarRate),通常在 -0.1~0.1 之间。
该值仅当进入战斗后才会由服务端下发,其值并不确定,所以目前并没有完整数据。

6.星星发生BUFF

该模块计算方式为 攻击者星星发生BUFF - 防御者星星发生BUFF
实际上,防御者通常是没有星星发生BUFF的。

星星发生BUFF包括:

图标效果
spacer.gif0352d7cc03a9ef718d4184ce47e2cea4.jpg星星发生率提升
spacer.giffec1e3066435a1b000f13005cb9d6979.jpg星星发生率下降

星星发生BUFF计算方式为:

float rate = 1.0 + (upBuff1 + upBuff2 + ...) - (downBuff1 + downBuff2 + ...);
if (rate > 5.0) rate = 5.0; // 上限
if (rate < 0.001) rate = 0.001; // 下限

举例:攻击者有一个星星发生率提升 20% 和 星星发生率下降 10% 两个 buff,
防御者没有 buff,
则此处取值为 (1.0 + 0.2 - 0.1) - (1.0) = 0.1

7.暴击补正

如果该卡暴击判定成功,则取值 0.2。
如果该卡没有暴击或者该卡是 EX卡、宝具卡,则取值 0.0。

8.OVER KILL补正

如果该 hit 是 Over kill,则此处取值 0.3,否则取值 0.0。

    • 最新评论
    • 热门评论

用户评论 (0)


  • 沙发空缺

热门排行

  • 伤害计算

  • 抽卡展示

  • NP获取

  • SL操作

  • 星星分配

  • 技能与BUFF

  • 宝具效果

  • 星星发生

  • Overkill判定