From 65c6db4b2dfda4cd184cc5939ca6f923180c7f6d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 18 六月 2019 17:43:21 +0800
Subject: [PATCH] 7334 【后端】【2.0】封魔坛双倍掉落规则(去除第一名双倍奖励,增加第一名额外奖励规则;宝箱增加装备筛选规则)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
index 3a9d6bf..648b076 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_SealDemon.py
@@ -457,6 +457,9 @@
 def GiveSealDemonAward(curPlayer, lineID, rank, isMail=False, isClientSend=False, dropItemMapInfo=[]):
     newbielineList = IpyGameDataPY.GetFuncEvalCfg('SealDemonNewbieLine')
     isNewbieLine = lineID in newbielineList
+    sealDemonIpyData = GetSealDemonIpyData(lineID)
+    if not sealDemonIpyData:
+        return {}
     prizeMultiple = 1
     addCnt = 1
     if isNewbieLine:
@@ -467,16 +470,18 @@
     elif isClientSend:
         return {}
     else:
-        prizeMultiple = 2 if rank == 1 else 1 # 第一名执行双倍掉落奖励,其他一次
+        #prizeMultiple = 2 if rank == 1 else 1 # 第一名执行双倍掉落奖励,其他一次
+        prizeMultiple = 1 # 去除第一名双倍逻辑,改为放在额外奖励产出
         isDouble = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FMTDouble)
         if isDouble:
             addCnt = 2
     equipList = []
     prizeItemDict ={}
     bossID = CurFBLineBOSSID(lineID)
+    extraItemList = sealDemonIpyData.GetOwnerAwardItemEx() * addCnt if rank == 1 else []
     #for _ in xrange(addCnt):
     jsonItemList, totalExp, totalMoney = NPCCommon.GiveKillNPCDropPrize(curPlayer, ChConfig.Def_FBMapID_SealDemon, {bossID:addCnt}, 
-                                                                        mailTypeKey="SealDemonMail", isMail=isMail, prizeMultiple=prizeMultiple, 
+                                                                        mailTypeKey="SealDemonMail", isMail=isMail, extraItemList=extraItemList, prizeMultiple=prizeMultiple, 
                                                                         dropItemMapInfo=dropItemMapInfo,isVirtualDrop=isClientSend)
     for jsonItem in jsonItemList:
         if 'UserData' in jsonItem:
@@ -576,7 +581,7 @@
     GameWorld.DebugLog('封魔坛 客户端副本发送结束mapID=%s,lineID=%s,dataList=%s' % (mapID,lineID,dataList), curPlayer.GetPlayerID())
     rank, hurt = dataList[:2]
     prizeItemList = GiveSealDemonAward(curPlayer, lineID, rank, False, True, [curPlayer.GetPosX(), curPlayer.GetPosY(), True])
-    if rank == 1:
+    if rank == 1 and prizeItemList:
         bossID = CurFBLineBOSSID(lineID)
         NPCCommon.GameServer_KillGameWorldBoss(bossID, curPlayer.GetName(), hurt, False)
 
@@ -607,6 +612,14 @@
     bossID = ipyData.GetNPCID()
     return bossID
 
+def GetSealDemonIpyData(lineID= -1):
+    #该分线刷的BOSSID
+    if lineID == -1:
+        lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
+    if lineID == -1:
+        return
+    return IpyGameDataPY.GetIpyGameDataByCondition('SealDemon', {'LineID':lineID})
+
 ##玩家死亡.
 # @param curPlayer:死亡的玩家 
 # @param tick 时间戳

--
Gitblit v1.8.0