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