From bf0562bdddb65952b4e59c4911fa26c6996b748d Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 22 一月 2019 14:40:10 +0800 Subject: [PATCH] 5919 【后端】【1.5.100】诛仙塔功能开发(排行榜修改) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py | 32 ++++++++++++++++++++++++++------ 1 files changed, 26 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py index 5b41f03..09ce446 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_ElderBattlefield.py @@ -35,6 +35,7 @@ import SkillShell import EventReport import SkillCommon +import PlayerWeekParty import random import time @@ -69,8 +70,10 @@ FB_Step_Over, # 副本结束 ) = range(3) -def OnLogin(curPlayer): - OnElderBattlefieldFBResult(curPlayer, True) +def OnFBPlayerOnLogin(curPlayer): + mapID = GameWorld.GetMap().GetMapID() + if mapID != ChConfig.Def_FBMapID_ElderBattlefield: + OnElderBattlefieldFBResult(curPlayer, True) return def OnElderBattlefieldStateChange(state, tick): @@ -156,6 +159,10 @@ return curPlayer.Sync_TimeTick(IPY_GameWorld.tttTowerTake, 0, closeFB_RemainTick, True) + if not FBCommon.GetHadSetFBPropertyMark(): + lineID = GameWorld.GetGameWorld().GetPropertyID() - 1 + FBCommon.SetFBPropertyMark(lineID) + if not FBCommon.GetHadDelTicket(curPlayer): FBCommon.SetHadDelTicket(curPlayer) if FBCommon.AddEnterFBCount(curPlayer, ChConfig.Def_FBMapID_ElderBattlefield): @@ -164,6 +171,7 @@ GameWorld.GetGameWorld().SetGameWorldDict(FBPlayerDict_TotalExp % playerID, 0) GameWorld.GetGameWorld().SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, 0) EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_ElderBattlefield, 0, ChConfig.CME_Log_Start) + PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_ElderBattlefield, 1) else: rebornBuffLV = GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBPlayerDict_RebornBuffLV) __DoAddRebornBuff(curPlayer, rebornBuffLV, tick) @@ -202,6 +210,7 @@ skillBuffID = IpyGameDataPY.GetFuncCfg('ElderBattlefieldRobot', 3) BuffSkill.DelBuffBySkillID(curPlayer, skillBuffID, tick) + FBCommon.UpdFBLineNPCStrengthenLV(curPlayer.GetPlayerID(), True) return @@ -222,6 +231,7 @@ gameFB = GameWorld.GetGameFB() gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_ContKillCntEx, 0) gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_EnemyID, 0) + gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_RebornBuffLV, 0) return @@ -306,6 +316,10 @@ lineID = GameWorld.GetGameWorld().GetPropertyID() - 1 if lineID not in robotCfgDict: return + robotMaxLV = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenMaxLV) + if GameWorld.GetMapCopyPlayerManager().GetPlayerCount() <= 0 or not robotMaxLV: + #GameWorld.DebugLog("没玩家,不刷机器人! ") + return rmarkList = IpyGameDataPY.GetFuncEvalCfg('ElderBattlefieldRobot', 5) curNPCCnt = 0 robotCntDict = {} @@ -370,11 +384,14 @@ def OnElderBattlefieldFBResult(curPlayer, isLogin=False): # 玩家处理上古战场结算信息 + curStage = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ElderBattlefieldStage, 0) + if not curStage: + return GameWorld.DebugLog(' 玩家处理上古战场结算信息 , isLogin=%s' % isLogin, curPlayer.GetPlayerID()) lineID = 0 #GameWorld.GetGameWorld().GetPropertyID() -1 fbRewardDict = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_ElderBattlefield, lineID) - curStage = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ElderBattlefieldStage, 0) + itemList = fbRewardDict.get(curStage, []) succIDList = PlayerSuccess.GetCanGetAwardSuccByType(curPlayer, [ShareDefine.SuccType_ElderBattlefieldKill, ShareDefine.SuccType_ElderBattlefieldConKill]) succAwardDict = PlayerSuccess.GiveSuccAward(curPlayer, succIDList, False) @@ -389,7 +406,7 @@ emptySpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace) mapID = GameWorld.GetMap().GetMapID() if mapID != ChConfig.Def_FBMapID_ElderBattlefield or isLogin or emptySpace < needSpace: - PlayerControl.SendMailByKey("ElderBattlefieldMail", [curPlayer.GetPlayerID()], rewardItemList) + PlayerControl.SendMailByKey("ElderBattlefieldMail" if mapID == ChConfig.Def_FBMapID_ElderBattlefield else 'ElderBattlefieldMail2', [curPlayer.GetPlayerID()], rewardItemList) else: for itemID, itemCnt, isBind in rewardItemList: ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem], event=["ElderBattlefield", False, {}]) @@ -462,6 +479,7 @@ # @remarks 用于通知阵营比分条 def DoFBHelp(curPlayer, tick): gameWorld = GameWorld.GetGameWorld() + lineID = gameWorld.GetLineID() playerID = curPlayer.GetPlayerID() score = gameWorld.GetGameWorldDictByKey(FBPlayerDict_Score % playerID) stageScoreList = IpyGameDataPY.GetFuncEvalCfg('ElderBattlefieldCfg', 4) @@ -481,6 +499,7 @@ helpDict['topPlayerID'] = topPlayerID #helpDict[FBCommon.Help_lineID] = GameWorld.GetGameWorld().GetLineID() helpDict['enemyID'] = GameWorld.GetGameFB().GetPlayerGameFBDictByKey(playerID, FBPlayerDict_EnemyID) + helpDict[FBCommon.Help_robotJob] = PyGameData.g_fbRobotJobDict.get(lineID, {}) GameWorld.DebugLog("DoFBHelp %s" % helpDict, playerID) FBCommon.Notify_FBHelp(curPlayer, helpDict) return @@ -499,6 +518,7 @@ def DoFBOnKill_Player(atkobj, defender, tick): gameFB = GameWorld.GetGameFB() atkIsPlayer = atkobj.GetGameObjType() == IPY_GameWorld.gotPlayer + baseCnt = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 2) addScore = 0 if atkIsPlayer: playerID = atkobj.GetPlayerID() @@ -514,7 +534,7 @@ gameFB.SetPlayerGameFBDict(playerID, FBPlayerDict_ContKillCntEx, contKillCntEx) #连杀广播 ckillSysList = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 1) - baseCnt = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 2) + perCnt = IpyGameDataPY.GetFuncCfg('ElderBattlefieldSys', 3) if contKillCntEx >= baseCnt and contKillCntEx % perCnt == 0: sysIndex = min((contKillCntEx - baseCnt) / perCnt, len(ckillSysList) - 1) @@ -538,7 +558,7 @@ if atkIsPlayer: PlayerControl.FBNotify('AncientBattlefield_7', [atkobj.GetName(), defender.GetName(), defContKillCntEx]) else: - PlayerControl.FBNotify('AncientBattlefield_robot', [atkobj.GetNPCID(), atkobj.GetObjID(), defender.GetName(), defContKillCntEx]) + PlayerControl.FBNotify('AncientBattlefield_robot', [atkobj.GetNPCID(), atkobj.GetID(), defender.GetName(), defContKillCntEx]) gameFB.SetPlayerGameFBDict(tagPlayerID, FBPlayerDict_ContKillCntEx, 0) #记录仇人 if atkIsPlayer: -- Gitblit v1.8.0