hch
2019-12-04 5c93a8c5c117d040ae74bc299fa1ea3e619b864d
8342 强化大师特效
4个文件已修改
116 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
@@ -274,7 +274,7 @@
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipPartMasterPlusLV % classLV, actMasterPlusLV)
        
    SyncEquipMasterPlusLVInfo(curPlayer, classLV)
    ChEquip.ChangeEquipEffectByPlusMaster(curPlayer, classLV)
    #刷新所有属性
    DoLogic_OnEquipPartStarLVChange(curPlayer, packType, classLV)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -189,9 +189,9 @@
    #Operate_EquipWash.OnEquipWashLogin(curPlayer)
    #装备位宝石镶嵌通知
    #Operate_EquipStone.OnLogin(curPlayer)
    if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_LingGenShow):
        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_LingGenShow, 1)
        ChangeEquipfacadeByLingGen(curPlayer)
#    if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_LingGenShow):
#        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_LingGenShow, 1)
#        ChangeEquipfacadeByLingGen(curPlayer)
    
    ePartStarLVPack = ChPyNetSendPack.tagMCEquipPartStarInfo() # A3 B1 装备部位星数信息 #tagMCEquipPartStarInfo
    ePartPlusLVPack = ChPyNetSendPack.tagMCEquipPartPlusInfo() # A3 B3 装备部位强化信息 #tagMCEquipPartPlusInfo
@@ -1315,54 +1315,72 @@
    if oldEquipShowSwitch == updEquipShowSwitch:
        return
    curPlayer.SetEquipShowSwitch(updEquipShowSwitch)
    ChangeEquipEffectByPlusMaster(curPlayer, classLV)
    return True
#!!! 特效根据灵根品级变化改成根据强化大师变化
def ChangeEquipfacadeByLingGen(curPlayer):
    ## 灵根品级变化影响角色外观显示 灵根特效表key * 1000+第几套*10+是否有套装
    pointValueInfo = [[ShareDefine.Def_Effect_Metal,PlayerControl.GetMetalQualityLV(curPlayer)],
                          [ShareDefine.Def_Effect_Wood,PlayerControl.GetWoodQualityLV(curPlayer)],
                          [ShareDefine.Def_Effect_Water,PlayerControl.GetWaterQualityLV(curPlayer)],
                          [ShareDefine.Def_Effect_Fire,PlayerControl.GetFireQualityLV(curPlayer)],
                          [ShareDefine.Def_Effect_Earth,PlayerControl.GetEarthQualityLV(curPlayer)],
                          ]
    g_skillElementCntDict = {} #灵根对应使用专精技能数量
    skillManager = curPlayer.GetSkillManager()
    gameData = GameWorld.GetGameData()
    for i in xrange(skillManager.GetSkillCount()):
        curSkill = skillManager.GetSkillByIndex(i)
        skillID = curSkill.GetSkillTypeID()
        curSelectSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementID % skillID)
        if not curSelectSkillID:
            continue
        elementSkillData = gameData.GetSkillBySkillID(curSelectSkillID)
        if not elementSkillData:
            continue
        skillElementType = SkillShell.GetSkillElementType(elementSkillData)
        g_skillElementCntDict[skillElementType] = g_skillElementCntDict.get(skillElementType, 0) + 1
#    ## 灵根品级变化影响角色外观显示 灵根特效表key * 1000+第几套*10+是否有套装
#    pointValueInfo = [[ShareDefine.Def_Effect_Metal,PlayerControl.GetMetalQualityLV(curPlayer)],
#                          [ShareDefine.Def_Effect_Wood,PlayerControl.GetWoodQualityLV(curPlayer)],
#                          [ShareDefine.Def_Effect_Water,PlayerControl.GetWaterQualityLV(curPlayer)],
#                          [ShareDefine.Def_Effect_Fire,PlayerControl.GetFireQualityLV(curPlayer)],
#                          [ShareDefine.Def_Effect_Earth,PlayerControl.GetEarthQualityLV(curPlayer)],
#                          ]
#    g_skillElementCntDict = {} #灵根对应使用专精技能数量
#    skillManager = curPlayer.GetSkillManager()
#    gameData = GameWorld.GetGameData()
#    for i in xrange(skillManager.GetSkillCount()):
#        curSkill = skillManager.GetSkillByIndex(i)
#        skillID = curSkill.GetSkillTypeID()
#        curSelectSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementID % skillID)
#        if not curSelectSkillID:
#            continue
#        elementSkillData = gameData.GetSkillBySkillID(curSelectSkillID)
#        if not elementSkillData:
#            continue
#        skillElementType = SkillShell.GetSkillElementType(elementSkillData)
#        g_skillElementCntDict[skillElementType] = g_skillElementCntDict.get(skillElementType, 0) + 1
#
#    showPointID, showQualityLV = 0, 0
#    for pointID, qualityLV in pointValueInfo:
#        if qualityLV > showQualityLV:
#            showQualityLV = qualityLV
#            showPointID = pointID
#        elif showQualityLV and qualityLV == showQualityLV:
#            #比谁的专精技能数量多
#            if g_skillElementCntDict.get(pointID, 0) > g_skillElementCntDict.get(showPointID, 0):
#                showQualityLV = qualityLV
#                showPointID = pointID
#    effectID = 0
#    if showPointID:
#        ipyData = IpyGameDataPY.GetIpyGameData('LingGenEffect', showPointID, showQualityLV)
#        if not ipyData:
#            return
#        effectID = ipyData.GetID()
#    oldEquipShowSwitch = curPlayer.GetEquipShowSwitch()
#    updEquipShowSwitch = oldEquipShowSwitch % 1000 + oldEquipShowSwitch / 1000000 * 1000000+ 1000 * effectID
#    GameWorld.DebugLog('灵根品级变化影响角色外观显示g_skillElementCntDict=%s,oldEquipShowSwitch=%s,updEquipShowSwitch=%s'%
#                       (g_skillElementCntDict, oldEquipShowSwitch, updEquipShowSwitch))
#    if oldEquipShowSwitch != updEquipShowSwitch:
#        curPlayer.SetEquipShowSwitch(updEquipShowSwitch)
    return
def ChangeEquipEffectByPlusMaster(curPlayer, classLV):
    # 强化大师特效
    if (classLV != GetEquipFacadeClassLV(curPlayer)):
        return
    
    showPointID, showQualityLV = 0, 0
    for pointID, qualityLV in pointValueInfo:
        if qualityLV > showQualityLV:
            showQualityLV = qualityLV
            showPointID = pointID
        elif showQualityLV and qualityLV == showQualityLV:
            #比谁的专精技能数量多
            if g_skillElementCntDict.get(pointID, 0) > g_skillElementCntDict.get(showPointID, 0):
                showQualityLV = qualityLV
                showPointID = pointID
    effectID = 0
    if showPointID:
        ipyData = IpyGameDataPY.GetIpyGameData('LingGenEffect', showPointID, showQualityLV)
        if not ipyData:
            return
        effectID = ipyData.GetID()
    masterPlusLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_EquipPartMasterPlusLV % classLV)
    ## 强化大师影响角色外观显示 强化大师等级 * 1000+第几套*10+是否有套装
    oldEquipShowSwitch = curPlayer.GetEquipShowSwitch()
    updEquipShowSwitch = oldEquipShowSwitch % 1000 + oldEquipShowSwitch / 1000000 * 1000000+ 1000 * effectID
    GameWorld.DebugLog('灵根品级变化影响角色外观显示g_skillElementCntDict=%s,oldEquipShowSwitch=%s,updEquipShowSwitch=%s'%
                       (g_skillElementCntDict, oldEquipShowSwitch, updEquipShowSwitch))
    updEquipShowSwitch = oldEquipShowSwitch % 1000 + oldEquipShowSwitch / 1000000 * 1000000+ 1000 * masterPlusLV
    GameWorld.DebugLog('强化大师影变化影响角色外观显示,oldEquipShowSwitch=%s,updEquipShowSwitch=%s'%
                       (oldEquipShowSwitch, updEquipShowSwitch))
    if oldEquipShowSwitch != updEquipShowSwitch:
        curPlayer.SetEquipShowSwitch(updEquipShowSwitch)
    return
def ChangeEquipfacadeByHorsePetSkin(curPlayer, skinType, skinIndex):
    ##骑宠觉醒外观变更  灵宠外观索引*10000000+坐骑外观索引*1000000+灵根特效表key * 1000+第几套*10+是否有套装
    oldEquipShowSwitch = curPlayer.GetEquipShowSwitch()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -4674,9 +4674,9 @@
                if beforePointList[i] != afterPointList[i]:
                    diffPointAttrList.append(attrID)
            SkillShell.RefreshElementSkillByAttr(curPlayer, diffPointAttrList)
        if hasChange_Qualitylv:
            #灵根品级变化处理
            ChEquip.ChangeEquipfacadeByLingGen(curPlayer)
#        if hasChange_Qualitylv:
#            #灵根品级变化处理
#            ChEquip.ChangeEquipfacadeByLingGen(curPlayer)
            
        # 更新开服活动灵根数据
        OpenServerCampaign.UpdOpenServerCampaignLingGenData(curPlayer)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -2134,7 +2134,7 @@
            return
        
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementID % mainSkillID, selectSkillID)
        ChEquip.ChangeEquipfacadeByLingGen(curPlayer)
        #ChEquip.ChangeEquipfacadeByLingGen(curPlayer)
        if curElementSkillID and curElementSkillID != selectSkillID:
            #原技能删除
            skillManager.DeleteSkillBySkillTypeID(curElementSkillID)
@@ -2193,7 +2193,7 @@
            ipyData = IpyGameDataPY.GetIpyGameData('SkillElement', skillTypeID)
            mainSkillID = ipyData.GetMainSkillID()
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementID % mainSkillID, 0)
            ChEquip.ChangeEquipfacadeByLingGen(curPlayer)
            #ChEquip.ChangeEquipfacadeByLingGen(curPlayer)
            isNotify = True
    else:
        for _ in xrange(updSkillLV-curSkillLV):