From 4ef8a162160e3028d4a8382304382872c79a44f9 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 11 四月 2019 20:40:02 +0800
Subject: [PATCH] 6494 子 【开发】【2.0】战斗公式增加普攻伤害和技能伤害 / 【后端】【2.0】战斗公式增加普攻伤害和技能伤害属性

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py                 |   17 +++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py                     |    6 ++
 ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py                                          |    6 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py            |   13 ++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py |   10 ++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                        |   55 +++++++++++++++------------
 6 files changed, 73 insertions(+), 34 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 063ab36..c927e2a 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -835,7 +835,11 @@
 CDBPlayerRefresh_Water,                 # 水
 CDBPlayerRefresh_Fire,                  # 火
 CDBPlayerRefresh_Earth,                 # 土 205
-) = range(146, 206)
+CDBPlayerRefresh_NormalHurt,            # 属性普通攻击增伤:普通攻击附加的固定值伤害 206
+CDBPlayerRefresh_NormalHurtPer,         # 属性普通攻击加成:普通攻击附加的伤害百分比 207
+CDBPlayerRefresh_FabaoHurt,             # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
+CDBPlayerRefresh_FabaoHurtPer,          # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
+) = range(146, 210)
 
 TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
 TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
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 2c511af..73586cc 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
@@ -1957,9 +1957,17 @@
     
     # 改变技能伤害
     atkSkillPer, atkSkillValue = ChangeSkillHurt(atkObj, defObj, curSkill, atkSkillPer, atkSkillValue)
-    
     atkSkillPer = ChangeSkillHurtPer(atkObj, defObj, curSkill, atkSkillPer)
     
+    # --- 新增普通攻击的数值和技能攻击的数值,根据类型各自计算
+    if atkObjType == IPY_GameWorld.gotPlayer:
+        if not curSkill or curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_NormalAttack:
+            atkSkillPer += PlayerControl.GetNormalHurtPer(atkObj)
+            atkSkillValue += PlayerControl.GetNormalHurt(atkObj)
+        elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
+            atkSkillPer += PlayerControl.GetFabaoHurtPer(atkObj)
+            atkSkillValue += PlayerControl.GetFabaoHurt(atkObj)
+            
     #  atkSkillPer 包含普攻,所以不是用技能增强处理
     atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
     
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 114d97d..b9646bc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -68,29 +68,25 @@
 Def_BuffValue_Count = 3     # buff记录的value个数
 
 #游戏对象属性--------------------------------------------
-Def_Calc_AllAttrType_MAX = 125
+Def_Calc_AllAttrType_MAX = 129
 #基本属性BUFF计算,顺序与 ObjProperty_AttrByIndex 对应,同时也为buff效果ID同步通知策划
 TYPE_Calc_AttrList = (
-#基础属性
 TYPE_Calc_Metal,                        # 金 1
 TYPE_Calc_Wood,                         # 木 2
 TYPE_Calc_Water,                        # 水 3
 TYPE_Calc_Fire,                         # 火 4
-TYPE_Calc_Earth,                        # 土 5
 
-#战斗属性
-TYPE_Calc_AttrMaxHP,                    # 最大血量 6
-TYPE_Calc_AttrMaxMP,                    # 最大魔法值 7
-TYPE_Calc_AttrDEF,                      # 防御力 8
-TYPE_Calc_AttrHit,                      # 命中 9
-TYPE_Calc_AttrMiss,                     # 闪避 10
-TYPE_Calc_AttrATKMin,                   # 最小攻击力 11
-TYPE_Calc_AttrATKMax,                   # 最大攻击力 12
-TYPE_Calc_AttrHP,                       # 当前HP 13
-TYPE_Calc_AttrMP,                       # 当前MP 14
-#TYPE_Calc_AttrMATKMin,                  # 最小魔法攻击力    #废弃:NPC表字段代表境界                                                
-#TYPE_Calc_AttrMATKMax,                  # 最大魔法攻击力    #废弃
-TYPE_Calc_Luck,                         # 气运 15
+TYPE_Calc_AttrHP,                       # 当前HP 5
+TYPE_Calc_AttrMP,                       # 当前MP 6
+TYPE_Calc_AttrMaxHP,                    # 最大血量 7
+TYPE_Calc_AttrMaxMP,                    # 最大魔法值 8
+TYPE_Calc_AttrATKMin,                   # 最小攻击力 9
+TYPE_Calc_AttrATKMax,                   # 最大攻击力 10
+TYPE_Calc_Earth,                        # 土 11                                             
+TYPE_Calc_Luck,                         # 气运 12
+TYPE_Calc_AttrDEF,                      # 防御力 13
+TYPE_Calc_AttrHit,                      # 命中 14
+TYPE_Calc_AttrMiss,                     # 闪避 15
 TYPE_Calc_AttrSpeed,                    # 移动速度 16
 TYPE_Calc_AttrAtkSpeed,                 # 攻击速度 17
 
@@ -190,27 +186,32 @@
 TYPE_Calc_BaseDefAddPer,                # 基础防御百分比
 TYPE_Calc_BaseHitAddPer,                # 基础命中百分比
 TYPE_Calc_BaseMissAddPer,               # 基础闪避百分比
-TYPE_Calc_GodWeaponMaxHPPer,            # 神兵生命百分比 110
-TYPE_Calc_GodWeaponAtkPer,              # 神兵攻击百分比
+TYPE_Calc_GodWeaponMaxHPPer,            # 神兵生命百分比 
+TYPE_Calc_GodWeaponAtkPer,              # 神兵攻击百分比 105
 TYPE_Calc_StoneMaxHPPer,                # 宝石生命百分比
 TYPE_Calc_StoneAtkPer,                  # 宝石攻击百分比
 TYPE_Calc_HPCureEnhance,                # 血瓶恢复效果增加
-TYPE_Calc_OnlyFinalHurt,                # 额外输出伤害 115
-TYPE_Calc_PVPAtkBackHP,                 # PVP攻击回血
+TYPE_Calc_OnlyFinalHurt,                # 额外输出伤害 
+TYPE_Calc_PVPAtkBackHP,                 # PVP攻击回血 110
 TYPE_Calc_HitSucessRate,                # 命中成功率
 TYPE_Calc_MissSucessRate,               # 闪避成功率
 TYPE_Calc_AtkInterval,                  # NPC攻击频率
-TYPE_Calc_FuncDef,                      # 功能层防御 120
-TYPE_Calc_CurePer,                      # 治疗效果加成,默认100%
+TYPE_Calc_FuncDef,                      # 功能层防御 
+TYPE_Calc_CurePer,                      # 治疗效果加成,默认100% 115
 TYPE_Calc_BeHurtPer,                    # 加深受到伤害百分比
 TYPE_Calc_HorseAtkPer,                  # 坐骑攻击百分比
 TYPE_Calc_StoneBasePer,                 # 宝石基础属性百分比
-TYPE_Calc_RealmBasePer,                 # 境界基础属性百分比 125
-TYPE_Calc_PetSkillAtkRate,              # 宠物技能攻击比例加成
+TYPE_Calc_RealmBasePer,                 # 境界基础属性百分比 
+TYPE_Calc_PetSkillAtkRate,              # 宠物技能攻击比例加成 120
 TYPE_Calc_WingHPPer,                    # 翅膀生命百分比
 TYPE_Calc_SuiteBasePer,                 # 套装基础属性百分比
 TYPE_Calc_PlusBaseAtkPer,               # 强化基础攻击百分比
-TYPE_Calc_ProDef,                       # 当前防护值 130
+TYPE_Calc_ProDef,                       # 当前防护值 
+TYPE_Calc_NormalHurt,                   # 普通攻击增伤 125
+TYPE_Calc_NormalHurtPer,                # 普通攻击加成 
+TYPE_Calc_FabaoHurt,                    # 法宝技能增伤 
+TYPE_Calc_FabaoHurtPer,                 # 法宝技能加成 
+
 ) = range(1, Def_Calc_AllAttrType_MAX)
 
 
@@ -3000,6 +3001,10 @@
 
 #---SetDict 玩家字典KEY,不存于数据库---
 # key的长度不能超过29个字节
+Def_PlayerKey_NormalHurt = "NormalHurt"   # 属性普通攻击增伤:普通攻击附加的固定值伤害
+Def_PlayerKey_NormalHurtPer = "NormalHurtPer"    # 属性普通攻击加成:普通攻击附加的伤害百分比
+Def_PlayerKey_FabaoHurt = "FabaoHurt"    # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害
+Def_PlayerKey_FabaoHurtPer = "FabaoHurtPer"    # 属性法宝技能加成:法宝技能攻击附加的伤害百分比
 Def_PlayerKey_AddBuffLayer = "addBuffLayer" # buff当前层数
 Def_PlayerKey_BuffHurtCnt = "BuffHurtCnt" # 持续buff掉血次数
 Def_PlayerKey_Zhansha = "zhansha"   # 斩杀标志
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 d122e9c..0953bf8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -6568,6 +6568,19 @@
 def GetFuncDef(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_CopyFuncAttr % (ChConfig.TYPE_Calc_AttrDEF - 1))
 def SetFuncDef(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_CopyFuncAttr % (ChConfig.TYPE_Calc_AttrDEF - 1), value)
 
+#普通攻击增伤:普通攻击附加的固定值伤害
+def GetNormalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_NormalHurt)
+def SetNormalHurt(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_NormalHurt, value)
+#普通攻击加成:普通攻击附加的伤害百分比
+def GetNormalHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_NormalHurtPer)
+def SetNormalHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_NormalHurtPer, value)
+#法宝技能增伤:法宝技能攻击附加的固定值伤害
+def GetFabaoHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurt)
+def SetFabaoHurt(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurt, value)
+#法宝技能加成:法宝技能攻击附加的伤害百分比
+def GetFabaoHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurtPer)
+def SetFabaoHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurtPer, value)
+
 ## 计算功能背包物品属性 
 #  @param curPlayer 当前玩家
 #  @param packType 背包类型
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 063ab36..c927e2a 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -835,7 +835,11 @@
 CDBPlayerRefresh_Water,                 # 水
 CDBPlayerRefresh_Fire,                  # 火
 CDBPlayerRefresh_Earth,                 # 土 205
-) = range(146, 206)
+CDBPlayerRefresh_NormalHurt,            # 属性普通攻击增伤:普通攻击附加的固定值伤害 206
+CDBPlayerRefresh_NormalHurtPer,         # 属性普通攻击加成:普通攻击附加的伤害百分比 207
+CDBPlayerRefresh_FabaoHurt,             # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
+CDBPlayerRefresh_FabaoHurtPer,          # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
+) = range(146, 210)
 
 TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
 TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
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 d7ddcb4..28d4073 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -22,6 +22,7 @@
 import IPY_PlayerDefine
 import ShareDefine
 
+
 #生物属性接口,顺序对应ChConfig.TYPE_Calc_AttrList
 #同个属性Get, Set 写在一起,方便维护 [Get, Set, 属性类型, 是否通知自身, 是否通知周围玩家]
 ObjProperty_AttrByIndex = [
@@ -29,20 +30,20 @@
    [lambda curObj:PlayerControl.GetWood(curObj), lambda curObj, value:PlayerControl.SetWood(curObj, value), ShareDefine.CDBPlayerRefresh_Wood, 1, 0], # 木
    [lambda curObj:PlayerControl.GetWater(curObj), lambda curObj, value:PlayerControl.SetWater(curObj, value), ShareDefine.CDBPlayerRefresh_Water, 1, 0], # 水
    [lambda curObj:PlayerControl.GetFire(curObj), lambda curObj, value:PlayerControl.SetFire(curObj, value), ShareDefine.CDBPlayerRefresh_Fire, 1, 0], # 火
-   [lambda curObj:PlayerControl.GetEarth(curObj), lambda curObj, value:PlayerControl.SetEarth(curObj, value), ShareDefine.CDBPlayerRefresh_Earth, 1, 0], # 土
    
+   [lambda curObj:GameObj.GetHP(curObj), lambda curObj, value:GameObj.SetHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_HP, 1, 1],  # 当前血量
+   [lambda curObj:curObj.GetMP(), lambda curObj, value:curObj.SetMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MP, 0, 0],            # 当前魔量
    [lambda curObj:GameObj.GetMaxHP(curObj), lambda curObj, value:GameObj.SetMaxHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_MaxHP, 1, 1],      # 最大血量
    [lambda curObj:curObj.GetMaxMP(), lambda curObj, value:curObj.SetMaxMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MaxMP, 0, 0],      # 最大魔量
+   [lambda curObj:curObj.GetMinAtk(), lambda curObj, value:curObj.SetMinAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MINATK, 1, 0],    # 最小攻击力
+   [lambda curObj:curObj.GetMaxAtk(), lambda curObj, value:curObj.SetMaxAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MAXATK, 1, 0],    # 最大攻击力
+   [lambda curObj:PlayerControl.GetEarth(curObj), lambda curObj, value:PlayerControl.SetEarth(curObj, value), ShareDefine.CDBPlayerRefresh_Earth, 1, 0], # 土
+   [lambda curObj:curObj.GetLuckValue(), lambda curObj, value:curObj.SetLuckValue(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckValue, 1, 0], # 气运
    [lambda curObj:curObj.GetDef(), lambda curObj, value:curObj.SetDef(value), IPY_PlayerDefine.CDBPlayerRefresh_DEF, 1, 0],          # 防御力
    [lambda curObj:curObj.GetHit(), lambda curObj, value:curObj.SetHit(value), IPY_PlayerDefine.CDBPlayerRefresh_HIT, 1, 0],          # 命中
    [lambda curObj:curObj.GetMiss(), lambda curObj, value:curObj.SetMiss(value), IPY_PlayerDefine.CDBPlayerRefresh_Miss, 1, 0],        # 闪避
-   [lambda curObj:curObj.GetMinAtk(), lambda curObj, value:curObj.SetMinAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MINATK, 1, 0],    # 最小攻击力
-   [lambda curObj:curObj.GetMaxAtk(), lambda curObj, value:curObj.SetMaxAtk(value), IPY_PlayerDefine.CDBPlayerRefresh_MAXATK, 1, 0],    # 最大攻击力
-   [lambda curObj:GameObj.GetHP(curObj), lambda curObj, value:GameObj.SetHP(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_HP, 1, 1],  # 当前血量
-   [lambda curObj:curObj.GetMP(), lambda curObj, value:curObj.SetMP(value), IPY_PlayerDefine.CDBPlayerRefresh_MP, 0, 0],            # 当前魔量
    #[lambda curObj:curObj.GetMAtkMin(), lambda curObj, value:curObj.SetMAtkMin(value), IPY_PlayerDefine.CDBPlayerRefresh_MAtkMin, 0, 0],  # 最小魔攻
    #[lambda curObj:curObj.GetMAtkMax(), lambda curObj, value:curObj.SetMAtkMax(value), IPY_PlayerDefine.CDBPlayerRefresh_MAtkMax, 0, 0],  # 最大魔攻
-   [lambda curObj:curObj.GetLuckValue(), lambda curObj, value:curObj.SetLuckValue(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckValue, 1, 0], # 气运
    [lambda curObj:PlayerControl.GetSpeedNotBuff(curObj), lambda curObj, value:PlayerControl.SetSpeedNotBuff(curObj, value), 0, 0, 0],  # 移动速度
    [lambda curObj:PlayerControl.GetAtkSpeed(curObj), lambda curObj, value:PlayerControl.SetAtkSpeed(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_BattleValEx1, 1, 1],  # 攻击速度
    
@@ -163,6 +164,10 @@
    [lambda curObj:PlayerControl.GetSuiteBasePer(curObj), lambda curObj, value:PlayerControl.SetSuiteBasePer(curObj, value), 0, 0, 0],      # 套装基础属性百分比
    [lambda curObj:PlayerControl.GetPlusBaseAtkPer(curObj), lambda curObj, value:PlayerControl.SetPlusBaseAtkPer(curObj, value), 0, 0, 0],      # 强化基础攻击百分比
    [lambda curObj:PlayerControl.GetProDef(curObj), lambda curObj, value:PlayerControl.SetProDef(curObj, value), IPY_PlayerDefine.CDBPlayerRefresh_ExAttr4, 1, 0],  # 当前防护值
+   [lambda curObj:PlayerControl.GetNormalHurt(curObj), lambda curObj, value:PlayerControl.SetNormalHurt(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurt, 1, 0],  # 属性普通攻击增伤
+   [lambda curObj:PlayerControl.GetNormalHurtPer(curObj), lambda curObj, value:PlayerControl.SetNormalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_NormalHurtPer, 1, 0],  # 属性普通攻击加成
+   [lambda curObj:PlayerControl.GetFabaoHurt(curObj), lambda curObj, value:PlayerControl.SetFabaoHurt(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurt, 1, 0],  # 属性法宝技能增伤
+   [lambda curObj:PlayerControl.GetFabaoHurtPer(curObj), lambda curObj, value:PlayerControl.SetFabaoHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_FabaoHurtPer, 1, 0],  # 属性法宝技能加成
 ]
 
 ## 通过索引获得属性值

--
Gitblit v1.8.0