hxp
2025-08-06 2ccb840f9db8c61f7e9a0a336205713b41790bf3
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -1284,13 +1284,13 @@
        elif curObjType == IPY_GameWorld.gotNPC:
            AttackCommon.NPCAddObjInHurtList(attackerOwner, curObj, curObjHP_BeforeAttack, lostValue)
            
    TurnAttack.AddTurnObjHurtValue(buffOwner, curObj, hurtType, lostValue, lostHP, curSkill)
    #TurnAttack.AddTurnObjHurtValue(buffOwner, curObj, lostValue, lostHP, curSkill)
    
    #统一调用攻击结束动作
    if isDoAttackResult:
        BaseAttack.DoLogic_AttackResult(buffOwner, curObj, None, tick)
        
    TurnAttack.OnTurnfightAttackResult(buffOwner, curObj, curSkill)
    #TurnAttack.OnTurnfightAttackResult(buffOwner, curObj, curSkill)
    return lostHP
## 检查增加淬毒buff
@@ -1852,11 +1852,15 @@
def isAngerSkill(curSkill):
    ## 是否怒气技能
    return curSkill and curSkill.GetXP() > 0
    return curSkill and curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_AngerSkill
def isTurnNormalSkill(curSkill):
    ## 是否回合普攻技能,区别与无技能的普通A一下,该普攻同样可以有各种技能效果,只是他属于普攻
    return curSkill and curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_TurnNormaSkill
def isAtkbackSkill(curSkill):
    ## 是否反击技能
    return curSkill and curSkill.GetFuncType() == ChConfig.Def_SkillFuncType_AtkbackSkill
## 检查技能是否为被动技能, 用于控制不可释放技能
def isPassiveSkill(curSkill):
@@ -2167,48 +2171,50 @@
def GetSkillAddPerByID(curPlayer, skillTypeID):
    ## 获取技能伤害百分比提升值
    # @param skillTypeID: 技能TypeID
    SkillAddPerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillAddPerAttrIDDict")
    if not SkillAddPerAttrIDDict:
        SkillAddPerAttrIDDict = {}
        skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
        for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items():
            attrID = int(attrIDStr)
            if attrID not in ShareDefine.SkillAddPerAttrIDList:
                continue
            for cfgSkillTypeID in skillTypeIDList:
                SkillAddPerAttrIDDict[cfgSkillTypeID] = attrID
        IpyGameDataPY.SetConfigEx("SkillAddPerAttrIDDict", SkillAddPerAttrIDDict)
    if skillTypeID not in SkillAddPerAttrIDDict:
        return 0
    curAttrID = SkillAddPerAttrIDDict[skillTypeID]
    attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, [])
    if attrInfo == []:
        return 0
    effIndex = attrInfo[0][0]
    return EffGetSet.GetValueByEffIndex(curPlayer, effIndex)
    return 0
#    SkillAddPerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillAddPerAttrIDDict")
#    if not SkillAddPerAttrIDDict:
#        SkillAddPerAttrIDDict = {}
#        skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
#        for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items():
#            attrID = int(attrIDStr)
#            if attrID not in ShareDefine.SkillAddPerAttrIDList:
#                continue
#            for cfgSkillTypeID in skillTypeIDList:
#                SkillAddPerAttrIDDict[cfgSkillTypeID] = attrID
#        IpyGameDataPY.SetConfigEx("SkillAddPerAttrIDDict", SkillAddPerAttrIDDict)
#
#    if skillTypeID not in SkillAddPerAttrIDDict:
#        return 0
#    curAttrID = SkillAddPerAttrIDDict[skillTypeID]
#    attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, [])
#    if attrInfo == []:
#        return 0
#    effIndex = attrInfo[0][0]
#    return EffGetSet.GetValueByEffIndex(curPlayer, effIndex)
def GetSkillReducePerByID(curPlayer, skillTypeID):
    ## 获取技能伤害百分比减伤值
    # @param skillTypeID: 技能TypeID
    SkillReducePerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillReducePerAttrIDDict")
    if not SkillReducePerAttrIDDict:
        SkillReducePerAttrIDDict = {}
        skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
        for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items():
            attrID = int(attrIDStr)
            if attrID not in ShareDefine.SkillReducePerAttrIDList:
                continue
            for cfgSkillTypeID in skillTypeIDList:
                SkillReducePerAttrIDDict[cfgSkillTypeID] = attrID
        IpyGameDataPY.SetConfigEx("SkillReducePerAttrIDDict", SkillReducePerAttrIDDict)
    if skillTypeID not in SkillReducePerAttrIDDict:
        return 0
    curAttrID = SkillReducePerAttrIDDict[skillTypeID]
    attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, [])
    if attrInfo == []:
        return 0
    effIndex = attrInfo[0][0]
    return EffGetSet.GetValueByEffIndex(curPlayer, effIndex)
    return 0
#    SkillReducePerAttrIDDict = IpyGameDataPY.GetConfigEx("SkillReducePerAttrIDDict")
#    if not SkillReducePerAttrIDDict:
#        SkillReducePerAttrIDDict = {}
#        skillPlusAttrIDDict = IpyGameDataPY.GetFuncEvalCfg("SkillPlusAttrID", 2, {})
#        for attrIDStr, skillTypeIDList in skillPlusAttrIDDict.items():
#            attrID = int(attrIDStr)
#            if attrID not in ShareDefine.SkillReducePerAttrIDList:
#                continue
#            for cfgSkillTypeID in skillTypeIDList:
#                SkillReducePerAttrIDDict[cfgSkillTypeID] = attrID
#        IpyGameDataPY.SetConfigEx("SkillReducePerAttrIDDict", SkillReducePerAttrIDDict)
#
#    if skillTypeID not in SkillReducePerAttrIDDict:
#        return 0
#    curAttrID = SkillReducePerAttrIDDict[skillTypeID]
#    attrInfo = ChConfig.ItemEffect_AttrDict.get(curAttrID, [])
#    if attrInfo == []:
#        return 0
#    effIndex = attrInfo[0][0]
#    return EffGetSet.GetValueByEffIndex(curPlayer, effIndex)