hxp
2024-10-17 f51835257345c50c4d3e5e0ecda7455401fb76ad
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerViewCacheTube.py
@@ -46,6 +46,8 @@
    ##玩家下线同步
    UpdateGameServerPlayerCache(curPlayer, tick, True)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_EquipViewCacheState, 0)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PackDataSyncState, 0)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PackDataSyncFightPower, 0)
    return
def ProcessCache(curPlayer, tick):
@@ -59,10 +61,31 @@
    UpdateGameServerPlayerCache(curPlayer, tick, False)
    return
def GetSyncPlayerPackData(curPlayer, force=False):
    playerID = curPlayer.GetPlayerID()
    fightPower = curPlayer.GetFightPower()
    if not force:
        syncState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PackDataSyncState)
        if not syncState:
            GameWorld.DebugLog("不需要同步打包数据", playerID)
            return ""
        # 值判断求余部分即可
        syncFightPower = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PackDataSyncFightPower)
        if syncFightPower == fightPower:
            GameWorld.DebugLog("战力不变,不需要同步打包数据! syncFightPower=%s" % syncFightPower, playerID)
            return ""
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PackDataSyncFightPower, fightPower)
    packData = curPlayer.GetPackData()
    #GameWorld.DebugLog("packData=%s %s %s" % (type(packData), len(packData), packData), playerID)
    return packData
##更新玩家当前详细信息到GameServer
#  @param curPlayer, tick
#  @return None
def UpdateGameServerPlayerCache(curPlayer, tick, IsLogouting=False):
def UpdateGameServerPlayerCache(curPlayer, tick, IsLogouting=False, forcePackData=False, packMsg=None):
    if PlayerTJG.GetIsTJG(curPlayer):
        # 脱机不处理
        return
@@ -84,6 +107,12 @@
    for classLV, itemData in itemDataDict.items():
        setattr(sendPack, "ItemData%s" % classLV, itemData)
        setattr(sendPack, "ItemDataSize%s" % classLV, len(itemData))
    # 打包数据相关
    sendPack.PackDataSyncState = 11 if forcePackData else curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PackDataSyncState)
    sendPack.PackData = GetSyncPlayerPackData(curPlayer, forcePackData)
    sendPack.PackDataLen = len(sendPack.PackData)
    sendPack.PackMsg = str(packMsg) if packMsg else "{}"
    sendPack.PackMsgLen = len(sendPack.PackMsg)
    #GameWorld.DebugLog("同步缓存: %s" % sendPack.OutputString())
    NetPackCommon.SendPyPackToGameServer(sendPack)
    return