초기커밋
This commit is contained in:
74
GameServer/Global/Channel/ChannelManager.cs
Normal file
74
GameServer/Global/Channel/ChannelManager.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class GameChannel
|
||||
{
|
||||
public Int32 channel = 0;
|
||||
public Int32 trafficlevel = 0;
|
||||
}
|
||||
|
||||
public class ChannelManager
|
||||
{
|
||||
public List<GameChannel> m_channels = new List<GameChannel>(1000);
|
||||
|
||||
public ChannelManager() { }
|
||||
|
||||
public async Task updateChannels()
|
||||
{
|
||||
m_channels.Clear();
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
(var result, var server_infos) = await server_logic.getServerInfosByServerType(ServerType.Channel, server_logic.getWorldId());
|
||||
|
||||
foreach (var channel in server_infos)
|
||||
{
|
||||
if (GameServerApp.getServerLogic().getWorldId() != channel.WorldId) continue;
|
||||
|
||||
GameChannel gameChannel = new GameChannel();
|
||||
gameChannel.channel = channel.Channel;
|
||||
|
||||
var curr_users = channel.Sessions + channel.Reservation + channel.ReturnCount;
|
||||
gameChannel.trafficlevel = getTrafficLevel(curr_users, channel.Capacity);
|
||||
|
||||
m_channels.Add(gameChannel);
|
||||
}
|
||||
}
|
||||
|
||||
public List<GameChannel> getWholeChannels()
|
||||
{
|
||||
return m_channels;
|
||||
}
|
||||
|
||||
public int getTrafficLevel(int CurUser, int MaxUser)
|
||||
{
|
||||
double trafficPercent = (double)CurUser / (double)MaxUser * (double)100;
|
||||
int trafficLevel = 0;
|
||||
|
||||
if (0 <= trafficPercent && trafficPercent < 80.0f)
|
||||
{
|
||||
trafficLevel = 0;
|
||||
}
|
||||
else if (80.0f <= trafficPercent && trafficPercent < 100.0f)
|
||||
{
|
||||
trafficLevel = 1;
|
||||
}
|
||||
else if (100.0f <= trafficPercent)
|
||||
{
|
||||
trafficLevel = 2;
|
||||
}
|
||||
|
||||
|
||||
return trafficLevel;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user