From c0a79612bcc282637bff62cf1e19e714a4d69b9d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 06 六月 2019 14:11:03 +0800
Subject: [PATCH] 6805 【后端】【2.0】副本前端化(妖王奖励物品ID支持配0)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py |   79 ++++++++++++++++-----------------------
 1 files changed, 33 insertions(+), 46 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
index ec9f240..6010012 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
@@ -32,10 +32,11 @@
 import GameFuncComm
 import SkillCommon
 import BuffSkill
-import ItemControler
+import PlayerWeekParty
 #import EventReport
 import IpyGameDataPY
 import PassiveBuffEffMng
+import OpenServerCampaign
 
 import random
 
@@ -52,41 +53,26 @@
         return
     Sync_GodWeaponLVInfo(curPlayer)
     
-    #老号相关神兵场景特效等级同步支持
-    if curPlayer.GetExAttr15() == 0:
-        playerID = curPlayer.GetPlayerID()
-        ipyDataMgr = IpyGameDataPY.IPY_Data()
-        maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
-        for setWeaponType in xrange(1, maxType + 1):
-            setLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % setWeaponType)
-            if not setLV:
-                continue
-            SetGodWeaponLV(curPlayer, setWeaponType, setLV)
-            
-            giveSkillList = []
-            for attrLV in xrange(1, setLV + 1):
-                godWeaponData = IpyGameDataPY.GetIpyGameData('GodWeapon', setWeaponType, attrLV)
-                if godWeaponData:
-                    giveSkillID = GodWeaponLVUP(curPlayer, godWeaponData, attrLV)
-                    if giveSkillID:
-                        giveSkillList.append(giveSkillID)
-            GameWorld.Log("老号设置神兵场景等级: setWeaponType=%s,setLV=%s, giveSkillList=%s" % (setWeaponType, setLV, giveSkillList), playerID)
-            
     return
 
 def SetGodWeaponLV(curPlayer, weaponType, lv):
     ## 设置神兵等级,同步设置场景神兵等级
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GodWeaponLV % weaponType, lv)
-    sceneEffectsDict = {Def_GodWeaponType_HP:[lambda curObj, value:curObj.SetExAttr15(value), ShareDefine.CDBPlayerRefresh_GodWeaponLV_1],
-                        Def_GodWeaponType_Atk:[lambda curObj, value:curObj.SetExAttr16(value), ShareDefine.CDBPlayerRefresh_GodWeaponLV_2],
-                        Def_GodWeaponType_SuperHit:[lambda curObj, value:curObj.SetExAttr17(value), ShareDefine.CDBPlayerRefresh_GodWeaponLV_3],
-                        Def_GodWeaponType_Def:[lambda curObj, value:curObj.SetExAttr18(value), ShareDefine.CDBPlayerRefresh_GodWeaponLV_4],
-                        }
-    if weaponType in sceneEffectsDict:
-        setFunc, notifyType = sceneEffectsDict[weaponType]
-        setFunc(curPlayer, lv)
-        curPlayer.SendPropertyRefresh(notifyType, lv, False)
+            
+    totalLV = GetGodWeaponTotalLV(curPlayer)
+    # 开服活动数据
+    OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_GodWeaponLV, totalLV)
+    PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GodWeapon, totalLV, False, True)
     return
+
+def GetGodWeaponTotalLV(curPlayer):
+    ##获取神兵总等级
+    totalLV = 0
+    ipyDataMgr = IpyGameDataPY.IPY_Data()
+    maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
+    for gwType in xrange(1, maxType + 1):
+        totalLV += curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % gwType)
+    return totalLV
 
 ## 神器开启
 #  @return: 是否激活成功
@@ -133,8 +119,10 @@
             PlayerControl.CalcAttrDict_Type(attrID, attrValueList[i], allAttrList)
         
         fightPowerEx += IpyGameDataPY.GetFuncEvalCfg('MagicExterior').get(str(gwType), 0)
-        # 附加战力
-        curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_GodWeapon, fightPowerEx)
+        
+        
+    # 附加战力
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_GodWeapon, fightPowerEx)
     GameWorld.DebugLog("神兵属性:%s" % allAttrList)
     # 保存计算值
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_GodWeapon, allAttrList)   
@@ -215,9 +203,9 @@
     
     #1.判断表中有没此类型,2.是否满级,3.判断是否有物品
     attrLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % weaponType)
-    if not attrLV and Def_GodWeaponType_SuperHit != weaponType:
-        GameWorld.DebugLog("神兵未解锁,无法升级!weaponType=%s,attrLV=%s" % (weaponType, attrLV))
-        return
+    # if not attrLV and Def_GodWeaponType_SuperHit != weaponType:
+    #     GameWorld.DebugLog("神兵未解锁,无法升级!weaponType=%s,attrLV=%s" % (weaponType, attrLV))
+    #     return  由配置表决定等级0是否可升级
       
     beforeAttrLV = attrLV   # 用于提示
     godWeaponData = IpyGameDataPY.GetIpyGameData('GodWeapon', weaponType, attrLV)
@@ -310,29 +298,28 @@
         RefreshGodWeaponAttr(curPlayer)
         #x神器达到X级成就
         PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_GodWeapon, attrLV, [weaponType])
+        EventShell.EventRespons_GodWeaponUp(curPlayer, weaponType, attrLV)
         if beforeAttrLV == 0:
             # 解封通知
             sysMark = IpyGameDataPY.GetFuncEvalCfg('GodWeaponSys', 1, {}).get(weaponType, 'GetGodWeapon')
             PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), weaponType])
             
         #{1:[100,200,300,400],2:[100,200,300,400],3:[100,200,300,400]}
-        notifyDict = IpyGameDataPY.GetFuncEvalCfg('GodLv', 1, {})
-        if weaponType in notifyDict:
-            for notifyLV in notifyDict[weaponType]:
-                if beforeAttrLV < notifyLV and attrLV >= notifyLV:
-                    PlayerControl.WorldNotify(0, 'GodWeaponLv', [curPlayer.GetName(), weaponType, notifyLV])
+        #=======================================================================
+        # notifyDict = IpyGameDataPY.GetFuncEvalCfg('GodLv', 1, {})
+        # if weaponType in notifyDict:
+        #    for notifyLV in notifyDict[weaponType]:
+        #        if beforeAttrLV < notifyLV and attrLV >= notifyLV:
+        #            PlayerControl.WorldNotify(0, 'GodWeaponLv', [curPlayer.GetName(), weaponType, notifyLV])
+        #=======================================================================
                 
-        # 神兵特效激活广播
-        godWeaponEffectData = IpyGameDataPY.GetIpyGameDataByCondition('GodWeaponEffect', {'GWType':weaponType, "Level":attrLV}, False, False)
-        if godWeaponEffectData:
-            PlayerControl.WorldNotify(0, godWeaponEffectData.GetNotifyCode(), [curPlayer.GetName(), attrLV])
-        
+
         totalExp = godWeaponData.GetExp()
         
         
     Sync_GodWeaponLVInfo(curPlayer, weaponType)
     #任务
-    EventShell.EventRespons_PlusGodWeapon(curPlayer)
+    EventShell.EventRespons_PlusGodWeapon(curPlayer, weaponType)
     return
 
 #神兵升级触发其他功能:技能

--
Gitblit v1.8.0