You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.2 KiB
95 lines
2.2 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
using Sog;
|
|
|
|
namespace World
|
|
{
|
|
public class PlayerTableOp : BaseReloadableService
|
|
{
|
|
private PlayerTable m_table;
|
|
|
|
public override int GetServiceType()
|
|
{
|
|
return WorldServiceType.PlayerTableOp;
|
|
}
|
|
|
|
//销毁的时候置空
|
|
public override void Dispose()
|
|
{
|
|
m_table = null;
|
|
}
|
|
|
|
|
|
public PlayerTableOp(PlayerTable playerTable)
|
|
{
|
|
m_table = playerTable;
|
|
}
|
|
|
|
|
|
public PlayerInfoWorld GetPlayerInfo(long uid)
|
|
{
|
|
//是否存在
|
|
if(m_table.m_playerTable.ContainsKey(uid))
|
|
{
|
|
return m_table.m_playerTable[uid];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
public bool AddPlayerInfo(PlayerInfoWorld playerInfo)
|
|
{
|
|
if (m_table.m_playerTable.ContainsKey(playerInfo.UserID) == false)
|
|
{
|
|
m_table.m_playerTable.Add(playerInfo.UserID, playerInfo);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public bool RemovePlayerInfo(long uid)
|
|
{
|
|
if (m_table.m_playerTable.ContainsKey(uid) == false)
|
|
{
|
|
TraceLog.Error("PlayerTableOp.RemovePlayerInfo uid {0} not in table", uid);
|
|
return false;
|
|
}
|
|
|
|
return m_table.m_playerTable.Remove(uid);
|
|
}
|
|
|
|
//获取有效的在线人数,在线的或离线不超过一定时间的(LoginDisconTime)
|
|
public int GetValidOnlinePlayerCount()
|
|
{
|
|
return m_table.m_playerTable.Count(p => p.Value.IsOnline == true) + m_table.m_playerUidList.Count;
|
|
}
|
|
|
|
public bool AddPlayerTolist(long Uid)
|
|
{
|
|
if (m_table.m_playerUidList.Contains(Uid) == false)
|
|
{
|
|
m_table.m_playerUidList.Add(Uid);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public bool RemovePlayerFromList(long Uid)
|
|
{
|
|
if (m_table.m_playerUidList.Contains(Uid) == false)
|
|
{
|
|
return false;
|
|
}
|
|
return m_table.m_playerUidList.Remove(Uid);
|
|
}
|
|
|
|
public int GetObjCount()
|
|
{
|
|
return m_table.m_playerTable.Count;
|
|
}
|
|
}
|
|
}
|
|
|