using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using System;
|
|
|
|
public class CrossServerBaseManager : GameSystemManager<CrossServerBaseManager>
|
{
|
public Dictionary<int, CrossZoneInfo> crossZoneInfoDict = new Dictionary<int, CrossZoneInfo>();
|
public override void Init()
|
{
|
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitialize;
|
}
|
|
public override void Release()
|
{
|
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitialize;
|
}
|
|
void OnBeforePlayerDataInitialize()
|
{
|
crossZoneInfoDict.Clear();
|
}
|
|
public void UpdateSCCrossZoneInfo(HC010_tagSCCrossZoneInfo netPack)
|
{
|
crossZoneInfoDict[(int)netPack.MapID] = new CrossZoneInfo()
|
{
|
MapID = netPack.MapID,
|
ZoneID = netPack.ZoneID,
|
ServerIDList = netPack.ServerIDList,
|
CrossServerID = netPack.CrossServerID
|
};
|
|
}
|
|
// 没有数据代表不在跨服中,群英有个特殊约定zoneid等于0代表结算中
|
public bool IsOpenCrossServer(int mapID)
|
{
|
return crossZoneInfoDict.ContainsKey(mapID);
|
}
|
|
public CrossZoneInfo GetCrossZoneInfo(int mapID)
|
{
|
if (crossZoneInfoDict.ContainsKey(mapID))
|
{
|
return crossZoneInfoDict[mapID];
|
}
|
return null;
|
}
|
|
}
|
|
public class CrossZoneInfo
|
{
|
public uint MapID;
|
public uint ZoneID; // 所属分区,可能为0
|
public uint CrossServerID; // 所属跨服服务器ID
|
public uint[] ServerIDList; // 互通服务器ID列表,可能为空
|
}
|