From 5c93a8c5c117d040ae74bc299fa1ea3e619b864d Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 04 十二月 2019 15:19:18 +0800
Subject: [PATCH] 8342 强化大师特效

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py                 |    4 +-
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py                     |  104 ++++++++++++++++++++++++++++++---------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py             |    6 +-
 4 files changed, 67 insertions(+), 49 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
index 6debfb6..d50ed8e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipPlus.py
+++ b/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
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
index 56b29c2..777be72 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
+++ b/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()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index afc5eab..4a78d00 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/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)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
index 972f097..16e804c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/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):

--
Gitblit v1.8.0