From 03f617028885a2e8840500bb520f3418d54eb791 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 30 一月 2019 18:09:20 +0800
Subject: [PATCH] 2968 【1.6】本服打boss,中途传送到跨服,未清空本服归属
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
index e94851e..bffd6cb 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerViewCache.py
@@ -26,6 +26,8 @@
import ReadChConfig
import PlayerFamily
import IPY_GameServer
+import PlayerFBHelpBattle
+import IpyGameDataPY
import ShareDefine
import ChConfig
@@ -81,6 +83,14 @@
curCache.SetPlusDataNoSave(PlusData,len(PlusData))
curCache.SetNeedSaveDB(isSaveDB) #设置需要保存到数据库
+ # 同步更新助战信息
+ if PlayerFBHelpBattle.IsInHelpBattleCheckInList(PlayerID):
+ PropDataDict = eval(PropData)
+ fightPower = PropDataDict.get("FightPower", 0)
+ familyID = PropDataDict.get("FamilyID", 0)
+ playerName = PropDataDict.get("Name", "")
+ PlayerFBHelpBattle.UpdateCheckInPlayerInfo(PlayerID, fightPower, familyID, playerName)
+
#暂时关闭
#===========================================================================
# FamilyIDKey = "FamilyID"
@@ -109,7 +119,10 @@
# @param PlayerID, PlayerLV
# @return None
def IsNeedSaveLogoutPlayer(PlayerID, PlayerLV):
- SaveDBLimitLV, NeedCheckBillBoardType, HighLadderLimitOrder = ReadChConfig.GetEvalChConfig("CacheSaveLimit")
+ if PlayerFBHelpBattle.IsInHelpBattleCheckInList(PlayerID):
+ return True
+
+ SaveDBLimitLV = IpyGameDataPY.GetFuncCfg("PlayerViewCache", 1)
#校验玩家等级
if PlayerLV < SaveDBLimitLV:
return False
@@ -118,7 +131,9 @@
# 上榜用户
def IsNeedSaveViewCacheAllInfo(PlayerID):
- SaveDBLimitLV, NeedCheckBillBoardType, HighLadderLimitOrder = ReadChConfig.GetEvalChConfig("CacheSaveLimit")
+ if PlayerFBHelpBattle.IsInHelpBattleCheckInList(PlayerID):
+ return True
+ NeedCheckBillBoardType = IpyGameDataPY.GetFuncEvalCfg("PlayerViewCache", 2)
#校验玩家是否上排行榜
billboardMgr = GameWorld.GetBillboard()
for BillBoardType in NeedCheckBillBoardType:
@@ -259,6 +274,7 @@
answerPack.LV = 1
answerPack.RealmLV = 1
answerPack.OnlineType = ChConfig.Def_Offline
+ answerPack.ServerGroupID = 0
else:
cacheDict = eval(curCache.GetPropData())
@@ -268,6 +284,7 @@
answerPack.LV = cacheDict["LV"]
answerPack.RealmLV = cacheDict["RealmLV"]
answerPack.OnlineType = ChConfig.Def_Offline
+ answerPack.ServerGroupID = cacheDict.get("ServerGroupID", 0)
else:
answerPack.PlayerID = clientPack.PlayerID
@@ -277,19 +294,20 @@
answerPack.RealmLV = tagPlayer.GetOfficialRank()
answerPack.OnlineType = ChConfig.Def_Online
answerPack.IsInTeam = tagPlayer.GetTeamID() > 0
+ answerPack.ServerGroupID = PlayerControl.GetPlayerServerGroupID(tagPlayer)
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
NetPackCommon.SendFakePack(curPlayer, answerPack)
return
-def OnPlayerLeaveFamily(playerID):
- GameWorld.DebugLog("ViewCache->OnPlayerLeaveFamily", playerID)
+def OnPlayerFamilyChange(playerID, familyID, familyName):
+ GameWorld.DebugLog("ViewCache->OnPlayerFamilyChange", playerID)
curCache = ViewCacheMgr.FindCache(playerID)
if not curCache:
return
PropData = eval(curCache.GetPropData())
- PropData["FamilyID"] = 0
- PropData["FamilyName"] = ""
+ PropData["FamilyID"] = familyID
+ PropData["FamilyName"] = familyName
playerLV = PropData["LV"]
PropData = json.dumps(PropData, ensure_ascii=False)
--
Gitblit v1.8.0