xdh
2019-04-28 ed9a3de1449dc0c428f9bfdc28ae9128fec3014d
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -983,7 +983,7 @@
    #使用技能行为状态, 客户端限制    
    if not OperControlManager.IsObjCanDoAction(curPlayer, 
                                               ChConfig.Def_Obj_ActState_ClientSkill, 
                                               curSkill.GetSkillOfSeries()):
                                               curSkill.GetSkillOfSeries(), curSkill):
        AttackFailNotify(curPlayer, curSkill)
        return    
@@ -2017,8 +2017,8 @@
        return False
    
    #玩家属性点要求
    stateSkillLV = curSkill.GetStateSkillLV() #需要基础属性ID*10000+需要属性点
    needBaseAttrID, needBaseAttrValue = stateSkillLV /10000, stateSkillLV%10000
    stateSkillLV = curSkill.GetStateSkillLV() #需要基础属性ID*100000+需要属性点
    needBaseAttrID, needBaseAttrValue = GetSkillUpNeedAttr(stateSkillLV)
    if needBaseAttrID and needBaseAttrValue:
        baseAttrDict = {
                            ShareDefine.Def_Effect_Metal:PlayerControl.GetMetal(curPlayer),
@@ -2036,6 +2036,8 @@
            return False
    
    return True
## 获取技能升级属性需求 rutrun attrID, attrvalue
def GetSkillUpNeedAttr(stateSkillLV):return stateSkillLV /100000, stateSkillLV%100000
#// A5 16 选择技能五行专精 #tagCMSelectSkillElement
#
@@ -2094,7 +2096,7 @@
    maxSkillLV = len(limitInfoList)
    updSkillLV = 0
    for i, limitInfo in enumerate(limitInfoList):
        needAttrID, needAttrValue = limitInfo /10000, limitInfo%10000
        needAttrID, needAttrValue = GetSkillUpNeedAttr(limitInfo)
        curAttrValue = baseAttrDict.get(needAttrID, 0)
        if curAttrValue >= needAttrValue:
            updSkillLV = maxSkillLV - i
@@ -2130,7 +2132,8 @@
            continue
        if curElementSkillID not in PyGameData.g_elemntSkillDict:
            continue
        if PyGameData.g_elemntSkillDict[curElementSkillID][0] /10000 not in attrIDList:
        attrID = GetSkillUpNeedAttr(PyGameData.g_elemntSkillDict[curElementSkillID][0])[0]
        if attrID not in attrIDList:
            continue
        if RefreshElementSkill(curPlayer, curElementSkillID):
            isRefresh = True
@@ -2158,7 +2161,7 @@
    return cnt
def __InitElementSkillInfo():
    #缓存技能专精信息{skillID:[attrID*10000+needValue,..]}
    #缓存技能专精信息{skillID:[attrID*100000+needValue,..]}
    if not PyGameData.g_elemntSkillDict:
        ipyMgr = IpyGameDataPY.IPY_Data()
        for i in xrange(ipyMgr.GetSkillElementCount()):
@@ -2864,19 +2867,6 @@
        OperControlManager.SetObjActState(curObj, buffSkill)
# 非属性技能算属性 特殊处理
# 法宝SP技能 如1-4级为增加属性,第5级为伤害效果,第6-10级就要包含属性和伤害效果
def CalcFabaoSPSkillAttr(curPlayer, curPlayerSkill, allAttrList):
    if curPlayerSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbSPSkill:
        return
    value = GetMaxHPAttrValue(curPlayerSkill)
    if value == 0:
        return
    PlayerControl.CalcAttrDict_Type(ShareDefine.Def_Effect_MaxHP, value, allAttrList)
    return
# 计算属性类技能的属性,同buff层不算战力
def CalcPassiveAttr_Effect(curPlayer, allAttrList):
@@ -2886,7 +2876,6 @@
        if curPlayerSkill == None:
            continue
        
        CalcFabaoSPSkillAttr(curPlayer, curPlayerSkill, allAttrList)
        if not SkillCommon.isPassiveAttr(curPlayerSkill):
            continue
        
@@ -3367,7 +3356,6 @@
# 不受限制和影响的技能
def Trigger_UseSkill(attacker, defender, curSkill, tick, tagRoundPosX = 0, tagRoundPosY = 0, isEnhanceSkill = False):
    
    #这个技能是Buff
    if SkillCommon.IsBuff(curSkill):
@@ -3466,7 +3454,6 @@
def GetAddBuffValue(attacker, curSkill, defender):
    #验证该技能效果1的ID,提取公式
    curEffect = curSkill.GetEffect(0)
    effectID = curEffect.GetEffectID()
    
    moduleSuffix = GetBuffModuleSuffix(curEffect)
    
@@ -3583,7 +3570,7 @@
    return
#---------------------------------------------------------------------
# 获得关联技能
# 获得关联技能,0 全部 1是主动型技能(法宝,普攻)   其他技能ID
def GetConnectSkillID(curSkill):
    return curSkill.GetExAttr1()
@@ -3620,9 +3607,7 @@
def GetUpLVCostItemNum(curSkill):
    return curSkill.GetExAttr5()
# 技能特殊增加属性配置,目前只支持生命,潜力技能专用
def GetMaxHPAttrValue(curSkill):
    return curSkill.GetMP()
##获得当前技能升级消耗的真气值
# @param curSkill 当前技能技能