From 43ec61799c5cc015c49ca6d0ace4b356f50a95af Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 16 五月 2019 15:40:25 +0800
Subject: [PATCH] 6805 【后端】【2.0】副本前端化(增加可否进入自定义场景通用判断,增加回包,木桩怪上限调整为10个)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 deletions(-)

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 c1d8bd3..1b90e7e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -144,9 +144,9 @@
     curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrActivatyNotify, ChConfig.Def_AttrActivatyNotify_Equip)
     
     #先刷装备BUFF 再计算属性
-    if changeItemEquipPlace == ShareDefine.retWing:
-        PlayerWing.CalcWingAttr(curPlayer)
-    else:
+    if changeItemEquipPlace in ChConfig.EquipPlace_LingQi:
+        RefreshPlayerLingQiEquipAttr(curPlayer)
+    elif itemClassLV:
         RefreshPlayerEquipAttribute(curPlayer, itemClassLV)
     
     #刷新所有属性
@@ -158,7 +158,6 @@
     return True
 
 
-    
 ## 刷新装备对人物属性的改变
 #  @param self 类实例
 #  @return 返回值无意义
@@ -516,9 +515,9 @@
         return
     
     #先刷装备BUFF 再计算属性
-    if equipPlace == ShareDefine.retWing:
-        PlayerWing.CalcWingAttr(curPlayer)
-    else:
+    if equipPlace in ChConfig.EquipPlace_LingQi:
+        RefreshPlayerLingQiEquipAttr(curPlayer)
+    elif itemClassLV:
         RefreshPlayerEquipAttribute(curPlayer, itemClassLV)
     
     #刷新所有属性
@@ -574,6 +573,45 @@
     
     return
 
+def RefreshPlayerLingQiEquipAttr(curPlayer):
+    ''' 刷新玩家灵器装备属性
+    '''
+    
+    classLV = 0 # 灵器阶默认为0
+    allAttrList = [{} for _ in range(4)]
+    equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
+    
+    for equipPlace in ChConfig.EquipPlace_LingQi:
+        
+        if equipPlace == ShareDefine.retWing:
+            PlayerWing.CalcWingAttr(curPlayer)
+            continue
+        
+        ipyData = IpyGameDataPY.GetIpyGameData('EquipPlaceIndexMap', classLV, equipPlace)
+        if not ipyData:
+            continue
+        
+        equipIndex = ipyData.GetGridIndex()
+        curEquip = equipPack.GetAt(equipIndex)
+        if not curEquip or curEquip.IsEmpty():
+            continue
+        
+        if not ItemCommon.CheckItemCanUseByExpireTime(curEquip):
+            # 过期
+            continue
+        
+        #基础属性效果
+        for effIndex in xrange(curEquip.GetEffectCount()):
+            curEff = curEquip.GetEffectByIndex(effIndex)
+            effID = curEff.GetEffectID()
+            if effID == 0:
+                break
+            PlayerControl.CalcAttrDict_Type(effID, curEff.GetEffectValue(0), allAttrList)
+            
+    #GameWorld.DebugLog("灵器属性: %s" % allAttrList)
+    PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_LingQi, allAttrList)
+    return
+
 def __CalcEquips_Effect(curPlayer, classLV):
     ''' 境界装备系统属性
     1. 装备模块,每个境界阶独立,每个境界战力独立模块计算

--
Gitblit v1.8.0