10019 【砍树】回合战斗(NPC支持暴击、吸血)
| | |
| | | calcTypeList += [ChConfig.Def_HurtType_LuckyHit, ChConfig.Def_HurtType_SuperHit,
|
| | | ChConfig.Def_HurtType_Zhuxian, ChConfig.Def_HurtType_DeadlyHit,
|
| | | ChConfig.Def_HurtType_ThumpHit]
|
| | | elif atkObjType == IPY_GameWorld.gotNPC:
|
| | | calcTypeList += [ChConfig.Def_HurtType_SuperHit]
|
| | | |
| | | if defObjType == IPY_GameWorld.gotPlayer:
|
| | | calcTypeList += [ChConfig.Def_HurtType_Parry]
|
| | | # 暂时只计算玩家
|
| | | |
| | | if not calcTypeList:
|
| | | return hurtType, hurtTypeResultDict
|
| | |
|
| | |
| | | '''
|
| | |
|
| | | if IsHappenStateByType(happenState, ChConfig.Def_Skill_HappenState_SuperHit):
|
| | | return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReduce(defObj)
|
| | | return True, atkObj.GetSuperHit(), GameObj.GetSuperHitReduce(defObj)
|
| | |
|
| | | aSuperHitRate = atkObj.GetSuperHitRate()
|
| | | dSuperHitRateReduce = GameObj.GetSuperHitRateReduce(defObj)
|
| | |
| | | if superHitRate <= 0:
|
| | | return
|
| | | if GameWorld.CanHappen(superHitRate):
|
| | | return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReduce(defObj)
|
| | | return True, atkObj.GetSuperHit(), GameObj.GetSuperHitReduce(defObj)
|
| | | return
|
| | |
|
| | | def __HurtTypeHappen_Parry(atkObj, defObj, happenState, curSkill):
|
| | |
| | | def __HurtTypeHappen_ThumpHit(atkObj, defObj, happenState, curSkill):
|
| | |
|
| | | if IsHappenStateByType(happenState, ChConfig.Def_Skill_HappenState_ThumpHit):
|
| | | return True, int(atkObj.GetSuperHit()*1.5), PlayerControl.GetSuperHitReduce(defObj)
|
| | | return True, int(atkObj.GetSuperHit()*1.5), GameObj.GetSuperHitReduce(defObj)
|
| | |
|
| | | thumpHitRate = 0
|
| | | thumpHitRate += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill,
|
| | |
| | | if thumpHitRate <= 0:
|
| | | return
|
| | | if GameWorld.CanHappen(thumpHitRate):
|
| | | return True, atkObj.GetSuperHit()*2, PlayerControl.GetSuperHitReduce(defObj)
|
| | | return True, atkObj.GetSuperHit()*2, GameObj.GetSuperHitReduce(defObj)
|
| | | return
|
| | |
|
| | |
|
| | |
| | | aLV = atkObj.GetLV() # 攻击方等级
|
| | | dLV = defObj.GetLV() # 防守方等级
|
| | |
|
| | | aHit = atkObj.GetHit()
|
| | | aHit = GameObj.GetMissDefRate(atkObj)#atkObj.GetHit()
|
| | | if curSkill and atkObjType == IPY_GameWorld.gotPlayer and curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_NormalAttack:
|
| | | aHit = aHit*IpyGameDataPY.GetFuncCfg("FightHappenRate", 2)
|
| | |
|
| | | aHitSuccessRate = PlayerControl.GetHitSucessRate(atkObj) if atkObjType == IPY_GameWorld.gotPlayer else ChConfig.Def_MaxRateValue
|
| | | aHitSuccessRate += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_HitSuccess)
|
| | | dMiss = defObj.GetMiss()
|
| | | dMiss = GameObj.GetMissRate(defObj)#defObj.GetMiss()
|
| | | dMiss += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_MissPer)
|
| | | dMissSuccessRate = PlayerControl.GetMissSucessRate(defObj) if defObjType == IPY_GameWorld.gotPlayer else 0
|
| | | dMissSuccessRate += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_MissSuccessPer)
|
| | |
| | | # @param defObj 防守者
|
| | | # @return None
|
| | | def CalcSuckBlood(atkObj, defObj, curSkill, resultHurtType, tick):
|
| | |
|
| | | if atkObj.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
| | | return
|
| | | |
| | | hurtValue, hurtType = resultHurtType.RealHurtHP, resultHurtType.HurtType,
|
| | | if not hurtValue:
|
| | | return
|
| | |
|
| | | tick = GameWorld.GetGameWorld().GetTick()
|
| | | if tick - atkObj.GetTickByType(ChConfig.TYPE_Player_Tick_SuckBlood) \
|
| | | < ChConfig.TYPE_Player_Tick_Time[ChConfig.TYPE_Player_Tick_SuckBlood]:
|
| | | return
|
| | | |
| | | atkObj.SetTickByType(ChConfig.TYPE_Player_Tick_SuckBlood, tick)
|
| | | |
| | | suckHP = 0
|
| | | |
| | | # 杀怪回血
|
| | | if defObj.GetGameObjType() == IPY_GameWorld.gotNPC and GameObj.GetHP(defObj) <= 0:
|
| | | suckHP += atkObj.GetKillBackHP()
|
| | | |
| | | # 攻击吸血
|
| | | atkBackHP = PlayerControl.GetAtkBackHPPer(atkObj)
|
| | | if defObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | #PVP 攻击回血
|
| | | atkBackHP += PlayerControl.GetPVPAtkBackHP(atkObj)
|
| | | # 百分比吸血
|
| | | atkBackHPPer = PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_Buff_SuckBloodPer)
|
| | | atkBackHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_Buff_SuckBloodPer)
|
| | | |
| | | |
| | | if hurtType == ChConfig.Def_HurtType_SuperHit:
|
| | | atkBackHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitSuckBloodPer)
|
| | | elif hurtType == ChConfig.Def_HurtType_ThumpHit: |
| | | atkBackHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_ThumpHitSuckBloodPer)
|
| | |
|
| | | atkBackHP += int(hurtValue * atkBackHPPer*1.0 / ChConfig.Def_MaxRateValue)
|
| | | if atkObj.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightNum):
|
| | | pass
|
| | | else:
|
| | | tick = GameWorld.GetGameWorld().GetTick()
|
| | | if tick - atkObj.GetTickByType(ChConfig.TYPE_Player_Tick_SuckBlood) \
|
| | | < ChConfig.TYPE_Player_Tick_Time[ChConfig.TYPE_Player_Tick_SuckBlood]:
|
| | | return
|
| | | atkObj.SetTickByType(ChConfig.TYPE_Player_Tick_SuckBlood, tick)
|
| | |
|
| | | suckHP += atkBackHP
|
| | | atkObjType = atkObj.GetGameObjType()
|
| | | defObjType = defObj.GetGameObjType()
|
| | |
|
| | | if suckHP <= 0:
|
| | | suckHP = GameObj.GetAtkBackHP(atkObj) # 攻击回血固定值
|
| | | if atkObjType == IPY_GameWorld.gotPlayer:
|
| | | # 杀怪回血
|
| | | if defObjType == IPY_GameWorld.gotNPC and GameObj.GetHP(defObj) <= 0:
|
| | | suckHP += atkObj.GetKillBackHP()
|
| | | |
| | | #PVP攻击回血
|
| | | if defObjType == IPY_GameWorld.gotPlayer:
|
| | | suckHP += PlayerControl.GetPVPAtkBackHP(atkObj)
|
| | | else:
|
| | | pass
|
| | | |
| | | # 百分比吸血
|
| | | suckHPPer = PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_Buff_SuckBloodPer)
|
| | | suckHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_Buff_SuckBloodPer)
|
| | | if hurtType == ChConfig.Def_HurtType_SuperHit:
|
| | | suckHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SuperHitSuckBloodPer)
|
| | | elif hurtType == ChConfig.Def_HurtType_ThumpHit: |
| | | suckHPPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_ThumpHitSuckBloodPer)
|
| | | |
| | | suckHPPer += GameObj.GetSuckHPPer(atkObj)
|
| | | suckHPDefPer = GameObj.GetSuckHPDefPer(defObj)
|
| | | |
| | | suckHPPerFinal = max(0, suckHPPer - suckHPDefPer)
|
| | | suckHPByPer = int(hurtValue * suckHPPerFinal*1.0 / ChConfig.Def_MaxRateValue)
|
| | | |
| | | suckHPTotal = suckHPByPer + suckHP
|
| | | #GameWorld.DebugLog(" 吸血: atkID=%s,suckHPPer=%s,defID=%s,suckHPDefPer=%s,suckHPPerFinal=%s,suckHPByPer=%s,hurtValue=%s,suckHP=%s" |
| | | # % (atkObj.GetID(), suckHPPer, defObj.GetID(), suckHPDefPer, suckHPPerFinal, suckHPByPer, hurtValue, suckHP))
|
| | | if suckHPTotal <= 0:
|
| | | return
|
| | |
|
| | | GameObj.SetHP(atkObj, min(GameObj.GetMaxHP(atkObj), GameObj.GetHP(atkObj) + suckHP), False)
|
| | | GameObj.SetHP(atkObj, min(GameObj.GetMaxHP(atkObj), GameObj.GetHP(atkObj) + suckHPTotal), False)
|
| | |
|
| | | ChangeHPView(atkObj, None, 0, suckHP, ChConfig.Def_HurtTYpe_Recovery)
|
| | | ChangeHPView(atkObj, None, 0, suckHPTotal, ChConfig.Def_HurtTYpe_Recovery)
|
| | | return
|
| | |
|
| | | ## 攻击者回蓝逻辑
|
| | |
| | | TYPE_Calc_HPRestorePer, # 自动回复血量 65
|
| | | TYPE_Calc_KillBackHP, # 击杀回血
|
| | | TYPE_Calc_KillBackMP, # 击杀回蓝
|
| | | TYPE_Calc_AtkBackHPPer, # 攻击回复血量固定值
|
| | | TYPE_Calc_AtkBackHP, # 攻击回复血量固定值
|
| | | TYPE_Calc_AtkBackMPPer, # 攻击回复蓝量比率
|
| | | TYPE_Calc_AddBackHPPer, # 暂无用 70
|
| | | TYPE_Calc_ReduceBackHPPer, # 暂无用
|
| | |
| | | AttrName_FightExpRate = "FightExpRate" # 杀怪经验倍率
|
| | | AttrName_GameExpRate = "GameExpRate" # 游戏事件经验倍率
|
| | | AttrName_SkillAtkRate = "SkillAtkRate" # 技能伤害加成 (用作伤害加成)
|
| | | AttrName_AtkBackHPPer = "AtkBackHPPer" # 攻击回复血量比率
|
| | | AttrName_AtkBackHP = "AtkBackHP" # 攻击回复血量固定值
|
| | | AttrName_SuperHit = "SuperHit" # 暴击伤害固定值
|
| | | AttrName_SuperHitRate = "SuperHitRate" # 暴击概率
|
| | | AttrName_NPCHurtAddPer = "NPCHurtAddPer" # 对怪物伤害加成
|
| | |
| | | ShareDefine.Def_Effect_ComboDamPer:[[TYPE_Calc_ComboDamPer], False, TYPE_Linear],
|
| | | ShareDefine.Def_Effect_BleedDamage:[[TYPE_Calc_BleedDamage], False, TYPE_Linear],
|
| | | AttrName_BleedDamage:[[TYPE_Calc_BleedDamage], False, TYPE_Linear],
|
| | | AttrName_AtkBackHPPer:[[TYPE_Calc_AtkBackHPPer], False, TYPE_Linear],
|
| | | ShareDefine.Def_Effect_AtkBackHP:[[TYPE_Calc_AtkBackHPPer], False, TYPE_Linear],
|
| | | AttrName_AtkBackHP:[[TYPE_Calc_AtkBackHP], False, TYPE_Linear],
|
| | | ShareDefine.Def_Effect_AtkBackHP:[[TYPE_Calc_AtkBackHP], False, TYPE_Linear],
|
| | | AttrName_SuperHitRate:[[TYPE_Calc_SuperHitRate], False, TYPE_Linear],
|
| | | AttrName_SuperHit:[[TYPE_Calc_SuperHit], False, TYPE_Linear],
|
| | | AttrName_NPCHurtAddPer:[[TYPE_Calc_NPCHurtAddPer], False, TYPE_Linear],
|
| | |
| | | if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, value)
|
| | | return
|
| | | def GetSuperHitReduce(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReduce)
|
| | | def SetSuperHitReduce(gameObj, value):
|
| | | ## 暴击伤害减免
|
| | | gameObj.SetDict(ChConfig.Def_PlayerKey_SuperHitReduce, value)
|
| | | if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuperHitReduce, value)
|
| | | return
|
| | |
|
| | | def GetFaintRate(gameObj): return gameObj.GetDictByKey(ChConfig.Def_PlayerKey_AttrFaintRate)
|
| | | def SetFaintRate(gameObj, value):
|
| | |
| | | if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuckHPDefPer, value)
|
| | | return
|
| | |
|
| | | |
| | | def GetAtkBackHP(gameObj):
|
| | | if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | return gameObj.GetBattleValEx2()
|
| | | return gameObj.GetDictByKey(ChConfig.AttrName_AtkBackHP)
|
| | | def SetAtkBackHP(gameObj, value):
|
| | | ## 吸血固定值
|
| | | if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
|
| | | gameObj.SetBattleValEx2(value)
|
| | | else:
|
| | | gameObj.SetDict(ChConfig.AttrName_AtkBackHP, value)
|
| | | return
|
| | |
| | | IgnoreDefRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_IgnoreDefRateReduce) * fpParam.GetCftIgnoreDefRateReduce() # 无视防御概率抗性
|
| | | DamChanceDef = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamChanceDef) * fpParam.GetCftDamChanceDef() # 20%的概率抵御伤害比率
|
| | | BleedDamage = 0#getattr(self, self.__AttrName % ChConfig.TYPE_Calc_BleedDamage) * fpParam.GetCftBleedDamage() # 流血伤害
|
| | | AtkBackHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AtkBackHPPer) # 攻击回复血量
|
| | | AtkBackHP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AtkBackHP) # 攻击回复血量
|
| | | FaintRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FaintRate) * fpParam.GetCftFaintRate() # 触发击晕
|
| | | FaintDefRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FaintDefRate) * fpParam.GetCftFaintDefRate() # 击晕抵抗
|
| | | FinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurt) # 最终固定伤害增加
|
| | |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_SpeedValue, value)
|
| | | SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_SpeedValue, value, True) # 移动速度值暂定广播周围玩家
|
| | |
|
| | | #---攻击回复血量比率----
|
| | | ## 获取玩家攻击回复血量比率
|
| | | # @param curPlayer 玩家实例
|
| | | # @return |
| | | def GetAtkBackHPPer(curPlayer):
|
| | | return curPlayer.GetBattleValEx2()
|
| | |
|
| | |
|
| | | ## 设置玩家攻击回复血量比率
|
| | | # @param curPlayer 玩家实例
|
| | | # @return None
|
| | | def SetAtkBackHPPer(curPlayer, value):
|
| | | curPlayer.SetBattleValEx2(value)
|
| | | # PVP攻击回血
|
| | | def GetPVPAtkBackHP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PVPAtkBackHP)
|
| | | def SetPVPAtkBackHP(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_PVPAtkBackHP, value)
|
| | |
|
| | | ## 获取玩家攻击回复蓝量比率
|
| | | def GetAtkBackMPPer(curPlayer): return 0
|
| | |
| | | ## 卓越一击伤害减免
|
| | | def GetGreatHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitReducePer)
|
| | | def SetGreatHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitReducePer, value)
|
| | | ## 暴击伤害减免
|
| | | def GetSuperHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReduce)
|
| | | def SetSuperHitReduce(curPlayer, value):
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReduce, value)
|
| | | SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_SuperHitReduce, value)
|
| | |
|
| | | ## 无视防御伤害减免
|
| | | def GetIgnoreDefReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefReducePer)
|
| | | def SetIgnoreDefReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_IgnoreDefReducePer, value)
|
| | |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_OnlyFinalHurt, value)
|
| | | SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_OnlyFinalHurt, value)
|
| | | return
|
| | |
|
| | | # PVP攻击回血
|
| | | def GetPVPAtkBackHP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PVPAtkBackHP)
|
| | | def SetPVPAtkBackHP(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_PVPAtkBackHP, value)
|
| | |
|
| | | # 命中成功率
|
| | | def GetHitSucessRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_HitSucessRate)
|
| | |
| | | curPlayerPropDict["SuperHitRate"] = curPlayer.GetSuperHitRate() # 暴击概率
|
| | | curPlayerPropDict["SuperHit"] = curPlayer.GetSuperHit() # 暴击伤害固定值
|
| | | curPlayerPropDict["SuperHitRateReduce"] = GameObj.GetSuperHitRateReduce(curPlayer) # 暴击概率抗性
|
| | | curPlayerPropDict["SuperHitReduce"] = PlayerControl.GetSuperHitReduce(curPlayer) # 暴击伤害抗性固定值
|
| | | curPlayerPropDict["SuperHitReduce"] = GameObj.GetSuperHitReduce(curPlayer) # 暴击伤害抗性固定值
|
| | | curPlayerPropDict["IceAtk"] = curPlayer.GetIceAtk() # 真实伤害 固定值
|
| | | curPlayerPropDict["IceDef"] = curPlayer.GetIceDef() # 真实伤害防御 固定值
|
| | | curPlayerPropDict["IgnoreDefRate"] = curPlayer.GetIgnoreDefRate() # 无视防御几率
|
| | |
| | | curPlayerPropDict["OnlyFinalHurt"] = PlayerControl.GetOnlyFinalHurt(curPlayer) # 额外输出伤害
|
| | | curPlayerPropDict["DamChanceDef"] = PlayerControl.GetDamChanceDef(curPlayer) # 20%的概率抵御伤害比率
|
| | | curPlayerPropDict["NPCHurtAddPer"] = PlayerControl.GetNPCHurtAddPer(curPlayer) # 对怪物伤害加成
|
| | | curPlayerPropDict["AtkBackHPPer"] = PlayerControl.GetAtkBackHPPer(curPlayer) # 攻击回复血量固定值
|
| | | curPlayerPropDict["PVPAtkBackHP"] = PlayerControl.GetPVPAtkBackHP(curPlayer) # PVP攻击回血
|
| | | curPlayerPropDict["FaintRate"] = GameObj.GetFaintRate(curPlayer) # 触发击晕
|
| | | curPlayerPropDict["FaintDefRate"] = GameObj.GetFaintDefRate(curPlayer) # 击晕抵抗
|
| | | curPlayerPropDict["ComboRate"] = GameObj.GetComboRate(curPlayer) # 连击
|
| | |
| | | curPlayerPropDict["AtkBackDefRate"] = GameObj.GetAtkBackDefRate(curPlayer) # 抗反击
|
| | | curPlayerPropDict["SuckHPPer"] = GameObj.GetSuckHPPer(curPlayer) # 吸血比率
|
| | | curPlayerPropDict["SuckHPDefPer"] = GameObj.GetSuckHPDefPer(curPlayer) # 抗吸血比率
|
| | | curPlayerPropDict["AtkBackHP"] = GameObj.GetAtkBackHP(curPlayer) # 攻击回复血量固定值
|
| | | curPlayerPropDict["PVPAtkBackHP"] = PlayerControl.GetPVPAtkBackHP(curPlayer) # PVP攻击回血
|
| | |
|
| | | #推送提醒
|
| | | curPlayerPropDict[ChConfig.Def_PDict_GeTuiSet] = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GeTuiSet)
|
| | |
| | | [lambda curObj:curObj.GetSuperHitRate(), lambda curObj, value:curObj.SetSuperHitRate(value), IPY_PlayerDefine.CDBPlayerRefresh_SuperHitRate, 1, 0], # 暴击概率
|
| | | [lambda curObj:curObj.GetSuperHit(), lambda curObj, value:curObj.SetSuperHit(value), IPY_PlayerDefine.CDBPlayerRefresh_SuperHit, 1, 0], # 暴击伤害固定值
|
| | | [lambda curObj:GameObj.GetSuperHitRateReduce(curObj), lambda curObj, value:GameObj.SetSuperHitRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, 1, 0],# 暴击概率抗性
|
| | | [lambda curObj:PlayerControl.GetSuperHitReduce(curObj), lambda curObj, value:PlayerControl.SetSuperHitReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitReduce, 1, 0], # 暴击伤害抗性固定值
|
| | | [lambda curObj:GameObj.GetSuperHitReduce(curObj), lambda curObj, value:GameObj.SetSuperHitReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitReduce, 1, 0], # 暴击伤害抗性固定值
|
| | |
|
| | | [lambda curObj:curObj.GetGreatHitRate(), lambda curObj, value:curObj.SetGreatHitRate(value), 0, 0, 0], # 卓越一击几率
|
| | | [lambda curObj:curObj.GetGreatHitVal(), lambda curObj, value:curObj.SetGreatHitVal(value), 0, 0, 0], # 卓越一击伤害倍率
|
| | |
| | | [lambda curObj:curObj.GetHPRestorePer(), lambda curObj, value:curObj.SetHPRestorePer(value), IPY_PlayerDefine.CDBPlayerRefresh_HPRestorePer, 1, 0], # 自动回复生命
|
| | | [lambda curObj:curObj.GetKillBackHP(), lambda curObj, value:curObj.SetKillBackHP(value), 0, 0, 0], # 击杀回血
|
| | | [lambda curObj:curObj.GetKillBackMP(), lambda curObj, value:curObj.SetKillBackMP(value), 0, 0, 0], # 击杀回蓝
|
| | | [lambda curObj:PlayerControl.GetAtkBackHPPer(curObj), lambda curObj, value:PlayerControl.SetAtkBackHPPer(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx2, 1, 0], # 攻击回复血量固定值
|
| | | [lambda curObj:GameObj.GetAtkBackHP(curObj), lambda curObj, value:GameObj.SetAtkBackHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx2, 1, 0], # 攻击回复血量固定值
|
| | | [lambda curObj:PlayerControl.GetAtkBackMPPer(curObj), lambda curObj, value:PlayerControl.SetAtkBackMPPer(curObj, value), 0, 0, 0], # 攻击回复蓝量比率
|
| | | [lambda curObj:PlayerControl.GetAddBackHPPer(curObj), lambda curObj, value:PlayerControl.SetAddBackHPPer(curObj, value), 0, 0, 0], # 暂无用
|
| | | [lambda curObj:PlayerControl.GetReduceBackHPPer(curObj), lambda curObj, value:PlayerControl.SetReduceBackHPPer(curObj, value), 0, 0, 0], # 暂无用
|