From e35ed3606a9dd4da24331cc520faf4b720d83f13 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 十二月 2023 13:52:23 +0800
Subject: [PATCH] 10019 【砍树】回合战斗(NPC支持暴击、吸血)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py                 |    4 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py                         |   20 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py            |   28 +-------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py |   96 +++++++++++++++++--------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                        |    8 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py      |    6 +-
 6 files changed, 85 insertions(+), 77 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
index 7c17195..a40755f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1345,9 +1345,12 @@
         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
     
@@ -1422,7 +1425,7 @@
     '''
     
     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)
@@ -1434,7 +1437,7 @@
     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):
@@ -1469,7 +1472,7 @@
 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, 
@@ -1479,7 +1482,7 @@
     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
 
 
@@ -2058,13 +2061,13 @@
     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)
@@ -2584,51 +2587,58 @@
 #  @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
 
 ## 攻击者回蓝逻辑
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 2862e46..18ff3d2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -153,7 +153,7 @@
 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,              # 暂无用
@@ -4478,7 +4478,7 @@
 AttrName_FightExpRate = "FightExpRate"  # 杀怪经验倍率
 AttrName_GameExpRate = "GameExpRate"  # 游戏事件经验倍率
 AttrName_SkillAtkRate = "SkillAtkRate"  # 技能伤害加成 (用作伤害加成)
-AttrName_AtkBackHPPer = "AtkBackHPPer"    # 攻击回复血量比率
+AttrName_AtkBackHP = "AtkBackHP"    # 攻击回复血量固定值
 AttrName_SuperHit = "SuperHit"  # 暴击伤害固定值
 AttrName_SuperHitRate = "SuperHitRate"  # 暴击概率
 AttrName_NPCHurtAddPer = "NPCHurtAddPer"  # 对怪物伤害加成
@@ -4615,8 +4615,8 @@
     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],
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
index 02f8398..2f87806 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameObj.py
@@ -226,6 +226,13 @@
     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):
@@ -293,5 +300,14 @@
     if gameObj.GetGameObjType() == IPY_GameWorld.gotPlayer:
         PlayerControl.SendPropertyRefresh(gameObj, ShareDefine.CDBPlayerRefresh_SuckHPDefPer, value)
     return
-
-    
\ No newline at end of file
+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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 62cc5d5..c5dd550 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3861,7 +3861,7 @@
         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) # 最终固定伤害增加
@@ -6796,19 +6796,9 @@
     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
@@ -6866,11 +6856,7 @@
 ## 卓越一击伤害减免
 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)
@@ -6970,10 +6956,6 @@
     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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
index 243c324..935717b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
@@ -198,7 +198,7 @@
     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() # 无视防御几率
@@ -216,8 +216,6 @@
     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) # 连击
@@ -226,6 +224,8 @@
     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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
index 61b5aca..a825d98 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -50,7 +50,7 @@
    [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],                                          # 卓越一击伤害倍率
@@ -104,7 +104,7 @@
    [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],  # 暂无用

--
Gitblit v1.8.0