forked from sin365/AxibugEmuOnline
Compare commits
No commits in common. "46a62ca9f7657e72107d447d3105bd80b5f536da" and "323f7a44df395c2509033e01a70efa8092dab1fa" have entirely different histories.
46a62ca9f7
...
323f7a44df
@ -101,13 +101,6 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
int platform = 0;
|
int platform = 0;
|
||||||
bool bTest = false;
|
|
||||||
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,7 +7,6 @@
|
|||||||
|
|
||||||
|
|
||||||
OnRoomListAllUpdate,//房间列表全量刷新
|
OnRoomListAllUpdate,//房间列表全量刷新
|
||||||
OnRoomListSingleAdd,//房间列表中新增房间
|
|
||||||
OnRoomListSingleUpdate,//房间列表中单个更新
|
OnRoomListSingleUpdate,//房间列表中单个更新
|
||||||
OnRoomListSingleClose,//房间关闭
|
OnRoomListSingleClose,//房间关闭
|
||||||
OnRoomGetRoomScreen,//获取到房间数据
|
OnRoomGetRoomScreen,//获取到房间数据
|
||||||
|
|||||||
@ -55,11 +55,9 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region 房间列表管理
|
#region 房间列表管理
|
||||||
bool AddOrUpdateRoomList(Protobuf_Room_MiniInfo roomInfo)
|
void 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)
|
||||||
{
|
{
|
||||||
@ -205,14 +203,8 @@ 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)
|
||||||
{
|
{
|
||||||
if (AddOrUpdateRoomList(msg.RoomMiniInfo))
|
AddOrUpdateRoomList(msg.RoomMiniInfo);
|
||||||
{
|
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleUpdate, msg.RoomMiniInfo.RoomID);
|
||||||
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleAdd, msg.RoomMiniInfo.RoomID);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Eventer.Instance.PostEvent(EEvent.OnRoomListSingleUpdate, msg.RoomMiniInfo.RoomID);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -425,25 +417,5 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
//解压
|
//解压
|
||||||
byte[] data = Helper.DecompressByteArray(msg.RawBitmap.ToArray());
|
byte[] data = Helper.DecompressByteArray(msg.RawBitmap.ToArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class RoomEX
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 获取房间空闲席位下标 (返回True表示由余位)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="roomMiniInfo"></param>
|
|
||||||
/// <param name="freeSlots"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static bool GetFreeSlot(this Protobuf_Room_MiniInfo roomMiniInfo,out int[] freeSlots)
|
|
||||||
{
|
|
||||||
List<int> temp = new List<int>();
|
|
||||||
if (roomMiniInfo.Player1UID > 0) temp.Add(0);
|
|
||||||
if (roomMiniInfo.Player2UID > 1) temp.Add(1);
|
|
||||||
if (roomMiniInfo.Player3UID > 2) temp.Add(2);
|
|
||||||
if (roomMiniInfo.Player4UID > 3) temp.Add(3);
|
|
||||||
freeSlots = temp.ToArray();
|
|
||||||
return freeSlots.Length > 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -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,8 +221,6 @@ 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.CmdRoomList, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
|
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdChatmsg, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
|
||||||
}
|
}
|
||||||
public void CmdRoomGetScreen(Socket sk, byte[] reqData)
|
public void CmdRoomGetScreen(Socket sk, byte[] reqData)
|
||||||
{
|
{
|
||||||
@ -196,8 +196,6 @@ 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)
|
||||||
@ -235,33 +233,6 @@ 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);
|
||||||
@ -272,22 +243,20 @@ namespace AxibugEmuOnline.Server
|
|||||||
{
|
{
|
||||||
if (room.Leave(_c, out errcode, out bHadRoomStateChange))
|
if (room.Leave(_c, out errcode, out bHadRoomStateChange))
|
||||||
{
|
{
|
||||||
resp.RoomID = RoomID;
|
resp.RoomID = msg.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(RoomID);
|
Protobuf_Room_MyRoom_State_Change(msg.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