From 14661edf6156dbc38b2fe4bdf0a15cceacc52897 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 31 五月 2019 16:04:19 +0800
Subject: [PATCH] 6805 【后端】【2.0】副本前端化(去除木桩非自定义场景召唤限制,最大同时存在木桩数改为3个,设置玩家血量改为玩家掉血)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py |   54 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
index 993d160..a28f8ec 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipStar.py
@@ -24,6 +24,7 @@
 import DataRecordPack
 import IpyGameDataPY
 import GameWorld
+import EventShell
 import ChConfig
 import ChEquip
 #-------------------------------------------------------------------------------------------
@@ -91,8 +92,12 @@
         playControl.RefreshPlayerAttrState()
   
         if updPartStar in IpyGameDataPY.GetFuncEvalCfg('EquipPartStarNotify'):
-            PlayerControl.WorldNotify(0, "StarLevelUp", [curPlayer.GetPlayerName(), curEquip.GetItemTypeID(), updPartStar])
-        #EventShell.EventRespons_EquipPlus(curPlayer)
+            itemID = curEquip.GetItemTypeID()
+            userData = curEquip.GetUserData()
+            guid = ItemCommon.CacheNotifyEquipDetailInfo(curPlayer, curEquip)
+            msgParamList = [curPlayer.GetPlayerName(), itemID, userData, guid, updPartStar]
+            PlayerControl.WorldNotify(0, "StarLevelUp", msgParamList)
+        EventShell.EventRespons_EquipStarUp(curPlayer)
     return
      
 
@@ -112,27 +117,34 @@
         return result
     costEquipPlaceList = ipyData.GetCostEquipPlace()
     costEquipColorList = ipyData.GetCostEquipColor()
+    isJobLimit = ipyData.GetIsJobLimit()
     suitTotalRate = ipyData.GetSuitTotalRate()
-    singleSuitRate = float(suitTotalRate) / costEquipCnt
-    curRate = 0  #成功概率
-    delEquipIndexList = []
     itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-    for i, index in enumerate(clientData.CostEquipIndex):
-        costEquip = itemPack.GetAt(index)
-        if not costEquip or costEquip.IsEmpty():
-            return result
-        equipID = costEquip.GetItemTypeID()
-        if equipID != clientData.CostEquipID[i]:
-            GameWorld.ErrLog('   装备升星 客户端发的物品索引与实际物品ID不对应  index=%s,eatItemID=%s,wantEatItemID=%s' % (index, equipID, clientData.CostEquipID[i]))
-            return result
-        if costEquip.GetItemColor() not in costEquipColorList:
-            return result
-        if costEquip.GetEquipPlace() not in costEquipPlaceList:
-            return result
-        delEquipIndexList.append(index)
-        isSuite = costEquip.GetSuiteID()
-        addRate = singleSuitRate if isSuite else singleSuitRate / 2
-        curRate += addRate
+    delEquipIndexList = []
+    if not costEquipCnt:
+        curRate = suitTotalRate / 2
+    else:
+        singleSuitRate = float(suitTotalRate) / costEquipCnt
+        curRate = 0 #成功概率
+        
+        for i, index in enumerate(clientData.CostEquipIndex):
+            costEquip = itemPack.GetAt(index)
+            if not costEquip or costEquip.IsEmpty():
+                return result
+            equipID = costEquip.GetItemTypeID()
+            if equipID != clientData.CostEquipID[i]:
+                GameWorld.ErrLog('   装备升星 客户端发的物品索引与实际物品ID不对应  index=%s,eatItemID=%s,wantEatItemID=%s' % (index, equipID, clientData.CostEquipID[i]))
+                return result
+            if costEquip.GetItemColor() not in costEquipColorList:
+                return result
+            if costEquip.GetEquipPlace() not in costEquipPlaceList:
+                return result
+            if isJobLimit and not ItemCommon.CheckJob(curPlayer, costEquip):
+                return result
+            delEquipIndexList.append(index)
+            isSuite = costEquip.GetSuiteID()
+            addRate = singleSuitRate if isSuite else singleSuitRate / 2
+            curRate += addRate
     if curRate <= 0:
         GameWorld.Log('装备升星异常 概率为0!!equipPackIndex=%s'%equipPackIndex)
         return result

--
Gitblit v1.8.0