完善房间
This commit is contained in:
parent
189e963f8f
commit
1184baf3a0
@ -101,6 +101,13 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
int platform = 0;
|
int platform = 0;
|
||||||
|
bool bTest = true;
|
||||||
|
if (bTest)
|
||||||
|
{
|
||||||
|
yield return null;
|
||||||
|
Connect("192.168.0.47", 10492);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
UnityWebRequest request = UnityWebRequest.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}");
|
UnityWebRequest request = UnityWebRequest.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}");
|
||||||
yield return request.SendWebRequest();
|
yield return request.SendWebRequest();
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
|
|
||||||
OnRoomListAllUpdate,//房间列表全量刷新
|
OnRoomListAllUpdate,//房间列表全量刷新
|
||||||
|
OnRoomListSingleAdd,//房间列表中新增房间
|
||||||
OnRoomListSingleUpdate,//房间列表中单个更新
|
OnRoomListSingleUpdate,//房间列表中单个更新
|
||||||
OnRoomListSingleClose,//房间关闭
|
OnRoomListSingleClose,//房间关闭
|
||||||
OnRoomGetRoomScreen,//获取到房间数据
|
OnRoomGetRoomScreen,//获取到房间数据
|
||||||
|
@ -55,9 +55,11 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region 房间列表管理
|
#region 房间列表管理
|
||||||
void AddOrUpdateRoomList(Protobuf_Room_MiniInfo roomInfo)
|
bool AddOrUpdateRoomList(Protobuf_Room_MiniInfo roomInfo)
|
||||||
{
|
{
|
||||||
|
bool bNew = !dictRoomListID2Info.ContainsKey(roomInfo.RoomID);
|
||||||
dictRoomListID2Info[roomInfo.RoomID] = roomInfo;
|
dictRoomListID2Info[roomInfo.RoomID] = roomInfo;
|
||||||
|
return bNew;
|
||||||
}
|
}
|
||||||
bool RemoveRoomList(int roomId)
|
bool RemoveRoomList(int roomId)
|
||||||
{
|
{
|
||||||
@ -203,9 +205,15 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
Protobuf_Room_Update_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Update_RESP>(reqData);
|
Protobuf_Room_Update_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Update_RESP>(reqData);
|
||||||
if (msg.UpdateType == 0)
|
if (msg.UpdateType == 0)
|
||||||
{
|
{
|
||||||
AddOrUpdateRoomList(msg.RoomMiniInfo);
|
if (AddOrUpdateRoomList(msg.RoomMiniInfo))
|
||||||
|
{
|
||||||
|
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleAdd, msg.RoomMiniInfo.RoomID);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleUpdate, msg.RoomMiniInfo.RoomID);
|
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleUpdate, msg.RoomMiniInfo.RoomID);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
RemoveRoomList(msg.RoomMiniInfo.RoomID);
|
RemoveRoomList(msg.RoomMiniInfo.RoomID);
|
||||||
|
@ -90,7 +90,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public void OnCmdPing(byte[] reqData)
|
public void OnCmdPing(byte[] reqData)
|
||||||
{
|
{
|
||||||
App.log.Debug($"OnCmdPing");
|
//App.log.Debug($"OnCmdPing");
|
||||||
Protobuf_Ping msg = ProtoBufHelper.DeSerizlize<Protobuf_Ping>(reqData);
|
Protobuf_Ping msg = ProtoBufHelper.DeSerizlize<Protobuf_Ping>(reqData);
|
||||||
Protobuf_Pong resp = new Protobuf_Pong()
|
Protobuf_Pong resp = new Protobuf_Pong()
|
||||||
{
|
{
|
||||||
@ -101,7 +101,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public void OnCmdPong(byte[] reqData)
|
public void OnCmdPong(byte[] reqData)
|
||||||
{
|
{
|
||||||
App.log.Debug($"OnCmdPong");
|
//App.log.Debug($"OnCmdPong");
|
||||||
Protobuf_Pong msg = ProtoBufHelper.DeSerizlize<Protobuf_Pong>(reqData);
|
Protobuf_Pong msg = ProtoBufHelper.DeSerizlize<Protobuf_Pong>(reqData);
|
||||||
|
|
||||||
if (LastPingSeed == msg.Seed)
|
if (LastPingSeed == msg.Seed)
|
||||||
|
@ -221,6 +221,8 @@ namespace AxibugEmuOnline.Server.Manager
|
|||||||
Console.WriteLine("标记玩家UID" + cinfo.UID + "为离线");
|
Console.WriteLine("标记玩家UID" + cinfo.UID + "为离线");
|
||||||
cinfo.IsOffline = true;
|
cinfo.IsOffline = true;
|
||||||
cinfo.LogOutDT = DateTime.Now;
|
cinfo.LogOutDT = DateTime.Now;
|
||||||
|
|
||||||
|
AppSrv.g_Room.LeaveRoom(cinfo, cinfo.RoomState.RoomID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveClientForSocket(Socket sk)
|
public void RemoveClientForSocket(Socket sk)
|
||||||
|
@ -131,7 +131,7 @@ namespace AxibugEmuOnline.Server
|
|||||||
List<Data_RoomData> temp = GetRoomList();
|
List<Data_RoomData> temp = GetRoomList();
|
||||||
foreach (var room in temp)
|
foreach (var room in temp)
|
||||||
resp.RoomMiniInfoList.Add(GetProtoDataRoom(room));
|
resp.RoomMiniInfoList.Add(GetProtoDataRoom(room));
|
||||||
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdChatmsg, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
|
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomList, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
|
||||||
}
|
}
|
||||||
public void CmdRoomGetScreen(Socket sk, byte[] reqData)
|
public void CmdRoomGetScreen(Socket sk, byte[] reqData)
|
||||||
{
|
{
|
||||||
@ -196,6 +196,8 @@ namespace AxibugEmuOnline.Server
|
|||||||
|
|
||||||
if (joinErrcode == ErrorCode.ErrorOk && bHadRoomStateChange)
|
if (joinErrcode == ErrorCode.ErrorOk && bHadRoomStateChange)
|
||||||
SendRoomStateChange(newRoom);
|
SendRoomStateChange(newRoom);
|
||||||
|
|
||||||
|
SendRoomUpdateToAll(newRoom.RoomID, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnCmdRoomJoin(Socket sk, byte[] reqData)
|
public void OnCmdRoomJoin(Socket sk, byte[] reqData)
|
||||||
@ -233,6 +235,33 @@ namespace AxibugEmuOnline.Server
|
|||||||
AppSrv.g_Log.Debug($"OnCmdRoomLeave ");
|
AppSrv.g_Log.Debug($"OnCmdRoomLeave ");
|
||||||
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
|
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
|
||||||
Protobuf_Room_Leave msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Leave>(reqData);
|
Protobuf_Room_Leave msg = ProtoBufHelper.DeSerizlize<Protobuf_Room_Leave>(reqData);
|
||||||
|
LeaveRoom(_c, msg.RoomID);
|
||||||
|
//Protobuf_Room_Leave_RESP resp = new Protobuf_Room_Leave_RESP();
|
||||||
|
//ErrorCode errcode;
|
||||||
|
//Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
|
||||||
|
//bool bHadRoomStateChange = false;
|
||||||
|
//if (room == null)
|
||||||
|
// errcode = ErrorCode.ErrorRoomNotFound;
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// if (room.Leave(_c, out errcode, out bHadRoomStateChange))
|
||||||
|
// {
|
||||||
|
// resp.RoomID = msg.RoomID;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomLeave, (int)errcode, ProtoBufHelper.Serizlize(resp));
|
||||||
|
//Protobuf_Room_MyRoom_State_Change(msg.RoomID);
|
||||||
|
|
||||||
|
//if (errcode == ErrorCode.ErrorOk && bHadRoomStateChange)
|
||||||
|
// SendRoomStateChange(room);
|
||||||
|
|
||||||
|
//SendRoomUpdateToAll(room.RoomID, 1);
|
||||||
|
//if (room.GetPlayerCount() < 1)
|
||||||
|
// RemoveRoom(room.RoomID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LeaveRoom(ClientInfo _c,int RoomID)
|
||||||
|
{
|
||||||
Protobuf_Room_Leave_RESP resp = new Protobuf_Room_Leave_RESP();
|
Protobuf_Room_Leave_RESP resp = new Protobuf_Room_Leave_RESP();
|
||||||
ErrorCode errcode;
|
ErrorCode errcode;
|
||||||
Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
|
Data_RoomData room = GetRoomData(_c.RoomState.RoomID);
|
||||||
@ -243,20 +272,22 @@ namespace AxibugEmuOnline.Server
|
|||||||
{
|
{
|
||||||
if (room.Leave(_c, out errcode, out bHadRoomStateChange))
|
if (room.Leave(_c, out errcode, out bHadRoomStateChange))
|
||||||
{
|
{
|
||||||
resp.RoomID = msg.RoomID;
|
resp.RoomID = RoomID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomLeave, (int)errcode, ProtoBufHelper.Serizlize(resp));
|
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdRoomLeave, (int)errcode, ProtoBufHelper.Serizlize(resp));
|
||||||
Protobuf_Room_MyRoom_State_Change(msg.RoomID);
|
Protobuf_Room_MyRoom_State_Change(RoomID);
|
||||||
|
|
||||||
if (errcode == ErrorCode.ErrorOk && bHadRoomStateChange)
|
if (errcode == ErrorCode.ErrorOk && bHadRoomStateChange)
|
||||||
SendRoomStateChange(room);
|
SendRoomStateChange(room);
|
||||||
|
|
||||||
SendRoomUpdateToAll(room.RoomID, 1);
|
|
||||||
if (room.GetPlayerCount() < 1)
|
if (room.GetPlayerCount() < 1)
|
||||||
|
{
|
||||||
RemoveRoom(room.RoomID);
|
RemoveRoom(room.RoomID);
|
||||||
|
SendRoomUpdateToAll(room.RoomID, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SendRoomUpdateToAll(room.RoomID, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnHostPlayerUpdateStateRaw(Socket sk, byte[] reqData)
|
public void OnHostPlayerUpdateStateRaw(Socket sk, byte[] reqData)
|
||||||
|
Loading…
Reference in New Issue
Block a user