修复白字或者特效伤害吃nut最终加成
众所周知,白字和特效伤害会受到nut写的终伤加成,让白字又一次得到提升,导致伤害偏高很多。尤其在86版本属性白字的加入,伤害逐渐看不懂,远偏离计算。以前想过办法解决,最终还是重新写了白字和属性白字等,不过现在有个简单一点的办法解决。
if(passiveobj.getPassiveObjectIndex() == 48081)
{
local BonusRate = sq_GetCurrentAttackBonusRate(passiveobj) ;
local attackInfo = sq_GetCurrentAttackInfo(passiveobj);
local DamageRate = getCurrentModuleDamageRate(parentChr).tointeger();
local ReduceRate = 0;
if (DamageRate == 1 )
{
ReduceRate = 0;
}else{
ReduceRate = 100/DamageRate;
}
local FinalRate = BonusRate - ReduceRate;
sq_SetCurrentAttackBonusRate(attackInfo, FinalRate);
}
//这段代码写到common里的onAttack_PassiveObject 这个函数里就行了 这是有终伤100%加成的一张图和数据,很明显白字被放大了100%
这是使用算法还原后的,属性白字也是这种写法,这里就不写了。
谢谢了 帮顶
感谢分享 大佬 6 牛逼 大佬强的一 //重新改进了下代码,之前写的有些情况没考虑全
if(passiveobj.getPassiveObjectIndex() == 48081)
{
local BonusRate = sq_GetCurrentAttackBonusRate(passiveobj) ;
local attackInfo = sq_GetCurrentAttackInfo(passiveobj);
local DamageRate = getCurrentModuleDamageRate(parentChr);
local ReduceRate = 0;
local FinalRate = BonusRate;
if (DamageRate == 1 )
{
FinalRate = BonusRate;
}else if(DamageRate < 1 ){
ReduceRate = (100/DamageRate).tointeger();
FinalRate = ReduceRate - 100;
}else if(DamageRate > 1 ){
ReduceRate = (100/DamageRate).tointeger();
FinalRate = BonusRate - ReduceRate;
}
sq_SetCurrentAttackBonusRate(attackInfo, FinalRate);
} 有视频教学写哪里吗?
页:
[1]