6607 【2.0】【后端】技能升级功能改版(StateSkillLV=需要基础属性ID*100000+需要属性点)
2个文件已修改
15 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyGameData.py
@@ -106,4 +106,4 @@
g_crossPlayerServerGroupIDInfo = {} #跨服玩家服务器组ID缓存,副本线路关闭时才释放,所以支持离线跨服玩家 {copyMapID:{playerID:serverGroupID, ...}, ...}
g_fbBuyBuffTimeDict = {} # 副本购买buff时间缓存{playerID:{moneyCnt:time}}
g_fairyDomainLimit = [] #全服已限制的缥缈仙域事件
g_elemntSkillDict = {} #{skillID:[attrID*10000+needValue,..]}
g_elemntSkillDict = {} #{skillID:[attrID*100000+needValue,..]}
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -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()):