6494 子 【开发】【2.0】战斗公式增加普攻伤害和技能伤害 / 【后端】【2.0】战斗公式增加普攻伤害和技能伤害属性
6个文件已修改
107 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 # 战盟贡献度(活跃度转换得来)
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)
    
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"   # 斩杀标志
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 背包类型
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 # 战盟贡献度(活跃度转换得来)
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],  # 属性法宝技能加成
]
## 通过索引获得属性值