hxp
2025-10-21 ec19547ca0985de3f1c4045411ee6c171204e535
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/CrossPlayerData.py
@@ -21,7 +21,6 @@
import base64
import ChConfig
import PyGameData
import PlayerDienstgrad
import IpyGameDataPY
import PlayerHorse
import PlayerPet
@@ -211,7 +210,7 @@
        return
    
    # 不需要处理的跨服地图
    if crossMapID in [ChConfig.Def_FBMapID_CrossRealmPK]:
    if crossMapID in []:
        return
    
    if not IpyGameDataPY.GetFuncCfg("CrossSyncPlayerData", 1):
@@ -225,7 +224,6 @@
    PyGameData.g_crossRegPlayerAttrDict.pop(playerID, None)
    PyGameData.g_crossSyncTickDict.pop(playerID, None)
    PyGameData.g_crossPlayerDictChangeInfo.pop(playerID, None)
    PyGameData.g_crossPlayerDienstgradChangeInfo.pop(playerID, None)
    PyGameData.g_crossPlayerItemsChangeInfo.pop(playerID, None)
    PyGameData.g_crossPlayerSkillsChangeInfo.pop(playerID, None)
    GameWorld.DebugLog("清除同步跨服数据的临时缓存", playerID)
@@ -296,16 +294,6 @@
#    curItem2 = curPack.GetAt(2)
#    curItem2.AssignItem(curSingleItem)
#===============================================================================
def OnDienstgradChange(curPlayer, dienstgradID, state):
    ## 称号变更
    if not IsNeedProcessCrossPlayer(curPlayer):
        return
    playerID = curPlayer.GetPlayerID()
    dienstgradStateDict = PyGameData.g_crossPlayerDienstgradChangeInfo.get(playerID, {})
    dienstgradStateDict[dienstgradID] = state
    PyGameData.g_crossPlayerDienstgradChangeInfo[playerID] = dienstgradStateDict
    return
def OnPlayerFightPowerChange(curPlayer):
    ## 玩家战力变更时
@@ -347,7 +335,6 @@
        data = CommFunc.WriteBYTE(data, MergeData_Player)
        data = __WriteSyncPlayerAttrData(curPlayer, data) # 玩家属性
        data = __WriteSyncPlayerDictData(curPlayer, data) # 字典
        data = __WriteSyncPlayerDienstgradData(curPlayer, data) # 称号
        data = __WriteSyncPlayerItems(curPlayer, data)# 物品
        data = __WriteSyncPlayerSkills(curPlayer, data)# 技能
        
@@ -371,7 +358,6 @@
    
    pos = __ReadSyncPlayerAttrData(curPlayer, pdata, pos) # 玩家属性
    pos = __ReadSyncPlayerDictData(curPlayer, pdata, pos) # 字典
    pos = __ReadSyncPlayerDienstgradData(curPlayer, pdata, pos) # 称号
    pos = __ReadSyncPlayerItems(curPlayer, pdata, pos)  # 物品
    pos = __ReadSyncPlayerSkills(curPlayer, pdata, pos)# 技能
    
@@ -461,39 +447,6 @@
        PlayerControl.NomalDictSetProperty(curPlayer, key, value, dType)
        GameWorld.DebugLog("    key=%s, value=%s, dType=%s" % (key, value, dType))
        
    return pos
def __WriteSyncPlayerDienstgradData(curPlayer, data):
    ## 写入需要同步的玩家称号
    playerID = curPlayer.GetPlayerID()
    if playerID not in PyGameData.g_crossPlayerDienstgradChangeInfo:
        return CommFunc.WriteBYTE(data, 0)
    changeDienstgradDict = PyGameData.g_crossPlayerDienstgradChangeInfo.pop(playerID)
    count = len(changeDienstgradDict)
    GameWorld.DebugLog("变更的玩家称号个数: %s" % count)
    data = CommFunc.WriteBYTE(data, count)
    for dienstgradID, state in changeDienstgradDict.items():
        data = CommFunc.WriteDWORD(data, dienstgradID)
        data = CommFunc.WriteBYTE(data, state)
        GameWorld.DebugLog("    dienstgradID=%s, state=%s" % (dienstgradID, state))
    return data
def __ReadSyncPlayerDienstgradData(curPlayer, pdata, pos):
    ## 读取同步的玩家称号
    pdata = base64.b64decode(pdata)
    count, pos = CommFunc.ReadBYTE(pdata, pos)
    GameWorld.DebugLog("变更的玩家称号个数: %s" % count)
    for _ in xrange(count):
        dienstgradID, pos = CommFunc.ReadDWORD(pdata, pos)
        state, pos = CommFunc.ReadBYTE(pdata, pos)
        GameWorld.DebugLog("    dienstgradID=%s, state=%s" % (dienstgradID, state))
        if state:
            PlayerDienstgrad.PlayerAddDienstgrad(curPlayer, dienstgradID, isRefreshAttr=False)
        else:
            PlayerDienstgrad.PlayerDelDienstgrad(curPlayer, dienstgradID, False)
    return pos
def __WriteSyncPlayerItems(curPlayer, data):