From 7c43f25db5f9a04b99892c1efc8f0647f767c20e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 十月 2018 15:03:02 +0800
Subject: [PATCH] 2149 boss被击杀无归属玩家(暂时添加击杀boss相关详细日志、掉落日志、拾取日志);

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
index d922bbe..7c94fdb 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/UseItem/ItemCommon.py
@@ -422,11 +422,14 @@
             attrValue = curItem.GetUserAttrByIndex(ShareDefine.Def_IudetLegendAttrValue, i)
             attrDict[attrID] = attrDict.get(attrID, 0) + attrValue
             
-    MinAtk = attrDict.get(ShareDefine.Def_Effect_MinAtk, 0)
-    MaxAtk = attrDict.get(ShareDefine.Def_Effect_MaxAtk, 0)
+    Atk = attrDict.get(ShareDefine.Def_Effect_Atk, 0)
+    MinAtk = attrDict.get(ShareDefine.Def_Effect_MinAtk, 0) + Atk
+    MaxAtk = attrDict.get(ShareDefine.Def_Effect_MaxAtk, 0) + Atk
     MaxHP = attrDict.get(ShareDefine.Def_Effect_MaxHP, 0)
     Def = attrDict.get(ShareDefine.Def_Effect_Def, 0)
     ArmorDefPer = attrDict.get(ShareDefine.Def_Effect_ArmorDefAddPer, 0)
+    IceAtk = attrDict.get(ShareDefine.Def_Effect_IceAtk, 0)
+    IceDef = attrDict.get(ShareDefine.Def_Effect_IceDef, 0)
     
     AtkPer = attrDict.get(ShareDefine.Def_Effect_AddAtkByPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetAtkPerC())
     DamagePer = attrDict.get(ShareDefine.Def_Effect_DamagePer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetDamagePerC())
@@ -449,6 +452,9 @@
     SuperHitReduce = attrDict.get(ShareDefine.Def_Effect_SuperHitReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSuperHitReduceC())
     SkillAtkRate = attrDict.get(ShareDefine.Def_Effect_SkillAtkRate, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateC())
     SpeedPer = attrDict.get(ShareDefine.Def_Effect_SpeedPer, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSpeedPerC())
+    SkillAtkRateReduce = attrDict.get(ShareDefine.Def_Effect_SkillAtkRateReduce, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetSkillAtkRateReduceC())
+    Hit = attrDict.get(ShareDefine.Def_Effect_Hit, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetHitC())
+    Miss = attrDict.get(ShareDefine.Def_Effect_Miss, 0) * (1 if not gsParamIpyData else gsParamIpyData.GetMissC())
     
     # 攻速不默认乘,仅作为参数提供策划使用
     AtkSpeed = attrDict.get(ShareDefine.Def_Effect_AtkSpeed, 0)
@@ -466,7 +472,11 @@
     OnlyFinalHurt = attrDict.get(ShareDefine.Def_Effect_OnlyFinalHurt, 0)
     PVPAtkBackHP = attrDict.get(ShareDefine.Def_Effect_PVPAtkBackHP, 0)  
     
-    value = eval(FormulaControl.GetCompileFormula("EquipGSFormula", IpyGameDataPY.GetFuncCfg("EquipGSFormula")))
+    if GetIsDogzEquip(curItem):
+        # 神兽装备用不同公式
+        value = eval(FormulaControl.GetCompileFormula("EquipGSFormula3", IpyGameDataPY.GetFuncCfg("EquipGSFormula", 3)))
+    else:
+        value = eval(FormulaControl.GetCompileFormula("EquipGSFormula", IpyGameDataPY.GetFuncCfg("EquipGSFormula")))
     return value
 
 #---------------------------------------------------------------------
@@ -1592,11 +1602,17 @@
 def DoLogicSwitchItemEx(curPlayer, srcBackpack, desBackPack, srcIndex, destIndex):
     
     #---物品检查---
-    srcItem = curPlayer.GetItemManager().GetPack(srcBackpack).GetAt(srcIndex)
+    srcPack = curPlayer.GetItemManager().GetPack(srcBackpack)
+    if srcIndex < 0 or srcIndex >= srcPack.GetCount():
+        return
+    srcItem = srcPack.GetAt(srcIndex)
     if not CheckItemCanUse(srcItem):
         return
     
-    destItem = curPlayer.GetItemManager().GetPack(desBackPack).GetAt(destIndex)
+    destPack = curPlayer.GetItemManager().GetPack(desBackPack)
+    if destIndex < 0 or destIndex >= destPack.GetCount():
+        return
+    destItem = destPack.GetAt(destIndex)
     #目标格子只验证锁定, 可以允许空位
     if destItem == None or destItem.GetIsLocked():
         return
@@ -1675,6 +1691,10 @@
 def GetIsEquip(curItem):
     return curItem.GetType() in ChConfig.Def_EquipItemType
 
+def GetIsDogzEquip(curItem):
+    ## 返回是否神兽装备
+    return curItem.GetType() in ChConfig.Def_DogzEquiipType
+
 ## 返回是否武器
 #  @param curItem 当前物品
 #  @return None

--
Gitblit v1.8.0