zmzml
本帖最后由 zmzml 于 2021-12-11 18:07 编辑

如题 我需要一个公式  这个公式可以使用if random math.max(min)等函数

我给出的示例参数
A : 120
B : 20
我需要当A大于B的时候  大的越多 如 A为120  220 320而B则只有10 20 30 等 输出的数字会逐渐被稀释
比如当我A为10000 B为10     结果不是10000-10  = 9990   而是被稀释到剩下5000  6000 这样
当A过大之后 B 过小  数字越大 加成的就会越小 比如当A= 9999 B= 1的时候 那么A要用999或者1899才能对B额外多造成一点伤害 并且这个加成会收到自身A的影响  最多额外的使用不会超过自身A的50%
当B过大之后 A 过小 数字越大  被稀释的也会越高 最低可以剩下30%  即B= 100 稀释后剩下30 与上面同理 当B过大A过小 要抵抗A的一点伤害 就需要用更多的B去抵抗  


不考虑A B会为0或者负数的情况
请谨慎考虑完再回复  因为回帖仅有作者可见  所以我回复你的你将会看不见


zmzml
放弃这个公式 已经找到其他公式 不打算使用该公式

殿魂某某
根据你的要求,我们设置一个伤害系数就可以解决这个问题。
设定A为攻击方,设定B为受击方,设定Z为伤害系数,我们可以建立以下模型:
当A-B>B时,Z=1.5
当A-B>0&&A-B<B时,Z=1.2
当A=B时,Z=1
当A-B<0时,Z=0.5
最终给到伤害公式就很简单了,为:伤害=伤害总和*伤害系数

RPG服本身就存在属性压制,当存在这么大的数值差距时,任何的减免都是无效的,如果过高的减免会让玩家觉得属性的优势荡然无存,比如你说的例子,A等于10000,B等于10时,这两者在实际是很少会存在,即便存在也不会是一个量级的战斗。这就等于一个满级大佬去新手村屠杀,哪怕是平A也顺便带走了。

FireworkPolymer
建议用对数函数,另外为什么要开回复可见,这不算什么商业机密吧

第一页 上一页 下一页 最后一页