8870 【BT2】【后端】战力、伤害、玩家生命的数值调整为大数值(瞬间群体/单体回血技能回血量支持超20E)
| | |
| | | # @param cureType 治疗类型(影响公式)自定义:1.伤害 2.最大血量
|
| | | # @return 治疗值
|
| | | # @remarks 获得治疗值
|
| | | def GetCureHP(userObj, tagObj, curSkill, cureType=ChConfig.Def_Cure_Attack):
|
| | | def GetCureHP(userObj, tagObj, curSkill, cureType=ChConfig.Def_Cure_Attack, largeNum=False):
|
| | | curePercent = 1.0 #治疗加成值
|
| | | cureBaseValue = 0 #治疗基础值
|
| | |
|
| | |
| | | skillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(userObj, None, curSkill, ChConfig.TriggerType_AddHP)/float(ChConfig.Def_MaxRateValue)
|
| | | #公式计算治疗值
|
| | | cureHP = int((cureBaseValue * skillPer + skillValue + addExValue) * curePercent)
|
| | | cureHP = min(cureHP, ChConfig.Def_UpperLimit_DWord)
|
| | | if not largeNum:
|
| | | cureHP = min(cureHP, ChConfig.Def_UpperLimit_DWord)
|
| | |
|
| | | #GameWorld.DebugLog("获取治疗值(%s):cureType=%s,cureBaseValue=%s,skillPer=%s,skillValue=%s"
|
| | | # % (cureHP, cureType, cureBaseValue, skillPer, skillValue))
|
| | |
| | | valueList = []
|
| | | for cureObjInfo in cureObjList[:cureCount]:
|
| | | cureObj = cureObjInfo[1]
|
| | | addValue = SkillCommon.GetCureHP(attacker, cureObj, curSkill, cureType)
|
| | | addValue = SkillCommon.GetCureHP(attacker, cureObj, curSkill, cureType, largeNum=True)
|
| | | #GameWorld.DebugLog("加血: curHP=%s,maxHP=%s,addHP=%s" % (GameObj.GetHP(obj), GameObj.GetMaxHP(obj), addValue))
|
| | | #总量 最大生命值的百分比 回血 附加多少
|
| | | SkillCommon.SkillAddHP(cureObj, curSkill.GetSkillTypeID(), addValue, False)
|
| | |
| | | cureSetEff = curSkill.GetEffect(0) # 恢复规则设定效果
|
| | | cureType = cureSetEff.GetEffectValue(2) # 恢复类型
|
| | |
|
| | | addValue = SkillCommon.GetCureHP(attacker, defender, curSkill, cureType)
|
| | | addValue = SkillCommon.GetCureHP(attacker, defender, curSkill, cureType, largeNum=True)
|
| | |
|
| | | if addValue <= 0:
|
| | | return
|