This commit is contained in:
2026-06-26 19:28:39 +08:00
parent 06143234b1
commit 2868f08b04
92 changed files with 6441 additions and 34 deletions
@@ -1,4 +1,4 @@
using Assets.MyGame.Scripts.Net.WebResponses;
using Assets.MyGame.Scripts.Net.WebResponses;
using Best.WebSockets;
using Newtonsoft.Json;
using System;
@@ -32,8 +32,11 @@ namespace Assets.MyGame.Scripts.Net
switch (type)
{
case SocketType.login:
LoginMSG(item, v);
break;
case SocketType.room:
case SocketType.game:
case SocketType.game:
FishMSG(item, v);
break;
case SocketType.chess:
@@ -70,7 +73,7 @@ namespace Assets.MyGame.Scripts.Net
roomMainPanel.StartGame(msg);
roomMainPanel.UpdateUserData(va);
}
break;
case "CreateRoomNotice":
{
@@ -79,7 +82,7 @@ namespace Assets.MyGame.Scripts.Net
if (panel != null)
{
panel.UpdataRoom(va);
}
}
@@ -93,7 +96,7 @@ namespace Assets.MyGame.Scripts.Net
panel.UpdataRoom(va);
}
}
break;
//所有人
case "GoldConfigRoomNotice":
@@ -119,7 +122,7 @@ namespace Assets.MyGame.Scripts.Net
case "EndGameSuccess":
{
var va = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
if (va==null||va=="")
if (va == null || va == "")
{
roomMainPanel.subUIManager.ShowAsync(UIPanel.ZGXQHe);
@@ -138,12 +141,12 @@ namespace Assets.MyGame.Scripts.Net
case "ExitRoomSuccess":
{
var va = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
if (GameManager.Instance.user.id== va)
if (GameManager.Instance.user.id == va)
{
WebSocketSendList.GetRoomListChineseChess(1);
}
else
{
@@ -157,7 +160,7 @@ namespace Assets.MyGame.Scripts.Net
i--;
}
}
}
}
@@ -172,7 +175,7 @@ namespace Assets.MyGame.Scripts.Net
if (panel != null)
{
panel.UpdataRoom(va);
}
}
}
@@ -185,8 +188,8 @@ namespace Assets.MyGame.Scripts.Net
var va = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
UIManager.Instance.ShowBoardError(va);
}
break;
break;
default:
break;
}
@@ -258,6 +261,36 @@ namespace Assets.MyGame.Scripts.Net
break;
}
}
/// <summary>
/// LoginHub 消息处理(Broadcast / AssetUpdated / BackpackUpdated / NewEmail)
/// </summary>
private static void LoginMSG(string msg, WebSocketResponseBase<object> v)
{
switch ((MessageType)v.type)
{
case MessageType.Invocation:
switch (v.target)
{
case "Broadcast":
WebSocketReponseList.LoginBroadcast(msg);
break;
case "AssetUpdated":
WebSocketReponseList.AssetUpdated(msg);
break;
case "BackpackUpdated":
WebSocketReponseList.BackpackUpdated(msg);
break;
case "NewEmail":
WebSocketReponseList.NewEmail(msg);
break;
default:
break;
}
break;
}
}
private static void FishMSG(string msg, WebSocketResponseBase<object> v)
{
switch ((MessageType)v.type)
@@ -301,7 +334,7 @@ namespace Assets.MyGame.Scripts.Net
break;
case "ChangeControllerUser":
var userId = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
if (userId==GameManager.Instance.user.id)
if (userId == GameManager.Instance.user.id)
{
CreateFishManager.Instance.fangzhu = true;
}
@@ -318,37 +351,43 @@ namespace Assets.MyGame.Scripts.Net
case GameType.JQQD:
break;
case GameType.defaultPanel:
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelDefault, null,(panel) =>{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel,1);
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelDefault, null, (panel) =>
{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
});
break;
case GameType.FLZY:
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelFLZY, null, (panel) => {
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelFLZY, null, (panel) =>
{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
});
break;
case GameType.YYSC:
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelYYSC, null, (panel) => {
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelYYSC, null, (panel) =>
{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
});
break;
case GameType.ZGXQ:
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelZGXQ, null, (panel) => {
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelZGXQ, null, (panel) =>
{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
});
break;
case GameType.XJMH:
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelXJMH, null, (panel) => {
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelXJMH, null, (panel) =>
{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
});
break;
case GameType.HHWK:
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelHHWK, null, (panel) => {
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelHHWK, null, (panel) =>
{
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
});
@@ -362,6 +401,78 @@ namespace Assets.MyGame.Scripts.Net
}
}
break;
// ======== 新增 FishGameHub 缺失事件 ========
case "BindSuccess":
{
var msgText = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
Debug.Log("[FishGameHub] BindSuccess: " + msgText);
}
break;
case "SendPlayerInfoResult":
{
var gold = JsonConvert.DeserializeObject<WebSocketResponseBase<long?>>(msg).arguments[0];
// 发送玩家信息结果,gold 为当前金币数(可为 null)
if (gold.HasValue)
WebSocketReponseList.SyncPlayerGold(JsonConvert.DeserializeObject<WebSocketResponseBase<long>>(msg).arguments[0].ToString());
}
break;
case "RoomDisconnectNotice":
{
var userIdDisc = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
Debug.Log("[FishGameHub] 玩家断线: " + userIdDisc);
}
break;
case "ChangeGunMultipleNotice":
{
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<Dictionary<string, object>>>(msg).arguments[0];
// { userId, multiple }
if (data != null)
Debug.Log($"[FishGameHub] 炮倍变更: userId={data["userId"]}, multiple={data["multiple"]}");
}
break;
case "UsePropNotice":
{
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<Dictionary<string, object>>>(msg).arguments[0];
// { userId, propNumber }
Debug.Log($"[FishGameHub] 使用道具: userId={data["userId"]}, prop={data["propNumber"]}");
}
break;
case "KillNotice":
{
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<Dictionary<string, object>>>(msg).arguments[0];
if (data == null) break;
// { FishId, userName, gold }
string userName = data.TryGetValue("userName", out var un) ? un?.ToString() : "";
string fishId = data.TryGetValue("FishId", out var fi) ? fi?.ToString() : "";
long gold = data.TryGetValue("gold", out var g) ? Convert.ToInt64(g) : 0;
string roomName = GameManager.Instance.gameData.currRoomData?.roomName ?? "";
string roomLevel = GameManager.Instance.gameData.currRoomData?.roomLevel.ToString() ?? "";
string msgText = $"恭喜用户{userName} 在 {roomName} {roomLevel}场 捕获了{fishId}*{gold}倍";
UIManager.Instance.ShowBoardGongGao(msgText);
}
break;
case "OnFishExpired":
{
var fishIds = JsonConvert.DeserializeObject<WebSocketResponseBase<int[]>>(msg).arguments[0];
Debug.Log($"[FishGameHub] 鱼过期: {string.Join(",", fishIds)}");
}
break;
case "OnFishList":
{
var fishList = JsonConvert.DeserializeObject<WebSocketResponseBase<object[]>>(msg).arguments[0];
Debug.Log($"[FishGameHub] 鱼列表刷新, 数量={fishList?.Length}");
}
break;
default:
break;
}