From d8747a9d1ccce1f60f79c14c3ef1217b223c9ce3 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 25 十二月 2018 09:56:22 +0800
Subject: [PATCH] 5505 王者法宝初版、聚魂副本设置阵营

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
index 672f459..78b0270 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMagicWeapon.py
@@ -500,7 +500,11 @@
     allAttrList1 = [{} for _ in range(4)] #人族法宝
     allAttrList2 = [{} for _ in range(4)] #魔族法宝
     allAttrList3 = [{} for _ in range(4)] #仙族法宝
-    mwTypeMfpTypeDict = {1:ShareDefine.Def_MFPType_MagicWeapon1,2:ShareDefine.Def_MFPType_MagicWeapon2,3:ShareDefine.Def_MFPType_MagicWeapon3}
+    allAttrList4 = [{} for _ in range(4)] #王者法宝
+    mwTypeMfpTypeDict = {1:ShareDefine.Def_MFPType_MagicWeapon1,
+                         2:ShareDefine.Def_MFPType_MagicWeapon2,
+                         3:ShareDefine.Def_MFPType_MagicWeapon3,
+                         4:ShareDefine.Def_MFPType_MagicWeapon4}
     addPowerDict = {} #额外战力
     signDayMWID = IpyGameDataPY.GetFuncCfg('MWSignDayAttr', 2)
     ipyDataMgr = IpyGameDataPY.IPY_Data()
@@ -538,6 +542,12 @@
                 for attid, attnum in IpyGameDataPY.GetFuncEvalCfg('MWSignDayAttr', 1, {}).items():
                     addAttr[int(attid)] = attnum * totalSignNum
                 GameWorld.AddDictValue(allAttrDict, addAttr)
+            #王者法宝属性
+            kingAwardMark = 1
+            kingMWIpyData = IpyGameDataPY.GetIpyGameDataNotLog('MagicWeaponOfKing', magicWeaponID, kingAwardMark)
+            if kingMWIpyData and GetIsWearMagicWeapon(curPlayer, magicWeaponID):
+                attrDict = kingMWIpyData.GetAddAttr()
+                GameWorld.AddDictValue(allAttrDict, attrDict)
         
         fbpasslv = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MWFBPassLevel % magicWeaponID)
         #老号已激活的魔族法宝没有关卡属性,直接设置满关卡
@@ -564,6 +574,8 @@
                 PlayerControl.CalcAttrDict_Type(effID, value, allAttrList2)
             elif treasureType == 3:
                 PlayerControl.CalcAttrDict_Type(effID, value, allAttrList3)
+            elif treasureType == 4:
+                PlayerControl.CalcAttrDict_Type(effID, value, allAttrList4)
             else:
                 GameWorld.ErrLog("未知法宝属性, magicWeaponID=%s,treasureType=%s,effID=%s,value=%s" 
                                  % (magicWeaponID, treasureType, effID, value), curPlayer.GetPlayerID())
@@ -571,6 +583,7 @@
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon1, allAttrList1)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon2, allAttrList2)
     PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon3, allAttrList3)
+    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_MagicWeapon4, allAttrList4)
     #技能解锁战力
     nextSkillDict = GetPotentialsSkillInfo(curPlayer)
     for skillID, info in nextSkillDict.items():
@@ -1089,6 +1102,33 @@
     GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_MagicWeaponIsClick, mwID % 100, state, True, [mwID / 100])
     return
 
+#// A5 1D 法宝佩戴 #tagCMWearMagicWeapon
+#
+#struct    tagCMWearMagicWeapon
+#
+#{
+#    tagHead        Head;
+#    DWORD        MWID;    //法宝ID
+#    BYTE        State;        //0-卸下 1-佩戴
+#};
+def OnWearMagicWeapon(index, clientData, tick):
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    mwID = clientData.MWID
+    if not GetIsActiveMagicWeapon(curPlayer, mwID):
+        return
+    
+    SetMagicWeaponWearState(curPlayer, mwID, clientData.State)
+    Sycn_MagicWeaponLV(curPlayer, mwID)
+    return
+
+def GetIsWearMagicWeapon(curPlayer, mwID):
+    #获取法宝是否佩戴
+    return GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_MagicWeaponIsClick, mwID % 100, True, [mwID / 100])
+
+def SetMagicWeaponWearState(curPlayer, mwID, state):
+    #设置法宝是否佩戴
+    GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_MagicWeaponIsClick, mwID % 100, state, True, [mwID / 100])
+    return
 
 #// A5 12 激活法宝之魂 #tagCMActiveMWSoul
 #

--
Gitblit v1.8.0