本帖最后由 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或者负数的情况
请谨慎考虑完再回复 因为回帖仅有作者可见 所以我回复你的你将会看不见
如题 我需要一个公式 这个公式可以使用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或者负数的情况
请谨慎考虑完再回复 因为回帖仅有作者可见 所以我回复你的你将会看不见
放弃这个公式 已经找到其他公式 不打算使用该公式
根据你的要求,我们设置一个伤害系数就可以解决这个问题。
设定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也顺便带走了。
设定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也顺便带走了。
建议用对数函数,另外为什么要开回复可见,这不算什么商业机密吧