From 010db2152c26061cf4ac03a72fbd574196001f74 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 14 五月 2019 14:13:19 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 被动技能
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 48 +++++++++++++++++++++++++++++-------------------
1 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index b83b6f9..cff77fa 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
@@ -48,10 +48,9 @@
import PlayerGeTui
import IPY_GameServer
import CrossBoss
+import PlayerFB
import time
-import json
-
'''
ShareDefine.Def_UniversalGameRecType_BossInfo
@@ -104,12 +103,12 @@
if bossID <= 0:
return
- bossID, killPlayerName, hurtValue, isNotify, realMapID, dataMapID, copyMapID, killerIDList = msgList
+ bossID, killPlayerName, hurtValue, isNotify, mapID, realMapID, copyMapID, killerIDList = msgList
+ mapID = PlayerFB.GetRecordMapID(mapID)
if GameWorld.IsCrossServer():
- CrossBoss.DoCrossBossOnKilled(bossID, killPlayerName, realMapID, dataMapID, copyMapID, killerIDList)
+ CrossBoss.DoCrossBossOnKilled(bossID, killPlayerName, mapID, realMapID, copyMapID, killerIDList)
return
- mapID = dataMapID
isAddKillCnt = False
isMapNeedShunt = IsMapNeedBossShunt(mapID)
@@ -160,13 +159,14 @@
## 世界boss状态变更
if len(msgList) <= 0:
return
-
- bossID, isAlive, dataMapID, realMapID, copyMapID = msgList
+
+ bossID, isAlive, mapID, realMapID, copyMapID = msgList
+ mapID = PlayerFB.GetRecordMapID(mapID)
if GameWorld.IsCrossServer():
- CrossBoss.DoCrossBossStateChange(bossID, isAlive, dataMapID, realMapID, copyMapID)
+ CrossBoss.DoCrossBossStateChange(bossID, isAlive, mapID, realMapID, copyMapID)
return
- mapID, lineID = dataMapID, copyMapID
+ lineID = copyMapID
GameWorld.Log("世界boss状态变更: mapID=%s,lineID=%s,bossID=%s,state=%s,tick=%s" % (mapID, lineID, bossID, isAlive, tick))
if bossID <= 0:
@@ -323,7 +323,19 @@
def OnQueryBossInfo(index, clientData, tick):
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
bossIDList = clientData.BossIDList
- Sync_BossInfo(curPlayer, bossIDList)
+ if not bossIDList:
+ Sync_BossInfo(curPlayer)
+ CrossBoss.Sync_CrossBossInfo(curPlayer)
+ return
+ bossID = bossIDList[0]
+ ipyData = IpyGameDataPY.GetIpyGameData('BOSSInfo', bossID)
+ if not ipyData:
+ return
+ mapID = ipyData.GetMapID()
+ if mapID in ChConfig.Def_CrossMapIDList:
+ CrossBoss.Sync_CrossBossInfo(curPlayer, bossIDList)
+ else:
+ Sync_BossInfo(curPlayer, bossIDList)
return
@@ -484,9 +496,8 @@
isAlive = __GetIsAlive(bossID)
if not isAlive:
continue
- mapID = ipyData.GetMapID()
- if mapID not in ChConfig.WorldBossFBMapIDList:
- GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn % bossID, 1)
+ #if mapID not in ChConfig.WorldBossFBMapIDList:
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_GameWorldBossReborn % bossID, 1)
return
## 玩家登录通知
@@ -550,7 +561,7 @@
# 同步到玩家对应子服
if not serverGroupID:
return
- zoneIpyData = CrossRealmPlayer.GetCrossCommZoneIpyDataByServerGroupID(serverGroupID)
+ zoneIpyData = CrossRealmPlayer.GetCrossZoneIpyDataByServerGroupID(mapID, serverGroupID)
if not zoneIpyData:
return
serverGroupIDList = zoneIpyData.GetServerGroupIDList()
@@ -719,10 +730,9 @@
# RecordData改json记录 bossid存为字符串
def UpdateBossAttention(self, playerid, bossid, isAdd):
- bossid = str(bossid)
if playerid in self.bossAttentionDict:
bossAttentionData = self.bossAttentionDict[playerid]
- recordDict = json.loads(bossAttentionData.RecordData)
+ recordDict = eval(bossAttentionData.RecordData)
if isAdd:
recordDict[bossid] = isAdd
else:
@@ -733,7 +743,7 @@
self.bossAttentionDict.pop(playerid)
else:
- bossAttentionData.RecordData = json.dumps(recordDict, ensure_ascii=False)
+ bossAttentionData.RecordData = str(recordDict)
bossAttentionData.DataLen = len(bossAttentionData.RecordData)
else:
if not isAdd:
@@ -741,7 +751,7 @@
bossAttention = PyGameDataStruct.tagDBPyBossAttention()
bossAttention.clear()
bossAttention.PlayerID = playerid
- bossAttention.RecordData = json.dumps({bossid:isAdd}, ensure_ascii=False)
+ bossAttention.RecordData = str({bossid:isAdd})
bossAttention.DataLen = len(bossAttention.RecordData)
self.bossAttentionDict[playerid] = bossAttention
@@ -755,7 +765,7 @@
attentionData = self.bossAttentionDict.get(curPlayer.GetPlayerID())
if not attentionData:
return
- bttentionDict = json.loads(attentionData.RecordData)
+ bttentionDict = eval(attentionData.RecordData)
packData = ChPyNetSendPack.tagGCBossAttentionInfo()
packData.BossList = []
for bossid, addState in bttentionDict.items():
--
Gitblit v1.8.0