查看: 2142|回复: 3

[有事请教] 幸运到底有啥用?怎么才能利用好幸运这个属性?

[复制链接]
梦石
0
星屑
5269
在线时间
733 小时
注册时间
2013-1-18
回帖
525
发表于 2023-9-22 20:15:15 | 显示全部楼层 |阅读模式

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

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

×
我把鼠标停留在幸运栏,显示的是“影响负面状态发生的概率”
我的理解是,幸运越高,越不容易中负面状态,比如中毒,黑暗一类的
但是,实际操作中,我发现一个问题。
就是怎样利用这个属性?
我做了一个实验,把敌人的幸运调到1,我的幸运是10,整整多了10倍。
按理说我应该很不容易中这个敌人的负面状态了吧?
但是,我在这个敌人的攻击中,加入了中毒。设置为:附加状态 中毒100%
我挨打一样100% 中毒!
问题就来了,如果我把这个附加状态改为50%,则我有50%几率中毒,
那我还要幸运这个属性干什么?

请大佬们帮我解解惑,如何设置幸运与敌人状态攻击之间的联系呢?

点评

很多rm技术群聊里都讨论过幸运属性,结论好像就是楼下说的【1点幸运默认只影响千分之一的概率】,可以改改js源码让它影响更多  发表于 2023-9-23 13:23
梦石
0
星屑
7089
在线时间
722 小时
注册时间
2021-3-5
回帖
731
发表于 2023-9-22 21:18:20 | 显示全部楼层
回复

使用道具 举报

梦石
0
星屑
29896
在线时间
5733 小时
注册时间
2016-3-8
回帖
1653
发表于 2023-9-22 21:36:34 | 显示全部楼层
本帖最后由 alexncf125 于 2023-9-22 23:49 编辑
  1. Game_Action.prototype.itemEffectAddNormalState = function(target, effect) {
  2.     var chance = effect.value1;
  3.     if (!this.isCertainHit()) {
  4.         chance *= target.stateRate(effect.dataId);
  5.         chance *= this.lukEffectRate(target);
  6.     }
  7.     if (Math.random() < chance) {
  8.         target.addState(effect.dataId);
  9.         this.makeSuccess(target);
  10.     }
  11. };
复制代码

  1. Game_Action.prototype.lukEffectRate = function(target) {
  2.     return Math.max(1.0 + (this.subject().luk - target.luk) * 0.001, 0.0);
  3. };
复制代码


敌人的幸运调到1,我的幸运是10
敌人攻击我挨打,所以this.subject().luk是1,而target.luk是10
敌人攻击设置为:附加状态 中毒100%,所以effect.value1是1

因为有行if (!this.isCertainHit()) {}
所以敌人攻击的命中类型得不是"必定命中"才会计算幸运影响与target.stateRate(effect.dataId)(我对中毒的状态抗性)

那假如敌人攻击的命中类型不是"必定命中"而我对中毒的状态抗性是1(100%)
lukEffectRate计算:Math.max(1.0 + (this.subject().luk - target.luk) * 0.001, 0.0) = 1.0 + (1 - 10) * 0.001与0.0取最大值 = 0.991
itemEffectAddNormalState计算:effect.value1 * target.stateRate(effect.dataId) * this.lukEffectRate(target) = 1 x 1 x 0.991 = 0.991

结论就是你测说的100%其实不对,而是99.1%
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部