6603 【后端】【2.0】增加新版的sp和被动技能 - 技能伤害百分比传公式改成万分率
33个文件已修改
2个文件已删除
1个文件已添加
216 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1314.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_4501.py 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_1.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_12.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_19.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_2.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_20.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_29.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_3.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_34.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_35.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_41.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_42.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_9.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4501.py 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4515.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4523.py 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4005.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4008.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4011.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4021.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4034.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4035.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4054.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4086.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4087.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4088.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4089.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4096.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -1489,7 +1489,7 @@
            reducePer += PlayerControl.GetJobCAtkReducePer(defObj)
        
    if addPer or reducePer:
        addSkillPer = (addPer - reducePer) / 10000.0
        addSkillPer = addPer - reducePer
        skillPer = max(0, skillPer + addSkillPer)
        
    return skillPer
@@ -1502,7 +1502,7 @@
        return skillPer, skillValue
    return findEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue), findEffect.GetEffectValue(1)
    return findEffect.GetEffectValue(0), findEffect.GetEffectValue(1)
# 对NPC伤害的特殊处理,为指定伤害替换 非额外加伤害
# 1. 对非BOSS怪的特殊伤害 2.对XX系怪物的特殊伤害
@@ -1709,24 +1709,8 @@
            hurtValue += atkObj.GetDictByKey(ChConfig.Def_PlayerKey_MoreHurtValue)
            
        elif SkillShell.IsPlayerUseSkill(atkObj, curSkill) and SkillShell.isClientHurtValue(defObj.GetID(), defObjType):
            # 缓存单次攻击中的最大伤害,被动技能概率性增加伤害,此处放大最大伤害
            hurtValue = atkObj.GetDictByKey(ChConfig.Def_PlayerKey_ClientMaxHurtValue)
            if hurtValue == 0:
                #hurtValue, hurtType = CalcHurtHP(atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, tick, None, True)
                # 理论伤害一致, 多加点预算伤害避免计算误差
                #hurtValue = min(ShareDefine.Def_UpperLimit_DWord, hurtValue+10)
                #atkObj.SetDict(ChConfig.Def_PlayerKey_ClientMaxHurtValue, int(hurtValue*1.2))
                hurtValue = atkObj.GetMaxAtk()*atkSkillPer*40   # 加入被动计算不准确改成估算
            clientValue, hurtType = SkillShell.GetClientHurtByObj(defObj.GetID(), defObjType)
            if clientValue <= hurtValue:
                hurtValue = clientValue
            else:
                # 外挂最高伤害基本防范
                GameWorld.DebugLog(atkObj, "%s----客户端伤害 %s 服务端最高伤害 %s"%(atkObj.GetID(), [clientValue, hurtType], hurtValue))
                hurtValue = int(hurtValue*0.8)
            #GameWorld.DebugAnswer(atkObj, "客户端伤害 %s 服务端伤害 %s"%([defObj.GetID(), clientValue, hurtType], hurtValue))
            hurtValue = min(clientValue, atkObj.GetMaxAtk()*200)    # 防下伤害可能上限
        else:
            hurtValue, hurtType = CalcHurtHP(atkObj, defObj, curSkill, atkSkillValue, atkSkillPer, tick, orgAtkObj=attacker)
        
@@ -2102,10 +2086,10 @@
    # --- 新增普通攻击的数值和技能攻击的数值,根据类型各自计算
    if atkObjType == IPY_GameWorld.gotPlayer:
        if not curSkill or curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_NormalAttack:
            atkSkillPer += float(PlayerControl.GetNormalHurtPer(atkObj))/ChConfig.Def_MaxRateValue
            atkSkillPer += PlayerControl.GetNormalHurtPer(atkObj)
            atkSkillValue += PlayerControl.GetNormalHurt(atkObj)
        elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
            atkSkillPer += float(PlayerControl.GetFabaoHurtPer(atkObj))/ChConfig.Def_MaxRateValue
            atkSkillPer += PlayerControl.GetFabaoHurtPer(atkObj)
            atkSkillValue += PlayerControl.GetFabaoHurt(atkObj)
            
    #  atkSkillPer 包含普攻,所以不是用技能增强处理
@@ -2153,12 +2137,9 @@
        aDamagePVP = PlayerControl.GetDamagePVP(atkObj)     # PVP固定伤害
        aDamagePVE = PlayerControl.GetDamagePVE(atkObj)     # PVE固定伤害
        
        # 被动技能增加伤害
        #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伤害加成
        aDamagePerPVP += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AddPVPDamagePer)
        aFinalHurtPer = PlayerControl.GetFinalHurtPer(atkObj) # 最外层伤害加成, 可能为负值
        aFinalHurtPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddFinalPer)
        
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -264,7 +264,7 @@
# @param isEnhanceSkill 是否为附加技能
#  @return True 攻击成功    None 不可攻击
#  @remarks 通过调用 Obj_Attack_Obj.GetTagRelation 获取返回值
def Attack(attacker, defender, useSkill, tick, skillPercent=1, skillEnhance=0, attackTime=1, isEnhanceSkill=False):
def Attack(attacker, defender, useSkill, tick, skillPercent=10000, skillEnhance=0, attackTime=1, isEnhanceSkill=False):
    global g_skillHurtList
    
    if attacker.GetGameObjType() == IPY_GameWorld.gotNPC:
@@ -2256,7 +2256,7 @@
        dist = GameWorld.GetDist(tagObj.GetPosX(), tagObj.GetPosY(),
                         defender.GetPosX(), defender.GetPosY())
        
        skillPer = (skillPercent - dist * changePer) / float(ChConfig.Def_MaxRateValue)
        skillPer = (skillPercent - dist * changePer)
        
        #GameWorld.Log("skillPer :%s"%skillPer)
        #执行群攻 并取得被攻击对象列表
@@ -2622,7 +2622,7 @@
            if not hurtEffect:
                
                continue
            hurtPer = hurtEffect.GetEffectValue(0)*1.0/ChConfig.Def_MaxRateValue  # 单层伤害
            hurtPer = hurtEffect.GetEffectValue(0)  # 单层伤害
        
        # 伤害乘以层
        skillPercent = hurtPer * max(buff.GetLayer(), 1)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3042,7 +3042,6 @@
Def_PlayerKey_1314HurtCount = "1314cnt"   # 类剑刃风暴技能的1314效果,伤害次数处理
Def_PlayerKey_FirstDefender = "FDID"   # 第一个防守者,只用于比较
Def_PlayerKey_SelectObjID = "selectID"   # 锁定模式选中,不用SetActionObj
Def_PlayerKey_SelectObjID = "selectID"   # 锁定模式选中,不用SetActionObj
Def_PlayerKey_SelectObjType = "selectType"   # 锁定模式选中
Def_PlayerKey_NormalHurt = "NormalHurt"   # 属性普通攻击增伤:普通攻击附加的固定值伤害
Def_PlayerKey_NormalHurtPer = "NormalHurtPer"    # 属性普通攻击加成:普通攻击附加的伤害百分比
@@ -3074,7 +3073,6 @@
Def_PlayerKey_EquipTime = "EquipTime"     # 时效装备
Def_PlayerKey_PowerPartTime = "PowerPartTime"     # 蓄力每次消耗时间,因攻速改变
Def_PlayerKey_PowerPartCount = "PowerPartCount"     # 蓄力技能能量次数
Def_PlayerKey_ClientMaxHurtValue = "CMaxHValue"     # 缓存单次技能攻击的最大伤害, 减少计算量
Def_Player_RefreshAttr = "Player_RefreshAttr"   # 玩家刷新属性标志
Def_PlayerKey_LoadMapIsLogin = 'LoadMapIsLogin'    # 本次进入地图是否是登录的
Def_PlayerKey_NotifyAllAttrState = 'NotifyAllAttrState'    # 是否同步过所有属性,切图时第一次刷属性需要同步
@@ -4397,7 +4395,7 @@
(
TriggerType_BeSuperHit, # 被暴击触发技能 1
TriggerType_BuffState,  # 进入4012的某个状态触发技能
TriggerType_AddDamagePer,   # 提高增加伤害属性值,计算时
TriggerType_AddPVPDamagePer,   # 提高PVP增加伤害属性值,计算时
TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发
TriggerType_AttackAddSkillPer, # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
TriggerType_SuperHit, # 暴击时 触发技能
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1033.py
@@ -111,7 +111,7 @@
    
    boomSkill = skills[0]
    curEffect = curSkill.GetEffect(0)
    skillPer = curEffect.GetEffectValue(0)/float(ChConfig.Def_MaxRateValue)
    skillPer = curEffect.GetEffectValue(0)
    skillEnhance = curEffect.GetEffectValue(1)
    BaseAttack.AttackAreaDefenderNotify(attacker, defender, defender.GetPosX(), defender.GetPosY(), boomSkill,
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/BuffProcess_1314.py
@@ -35,12 +35,12 @@
    #攻击效果
    skillEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_Attack)
    skillPer = 1
    skillPer = 10000
    skillEnhance = 0
    
    if skillEffect != None:
        #技能增强百分比
        skillPer = (skillEffect.GetEffectValue(0)) / float(ChConfig.Def_MaxRateValue)
        skillPer = skillEffect.GetEffectValue(0)
        multiple = curSkill.GetEffect(0).GetEffectValue(0) - curBuff.GetValue() + 1  # 第几次攻击
        skillPer += multiple*PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(tagObj, None, curSkill, ChConfig.TriggerType_AddSingleSkillPer)
        #技能增强值
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_4501.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_1.py
@@ -35,7 +35,7 @@
# @remarks “打出自身伤害的X%附加Y值”这一类普通攻击技能类型实现逻辑
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #使用技能
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_12.py
@@ -36,7 +36,7 @@
# @remarks 指定目标有角度的群体范围攻击模板
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #---攻击遍历起点优先级 1.找指定点 2.防守者(包括自己)---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_19.py
@@ -34,7 +34,7 @@
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #---攻击遍历起点优先级 1.找指定点 2.防守者(包括自己)---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_2.py
@@ -32,7 +32,7 @@
# @remarks 群体范围攻击
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #---攻击遍历起点优先级 1.找指定点 2.防守者(包括自己)---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_20.py
@@ -23,7 +23,7 @@
## 群体攻击百分比掉血,被攻击者各自计算百分比
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #---攻击遍历起点优先级 1.找指定点 2.防守者(包括自己)---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_29.py
@@ -41,7 +41,7 @@
        return False
    
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #使用技能
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_3.py
@@ -52,9 +52,9 @@
    skillPerList = []
    for i in range(jumpCount):
        if changeType:
            skillPerList.append((skillPer + i * addPer) / float(ChConfig.Def_MaxRateValue))
            skillPerList.append((skillPer + i * addPer))
        else:
            skillPerList.append((skillPer - i * addPer) / float(ChConfig.Def_MaxRateValue))
            skillPerList.append((skillPer - i * addPer))
    #GameWorld.Log("闪电链攻击技能增强列表 = %s,附加值 = %s, 跳转次数 = %s"%(skillPerList, addValue, jumpCount))  
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_34.py
@@ -47,7 +47,7 @@
        
        
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    curRadius = curSkill.GetAtkRadius() # 0-单攻; >0群攻效果半径
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_35.py
@@ -43,7 +43,7 @@
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    count = attacker.GetDictByKey(ChConfig.Def_PlayerKey_PowerPartCount)
    skillPer = skillEffect.GetEffectValue(0) * count / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0) * count
    skillEnhance = skillEffect.GetEffectValue(1) * count
    
    #---攻击遍历起点优先级 1.找指定点 2.防守者(包括自己)---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_41.py
@@ -23,7 +23,7 @@
        return
    
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    tagRoundPosX = attacker.GetPosX()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_42.py
@@ -22,7 +22,7 @@
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
    skillEffect = curSkill.GetEffect(0)
    skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
    skillPer = skillEffect.GetEffectValue(0)
    skillEnhance = skillEffect.GetEffectValue(1)
    
    #---攻击遍历起点优先级 1.找指定点 2.防守者(包括自己)---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillModule_9.py
@@ -48,7 +48,7 @@
    if defender:    # 有目标才算伤害
        
        skillEffect = curSkill.GetEffect(0)
        skillPer = skillEffect.GetEffectValue(0) / float(ChConfig.Def_MaxRateValue)
        skillPer = skillEffect.GetEffectValue(0)
        skillEnhance = skillEffect.GetEffectValue(1)
  
        #使用技能,无需提升暴击率
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4501.py
@@ -1,7 +1,7 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
# @todo: 攻击有xx%几率附加xx%技能伤害,持续xx秒
# @todo: 攻击有xx%几率附加xx%技能伤害,持续xx秒, 附加目标处于XX状态
#
# @author: Alee
# @date 2018-1-30 下午05:11:45
@@ -13,26 +13,18 @@
import ChConfig
import GameWorld
import PassiveBuffEffMng
import GameObj
import SkillCommon
def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
    curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
    if not curSkill:
        return
    
    buffType = SkillCommon.GetBuffType(curSkill)
    buffTuple = SkillCommon.GetBuffManagerByBuffType(attacker, buffType)
    #通过类型获取目标的buff管理器为空,则跳出
    if buffTuple == ():
        return
    if passiveEffect.GetEffectValue(2) and defender:
        if not GameObj.GetPyPlayerState(defender, passiveEffect.GetEffectValue(2)):
            #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
            return False
    
    buffManager = buffTuple[0]
    buff = buffManager.FindBuff(skillID)
    if not buff:
        return
    return GameWorld.CanHappen(buff.GetValue())
    return GameWorld.CanHappen(passiveEffect.GetEffectValue(1))
def GetValue(attacker, defender, passiveEffect):
    return float(passiveEffect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return passiveEffect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4515.py
@@ -19,4 +19,4 @@
def GetValue(attacker, defender, passiveEffect):
    return float(passiveEffect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return passiveEffect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4523.py
New file
@@ -0,0 +1,28 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: buff中暴击时增加技能伤害
#
# @author: Alee
# @date 2019-5-5 下午04:26:53
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import ChConfig
import GameWorld
import SkillCommon
import BuffSkill
import SkillShell
import IPY_GameWorld
def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):
    return True
def GetValue(attacker, defender, passiveEffect):
    return passiveEffect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4005.py
@@ -29,4 +29,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4008.py
@@ -20,4 +20,4 @@
def GetValue(attacker, defender, effect):
    playerItemControl = ItemControler.PlayerItemControler(attacker)
    return playerItemControl.GetStartEquipCount() * effect.GetEffectValue(0) * 1.0 / ChConfig.Def_MaxRateValue
    return playerItemControl.GetStartEquipCount() * effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4011.py
@@ -19,4 +19,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py
@@ -29,4 +29,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4021.py
@@ -22,4 +22,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4034.py
@@ -36,5 +36,5 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4035.py
@@ -33,7 +33,7 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4054.py
@@ -24,4 +24,4 @@
    return defender.GetJob() == effect.GetEffectValue(1)
def GetValue(attacker, defender, effect):
    return effect.GetEffectValue(0)*1.0/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4086.py
@@ -29,4 +29,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0)*min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1)))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)*min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1))
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4087.py
@@ -22,4 +22,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4088.py
@@ -26,4 +26,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4089.py
@@ -26,4 +26,4 @@
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0)*min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1)))/ChConfig.Def_MaxRateValue
    return effect.GetEffectValue(0)*min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1))
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4096.py
File was deleted
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -284,8 +284,6 @@
             
             4000:ChConfig.TriggerType_BuffState,   # 进入4012的某个状态触发技能 2
             4001:ChConfig.TriggerType_TagBuffState,   # 目标进入4012的某个状态触发技能 2
             4002:ChConfig.TriggerType_AddDamagePer,   # 提高增加伤害属性值,计算时 3
             4003:ChConfig.TriggerType_AddDamagePer,   # 提高增加伤害属性值,计算时 3
             4004:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
             4005:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4006:ChConfig.TriggerType_SuperHit, # 暴击时 触发技能6,
@@ -311,7 +309,7 @@
             4027:ChConfig.TriggerType_AttackKill,   # նɱ 24
             4028:ChConfig.TriggerType_WillDead,   # 进入濒死状态时触发技能 25
             4029:ChConfig.TriggerType_BuffBoom,   # 中毒后爆炸 26
             4030:ChConfig.TriggerType_Success_Buff_SkillPer, # 提高4501成功概率 27
             #4030:ChConfig.TriggerType_Success_Buff_SkillPer, # 提高4501成功概率 27
             4031:ChConfig.TriggerType_HurtObjAddBuff,   # 在算伤害时群攻1对1加buff,可用于一个伤害多次触发 28
             4032:ChConfig.TriggerType_BeBoomSeed,   # 被动引爆视野内对象的buff种子 29
             4033:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
@@ -347,7 +345,7 @@
             4063:ChConfig.TriggerType_SummonDie,   #自身召唤兽死亡触发技能 60
             4064:ChConfig.TriggerType_GiftReduceCD, # 天赋减少CD9, #CD
             4065:ChConfig.TriggerType_DamageReducePVP,   # PVP减少伤害
             4066:ChConfig.TriggerType_AddDamagePer,   # 提高增加伤害属性值,计算时 3
             4066:ChConfig.TriggerType_AddPVPDamagePer,   # 提高PVP增加伤害属性值,计算时 3
             4067:ChConfig.TriggerType_ProDefValue, # 神兵护盾值下降时 62
             4068:ChConfig.TriggerType_LockHP, # 锁血触发技能 63
             4069:ChConfig.TriggerType_ZhongjiZhansha, # 终极斩杀 64
@@ -396,7 +394,7 @@
             4500:ChConfig.TriggerType_AttackOver, # BUFF类:攻击触发新技能
             4501:ChConfig.TriggerType_AttackAddSkillPer, # BUFF类:提高主动技能的技能伤害
             4502:ChConfig.TriggerType_BeAttackOver, # BUFF类:被攻击触发技能
             4503:ChConfig.TriggerType_AddDamagePer,  # BUFF类: 攻击时提高增加伤害
             #4503:ChConfig.TriggerType_AttackAddSkillPer,  # BUFF类: 攻击时提高增加伤害
             4504:ChConfig.TriggerType_BounceHP,  # BUFF类: 反弹伤害固定值
             4506:ChConfig.TriggerType_BeAttackOver, # BUFF类:被攻击触发技能  只刷新属性 不触发技能
             4507:ChConfig.TriggerType_Buff_AddSuperHitRate, # BUFF类:增加暴击率
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -102,9 +102,6 @@
    global g_ClientHurtDict
    g_ClientHurtDict = collections.OrderedDict()
    
    # 缓存单次技能攻击的最大伤害, 减少计算量
    curPlayer.SetDict(ChConfig.Def_PlayerKey_ClientMaxHurtValue, 0)
    
def GetClientHurtByObj(objID, objType):
    global g_ClientHurtDict