From 95d8352b83382782d6dfca638fc779ea7887eb96 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 31 一月 2019 09:57:38 +0800
Subject: [PATCH] 6105 【后端】【1.5.200】诛仙宝石开发(屏蔽满级获得经验日志输出)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBoss.py | 28 ++++++++++++++++++++++------
1 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBoss.py
index af21a5e..f2dec64 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossBoss.py
@@ -20,6 +20,7 @@
import IpyGameDataPY
import ChPyNetSendPack
import CrossRealmPlayer
+import DataRecordPack
import PlayerControl
import NetPackCommon
import CrossRealmMsg
@@ -116,7 +117,8 @@
refreshTime = GetRecRefreshTime(bossRecData)
killedRecord = GetRecKilledRecord(bossRecData)
isAlive = __GetCrossBossIsAlive(zoneID, bossID)
- bossInfoList.append([zoneID, bossID, killedTime, refreshTime, killedRecord, isAlive])
+ killerExInfo = [] # 重连成功的信息同步不发送击杀者信息
+ bossInfoList.append([zoneID, bossID, killedTime, refreshTime, killedRecord, isAlive, killerExInfo])
if bossInfoList:
bossInfoDict = {"BossInfoType":"InitOK", "BossInfoList":bossInfoList}
@@ -124,12 +126,12 @@
return
-def DoCrossBossOnKilled(bossID, killPlayerName, realMapID, dataMapID, copyMapID):
+def DoCrossBossOnKilled(bossID, killPlayerName, realMapID, dataMapID, copyMapID, killerIDList):
## 跨服boss被杀
zoneIpyData = GetCrossBossZoneIpyData(realMapID, dataMapID, copyMapID)
zoneID = 0 if not zoneIpyData else zoneIpyData.GetZoneID()
- GameWorld.Log("击杀跨服boss: zoneID=%s,bossID=%s,realMapID=%s,dataMapID=%s,copyMapID=%s"
- % (zoneID, bossID, realMapID, dataMapID, copyMapID))
+ GameWorld.Log("击杀跨服boss: zoneID=%s,bossID=%s,realMapID=%s,dataMapID=%s,copyMapID=%s,killerIDList=%s"
+ % (zoneID, bossID, realMapID, dataMapID, copyMapID, killerIDList))
if not zoneID:
return
@@ -146,7 +148,8 @@
# 广播子服跨服boss被击杀
serverGroupIDList = zoneIpyData.GetServerGroupIDList()
killedRecord = GetRecKilledRecord(bossRecData)
- bossInfoList = [[zoneID, bossID, killedTime, refreshTime, killedRecord, isAlive]]
+ killerExInfo = [killerIDList, dataMapID]
+ bossInfoList = [[zoneID, bossID, killedTime, refreshTime, killedRecord, isAlive, killerExInfo]]
bossInfoDict = {"BossInfoType":"OnKilled", "BossInfoList":bossInfoList}
CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_CrossBossInfo, bossInfoDict, serverGroupIDList)
return
@@ -304,7 +307,7 @@
syncBOSSIDList = []
for bossInfo in bossInfoList:
- zoneID, bossID, killedTime, refreshTime, killedRecord, isAlive = bossInfo
+ zoneID, bossID, killedTime, refreshTime, killedRecord, isAlive, killerExInfo = bossInfo
bossRecData = __GetCrossBossRecData(zoneID, bossID)
SetRecKilledTime(bossRecData, killedTime)
SetRecRefreshTime(bossRecData, refreshTime)
@@ -312,6 +315,19 @@
__SetCrossBossIsAlive(zoneID, bossID, isAlive)
syncBOSSIDList.append(bossID)
+ if not killerExInfo:
+ continue
+
+ killerIDList, dataMapID = killerExInfo
+ for playerID in killerIDList:
+ killer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
+ if not killer:
+ GameWorld.ErrLog("击杀跨服boss时主服玩家不在线, playerID=%s,dataMapID=%s,bossID=%s" % (playerID, dataMapID, bossID))
+ DataRecordPack.SendEventPack("CrossBoss_Error", {"PlayerID":playerID, "Error":"MainServerOffline"})
+ continue
+ msgInfo = str([dataMapID, bossID])
+ killer.MapServer_QueryPlayerResult(0, 0, "CrossKillBoss", msgInfo, len(msgInfo))
+
Sync_CrossBossInfo(None, syncBOSSIDList)
return
--
Gitblit v1.8.0