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