终于搞清楚伤害问题了……
挂机手游模拟器吧
全部回复
仅看楼主
level 6
ltblue 楼主
我这一会乘算一会加算的,怎么算都不对
原来游戏伤害加成有上限……
其实群里作者早就告诉我了,可惜当时我听不懂……
2026年02月14日 18点02分 1
level 6
ltblue 楼主
我们首先看以下几个技能
命中神通代码
base.WhenAttack_Cul_1(entryRecord, Attacker, Behiter, damage_Recorder);
BigInteger bigInteger = Attacker.battle_Character_Info.BattleData_Manager.GetFinalValue(PropertyTypeEnum.MingZhong) * Base * entryRecord.Level / 10;
if (bigInteger > 2147483647L)
{bigInteger = 2147483637;}
damage_Recorder.PercentAddition.Add((int)bigInteger);
注意,这里有个上限,不过不重要,一般命中达不到这么高,除非修改
鸟阵代码
base.WhenAttack_Cul_1(entryRecord, Attacker, Behiter, damage_Recorder);
BigInteger bigInteger = Attacker.battle_Character_Info.BattleData_Manager.GetData(PropertyTypeEnum.Speed).True_Base_Value - Behiter.battle_Character_Info.BattleData_Manager.GetData(PropertyTypeEnum.Speed).True_Base_Value;
if (!(bigInteger > 0L))
{
return;
}
try
{
if (bigInteger > 2147483646L)
{bigInteger = 2147483646;}
damage_Recorder.PercentAddition.Add((int)bigInteger);}
这个是真能达到这么高,就按上限算吧,2147万,注意是百分比,是21亿除以100
后面不贴了
2026年02月14日 18点02分 2
level 6
ltblue 楼主
目前已知的技能,包括猴子的命中,云霄的闪避,神通,鸟阵,暴击阵,甚至包括科技里,图鉴的增伤,统统是一个算法,即
damage_Recorder.PercentAddition.Add
他的代码如下
public static long CulFinalValuePercentArray(long Base, params int[] PercentAddition)
{
double num = Base;
for (int i = 0; i < PercentAddition.Length; i++)
{
num = num * (100.0 + (double)PercentAddition[i]) / 100.0;
}
return (long)num;
}
换句话说,全场乘算,统统都乘算,没有加算,至少我看的这些技能里,都是乘算的
2026年02月14日 18点02分 3
也就是说“增伤”和“伤害”这俩文本实际上是一个东西,每个来源都是独立乘区是么?
2026年03月08日 18点03分
@❤️纯真の丁一郎❤️ 增伤是一条属性,他是可以累计的,你能在角色面板里看到。伤害一般是算在乘算里的
2026年03月09日 02点03分
@ltblue 谢谢
2026年03月09日 02点03分
level 6
ltblue 楼主
但是,但是,我漏看了一行,作者在群里说过,甚至是特地对我说过,我没听明白,也没当回事的
long num = ToolClass.CulFinalValuePercentArray(100L, PercentAddition.ToArray());
if (num < 0)
{
num = 9223372036854775806L;
}
如果溢出了,就按以上数来算,因为long最多装这么多……
这个数是多少呢?9.22乘以10的16次方
看着挺大,一个命中神通加成,像我有600万%的命中,这就4个零出去了
孙悟空的1%命中加1%伤害,又4个零出去了
鸟阵,7个零
还有神鬼志异、西行的组合,等等
很快,就冒了
然后就没得提升了
所以我一直不知道为什么第一个阵法也就是天阵反而伤害高,原来人家代码是这样的
finalValue = finalValue * level / 100;
max.battle_Character_Info.BattleData_Manager.ChangeProprtyValue(PropertyTypeEnum.ATK, (double)finalValue, percent: false, Add: true);
人家直接加攻击力,而不是百分百加成
好像武松的技能也类似,具体没仔细看
一瓶可乐一袋瓜子,一堆代码看到2点半……
2026年02月14日 18点02分 4
level 6
ltblue 楼主
大概捋了捋
稳定能绕过上限的,一个是天阵,一个是武松,武松的2个技能都能绕过,只是增伤那个效果被稀释,没有实际意义
确定绕不过上限的,魅惑的效果,司马懿的震慑增伤,神通里的根据对方debuff层数增伤
另外爆伤、增伤,这两个属性属于自然属性,好像不被限制
其他的再研究吧
2026年02月14日 18点02分 5
补充一下,还有一个重要的稳定绕过的,是一个神通,闪避之后加攻击,这个是单独的,而且加成很大,不过前提是先闪避,不能用于秒杀
2026年03月09日 02点03分
level 8
天才选手
2026年02月15日 02点02分 6
level 1
lz
您好,我还有个问题就是这样角色的属性加成像各种装备、“玩家”是怎么算的,加算么?
2026年03月08日 18点03分 7
你看英灵的属性面板,那个就是已经算完的了,之后你只需要计算技能,神通,阵法等等
2026年03月09日 02点03分
@ltblue 好的
2026年03月09日 02点03分
level 1
楼主大大,反伤怪怎么打啊,我试炼碰到反伤怪直接死
2026年03月25日 00点03分 8
反伤只有对面有岳飞的情况下才有意义,否则孙悟空一棍子下去,虽然自己被反死了,但对面也都死了,还是赢了。强的不是反伤,是岳飞。
2026年03月25日 08点03分
level 1
所以后期阵法想提升攻击还得是靠天覆阵吗,我把我全部资源都加鸟阵上了[泪]
2026年04月19日 12点04分 9
1