public static void SetHeroBalanceValueArr(uint heroId, ref ValueDataInfo[] dataArr, int level) { if (dataArr.Length >= 0x24) { uint balanceInfoId = GetBalanceInfoId(heroId, level); ResHeroBalanceInfo dataByKey = GameDataMgr.heroBalanceDatabin.GetDataByKey(balanceInfoId); if (dataByKey != null) { SetPropValue(dataArr[1], dataByKey.iPhyAtkPt); SetPropValue(dataArr[3], dataByKey.iPhyDefPt); SetPropValue(dataArr[2], dataByKey.iMgcAtkPt); SetPropValue(dataArr[4], dataByKey.iMgcDefPt); SetPropValue(dataArr[5], dataByKey.iHp); SetPropValue(dataArr[6], dataByKey.iCritRate); SetPropValue(dataArr[12], dataByKey.iCritEft); SetPropValue(dataArr[13], dataByKey.iRealHurt); SetPropValue(dataArr[14], dataByKey.iRealHurtLess); SetPropValue(dataArr[0x11], dataByKey.iCtrlReduce); SetPropValue(dataArr[0x13], dataByKey.iBaseHurtAdd); SetPropValue(dataArr[20], dataByKey.iCdReduce); SetPropValue(dataArr[7], dataByKey.iPhyArmorHurt); SetPropValue(dataArr[8], dataByKey.iMgcArmorHurt); SetPropValue(dataArr[9], dataByKey.iPhyVamp); SetPropValue(dataArr[10], dataByKey.iMgcVamp); SetPropValue(dataArr[11], dataByKey.iAntiCrit); } } }
private static void SetHeroValueByBalanceLvl(uint heroId, ValueProperty propCom) { uint balanceInfoId = GetBalanceInfoId(heroId, propCom.mActorValue.actorLvl); ResHeroBalanceInfo dataByKey = GameDataMgr.heroBalanceDatabin.GetDataByKey(balanceInfoId); if (dataByKey == null) { Debug.LogError(string.Concat(new object[] { "ResHeroBalanceInfo can not find heroId = ", heroId, " level = ", propCom.mActorValue.actorLvl })); } else { SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYATKPT, dataByKey.iPhyAtkPt); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT, dataByKey.iMgcAtkPt); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYDEFPT, dataByKey.iPhyDefPt); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCDEFPT, dataByKey.iMgcDefPt); VFactor hpRate = propCom.GetHpRate(); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP, dataByKey.iHp); propCom.SetHpByRate(hpRate); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CRITRATE, dataByKey.iCritRate); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYARMORHURT, dataByKey.iPhyArmorHurt); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCARMORHURT, dataByKey.iMgcArmorHurt); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYVAMP, dataByKey.iPhyVamp); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCVAMP, dataByKey.iMgcVamp); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_ANTICRIT, dataByKey.iAntiCrit); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CRITEFT, dataByKey.iCritEft); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_REALHURT, dataByKey.iRealHurt); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_REALHURTLESS, dataByKey.iRealHurtLess); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CTRLREDUCE, dataByKey.iCtrlReduce); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_BASEHURTADD, dataByKey.iBaseHurtAdd); SetPropValue(propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CDREDUCE, dataByKey.iCdReduce); } }
private static void BalanceProperty(uint heroID, ref ValueProperty propCom, int maxLevel) { int dwConfValue = (int)GameDataMgr.globalInfoDatabin.GetDataByKey((uint)0x1f).dwConfValue; int num2 = (int)GameDataMgr.globalInfoDatabin.GetDataByKey((uint)0x20).dwConfValue; uint balanceInfoId = GetBalanceInfoId(heroID, maxLevel); ResHeroBalanceInfo dataByKey = GameDataMgr.heroBalanceDatabin.GetDataByKey(balanceInfoId); if (dataByKey == null) { Debug.LogError(string.Concat(new object[] { "ResHeroBalanceInfo can not find heroId = ", heroID, " level = ", maxLevel })); } else { int level = maxLevel - dwConfValue; level = (level > 0) ? level : 1; uint key = GetBalanceInfoId(heroID, level); ResHeroBalanceInfo info2 = GameDataMgr.heroBalanceDatabin.GetDataByKey(key); if (info2 == null) { Debug.LogError(string.Concat(new object[] { "ResHeroBalanceInfo can not find heroId = ", heroID, " level = ", maxLevel - dwConfValue })); } else { int num6 = maxLevel - num2; num6 = (num6 > 0) ? num6 : 1; uint num7 = GetBalanceInfoId(heroID, num6); ResHeroBalanceInfo info3 = GameDataMgr.heroBalanceDatabin.GetDataByKey(num7); if (info3 == null) { Debug.LogError(string.Concat(new object[] { "ResHeroBalanceInfo can not find heroId = ", heroID, " level = ", maxLevel - num2 })); } else { BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYATKPT, (float)dataByKey.iPhyAtkPt, (float)info2.iPhyAtkPt, (float)info3.iPhyAtkPt); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT, (float)dataByKey.iMgcAtkPt, (float)info2.iMgcAtkPt, (float)info3.iMgcAtkPt); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYDEFPT, (float)dataByKey.iPhyDefPt, (float)info2.iPhyDefPt, (float)info3.iPhyDefPt); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCDEFPT, (float)dataByKey.iMgcDefPt, (float)info2.iMgcDefPt, (float)info3.iMgcDefPt); int num8 = (propCom.actorHp * 100) / propCom.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP, (float)dataByKey.iHp, (float)info2.iHp, (float)info3.iHp); propCom.actorHp = (num8 * propCom.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue) / 100; BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CRITRATE, (float)dataByKey.iCritRate, (float)info2.iCritRate, (float)info3.iCritRate); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYARMORHURT, (float)dataByKey.iPhyArmorHurt, (float)info2.iPhyArmorHurt, (float)info3.iPhyArmorHurt); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCARMORHURT, (float)dataByKey.iMgcArmorHurt, (float)info2.iMgcArmorHurt, (float)info3.iMgcArmorHurt); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYVAMP, (float)dataByKey.iPhyVamp, (float)info2.iPhyVamp, (float)info3.iPhyVamp); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCVAMP, (float)dataByKey.iMgcVamp, (float)info2.iMgcVamp, (float)info3.iMgcVamp); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_ANTICRIT, (float)dataByKey.iAntiCrit, (float)info2.iAntiCrit, (float)info3.iAntiCrit); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CRITEFT, (float)dataByKey.iCritEft, (float)info2.iCritEft, (float)info3.iCritEft); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_REALHURT, (float)dataByKey.iRealHurt, (float)info2.iRealHurt, (float)info3.iRealHurt); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_REALHURTLESS, (float)dataByKey.iRealHurtLess, (float)info2.iRealHurtLess, (float)info3.iRealHurtLess); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CTRLREDUCE, (float)dataByKey.iCtrlReduce, (float)info2.iCtrlReduce, (float)info3.iCtrlReduce); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_BASEHURTADD, (float)dataByKey.iBaseHurtAdd, (float)info2.iBaseHurtAdd, (float)info3.iBaseHurtAdd); BalancePropValue(ref propCom.mActorValue, RES_FUNCEFT_TYPE.RES_FUNCEFT_CDREDUCE, (float)dataByKey.iCdReduce, (float)info2.iCdReduce, (float)info3.iCdReduce); } } } }