hch
2019-04-16 732aa4f4a768027405d2f1b4051f13babd29b8e4
6516 【后端】【2.0】战斗公式增加系数
12个文件已修改
441 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTJG.py 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -345,10 +345,10 @@
Def_Effect_LuckyHitRateReduce = 17
# 技能伤害加成 (用作伤害加成)其中a值为增加的万分率
Def_Effect_SkillAtkRate = 18 #20032
# 伤害加成, 技能百分比外层
Def_Effect_DamagePer = 19
# 伤害吸收(A值为具体值)
Def_Effect_DamReducePer = 20
# PVP固定伤害
Def_Effect_DamagePVP = 19
# PVP固定减伤
Def_Effect_DamagePVPReduce = 20
#生命回复固定值(A值固定值)
Def_Effect_HPRestore = 21
#反伤百分比(A值固定值)
@@ -775,12 +775,12 @@
# 属性刷新类型定义, BYTE, 从146开始, C++定义到 IPY_PlayerDefine.CDBPlayerRefresh_OperateInfo
(
CDBPlayerRefresh_SuperHitReduce,        # 暴击抗性 146
CDBPlayerRefresh_LuckyHitRateReduce,    # 幸运一击抗概率
CDBPlayerRefresh_SuperHitReduce,        # 暴击固定值减少 146
CDBPlayerRefresh_LuckyHitRateReduce,    # 会心一击抗概率
CDBPlayerRefresh_SkillAtkRateReduce,    # 技能减伤
CDBPlayerRefresh_DamagePer,             # 增加伤害
CDBPlayerRefresh_DamagePVP,             # PVP固定伤害
CDBPlayerRefresh_SpeedValue,            # 移动速度值 150
CDBPlayerRefresh_151,                   #
CDBPlayerRefresh_DamagePVE,             # 对NPC的伤害固定值
CDBPlayerRefresh_PetDamPer,             # 灵宠增加伤害
CDBPlayerRefresh_IgnoreDefRateReduce,   # 无视防御抗性
CDBPlayerRefresh_DamChanceDef,          # 概率抵御, 玩家每次被攻击有20%的几率减少伤害比率
@@ -820,7 +820,7 @@
CDBPlayerRefresh_NPCHurtAddPer,         # 对怪物伤害加成
CDBPlayerRefresh_FinalHurtPer,          # 最终输出伤害百分比
CDBPlayerRefresh_TalentPoint,           # 天赋点数 190
CDBPlayerRefresh_191,                   # 废弃 191
CDBPlayerRefresh_DamagePVPReduce,       # PVP固定伤害减少
CDBPlayerRefresh_GodWeaponLV_1,         # 神兵等级 - 类型1 192
CDBPlayerRefresh_GodWeaponLV_2,         # 神兵等级 - 类型2 193
CDBPlayerRefresh_GodWeaponLV_3,         # 神兵等级 - 类型3 194
@@ -839,7 +839,12 @@
CDBPlayerRefresh_NormalHurtPer,         # 属性普通攻击加成:普通攻击附加的伤害百分比 207
CDBPlayerRefresh_FabaoHurt,             # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
CDBPlayerRefresh_FabaoHurtPer,          # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
) = range(146, 210)
CDBPlayerRefresh_SuperHitPer,          # 暴击伤害加成 210
CDBPlayerRefresh_SuperHitRateReduce,   # 暴击概率抗性
CDBPlayerRefresh_LuckyHitPer,          # 会心一击伤害加成
CDBPlayerRefresh_LuckyHitReduce,        # 会心伤害减免固定值
CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比
) = range(146, 215)
TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1264,7 +1264,7 @@
# Def_HurtType_SuperHit, 
# Def_HurtType_Miss, 
# ) = range(0, 3)
# #类型: 0-普通 1-致命一击 2-躲闪
# #类型: 0-普通 1-暴击 2-躲闪
#===============================================================================
## 伤害结构体类
@@ -1365,11 +1365,11 @@
def __HurtTypeHappen_LuckyHit(atkObj, defObj, happenState):
    ''' 判断伤害类型是否发生 - 幸运一击
    @return: 是否触发, 触发时伤害计算值, 触发时防守方的伤害减免值
    ''' 判断伤害类型是否发生 - 会心一击
    @return: 是否触发, 触发时伤害计算固定值, 触发时防守方的伤害减免固定值
    '''
    if IsHappenStateByType(happenState, ChConfig.Def_Skill_HappenState_LuckyHit):
        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReducePer(defObj)
        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReduce(defObj)
    
    aLuckyHitRate = atkObj.GetLuckyHitRate()
    dLuckyHitRateReduce = PlayerControl.GetLuckyHitRateReduce(defObj)
@@ -1379,16 +1379,16 @@
    if atkLuckyHitRate <= 0:
        return
    if GameWorld.CanHappen(atkLuckyHitRate):
        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReducePer(defObj)
        return True, atkObj.GetLuckyHitVal(), PlayerControl.GetLuckyHitReduce(defObj)
    return
def __HurtTypeHappen_SuperHit(atkObj, defObj, happenState):
    ''' 判断伤害类型是否发生 - 暴击
    @return: 是否触发, 触发时伤害计算值, 触发时防守方的伤害减免值
    @return: 是否触发, 触发时伤害计算固定值, 触发时防守方的伤害减免固定值
    '''
    
    if IsHappenStateByType(happenState, ChConfig.Def_Skill_HappenState_SuperHit):
        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReducePer(defObj)
        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReduce(defObj)
    
    aSuperHitRate = atkObj.GetSuperHitRate()
    dSuperHitRateReduce = PlayerControl.GetSuperHitRateReduce(defObj)
@@ -1398,7 +1398,7 @@
    if superHitRate <= 0:
        return
    if GameWorld.CanHappen(superHitRate):
        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReducePer(defObj)
        return True, atkObj.GetSuperHit(), PlayerControl.GetSuperHitReduce(defObj)
    return
def __HurtTypeHappen_Parry(atkObj, defObj, happenState):
@@ -2011,7 +2011,9 @@
    dDamChanceDef = hurtTypeResultDict[ChConfig.Def_HurtType_Parry][2] # 抵御, 大于0代表触发抵御效果
    isZhuxianHit, aZhuxianHurtPer, dZhuxianReducePer = hurtTypeResultDict[ChConfig.Def_HurtType_Zhuxian] # 诛仙一击
    isDeadlyHit = hurtTypeResultDict[ChConfig.Def_HurtType_DeadlyHit][0] # 致命一击
    aSuperHitPer = PlayerControl.GetSuperHitPer(atkObj) if isSuperHit else 0    # 暴击伤害加成万分率
    aLuckyHitPer = PlayerControl.SetLuckyHitPer(atkObj) if isLuckyHit else 0   # 会心一击伤害加成万分率
    if PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_OneDamage):
        return 1, hurtType
    
@@ -2058,7 +2060,7 @@
    if isLuckyHit:
        # 会心一击时增加会心伤害百分比
        # 会心一击时增加会心伤害固定值
        aLuckyHit += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_LuckyHit)
        aLuckyHit -= PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_BeLuckyHitSubPer)
        aLuckyHit = max(aLuckyHit, 0)
@@ -2079,16 +2081,17 @@
    dHP = GameObj.GetHP(defObj)                # 防守方当前血量
    dMaxHP = GameObj.GetMaxHP(defObj)          # 防守方最大血量
    dIceDef = defObj.GetIceDef()        # 冰防, 元素真防, 玩家及NPC通用
    dFinalHurtReducePer = 0             # 最终伤害减少百分比 默认0
    
    # 攻击方
    if atkObjType == IPY_GameWorld.gotPlayer:
        aIgnoreDefRate = atkObj.GetIgnoreDefRate()  # 无视防御比率
        aSkillAtkRate = atkObj.GetSkillAtkRate()    # 技能攻击力加成
        aDamagePer = PlayerControl.GetDamagePer(atkObj)     # 外层伤害加成
        aDamagePVP = PlayerControl.GetDamagePVP(atkObj)     # PVP固定伤害
        aDamagePVE = PlayerControl.GetDamagePVE(atkObj)     # PVE固定伤害
        # 被动技能增加伤害
        aDamagePer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        aDamagePer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        #aDamagePVP += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        #aDamagePVP += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddDamagePer)
        
        aNPCHurtAddPer = PlayerControl.GetNPCHurtAddPer(atkObj)     # PVE伤害加成
        aDamagePerPVP = PlayerControl.GetDamagePerPVP(atkObj)     # 外层PVP伤害加成
@@ -2111,8 +2114,9 @@
            aSkillAtkRate += atkObj.GetSkillAtkRate()
            
        aNPCHurtAddPer = 0  # PVE伤害加成
        aDamagePer = 0      # 外层伤害加成
        aDamagePerPVP = 0   # 外层PVP伤害加成
        aDamagePVP = 0      # PVP固定伤害
        aDamagePVE = 0      # PVE固定伤害
        aFinalHurt = NPCCommon.GetFinalHurt(atkObj) # 最终固定伤害
        aFightPower = NPCCommon.GetSuppressFightPower(atkObj)
        
@@ -2120,24 +2124,24 @@
    if defObjType == IPY_GameWorld.gotPlayer:
        dIgnoreDefRateReduce = PlayerControl.GetIgnoreDefRateReduce(defObj)  # 无视防御比率抗性
        dSkillAtkRateReduce = PlayerControl.GetSkillAtkRateReduce(defObj) # 技能攻击力减少
        dDamReduce = defObj.GetDamageReduceRate() # 外层减伤
        dDamReduce += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_DamageReduce)
        dDamagePVPReduce = PlayerControl.GetDamagePVPReduce(defObj) # PVP固定减伤
        #dDamReduce += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_DamageReduce)
        dDamagePerPVPReduce = PlayerControl.GetDamagePerPVPReduce(defObj) # 外层PVP减伤
        dDamagePerPVPReduce += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, None, ChConfig.TriggerType_DamageReducePVP)
        dFinalHurtReduce = PlayerControl.GetFinalHurtReduce(defObj) # 最终固定伤害减少
        dBeHurtPer = PlayerControl.GetBeHurtPer(defObj)      # 加深受到伤害百分比
        dFightPower = defObj.GetFightPower()
        dFinalHurtReducePer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_dFinalHurtReducePer)
        dFinalHurtReducePer = PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(defObj, atkObj, curSkill, ChConfig.TriggerType_dFinalHurtReducePer)
        
    else:
        dIgnoreDefRateReduce = 0    # 无视防御比率抗性
        dSkillAtkRateReduce = 0     # 技能攻击力减少
        dDamReduce = 0              # 外层减伤
        dDamagePVPReduce = 0        # PVP固定减伤
        dDamagePerPVPReduce = 0     # 外层PVP减伤
        dFinalHurtReduce = 0        # 最终固定伤害减少
        dBeHurtPer = 0
        dFightPower = NPCCommon.GetSuppressFightPower(defObj)
        dFinalHurtReducePer = 0             # 最终伤害减少百分比 默认0
        
    #攻击字典 { 攻击类型 : '公式' }
    hurtDist = ReadChConfig.GetEvalChConfig('CalcAttackValue')
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -77,7 +77,7 @@
#    global hurtTypeIndance
#    hurtTypeIndance = indance
#
### 获得本次攻击是否是致命一击
### 获得本次攻击是否是暴击
##  @param 无参数
##  @return True or False
##  @remarks 函数详细说明.
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -68,7 +68,7 @@
Def_BuffValue_Count = 3     # buff记录的value个数
#游戏对象属性--------------------------------------------
Def_Calc_AllAttrType_MAX = 129
Def_Calc_AllAttrType_MAX = 132
#基本属性BUFF计算,顺序与 ObjProperty_AttrByIndex 对应,同时也为buff效果ID同步通知策划
TYPE_Calc_AttrList = (
TYPE_Calc_Metal,                        # 金 1
@@ -93,7 +93,7 @@
TYPE_Calc_SuperHitRate,                 # 暴击概率 18 
TYPE_Calc_SuperHit,                     # 暴击伤害(固定值) 19 
TYPE_Calc_SuperHitRateReduce,           # 暴击概率抗性 20
TYPE_Calc_SuperHitReducePer,            # 暴击伤害减免 21
TYPE_Calc_SuperHitReduce,            # 暴击伤害减免固定值 21
TYPE_Calc_GreatHitRate,                 # 卓越一击几率 22
TYPE_Calc_GreatHit,                     # 卓越一击伤害倍率 23
@@ -101,9 +101,9 @@
TYPE_Calc_GreatHitReducePer,            # 卓越一击伤害减免 25
TYPE_Calc_LuckyHitRate,                 # 会心一击几率 26
TYPE_Calc_LuckyHit,                     # 会心一击伤害倍率 27
TYPE_Calc_LuckyHit,                     # 会心一击伤害固定值 27
TYPE_Calc_LuckyHitRateReduce,           # 会心一击概率抗性 28
TYPE_Calc_LuckyHitReducePer,            # 会心一击伤害减免 29
TYPE_Calc_LuckyHitReduce,            # 会心一击伤害减免固定值 29
TYPE_Calc_IgnoreDefRate,                # 无视防御几率, 攻击时百分比无视目标的防御 30
TYPE_Calc_IgnoreDefRateReduce,          # 无视防御概率抗性, 受击时减少对方的无视防御属性 31
@@ -156,15 +156,15 @@
TYPE_Calc_ReduceSkillCD,                # 减技能CD
TYPE_Calc_SkillAtkRate,                 # 技能攻击比例加成
TYPE_Calc_SkillAtkRateReduce,           # 技能攻击比例减少 75
TYPE_Calc_DamagePer,                    # 伤害输出计算百分比
TYPE_Calc_AttrDamReduce,                # 减少伤害
TYPE_Calc_DamagePVP,                    # 伤害输出固定值
TYPE_Calc_DamagePVPReduce,                # 减少伤害固定值
TYPE_Calc_HurtPer,                      # 受伤计算百分比
TYPE_Calc_BleedDamage,                  # 流血伤害
TYPE_Calc_FinalHurt,                    # 最终固定伤害增加 80
TYPE_Calc_FinalHurtReduce,              # 最终固定伤害减少
TYPE_Calc_DamagePerPVP,                 # 伤害输出计算百分比PVP
TYPE_Calc_DamagePerPVPReduce,           # 伤害输出计算百分比PVP减少
TYPE_Calc_DamagePerPVE,                 # 伤害输出计算百分比PVE
TYPE_Calc_DamagePVE,                 # 伤害输出计算固定值PVE
TYPE_Calc_NPCHurtAddPer,                # 对怪物伤害加成 85
TYPE_Calc_JobAHurtAddPer,               # 目标战士伤害加成
TYPE_Calc_JobBHurtAddPer,               # 目标法师伤害加成
@@ -211,7 +211,9 @@
TYPE_Calc_NormalHurtPer,                # 普通攻击加成 
TYPE_Calc_FabaoHurt,                    # 法宝技能增伤 
TYPE_Calc_FabaoHurtPer,                 # 法宝技能加成 
TYPE_Calc_SuperHitPer,                  # 暴击伤害万分率加成
TYPE_Calc_LuckyHitPer,                  # 会心一击伤害万分率加成 130
TYPE_Calc_FinalHurtReducePer,           # 最终伤害减少百分比
) = range(1, Def_Calc_AllAttrType_MAX)
@@ -221,10 +223,6 @@
# 衰减递增的属性列表, 衰减递增算法: 1-(1-a1)*(1-a2);   非衰减递增算法:  a1+a2
TYPE_Calc_DeclineList = []
#TYPE_Calc_DeclineList = [TYPE_Calc_SuperHitReducePer, TYPE_Calc_LuckyHitRateReduce, TYPE_Calc_SkillAtkRateReduce,
#                         TYPE_Calc_AttrDamReduce, TYPE_Calc_DamagePerPVPReduce,
#                         TYPE_Calc_IgnoreDefRate, TYPE_Calc_IgnoreDefRateReduce, TYPE_Calc_DamChanceDef,
#                         TYPE_Calc_FaintRate, TYPE_Calc_FaintDefRate, TYPE_Calc_ProDefAbsorb]
#宠物属性列表
Def_Pet_Attr = []
@@ -1105,14 +1103,6 @@
Def_PlayerCanAttackBalk = 1
#玩家攻击距离扩大N格子
Def_PlayerAttackDistZoom = 2
#致命一击的攻击力是普通攻击的2倍
Def_SuperHitPercent = 20000
#幸运一击的攻击力相对普攻倍值
Def_LuckyHitVal = 11000
#卓越一击的攻击力相对普攻倍值
Def_GreatHitVal = 12500
#富豪一击的攻击力相对普攻倍值
Def_FuhaoHitVal = 11000
#服务器统一使用万分率(用于计算百分比 10000为100%)
Def_MaxRateValue = ShareDefine.Def_MaxRateValue
Def_AtkSpeedBase = 1000.0   # 玩家攻击速度基础标准 1000毫秒
@@ -3015,6 +3005,8 @@
#---SetDict 玩家字典KEY,不存于数据库---
# key的长度不能超过29个字节
Def_PlayerKey_LuckyHitPer = "LuckyHitPer"   # 会心一击伤害万分率
Def_PlayerKey_SuperHitPer = "SuperHitPer" # 暴击伤害万分率
Def_PlayerKey_NormalHurt = "NormalHurt"   # 属性普通攻击增伤:普通攻击附加的固定值伤害
Def_PlayerKey_NormalHurtPer = "NormalHurtPer"    # 属性普通攻击加成:普通攻击附加的伤害百分比
Def_PlayerKey_FabaoHurt = "FabaoHurt"    # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害
@@ -3112,8 +3104,9 @@
Def_PlayerKey_AttrComboDamPer = "ComboDamPer"        #连击伤害
Def_PlayerKey_SkillAtkRateReduce = "SkillAtkRateReduce"    #技能攻击比例减少
Def_PlayerKey_AttrDropEquipPer = "DropEquipPer"    #装备掉率
Def_PlayerKey_AttrDamagePer = "DamagePer"    #伤害输出计算百分比
Def_PlayerKey_AttrDamagePerPVE = "DamagePerPVE"    #伤害输出计算百分比PVE
Def_PlayerKey_AttrDamagePVP = "DamagePVP"    #PVP固定伤害输出
Def_PlayerKey_AttrDamagePVPReduce = "DamagePVPReduce"    #PVP固定伤害减少
Def_PlayerKey_AttrDamagePVE = "DamagePVE"    #伤害输出计算固定值PVE
Def_PlayerKey_AttrDamagePerPVP = "DamagePerPVP"    #伤害输出计算百分比PVP
Def_PlayerKey_AttrDamagePerPVPReduce = "DamagePerPVPReduce"    #伤害输出计算百分比PVP减少
Def_PlayerKey_AttrHurtPer = "AttrHurtPer"    #受伤计算百分比
@@ -3161,13 +3154,13 @@
Def_PlayerKey_JobAAtkReducePer = "JobAAtkReducePer"  # 战士攻击伤害减免
Def_PlayerKey_JobBAtkReducePer = "JobBAtkReducePer"  # 法师攻击伤害减免
Def_PlayerKey_JobCAtkReducePer = "JobCAtkReducePer"  # 弓手攻击伤害减免
Def_PlayerKey_LuckyHitReducePer = "LuckyHitReducePer"  # 会心一击伤害减免
Def_PlayerKey_LuckyHitReduce = "LuckyHitReduce"  # 会心一击伤害减免固定值
Def_PlayerKey_GreatHitReducePer = "GreatHitReducePer"  # 卓越一击伤害减免
Def_PlayerKey_SuperHitReducePer = "SuperHitReducePer"  # 致命一击伤害减免
Def_PlayerKey_SuperHitReduce = "SuperHitReduce"  # 暴击伤害减免固定值
Def_PlayerKey_IgnoreDefReducePer = "IgnoreDefReducePer"  # 无视防御伤害减免
Def_PlayerKey_LuckyHitRateReduce = "LuckyHitRateReduce"  # 抗会心一击概率
Def_PlayerKey_GreatHitRateReduce = "GreatHitRateReduce"  # 抗卓越一击概率
Def_PlayerKey_SuperHitRateReduce = "SuperHitRateReduce"  # 抗致命一击概率
Def_PlayerKey_SuperHitRateReduce = "SuperHitRateReduce"  # 抗暴击概率
Def_PlayerKey_IgnoreDefRateReduce = "IgnoreDefRateReduce"  # 抗无视防御概率
Def_PlayerKey_LastHurtValue = "LastHurtValue" # 最后一次伤害值
Def_PlayerKey_LastHurtNPCObjID = "LastHurtNPCObjID" # 最后攻击的NPCObjID
@@ -3175,6 +3168,7 @@
Def_PlayerKey_ReduceSkillCDPer = "ReduceSkillCDPer" # 减技能CD万分率
Def_PlayerKey_CommMapExpRate = "CommMapExpRate" # 常规地图经验倍率加成
Def_PlayerKey_FinalHurtPer = "FinalHurtPer" # 最终伤害百分比
Def_PlayerKey_FinalHurtReducePer = "FHReducePer" # 最终伤害减免百分比
Def_PlayerKey_FuhaoHitRate = "FuhaoHitRate" # 富豪一击概率
Def_PlayerKey_FinalHurt = "FinalHurt" # 最终固定伤害增加
Def_PlayerKey_BleedDamage = "BleedDamage" # 流血伤害
@@ -3948,8 +3942,8 @@
AttrName_PoisonDef = "PoisonDef"    # 毒防
AttrName_ThunderDef = "ThunderDef"  # 雷防
AttrName_WindDef = "WindDef"  # 风攻
AttrName_DamReducePer = "DamReduce"  # 伤害吸收
AttrName_DamagePer = "DamagePer"  # 增加伤害
AttrName_DamagePVPReduce = "DamagePVPReduce"  # PVP固定减伤
AttrName_DamagePVP = "DamagePVP"  # pvp固定伤害
AttrName_Speed = "Speed"    # 移动速度
AttrName_BothAtk = "BothAtk"    # 双攻物魔
AttrName_Hit = "Hit"    # 命中
@@ -3957,7 +3951,7 @@
AttrName_GreatHitRate = "GreatHitRate"    # 卓越一击几率
AttrName_GreatHit = "GreatHit"    # 卓越一击伤害倍率
AttrName_LuckyHitRate = "LuckyHitRate"    # 会心一击几率
AttrName_LuckyHit = "LuckyHit"    # 会心一击伤害倍率
AttrName_LuckyHit = "LuckyHit"    # 会心一击伤害固定值
AttrName_IgnoreDefRate = "IgnoreDefRate"    # 无视防御几率
AttrName_AtkSpeed = "AtkSpeed"    # 攻击速度
AttrName_ReduceSkillCD = "ReduceSkillCD"    # 减技能CD值
@@ -3974,8 +3968,8 @@
AttrName_GameExpRate = "GameExpRate"  # 游戏事件经验倍率
AttrName_SkillAtkRate = "SkillAtkRate"  # 技能伤害加成 (用作伤害加成)
AttrName_AtkBackHPPer = "AtkBackHPPer"    # 攻击回复血量比率
AttrName_SuperHit = "SuperHit"  # 致命一击伤害
AttrName_SuperHitRate = "SuperHitRate"  # 致命一击概率
AttrName_SuperHit = "SuperHit"  # 暴击伤害固定值
AttrName_SuperHitRate = "SuperHitRate"  # 暴击概率
AttrName_NPCHurtAddPer = "NPCHurtAddPer"  # 对怪物伤害加成
AttrName_JobAHurtAddPer = "JobAHurtAddPer"  # 目标战士伤害加成
AttrName_JobBHurtAddPer = "JobBHurtAddPer"  # 目标法师伤害加成
@@ -3984,13 +3978,13 @@
AttrName_JobAAtkReducePer = "JobAAtkReducePer"  # 战士攻击伤害减免
AttrName_JobBAtkReducePer = "JobBAtkReducePer"  # 法师攻击伤害减免
AttrName_JobCAtkReducePer = "JobCAtkReducePer"  # 弓手攻击伤害减免
AttrName_LuckyHitReducePer = "LuckyHitReducePer"  # 会心一击伤害减免
AttrName_LuckyHitReduce = "LuckyHitReduce"  # 会心一击伤害减免固定值
AttrName_GreatHitReducePer = "GreatHitReducePer"  # 卓越一击伤害减免
AttrName_SuperHitReducePer = "SuperHitReducePer"  # 致命一击伤害减免
AttrName_SuperHitReduce = "SuperHitReduce"  # 暴击伤害减免固定值
AttrName_IgnoreDefReducePer = "IgnoreDefReducePer"  # 无视防御伤害减免
AttrName_LuckyHitRateReduce = "LuckyHitRateReduce"  # 抗会心一击概率
AttrName_GreatHitRateReduce = "GreatHitRateReduce"  # 抗卓越一击概率
AttrName_SuperHitRateReduce = "SuperHitRateReduce"  # 抗致命一击概率
AttrName_SuperHitRateReduce = "SuperHitRateReduce"  # 抗暴击概率
AttrName_IgnoreDefRateReduce = "IgnoreDefRateReduce"  # 抗无视防御概率
AttrName_FinalHurtPer = "FinalHurtPer"  # 最终伤害百分比
AttrName_FuhaoHitRate = "FuhaoHitRate"  # 富豪一击概率
@@ -4020,7 +4014,7 @@
    ShareDefine.Def_Effect_Miss:[[TYPE_Calc_AttrMiss], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitRate:[[TYPE_Calc_SuperHitRate], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHit:[[TYPE_Calc_SuperHit], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitReduce:[[TYPE_Calc_SuperHitReducePer], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitReduce:[[TYPE_Calc_SuperHitReduce], False, TYPE_Linear],
    ShareDefine.Def_Effect_Hit:[[TYPE_Calc_AttrHit], False, TYPE_Linear],
    ShareDefine.Def_Effect_MinAtk:[[TYPE_Calc_AttrATKMin], False, TYPE_Linear],
    ShareDefine.Def_Effect_MaxAtk:[[TYPE_Calc_AttrATKMax], False, TYPE_Linear],
@@ -4075,7 +4069,7 @@
    AttrName_GreatHit:[[TYPE_Calc_GreatHit], False, TYPE_Linear],
    AttrName_LuckyHitRate:[[TYPE_Calc_LuckyHitRate], False, TYPE_Linear],
    AttrName_LuckyHit:[[TYPE_Calc_LuckyHit], False, TYPE_Linear],
    AttrName_LuckyHitReducePer:[[TYPE_Calc_LuckyHitReducePer], False, TYPE_Linear],
    AttrName_LuckyHitReduce:[[TYPE_Calc_LuckyHitReduce], False, TYPE_Linear],
    AttrName_LuckyHitRateReduce:[[TYPE_Calc_LuckyHitRateReduce], False, TYPE_Linear],
    AttrName_IgnoreDefRate:[[TYPE_Calc_IgnoreDefRate], False, TYPE_Linear],
    AttrName_IgnoreDefRateReduce:[[TYPE_Calc_IgnoreDefRateReduce], False, TYPE_Linear],
@@ -4097,8 +4091,8 @@
    ShareDefine.Def_Effect_FaintDefRate:[[TYPE_Calc_FaintDefRate], False, TYPE_Linear],
    ShareDefine.Def_Effect_SkillAtkRate:[[TYPE_Calc_SkillAtkRate], False, TYPE_Linear],
    ShareDefine.Def_Effect_SkillAtkRateReduce:[[TYPE_Calc_SkillAtkRateReduce], False, TYPE_Linear],
    ShareDefine.Def_Effect_DamagePer:[[TYPE_Calc_DamagePer], False, TYPE_Linear],
    ShareDefine.Def_Effect_DamReducePer:[[TYPE_Calc_AttrDamReduce], False, TYPE_Linear],
    ShareDefine.Def_Effect_DamagePVP:[[TYPE_Calc_DamagePVP], False, TYPE_Linear],
    ShareDefine.Def_Effect_DamagePVPReduce:[[TYPE_Calc_DamagePVPReduce], False, TYPE_Linear],
    ShareDefine.Def_Effect_DamagePerPVP:[[TYPE_Calc_DamagePerPVP], False, TYPE_Linear],
    ShareDefine.Def_Effect_DamagePerPVPReduce:[[TYPE_Calc_DamagePerPVPReduce], False, TYPE_Linear],
    ShareDefine.Def_Effect_ComboRate:[[TYPE_Calc_ComboRate], False, TYPE_Linear],
@@ -4125,12 +4119,12 @@
    AttrName_JobBAtkReducePer:[[TYPE_Calc_JobBAtkReducePer], False, TYPE_Linear],
    AttrName_JobCAtkReducePer:[[TYPE_Calc_JobCAtkReducePer], False, TYPE_Linear],
    AttrName_GreatHitReducePer:[[TYPE_Calc_GreatHitReducePer], False, TYPE_Linear],
    AttrName_SuperHitReducePer:[[TYPE_Calc_SuperHitReducePer], False, TYPE_Linear],
    AttrName_SuperHitReduce:[[TYPE_Calc_SuperHitReduce], False, TYPE_Linear],
    AttrName_GreatHitRateReduce:[[TYPE_Calc_GreatHitRateReduce], False, TYPE_Linear],
    AttrName_SuperHitRateReduce:[[TYPE_Calc_SuperHitRateReduce], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitRateReduce:[[TYPE_Calc_SuperHitRateReduce], False, TYPE_Linear],
    AttrName_DamReducePer:[[TYPE_Calc_AttrDamReduce], False, TYPE_Linear],
    AttrName_DamagePer:[[TYPE_Calc_DamagePer], False, TYPE_Linear],
    AttrName_DamagePVPReduce:[[TYPE_Calc_DamagePVPReduce], False, TYPE_Linear],
    AttrName_DamagePVP:[[TYPE_Calc_DamagePVP], False, TYPE_Linear],
    AttrName_FinalHurtPer:[[TYPE_Calc_FinalHurtPer], False, TYPE_Linear],
    AttrName_FuhaoHitRate:[[TYPE_Calc_FuhaoHitRate], False, TYPE_Linear],
    ShareDefine.Def_Effect_FinalHurt:[[TYPE_Calc_FinalHurt], False, TYPE_Linear],
@@ -4157,6 +4151,7 @@
    ShareDefine.Def_Effect_ProDefAbsorb:[[TYPE_Calc_ProDefAbsorb], False, TYPE_Linear],
    ShareDefine.Def_Effect_OnlyFinalHurt:[[TYPE_Calc_OnlyFinalHurt], False, TYPE_Linear],
    ShareDefine.Def_Effect_PVPAtkBackHP:[[TYPE_Calc_PVPAtkBackHP], False, TYPE_Linear],
    ShareDefine.Def_Effect_SuperHitPer:[[TYPE_Calc_SuperHitPer], False, TYPE_Linear],
    
    #战斗非线性
    ShareDefine.Def_Effect_MaxHPPer:[[TYPE_Calc_AttrMaxHP], False, TYPE_NoLinear],
@@ -4165,7 +4160,6 @@
    ShareDefine.Def_Effect_MissRate:[[TYPE_Calc_AttrMiss], False, TYPE_NoLinear],
    #ShareDefine.Def_Effect_AddMAtkByPer:[[TYPE_Calc_AttrMATKMin, TYPE_Calc_AttrMATKMax], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_AddAtkByPer:[[TYPE_Calc_AttrATKMin, TYPE_Calc_AttrATKMax], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_SuperHitPer:[[TYPE_Calc_SuperHit], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_SpeedPer:[[TYPE_Calc_AttrSpeed], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_LuckPer:[[TYPE_Calc_Luck], False, TYPE_NoLinear],
    ShareDefine.Def_Effect_IceAtkPer:[[TYPE_Calc_AttrIceAtk], False, TYPE_NoLinear],
@@ -4388,7 +4382,7 @@
TriggerType_AttackOverPassive, # 攻击(对敌技能)后被动技能被触发在其他被动效果处理后调用,触发顺序原因 47
TriggerType_Buff_BeAttackSubLayer,  # BUFF类:被攻击减buff层,0消失 48
TriggerType_OneDamage,   # 伤害降低到1点 49
TriggerType_LuckyHit, # 会心一击时增加会心伤害百分比 50
TriggerType_LuckyHit, # 会心一击时增加会心伤害固定值 50
TriggerType_ChangeHurtToHP, # 把受到伤害的xx%转化为生命值 51
TriggerType_AddLayer, # BUFF层级增加时 52
TriggerType_ForbidenCure, # 禁止治疗 53
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -95,8 +95,6 @@
        
    #初始化处理间隔
    curNPC.SetIsNeedProcess(False)
    #设定致命一击伤害百分比
    curNPC.SetSuperHit(ChConfig.Def_SuperHitPercent)
    #初始化这个NPC的时钟
    curNPC.SetTickTypeCount(ChConfig.TYPE_NPC_Tick_Count)
    return
@@ -3711,7 +3709,6 @@
        ############################################
        #初始化状态
        curNPC.SetSpeed(curNPC.GetOrgSpeed())
        curNPC.SetSuperHit(ChConfig.Def_SuperHitPercent)
        curNPC.SetAtkInterval(curNPC.GetBaseAtkInterval())
#        #先清空异常
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -2602,62 +2602,64 @@
#@return 返回值无意义
#@remarks 客户端封包响应//04 02 获取鼠标左键点击之后对象的详细信息#tagCClickObjGetInfo
def __Func_PlayerClickOtherPlayerGetInfo(index, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    sendPack = IPY_GameWorld.IPY_CClickObjGetInfo()
    sendPack_ID = sendPack.GetObjID()
    sendPack_Type = sendPack.GetObjType()
    tagObj = GameWorld.GetObj(sendPack_ID, sendPack_Type)
    if tagObj == None:
        #GameWorld.Log("玩家请求其他玩家的相貌信息失败, 对象不存在", curPlayer.GetPlayerID())
        return
    dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(), tagObj.GetPosX(), tagObj.GetPosY())
    #是否可以目标详细信息
    canGetDetail = (dist <= curPlayer.GetSight())
    #目标类型
    tagObjType = tagObj.GetGameObjType()
    #仅处理Player和NPC
    if tagObjType not in [IPY_GameWorld.gotPlayer, IPY_GameWorld.gotNPC]:
        return
    #---玩家处理---
    if tagObjType == IPY_GameWorld.gotPlayer:
        #获取玩家详细信息成功
        if canGetDetail:
            extendDataDict = {}
            extendDataDict['maxHP'] = tagObj.GetMaxHP()
            extendDataDict['maxMP'] = tagObj.GetMaxMP()
            extendDataDict['hit'] = tagObj.GetHit()
            extendDataDict['miss'] = tagObj.GetMiss()
            extendDataDict['atkSpeed'] = PlayerControl.GetAtkSpeed(tagObj)
            extendDataDict['superHitRate'] = tagObj.GetSuperHitRate()
            extendDataDict['superHit'] = tagObj.GetSuperHit()
            extendDataDict['luckyHitRate'] = tagObj.GetLuckyHitRate()
            extendDataDict['greatHitRate'] = tagObj.GetGreatHitRate()
            extendDataDict['ignoreDefRate'] = tagObj.GetIgnoreDefRate()
            extendDataDict['damageReduceRate'] = tagObj.GetDamageReduceRate()
            extendDataDict['damageBackRate'] = tagObj.GetDamageBackRate()
            extendData = str(extendDataDict)
            extendDataLen = len(extendData)
            curPlayer.PlayerClickOtherPlayerDetail(tagObj, extendDataLen, extendData)
            return
        #获取玩家详细信息失败
        curPlayer.Sync_GetPlayerInfoFail(sendPack_ID)
        return
    #---NPC处理---
    #获取NPC详细信息成功
    if canGetDetail:
        curPlayer.PlayerClickOtherNPCDetail(tagObj)
        return
    #===========================================================================
    # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    #
    # sendPack = IPY_GameWorld.IPY_CClickObjGetInfo()
    # sendPack_ID = sendPack.GetObjID()
    # sendPack_Type = sendPack.GetObjType()
    #
    # tagObj = GameWorld.GetObj(sendPack_ID, sendPack_Type)
    #
    # if tagObj == None:
    #    #GameWorld.Log("玩家请求其他玩家的相貌信息失败, 对象不存在", curPlayer.GetPlayerID())
    #    return
    #
    # dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(), tagObj.GetPosX(), tagObj.GetPosY())
    # #是否可以目标详细信息
    # canGetDetail = (dist <= curPlayer.GetSight())
    # #目标类型
    # tagObjType = tagObj.GetGameObjType()
    #
    # #仅处理Player和NPC
    # if tagObjType not in [IPY_GameWorld.gotPlayer, IPY_GameWorld.gotNPC]:
    #    return
    #
    # #---玩家处理---
    # if tagObjType == IPY_GameWorld.gotPlayer:
    #    #获取玩家详细信息成功
    #    if canGetDetail:
    #        extendDataDict = {}
    #        extendDataDict['maxHP'] = tagObj.GetMaxHP()
    #        extendDataDict['maxMP'] = tagObj.GetMaxMP()
    #        extendDataDict['hit'] = tagObj.GetHit()
    #        extendDataDict['miss'] = tagObj.GetMiss()
    #        extendDataDict['atkSpeed'] = PlayerControl.GetAtkSpeed(tagObj)
    #        extendDataDict['superHitRate'] = tagObj.GetSuperHitRate()
    #        extendDataDict['superHit'] = tagObj.GetSuperHit()
    #        extendDataDict['luckyHitRate'] = tagObj.GetLuckyHitRate()
    #        extendDataDict['greatHitRate'] = tagObj.GetGreatHitRate()
    #        extendDataDict['ignoreDefRate'] = tagObj.GetIgnoreDefRate()
    #        extendDataDict['damageReduceRate'] = tagObj.GetDamageReduceRate()
    #        extendDataDict['damageBackRate'] = tagObj.GetDamageBackRate()
    #
    #        extendData = str(extendDataDict)
    #        extendDataLen = len(extendData)
    #        curPlayer.PlayerClickOtherPlayerDetail(tagObj, extendDataLen, extendData)
    #        return
    #
    #    #获取玩家详细信息失败
    #    curPlayer.Sync_GetPlayerInfoFail(sendPack_ID)
    #    return
    #
    # #---NPC处理---
    #
    # #获取NPC详细信息成功
    # if canGetDetail:
    #    curPlayer.PlayerClickOtherNPCDetail(tagObj)
    #    return
    #
    #===========================================================================
    #获取NPC详细信息失败
    #暂不处理
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
@@ -239,7 +239,7 @@
# @return 返回值无意义
# @remarks 初始化宠物属性
def InitRolePet(rolePet, canSyncClient=True):
    #---初始化时钟,致命一击倍率---
    #---初始化时钟---
    NPCCommon.InitNPC(rolePet)
    
    #---初始化仇恨列表---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -3491,8 +3491,6 @@
    def ClearAttr(self):
        for attrIndex in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
            value = 0
#            if attrIndex == ChConfig.TYPE_Calc_SuperHit:
#                value = ChConfig.Def_SuperHitPercent # 默认最低暴击倍值
            setattr(self, self.__AttrName % attrIndex, value)
        for attrIndex in self.__NolineAttrList:
            setattr(self, self.__AttrNameNoline % attrIndex, 0)            
@@ -3541,15 +3539,20 @@
        Miss = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrMiss) * fpParam.GetCftMiss() # 闪避值
        AtkSpeed = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrAtkSpeed) # 攻击速度(数值非攻击间隔)
        SuperHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRate) # 暴击率
        SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害倍率
        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReducePer) * fpParam.GetCftSuperHitReduce() # 暴击伤害减免
        SuperHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitRateReduce) # 暴击概率抗性
        SuperHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHit) # 暴击伤害固定值
        SuperHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitReduce) * fpParam.GetCftSuperHitReduce() # 暴击固定减伤
        SuperHitPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SuperHitPer) # 暴击伤害万分率加成
        LuckyHitRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRate) # 会心一击
        LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害倍率
        LuckyHitRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitRateReduce) * fpParam.GetCftLuckyHitRateReduce() # 会心一击概率抗性
        LuckyHit = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHit) # 会心一击伤害固定值
        LuckyHitReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitReduce) # 会心一击伤害固定减伤
        LuckyHitPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_LuckyHitPer) # 会心一击伤害百分比
        SkillAtkRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRate) * fpParam.GetCftSkillAtkRate() # 技能攻击比例加成
        SkillAtkRateReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_SkillAtkRateReduce) * fpParam.GetCftSkillAtkRateReduce() # 技能攻击比例减少
        DamagePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePer) * fpParam.GetCftDamagePer() # 伤害输出计算百分比
        DamReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrDamReduce) * fpParam.GetCftDamReduce() # 伤害输出计算百分比减少, 伤害吸收
        DamagePVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVP) * fpParam.GetCftDamagePer() # PVP固定伤害
        DamagePVPReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVPReduce) * fpParam.GetCftDamReduce() # PVP固定减伤
        DamagePVE = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePVE) * fpParam.GetCftDamagePer() # PVE固定伤害
        HPRestore = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_HPRestorePer) # 自动回复血量,固定值
        DamBackPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamBackPer) * fpParam.GetCftDamBackPer() # 反伤百分比
        SpeedValue = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_AttrSpeed) # 移动速度值
@@ -3568,6 +3571,8 @@
        FaintDefRate = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FaintDefRate) * fpParam.GetCftFaintDefRate() # 击晕抵抗
        FinalHurt = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurt) # 最终固定伤害增加
        FinalHurtReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReduce) # 最终固定伤害减少
        FinalHurtPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtPer) # 最终伤害万分率
        FinalHurtReducePer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_FinalHurtReducePer) # 最终伤害减少万分率
        DamagePerPVP = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePerPVP) * fpParam.GetCftDamagePerPVP() # 伤害输出计算百分比PVP
        DamagePerPVPReduce = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_DamagePerPVPReduce) * fpParam.GetCftDamagePerPVPReduce() # 伤害输出计算百分比PVP减少
        JobAHurtAddPer = getattr(self, self.__AttrName % ChConfig.TYPE_Calc_JobAHurtAddPer) * fpParam.GetCftJobAHurtAddPer() # 对目标战士伤害加成
@@ -4635,8 +4640,8 @@
                setAttrDict[ChConfig.AttrName_DefRate] = int(lvIpyData.GetReMiss() * attrPer) # 闪避
                setAttrDict[ChConfig.AttrName_AtkSpeed] = int(lvIpyData.GetReAtkSpeed() * attrPer) # 攻击速度
                setAttrDict[ChConfig.AttrName_SkillAtkRate] = int(lvIpyData.GetReSkillAtkRate() * attrPer) # 技能伤害比例
                setAttrDict[ChConfig.AttrName_DamagePer] = int(lvIpyData.GetReDamagePer() * attrPer) # 增加伤害
                setAttrDict[ChConfig.AttrName_DamReducePer] = int(lvIpyData.GetReDamReduce() * attrPer) # 减少伤害
                setAttrDict[ChConfig.AttrName_DamagePVP] = int(lvIpyData.GetReDamagePer() * attrPer) # PVP固定伤害
                setAttrDict[ChConfig.AttrName_DamagePVPReduce] = int(lvIpyData.GetReDamReduce() * attrPer) # PVP固定减伤
                setAttrDict[ChConfig.AttrName_IgnoreDefRate] = int(lvIpyData.GetReIgnoreDefRate() * attrPer) # 无视防御比例
                setAttrDict[ChConfig.AttrName_LuckyHitRate] = int(lvIpyData.GetReLuckyHitRate() * attrPer) # 会心一击率
                setAttrDict[ChConfig.AttrName_LuckyHit] = int(lvIpyData.GetReLuckyHit() * attrPer) # 会心一击伤害
@@ -4972,9 +4977,6 @@
                        ChConfig.TYPE_Calc_HitSucessRate:ChConfig.Def_MaxRateValue,
                        ChConfig.TYPE_Calc_CurePer:ChConfig.Def_MaxRateValue,
                        
                        #ChConfig.TYPE_Calc_SuperHit:ChConfig.Def_SuperHitPercent,
                        #ChConfig.TYPE_Calc_GreatHit:ChConfig.Def_GreatHitVal,
                        #ChConfig.TYPE_Calc_LuckyHit:ChConfig.Def_LuckyHitVal,
                        }
        
        for i in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
@@ -6296,16 +6298,19 @@
def SetJobCAtkReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_JobCAtkReducePer, value)
#---特殊伤害减免---
## 会心一击伤害减免
def GetLuckyHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitReducePer)
def SetLuckyHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitReducePer, value)
## 会心一击伤害减免固定值
def GetLuckyHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitReduce)
def SetLuckyHitReduce(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitReduce, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_LuckyHitReduce, value, False)
## 卓越一击伤害减免
def GetGreatHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitReducePer)
def SetGreatHitReducePer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitReducePer, value)
## 致命一击伤害减免
def GetSuperHitReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReducePer)
def SetSuperHitReducePer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReducePer, value)
## 暴击伤害减免
def GetSuperHitReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitReduce)
def SetSuperHitReduce(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitReduce, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitReduce, value, False)
## 无视防御伤害减免
def GetIgnoreDefReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefReducePer)
@@ -6320,9 +6325,11 @@
## 抗卓越一击概率
def GetGreatHitRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_GreatHitRateReduce)
def SetGreatHitRateReduce(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_GreatHitRateReduce, value)
## 抗致命一击概率
## 抗暴击概率
def GetSuperHitRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitRateReduce)
def SetSuperHitRateReduce(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitRateReduce, value)
def SetSuperHitRateReduce(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitRateReduce, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, value, False)
## 抗无视防御概率
def GetIgnoreDefRateReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_IgnoreDefRateReduce)
def SetIgnoreDefRateReduce(curPlayer, value):
@@ -6345,6 +6352,13 @@
def SetFinalHurtPer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtPer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtPer, value, False)
## 最终伤害减免百分比
def GetFinalHurtReducePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurtReducePer)
def SetFinalHurtReducePer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_FinalHurtReducePer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_FinalHurtReducePer, value, False)
## 最终固定伤害增加
def GetFinalHurt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FinalHurt)
def SetFinalHurt(curPlayer, value):
@@ -6507,15 +6521,22 @@
def SetSkillAtkRateReduce(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SkillAtkRateReduce, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SkillAtkRateReduce, value, False)
#---伤害输出计算百分比----
def GetDamagePer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePer)
def SetDamagePer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePer, value, False)
#---伤害输出计算百分比对NPC附加----
def GetDamagePerPVE(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePerPVE)
def SetDamagePerPVE(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePerPVE, value)
#---PVP固定伤害----
def GetDamagePVP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVP)
def SetDamagePVP(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVP, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVP, value, False)
#---PVP固定伤害减少----
def GetDamagePVPReduce(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVPReduce)
def SetDamagePVPReduce(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVPReduce, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVPReduce, value, False)
#---伤害输出固定值计算对NPC附加----
def GetDamagePVE(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePVE)
def SetDamagePVE(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrDamagePVE, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_DamagePVE, value, False)
#---伤害输出计算百分比对玩家附加----
def GetDamagePerPVP(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrDamagePerPVP)
def SetDamagePerPVP(curPlayer, value):
@@ -6612,6 +6633,16 @@
#法宝技能加成:法宝技能攻击附加的伤害百分比
def GetFabaoHurtPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FabaoHurtPer)
def SetFabaoHurtPer(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_FabaoHurtPer, value)
# 暴击万分率加成
def GetSuperHitPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_SuperHitPer)
def SetSuperHitPer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_SuperHitPer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_SuperHitPer, value, False)
# 会心一击万分率加成
def GetLuckyHitPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_LuckyHitPer)
def SetLuckyHitPer(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_LuckyHitPer, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_LuckyHitPer, value, False)
## 计算功能背包物品属性 
#  @param curPlayer 当前玩家
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTJG.py
@@ -309,22 +309,25 @@
    aMinAtk = curPlayer.GetMinAtk()        # 攻击方最小攻击
    aMaxAtk = curPlayer.GetMaxAtk()        # 攻击方最大攻击
    aSuperHitRate = curPlayer.GetSuperHitRate() # 暴击率
    aSuperHit = curPlayer.GetSuperHit() # 暴击伤害
    aSuperHit = curPlayer.GetSuperHit() # 暴击伤害固定值
    aSuperHitPer = PlayerControl.GetSuperHitPer(curPlayer) # 暴击伤害固定值
    aIceAtk = curPlayer.GetIceAtk()        # 真实伤害
    aDamagePer = PlayerControl.GetDamagePer(curPlayer)     # 外层伤害加成
    aDamagePVE = PlayerControl.GetDamagePVE(curPlayer)     # PVE固定伤害
    aSkillAtkRate = curPlayer.GetSkillAtkRate()    # 技能攻击力加成
    petMinAtk = PlayerControl.GetPetMinAtk(curPlayer)   #灵宠最小攻击
    petMaxAtk = PlayerControl.GetPetMaxAtk(curPlayer)   #灵宠最大攻击
    petDamPer = GameObj.GetPetDamPer(curPlayer)   #灵宠增加伤害
    atkSpeed = PlayerControl.GetAtkSpeed(curPlayer) # 攻击速度
    aIgnoreDefRate = curPlayer.GetIgnoreDefRate()  # 无视防御比率
    aLuckyHit = curPlayer.GetLuckyHitVal()  # 会心一击
    aLuckyHit = curPlayer.GetLuckyHitVal()  # 会心一击固定值
    aLuckyHitPer = PlayerControl.GetLuckyHitPer(curPlayer)  # 会心一击万分率
    aLuckyHitRate = curPlayer.GetLuckyHitRate() # 会心一击概率
    aBleedDamage = PlayerControl.GetBleedDamage(curPlayer) # 流血伤害 万分率
    aFinalHurt = PlayerControl.GetFinalHurt(curPlayer)     # 最终固定伤害
    aFinalHurtPer = PlayerControl.GetFinalHurtPer(curPlayer)     # 最终伤害加成万分率
    aFightPower = curPlayer.GetFightPower() # 战力
    aReFightPower = lvIpyData.GetReFightPower() # 等级表对应的战力
    aNPCHurtAddPer = PlayerControl.GetNPCHurtAddPer(curPlayer) #PVE 伤害加成万分率
    
    npcExp = npcData.GetExp()
    npcMaxHP = npcData.GetHP() + npcData.GetHPEx()*ShareDefine.Def_PerPointValue
@@ -359,16 +362,17 @@
    for i in range(len(skills)):
        locals()["skill%s"%(i+1)] = 1 if skills[i] in PassiveBuffEffMng.FindUsePassiveSkills(curPlayer) else 0  
             
    GameWorld.DebugLog("""CalcTJGExp--%s-%s-%s-%s-reExp:%s, attackEff:%s, aMinAtk:%s, aMaxAtk:%s, aSuperHitRate:%s, aSuperHit:%s,
    aIceAtk:%s, aDamagePer:%s, aSkillAtkRate:%s, petMinAtk:%s, petMaxAtk:%s, petDamPer:%s, atkSpeed:%s,
    aIgnoreDefRate:%s, aLuckyHit:%s, aLuckyHitRate:%s, aBleedDamage:%s, aFinalHurt:%s, npcExp:%s, npcMaxHP:%s, npcCommendFightPower:%s,
    petSkillLV:%s, petSkillPer:%s, skill:%s, petSkill:%s"""%(curPlayer.GetID(), curPlayer.GetLV(), times, npcData.GetNPCID(),
        reExp, attackEff, aMinAtk, aMaxAtk, aSuperHitRate, aSuperHit,
        aIceAtk, aDamagePer, aSkillAtkRate, petMinAtk, petMaxAtk, petDamPer,
        atkSpeed, aIgnoreDefRate, aLuckyHit, aLuckyHitRate, aBleedDamage, aFinalHurt, npcExp, npcMaxHP, npcCommendFightPower, petSkillLV,
        petSkillPer, eval("[" +", ".join(["skill%s"%i for i in range(1, 11)]) + "]"),
        eval("[" +", ".join(["PetSkill%s"%i for i in range(1, 10)]) + "]")))
    if GameWorld.GetGameWorld().GetDebugLevel():
        GameWorld.DebugLog("""CalcTJGExp--%s-%s-%s-%s-reExp:%s, attackEff:%s, aMinAtk:%s, aMaxAtk:%s, aSuperHitRate:%s, aSuperHit:%s,
        aSuperHitPer:%s, aLuckyHitPer:%s, aNPCHurtAddPer:%s, aFinalHurtPer:%s,
        aIceAtk:%s, aDamagePVE:%s, aSkillAtkRate:%s, petMinAtk:%s, petMaxAtk:%s, petDamPer:%s, atkSpeed:%s,
        aIgnoreDefRate:%s, aLuckyHit:%s, aLuckyHitRate:%s, aBleedDamage:%s, aFinalHurt:%s, npcExp:%s, npcMaxHP:%s, npcCommendFightPower:%s,
        petSkillLV:%s, petSkillPer:%s, skill:%s, petSkill:%s"""%(curPlayer.GetID(), curPlayer.GetLV(), times, npcData.GetNPCID(),
            reExp, attackEff, aMinAtk, aMaxAtk, aSuperHitRate, aSuperHit, aSuperHitPer, aLuckyHitPer, aNPCHurtAddPer, aFinalHurtPer,
            aIceAtk, aDamagePVE, aSkillAtkRate, petMinAtk, petMaxAtk, petDamPer,
            atkSpeed, aIgnoreDefRate, aLuckyHit, aLuckyHitRate, aBleedDamage, aFinalHurt, npcExp, npcMaxHP, npcCommendFightPower, petSkillLV,
            petSkillPer, eval("[" +", ".join(["skill%s"%i for i in range(1, 11)]) + "]"),
            eval("[" +", ".join(["PetSkill%s"%i for i in range(1, 10)]) + "]")))
    
    # 1. 经验 
    exp = eval(IpyGameDataPY.GetFuncCompileCfg('TJG', 1))
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -345,10 +345,10 @@
Def_Effect_LuckyHitRateReduce = 17
# 技能伤害加成 (用作伤害加成)其中a值为增加的万分率
Def_Effect_SkillAtkRate = 18 #20032
# 伤害加成, 技能百分比外层
Def_Effect_DamagePer = 19
# 伤害吸收(A值为具体值)
Def_Effect_DamReducePer = 20
# PVP固定伤害
Def_Effect_DamagePVP = 19
# PVP固定减伤
Def_Effect_DamagePVPReduce = 20
#生命回复固定值(A值固定值)
Def_Effect_HPRestore = 21
#反伤百分比(A值固定值)
@@ -775,12 +775,12 @@
# 属性刷新类型定义, BYTE, 从146开始, C++定义到 IPY_PlayerDefine.CDBPlayerRefresh_OperateInfo
(
CDBPlayerRefresh_SuperHitReduce,        # 暴击抗性 146
CDBPlayerRefresh_LuckyHitRateReduce,    # 幸运一击抗概率
CDBPlayerRefresh_SuperHitReduce,        # 暴击固定值减少 146
CDBPlayerRefresh_LuckyHitRateReduce,    # 会心一击抗概率
CDBPlayerRefresh_SkillAtkRateReduce,    # 技能减伤
CDBPlayerRefresh_DamagePer,             # 增加伤害
CDBPlayerRefresh_DamagePVP,             # PVP固定伤害
CDBPlayerRefresh_SpeedValue,            # 移动速度值 150
CDBPlayerRefresh_151,                   #
CDBPlayerRefresh_DamagePVE,             # 对NPC的伤害固定值
CDBPlayerRefresh_PetDamPer,             # 灵宠增加伤害
CDBPlayerRefresh_IgnoreDefRateReduce,   # 无视防御抗性
CDBPlayerRefresh_DamChanceDef,          # 概率抵御, 玩家每次被攻击有20%的几率减少伤害比率
@@ -820,7 +820,7 @@
CDBPlayerRefresh_NPCHurtAddPer,         # 对怪物伤害加成
CDBPlayerRefresh_FinalHurtPer,          # 最终输出伤害百分比
CDBPlayerRefresh_TalentPoint,           # 天赋点数 190
CDBPlayerRefresh_191,                   # 废弃 191
CDBPlayerRefresh_DamagePVPReduce,       # PVP固定伤害减少
CDBPlayerRefresh_GodWeaponLV_1,         # 神兵等级 - 类型1 192
CDBPlayerRefresh_GodWeaponLV_2,         # 神兵等级 - 类型2 193
CDBPlayerRefresh_GodWeaponLV_3,         # 神兵等级 - 类型3 194
@@ -839,7 +839,12 @@
CDBPlayerRefresh_NormalHurtPer,         # 属性普通攻击加成:普通攻击附加的伤害百分比 207
CDBPlayerRefresh_FabaoHurt,             # 属性法宝技能增伤:法宝技能攻击附加的固定值伤害 208
CDBPlayerRefresh_FabaoHurtPer,          # 属性法宝技能加成:法宝技能攻击附加的伤害百分比 209
) = range(146, 210)
CDBPlayerRefresh_SuperHitPer,          # 暴击伤害加成 210
CDBPlayerRefresh_SuperHitRateReduce,   # 暴击概率抗性
CDBPlayerRefresh_LuckyHitPer,          # 会心一击伤害加成
CDBPlayerRefresh_LuckyHitReduce,        # 会心伤害减免固定值
CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比
) = range(146, 215)
TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/EffGetSet.py
@@ -47,10 +47,10 @@
   [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],  # 攻击速度
   
   [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:PlayerControl.GetSuperHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetSuperHitRateReduce(curObj, value), 0, 0, 0],# 暴击概率抗性
   [lambda curObj:PlayerControl.GetSuperHitReducePer(curObj), lambda curObj, value:PlayerControl.SetSuperHitReducePer(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitReduce, 1, 0],  # 暴击抗性
   [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:PlayerControl.GetSuperHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetSuperHitRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitRateReduce, 0, 0],# 暴击概率抗性
   [lambda curObj:PlayerControl.GetSuperHitReduce(curObj), lambda curObj, value:PlayerControl.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],                                          # 卓越一击伤害倍率
@@ -58,9 +58,9 @@
   [lambda curObj:PlayerControl.GetGreatHitReducePer(curObj), lambda curObj, value:PlayerControl.SetGreatHitReducePer(curObj, value), 0, 0, 0],  # 卓越一击伤害减免
   
   [lambda curObj:curObj.GetLuckyHitRate(), lambda curObj, value:curObj.SetLuckyHitRate(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckyHitRate, 1, 0],  # 会心一击几率
   [lambda curObj:curObj.GetLuckyHitVal(), lambda curObj, value:curObj.SetLuckyHitVal(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckyHitVal, 1, 0],  # 会心一击伤害倍率
   [lambda curObj:curObj.GetLuckyHitVal(), lambda curObj, value:curObj.SetLuckyHitVal(value), IPY_PlayerDefine.CDBPlayerRefresh_LuckyHitVal, 1, 0],  # 会心一击伤害固定值
   [lambda curObj:PlayerControl.GetLuckyHitRateReduce(curObj), lambda curObj, value:PlayerControl.SetLuckyHitRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_LuckyHitRateReduce, 1, 0],# 会心一击概率抗性
   [lambda curObj:PlayerControl.GetLuckyHitReducePer(curObj), lambda curObj, value:PlayerControl.SetLuckyHitReducePer(curObj, value), 0, 0, 0],  # 会心一击伤害减免
   [lambda curObj:PlayerControl.GetLuckyHitReduce(curObj), lambda curObj, value:PlayerControl.SetLuckyHitReduce(curObj, value), ShareDefine.CDBPlayerRefresh_LuckyHitReduce, 1, 0],  # 会心一击伤害减免固定值
   [lambda curObj:curObj.GetIgnoreDefRate(), lambda curObj, value:curObj.SetIgnoreDefRate(value), IPY_PlayerDefine.CDBPlayerRefresh_IgnoreDefRate, 1, 0],   # 无视防御几率
   [lambda curObj:PlayerControl.GetIgnoreDefRateReduce(curObj), lambda curObj, value:PlayerControl.SetIgnoreDefRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_IgnoreDefRateReduce, 1, 0],  # 无视防御概率抗性
@@ -113,15 +113,15 @@
   [lambda curObj:PlayerControl.GetReduceSkillCD(curObj), lambda curObj, value:PlayerControl.SetReduceSkillCD(curObj, value), 0, 0, 0],          # 减技能CD值
   [lambda curObj:curObj.GetSkillAtkRate(), lambda curObj, value:curObj.SetSkillAtkRate(value), IPY_PlayerDefine.CDBPlayerRefresh_SkillAtkRate, 1, 0],                                        # 技能攻击比例加成
   [lambda curObj:PlayerControl.GetSkillAtkRateReduce(curObj), lambda curObj, value:PlayerControl.SetSkillAtkRateReduce(curObj, value), ShareDefine.CDBPlayerRefresh_SkillAtkRateReduce, 1, 0],# 技能攻击比例减少
   [lambda curObj:PlayerControl.GetDamagePer(curObj), lambda curObj, value:PlayerControl.SetDamagePer(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePer, 1, 0],                  # 伤害输出计算百分比
   [lambda curObj:curObj.GetDamageReduceRate(), lambda curObj, value:curObj.SetDamageReduceRate(value), IPY_PlayerDefine.CDBPlayerRefresh_DamageReduceRate, 1, 0],  # 减少伤害
   [lambda curObj:PlayerControl.GetDamagePVP(curObj), lambda curObj, value:PlayerControl.SetDamagePVP(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVP, 1, 0],     # PVP固定伤害
   [lambda curObj:PlayerControl.GetDamagePVPReduce(curObj), lambda curObj, value:PlayerControl.SetDamagePVPReduce(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVPReduce, 1, 0],  # PVP固定减伤
   [lambda curObj:PlayerControl.GetHurtPer(curObj), lambda curObj, value:PlayerControl.SetHurtPer(curObj, value), 0, 0, 0],                      # 受伤计算百分比
   [lambda curObj:PlayerControl.GetBleedDamage(curObj), lambda curObj, value:PlayerControl.SetBleedDamage(curObj, value), ShareDefine.CDBPlayerRefresh_BleedDamage, 1, 0],              # 流血伤害
   [lambda curObj:PlayerControl.GetFinalHurt(curObj), lambda curObj, value:PlayerControl.SetFinalHurt(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurt, 1, 0],                  # 最终固定伤害增加
   [lambda curObj:PlayerControl.GetFinalHurtReduce(curObj), lambda curObj, value:PlayerControl.SetFinalHurtReduce(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtReduce, 1, 0],      # 最终固定伤害减少
   [lambda curObj:PlayerControl.GetDamagePerPVP(curObj), lambda curObj, value:PlayerControl.SetDamagePerPVP(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePerPVP, 1, 0],            # 伤害输出计算百分比PVP
   [lambda curObj:PlayerControl.GetDamagePerPVPReduce(curObj), lambda curObj, value:PlayerControl.SetDamagePerPVPReduce(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePerPVPReduce, 1, 0],# 伤害输出计算百分比PVP减少
   [lambda curObj:PlayerControl.GetDamagePerPVE(curObj), lambda curObj, value:PlayerControl.SetDamagePerPVE(curObj, value), 0, 0, 0],            # 伤害输出计算百分比PVE
   [lambda curObj:PlayerControl.GetDamagePVE(curObj), lambda curObj, value:PlayerControl.SetDamagePVE(curObj, value), ShareDefine.CDBPlayerRefresh_DamagePVE, 1, 0],            # 伤害输出计算固定值PVE
   [lambda curObj:PlayerControl.GetNPCHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetNPCHurtAddPer(curObj, value), ShareDefine.CDBPlayerRefresh_NPCHurtAddPer, 1, 0],          # 对怪物伤害加成
   [lambda curObj:PlayerControl.GetJobAHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetJobAHurtAddPer(curObj, value), 0, 0, 0],        # 目标战士伤害加成
   [lambda curObj:PlayerControl.GetJobBHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetJobBHurtAddPer(curObj, value), 0, 0, 0],        # 目标法师伤害加成
@@ -132,7 +132,7 @@
   [lambda curObj:PlayerControl.GetJobCAtkReducePer(curObj), lambda curObj, value:PlayerControl.SetJobCAtkReducePer(curObj, value), 0, 0, 0],    # 弓手攻击伤害减免
   
   [lambda curObj:PlayerControl.GetCommMapExpRate(curObj), lambda curObj, value:PlayerControl.SetCommMapExpRate(curObj, value), 0, 0, 0],    # 常规地图经验倍率加成
   [lambda curObj:PlayerControl.GetFinalHurtPer(curObj), lambda curObj, value:PlayerControl.SetFinalHurtPer(curObj, value), 0, 0, 0],        # 最终伤害百分比
   [lambda curObj:PlayerControl.GetFinalHurtPer(curObj), lambda curObj, value:PlayerControl.SetFinalHurtPer(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtPer, 1, 0],        # 最终伤害百分比
   [lambda curObj:PlayerControl.GetFuhaoHitRate(curObj), lambda curObj, value:PlayerControl.SetFuhaoHitRate(curObj, value), 0, 0, 0],        # 富豪一击概率
   [lambda curObj:PlayerControl.GetBossIDHurt(curObj), lambda curObj, value:PlayerControl.SetBossIDHurt(curObj, value), 0, 0, 0],            # 对指定boss伤害加成固定值
   [lambda curObj:PlayerControl.GetBossIDHurtAddPer(curObj), lambda curObj, value:PlayerControl.SetBossIDHurtAddPer(curObj, value), 0, 0, 0],# 对指定boss伤害加成倍率
@@ -168,6 +168,9 @@
   [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],  # 属性法宝技能加成
   [lambda curObj:PlayerControl.GetSuperHitPer(curObj), lambda curObj, value:PlayerControl.SetSuperHitPer(curObj, value), ShareDefine.CDBPlayerRefresh_SuperHitPer, 1, 0],   # 暴击伤害加成
   [lambda curObj:PlayerControl.GetLuckyHitPer(curObj), lambda curObj, value:PlayerControl.SetLuckyHitPer(curObj, value), ShareDefine.CDBPlayerRefresh_LuckyHitPer, 1, 0],   # 会心一击伤害加成
   [lambda curObj:PlayerControl.GetFinalHurtReducePer(curObj), lambda curObj, value:PlayerControl.SetFinalHurtReducePer(curObj, value), ShareDefine.CDBPlayerRefresh_FinalHurtReducePer, 1, 0],      # 最终伤害减少百分比
]
## 通过索引获得属性值
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -332,7 +332,7 @@
             4048:ChConfig.TriggerType_MissSkill,   # 闪避后触发释放技能
             4049:ChConfig.TriggerType_MissSuccessPer, # 闪避成功率提升
             4050:ChConfig.TriggerType_OneDamage,   # 伤害降低到1点
             4051:ChConfig.TriggerType_LuckyHit, # 会心一击时增加会心伤害百分比 50
             4051:ChConfig.TriggerType_LuckyHit, # 会心一击时增加会心伤害固定值 50
             4052:ChConfig.TriggerType_Buff_SuckBloodPer,   # 攻击 百分比吸血
             4053:ChConfig.TriggerType_AddLayer, # BUFF层级增加时 52
             4054:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5