From e815ab83417d55c5009681832463fba2833cfe0d Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 01 七月 2019 14:30:24 +0800
Subject: [PATCH] 7687 【后端】【主干】娲皇遗迹增加首次S级奖励

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py
index 780e9b1..2a47654 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_QueenRelics.py
@@ -503,20 +503,25 @@
     needSyncFBData = False
     overDict = {}
     if isPass:
+        overDict = {FBCommon.Over_costTime:costTime, FBCommon.Over_grade:grade}
         curGrade = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [dataMapID])
         if curGrade < grade:
             GameWorld.DebugLog("    更新过关评级: dataMapID=%s,lineID=%s,curGrade=%s,rewardGrade=%s" 
                                % (dataMapID, lineID, curGrade, grade), curPlayer.GetPlayerID())
             GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, grade, False, [dataMapID])
             needSyncFBData = True
-    
+            if grade >= maxGrade: #首次S级奖励
+                lineReward = FBCommon.GetFBLineReward(dataMapID, lineID)
+                firstrewardItemList = [[itemID,itemCnt,0] for itemID,itemCnt in lineReward[0]]
+                ItemControler.GivePlayerItemOrMail(curPlayer, firstrewardItemList, 'QueenRelicsMail', event=["QueenRelics", False, {}])
+                overDict[FBCommon.Over_firstPassItem] = FBCommon.GetJsonItemList(firstrewardItemList)
         
-        overDict = {FBCommon.Over_costTime:costTime, FBCommon.Over_grade:grade}
+            
         if not nextLineID:#没有下一层则给奖励!!
             rewardRet = __GivePlayerQueenRelicsReward(curPlayer, dataMapID, rewardLine - 1, lineID, grade, maxGrade, rewardRateList)
             if rewardRet:
-                startRewardLineID, totalSP, rewardItemList = rewardRet
-                overDict.update({FBCommon.Over_sp:totalSP, FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(rewardItemList), 
+                startRewardLineID, rewardItemList = rewardRet
+                overDict.update({FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(rewardItemList), 
                                  "startRewardLineID":startRewardLineID})
         if lineID+1 > curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBHistoryMaxLine % dataMapID):
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBHistoryMaxLine % dataMapID, lineID+1)
@@ -561,9 +566,7 @@
 def __GivePlayerQueenRelicsReward(curPlayer, dataMapID, rewardLineID, curLineID, passGrade, maxGrade, rewardRateList):
     ## 给玩家过关奖励
     
-    totalSP = 0
     totalItemCountDict = {}
-    
     # 一般是不可能,这里做个理论数值防范
     if rewardLineID >= curLineID:
         GameWorld.ErrLog("玩家重复结算娲皇过关奖励!rewardLineID=%s >= curLineID=%s" % (rewardLineID, curLineID), curPlayer.GetPlayerID())
@@ -577,8 +580,7 @@
         rewardGrade = maxGrade if giveLineID < curLineID else passGrade
                     
         lineReward = FBCommon.GetFBLineReward(dataMapID, giveLineID)
-        rewardSP = lineReward[0]
-        rewardItemList = lineReward[1:]
+        rewardItemList = lineReward[1]
         rewardRateIndex = 0 if rewardGrade >= maxGrade else maxGrade - rewardGrade
         if rewardRateIndex < 0 or rewardRateIndex >= len(rewardRateList):
             GameWorld.ErrLog("    评级对应奖励比例索引异常: giveLineID=%s,rewardGrade=%s,rewardRateList=%s,maxGrade=%s,rewardRateIndex=%s" 
@@ -587,29 +589,26 @@
         rewardRate = rewardRateList[rewardRateIndex]
         
         if rewardRate < 100:
-            addSP = int(round(rewardSP * rewardRate / 100.0))
             giveItemList = []
             for itemID, itemCount in rewardItemList:
                 rewardCount = max(1, int(round(itemCount * rewardRate / 100.0))) # 确保至少1个
                 giveItemList.append([itemID, rewardCount])
         else:
-            addSP = rewardSP
             giveItemList = rewardItemList
             
-        GameWorld.DebugLog("    给关卡奖励: giveLineID=%s,rewardGrade=%s,rewardRateList=%s,rewardRate=%s,addSP=%s,giveItemList=%s" 
-                           % (giveLineID, rewardGrade, rewardRateList, rewardRate, addSP, giveItemList), curPlayer.GetPlayerID())
+        GameWorld.DebugLog("    给关卡奖励: giveLineID=%s,rewardGrade=%s,rewardRateList=%s,rewardRate=%s,giveItemList=%s" 
+                           % (giveLineID, rewardGrade, rewardRateList, rewardRate, giveItemList), curPlayer.GetPlayerID())
         
-        totalSP += addSP
+
         for itemID, itemCount in giveItemList:
             totalItemCountDict[itemID] = totalItemCountDict.get(itemID, 0) + itemCount
+        
     
     # 给奖励
-    PlayerControl.PlayerAddZhenQi(curPlayer, totalSP, eventName="QueenRelics")
-    
     rewardItemList = []
     for itemID, itemCount in totalItemCountDict.items():
-        rewardItemList.append([itemID, itemCount, 1])
-        
+        rewardItemList.append([itemID, itemCount, 0])
+    
     needSpace = len(rewardItemList)
     emptySpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
     if emptySpace < needSpace:
@@ -618,8 +617,8 @@
         for itemID, itemCount, isBind in rewardItemList:
             ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem], event=["QueenRelics", False, {}])
             
-    GameWorld.DebugLog("    总奖励:totalSP=%s,rewardItemList=%s" % (totalSP, rewardItemList), curPlayer.GetPlayerID())
-    return startRewardLineID, totalSP, rewardItemList
+    GameWorld.DebugLog("    总奖励:rewardItemList=%s" % (rewardItemList), curPlayer.GetPlayerID())
+    return startRewardLineID, rewardItemList
 
 
 ## 副本行为

--
Gitblit v1.8.0