1
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ namespace Assets.MyGame.Scripts.Net
|
||||
public static void LeaveRoomResult(string msg)
|
||||
{
|
||||
//WebSocketManager.Instance.isGame = false;
|
||||
|
||||
|
||||
//GameManager.Instance.StartGame();RoomChangeResponse
|
||||
var userid = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
|
||||
switch (GameManager.Instance.gameData.currGameType)
|
||||
@@ -235,7 +235,7 @@ namespace Assets.MyGame.Scripts.Net
|
||||
case GameType.FLZY:
|
||||
{
|
||||
var panel = UIManager.Instance.Get<GameMainPanel_FLZY>(UIPanel.MainGamePanelFLZY);
|
||||
if (panel.currSitData.user== userid)
|
||||
if (panel.currSitData.user == userid)
|
||||
{
|
||||
UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelFLZY);
|
||||
break;
|
||||
@@ -248,7 +248,7 @@ namespace Assets.MyGame.Scripts.Net
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case GameType.YYSC:
|
||||
{
|
||||
@@ -268,7 +268,7 @@ namespace Assets.MyGame.Scripts.Net
|
||||
}
|
||||
break;
|
||||
case GameType.ZGXQ:
|
||||
|
||||
|
||||
break;
|
||||
case GameType.XJMH:
|
||||
{
|
||||
@@ -280,7 +280,7 @@ namespace Assets.MyGame.Scripts.Net
|
||||
}
|
||||
foreach (var item in panel.list_Sits)
|
||||
{
|
||||
Debug.Log(item.user+"---"+ userid);
|
||||
Debug.Log(item.user + "---" + userid);
|
||||
if (item.user == userid)
|
||||
{
|
||||
Debug.Log("推出星际迷航");
|
||||
@@ -313,6 +313,50 @@ namespace Assets.MyGame.Scripts.Net
|
||||
|
||||
}
|
||||
|
||||
// ---------------- LoginHub ----------------
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub Broadcast — 大厅公告广播
|
||||
/// </summary>
|
||||
public static void LoginBroadcast(string msg)
|
||||
{
|
||||
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<LoginBroadcastData>>(msg).arguments[0];
|
||||
UIManager.Instance.ShowBoardGongGao(data.message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub AssetUpdated — 资产变动通知
|
||||
/// </summary>
|
||||
public static void AssetUpdated(string msg)
|
||||
{
|
||||
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<LoginAssetData>>(msg).arguments[0];
|
||||
// 触发用户数据刷新
|
||||
var userId = GameManager.Instance?.user?.id;
|
||||
if (!string.IsNullOrEmpty(userId))
|
||||
APIRequestList.GetUser(userId, a => GameManager.Instance.UpdataUserData(a));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub BackpackUpdated — 背包变动通知
|
||||
/// </summary>
|
||||
public static void BackpackUpdated(string msg)
|
||||
{
|
||||
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<LoginBackpackData>>(msg).arguments[0];
|
||||
// 刷新用户数据(道具列表在 GetUser 返回中)
|
||||
var userId = GameManager.Instance?.user?.id;
|
||||
if (!string.IsNullOrEmpty(userId))
|
||||
APIRequestList.GetUser(userId, a => GameManager.Instance.UpdataUserData(a));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub NewEmail — 新邮件通知
|
||||
/// </summary>
|
||||
public static void NewEmail(string msg)
|
||||
{
|
||||
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<LoginNewEmailData>>(msg).arguments[0];
|
||||
UIManager.Instance.ShowBoardError($"收到新邮件:{data.title}");
|
||||
}
|
||||
|
||||
// ---------------- Customer ----------------
|
||||
|
||||
/// <summary>
|
||||
@@ -355,5 +399,57 @@ namespace Assets.MyGame.Scripts.Net
|
||||
// UIManager.Instance.Get<UICustomerServicePanel>(UIPanel.CustomerServicePanel)?.OnNewConversation(notice);
|
||||
Debug.Log($"[Customer] 新会话来了,userId={notice.userId},userName={notice.userName}");
|
||||
}
|
||||
/// <summary>
|
||||
/// LoginHub Broadcast 数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class LoginBroadcastData
|
||||
{
|
||||
public string userName;
|
||||
public string avatarUrl;
|
||||
public int level;
|
||||
public int vipLevel;
|
||||
public string message;
|
||||
public long time;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub AssetUpdated 数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class LoginAssetData
|
||||
{
|
||||
public int currencyType;
|
||||
public int changeType;
|
||||
public long amount;
|
||||
public long newGold;
|
||||
public int newDiamond;
|
||||
public string source;
|
||||
public string remark;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub BackpackUpdated 数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class LoginBackpackData
|
||||
{
|
||||
public string action;
|
||||
public string propNumber;
|
||||
public int count;
|
||||
public List<object> props;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub NewEmail 数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class LoginNewEmailData
|
||||
{
|
||||
public string title;
|
||||
public string emailId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// end namespace
|
||||
Reference in New Issue
Block a user