From 0c27822ef5e6c67782ed143a4ff03ecfbdfda1fb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 23 五月 2022 16:52:58 +0800
Subject: [PATCH] 9415 【BT】【后端】古神战场(副本内功能完整版本)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py
index 79a64da..f076dba 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossBattlefield.py
@@ -4,12 +4,12 @@
 #
 ##@package Player.PlayerCrossBattlefield
 #
-# @todo:跨服战场
+# @todo:跨服战场/古神战场
 # @author hxp
 # @date 2022-01-06
 # @version 1.0
 #
-# 详细描述: 跨服战场
+# 详细描述: 跨服战场/古神战场
 #
 #-------------------------------------------------------------------------------
 #"""Version = 2022-01-06 20:30"""
@@ -27,6 +27,7 @@
 import NetPackCommon
 import ItemControler
 import PlayerActivity
+import PlayerSuccess
 
 
 def DoPlayerLogin(curPlayer):
@@ -192,27 +193,37 @@
     # 固定礼包
     buyAwardItemList = IpyGameDataPY.GetFuncEvalCfg("CrossBattlefieldBuyOpen", 3)
     ItemControler.GivePlayerItemOrMail(curPlayer, buyAwardItemList)
+    
+    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_CallOpen, 1)
     return
 
 def __DoBattlefieldOver(curPlayer, dataMsg):
     
     playerID = curPlayer.GetPlayerID()
-    overTime, highScoreToday, highScoreWeekTotal, enterCountWeek, isCallEnter = dataMsg
-            
+    overTime, \
+        isWinner, faction, rank, score, highScoreToday, highScoreWeekTotal, enterCountWeek, \
+        isCallOpen, isCalled, killCnt, ckillCntInfo, killBossCnt, killScoreKing, killGuardCnt, auraScore, superItemAwardCnt, \
+        factionBuffCollCnt, personBuffCollCnt, crystalCollCnt, wallCollCnt = dataMsg
+        
     isToday = GameWorld.CheckTimeIsSameServerDayEx(overTime)
     isSameWeek = GameWorld.CheckTimeIsSameWeek(overTime)
-    GameWorld.Log("跨服战场结算玩家结果: highScoreToday=%s,highScoreWeekTotal=%s,enterCountWeek=%s,isCallEnter=%s,overTime=%s,isToday=%s,isSameWeek=%s" 
-                  % (highScoreToday, highScoreWeekTotal, enterCountWeek, isCallEnter, GameWorld.ChangeTimeNumToStr(overTime), isToday, isSameWeek), playerID)
+    GameWorld.Log("跨服战场结算玩家结果: highScoreToday=%s,highScoreWeekTotal=%s,enterCountWeek=%s,overTime=%s,isToday=%s,isSameWeek=%s" 
+                  % (highScoreToday, highScoreWeekTotal, enterCountWeek, GameWorld.ChangeTimeNumToStr(overTime), isToday, isSameWeek), playerID)
+    GameWorld.Log("    isWinner=%s,faction=%s,rank=%s,score=%s,isCallOpen=%s,isCalled=%s" % (isWinner, faction, rank, score, isCallOpen, isCalled), playerID)
+    GameWorld.Log("    killCnt=%s,ckillCntInfo=%s,killBossCnt=%s,killScoreKing=%s,killGuardCnt=%s,auraScore=%s,superItemAwardCnt=%s" 
+                  % (killCnt, ckillCntInfo, killBossCnt, killScoreKing, killGuardCnt, auraScore, superItemAwardCnt), playerID)
+    GameWorld.Log("    factionBuffCollCnt=%s,personBuffCollCnt=%s,crystalCollCnt=%s,wallCollCnt=%s" 
+                  % (factionBuffCollCnt, personBuffCollCnt, crystalCollCnt, wallCollCnt), playerID)
     
     if isToday:
         addCnt = 1
-        # 非召集进入的需要增加日常次数
-        if not isCallEnter:
-            PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_CrossBattlefield, addCnt)
-        # 召集进入由于是免费进入,不许要增加日常次数,直接增加日常活跃
-        else:
+        # 召集进入由于是免费进入,不需要增加日常次数,直接增加日常活跃
+        if isCallOpen or isCalled:
             activityNum = PlayerActivity.GetActivityNum(PlayerActivity.RelatedType_1, ShareDefine.DailyActionID_CrossBattlefield)
             PlayerActivity.AddActivityFinishCnt(curPlayer, activityNum, None, addCnt)
+        # 非召集兑入进入的需要增加日常次数
+        else:
+            PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_CrossBattlefield, addCnt)
             
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Battlefield_HighScoreToday, highScoreToday)
         SyncCrossBattlefieldPlayerInfo(curPlayer)
@@ -221,6 +232,40 @@
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Battlefield_EnterCountWeek, enterCountWeek)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_Battlefield_HighScoreTotalWeek, highScoreWeekTotal)
         
+    # 成就
+    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_Join, 1)
+    if isCalled:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_Called, 1)
+    if isWinner:
+        if faction == ShareDefine.CampType_Justice:
+            PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_WinJ, 1)
+        elif faction == ShareDefine.CampType_Evil:
+            PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_WinE, 1)
+    if killCnt > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_KillCnt, killCnt)
+    for ckillCnt, addCnt in ckillCntInfo.items():
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_CKillCnt, addCnt, [ckillCnt])
+    if killBossCnt > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_KillBoss, killBossCnt)
+    if killScoreKing > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_KillScoreKing, killScoreKing)
+    if killGuardCnt > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_KillGuard, killGuardCnt)
+    if score > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_Score, score)
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_ScoreMore, 1, [score])
+    if auraScore > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_AuraScore, auraScore)
+    if superItemAwardCnt > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_SuperItem, superItemAwardCnt)
+    if factionBuffCollCnt > 0:    
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_FactionBuff, factionBuffCollCnt)
+    if personBuffCollCnt > 0:    
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_PersonBuff, personBuffCollCnt)
+    if crystalCollCnt > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_Crystal, crystalCollCnt)
+    if wallCollCnt > 0:
+        PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Battlefield_Wall, wallCollCnt)
     return
 
 def SyncCrossBattlefieldPlayerInfo(curPlayer):

--
Gitblit v1.8.0