1
This commit is contained in:
@@ -16,7 +16,10 @@ namespace Assets.MyGame.Scripts.Net
|
||||
{
|
||||
public static Dictionary<APIType, string> dic_API = new Dictionary<APIType, string>();
|
||||
//public const string baseURL = "http://game5241.wzaxr.top";
|
||||
#if UNITY_EDITOR
|
||||
#if ENABLE_LOG_FILE
|
||||
public const string baseURL = "http://47.109.132.12";
|
||||
|
||||
#elif UNITY_EDITOR
|
||||
//public const string baseURL = "http://8.137.163.153";
|
||||
public const string baseURL = "http://47.109.132.12";
|
||||
|
||||
|
||||
@@ -29,9 +29,11 @@ namespace Assets.MyGame.Scripts.Net
|
||||
private readonly HashSet<SocketType> manualClosing = new();
|
||||
private float nextHeartbeatTime;
|
||||
private const float HeartbeatIntervalSeconds = 20f;
|
||||
#if ENABLE_LOG_FILE
|
||||
private const string baseUrl = "ws://47.109.132.12";
|
||||
|
||||
//private const string baseUrl = "ws://game5241.wzaxr.top";
|
||||
#if UNITY_EDITOR
|
||||
#elif UNITY_EDITOR
|
||||
//private const string baseUrl = "ws://8.137.163.153";
|
||||
private const string baseUrl = "ws://47.109.132.12";
|
||||
|
||||
|
||||
@@ -476,62 +476,79 @@ namespace Assets.MyGame.Scripts.Net
|
||||
break;
|
||||
case "Exception":
|
||||
{
|
||||
var va = JsonConvert.DeserializeObject<WebSocketResponseBase<string>>(msg).arguments[0];
|
||||
UIManager.Instance.ShowBoardError(va);
|
||||
switch (va)
|
||||
var ex = JsonConvert.DeserializeObject<WebSocketResponseBase<WebSocketReponseList.FishGameExceptionData>>(msg).arguments[0];
|
||||
if (ex == null) break;
|
||||
|
||||
// 根据错误码分类处理
|
||||
switch (ex.code)
|
||||
{
|
||||
case "房间人数已满":
|
||||
switch (GameManager.Instance.gameData.currGameType)
|
||||
case 1001: // 房间已满 → 弹窗提示并跳转房间列表
|
||||
UIManager.Instance.ShowTiShi(ex.message, () =>
|
||||
{
|
||||
case GameType.JQQD:
|
||||
break;
|
||||
case GameType.defaultPanel:
|
||||
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) =>
|
||||
{
|
||||
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
|
||||
|
||||
});
|
||||
break;
|
||||
case GameType.YYSC:
|
||||
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) =>
|
||||
{
|
||||
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
|
||||
|
||||
});
|
||||
break;
|
||||
case GameType.XJMH:
|
||||
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) =>
|
||||
{
|
||||
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
|
||||
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch (GameManager.Instance.gameData.currGameType)
|
||||
{
|
||||
case GameType.JQQD:
|
||||
break;
|
||||
case GameType.defaultPanel:
|
||||
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) =>
|
||||
{
|
||||
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
|
||||
});
|
||||
break;
|
||||
case GameType.YYSC:
|
||||
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) =>
|
||||
{
|
||||
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
|
||||
});
|
||||
break;
|
||||
case GameType.XJMH:
|
||||
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) =>
|
||||
{
|
||||
WebSocketSendList.GetRoomListFish(GameManager.Instance.gameData.currRoomData.roomLevel, 1);
|
||||
});
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
break;
|
||||
default:
|
||||
// 资产/状态类错误 → 弹窗提示,玩家需明确知晓
|
||||
case 1002: // 金币不足
|
||||
case 1003: // 房间不存在
|
||||
case 1011: // 用户不存在
|
||||
case 1013: // 道具数量不足
|
||||
case 1014: // 钻石不足
|
||||
UIManager.Instance.ShowTiShi(ex.message);
|
||||
break;
|
||||
// 参数/配置/技术性错误 → Toast 轻提示
|
||||
case 1004: // 玩家不在房间
|
||||
case 1005: // 签名错误
|
||||
case 1006: // 请求已过期
|
||||
case 1007: // 鱼配置不存在
|
||||
case 1008: // 子弹参数无效
|
||||
case 1009: // 金币参数超出范围
|
||||
case 1012: // 道具配置不存在
|
||||
case 1015: // 炮倍参数无效
|
||||
default: // 0=未知错误
|
||||
UIManager.Instance.ShowBoardError(ex.message);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,11 +57,15 @@ namespace Assets.MyGame.Scripts.Net
|
||||
/// <param name="msg"></param>
|
||||
public static void RoomJoinNotice(string msg)
|
||||
{
|
||||
// ⭐ 记录金币流水:收到 RoomJoinNotice 推送
|
||||
// ⭐ 记录金币流水:收到加钱信息(RoomJoinNotice 推送,尚未执行)—— 只记录自己
|
||||
try
|
||||
{
|
||||
var notice = JsonConvert.DeserializeObject<WebSocketResponseBase<RoomJoinNotice>>(msg).arguments[0];
|
||||
GameManager.LogGoldFlow("RoomJoinNotice", $"推送金币={notice.gold} 钻石={notice.diamond} 炮台消耗={notice.cannonMultiple} 座位={notice.position}");
|
||||
string myId = GameManager.Instance.user?.id;
|
||||
if (!string.IsNullOrEmpty(myId) && notice.userId == myId)
|
||||
{
|
||||
GameManager.LogGoldFlowReceiveGain("RoomJoinNotice", $"推送金币={notice.gold} 钻石={notice.diamond} 炮台消耗={notice.cannonMultiple} 座位={notice.position}");
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
@@ -226,22 +230,35 @@ namespace Assets.MyGame.Scripts.Net
|
||||
var panel = UIManager.Instance.Get<GameMainPanel_FishBase>(panelType);
|
||||
if (panel == null || panel.currSitData == null) return;
|
||||
long oldGold = panel.currSitData.goldNum;
|
||||
long diff = gold - oldGold;
|
||||
// ⭐ 记录金币流水:收到后端推送 SyncPlayerGold(尚未执行)
|
||||
if (diff > 0)
|
||||
GameManager.LogGoldFlowReceiveGain("SyncPlayerGold", $"推送金币={gold} 修正前金币={oldGold} 差值=+{diff} 座位={panel.currSitData.posID}");
|
||||
else if (diff < 0)
|
||||
GameManager.LogGoldFlowReceiveCost("SyncPlayerGold", $"推送金币={gold} 修正前金币={oldGold} 差值={diff} 座位={panel.currSitData.posID}");
|
||||
|
||||
panel.currSitData.goldNum = gold;
|
||||
if (panel.currSitData.tMP_GoldNum != null)
|
||||
panel.currSitData.tMP_GoldNum.text = gold.ToString();
|
||||
// ⭐ 记录金币流水:后端推送 SyncPlayerGold 修正
|
||||
GameManager.LogGoldFlow("SyncPlayerGold", $"推送金币={gold} 修正前金币={oldGold} 差值={gold - oldGold} 座位={panel.currSitData.posID}");
|
||||
|
||||
// ⭐ 记录金币流水:已执行修正(本地已写入)
|
||||
if (diff > 0)
|
||||
GameManager.LogGoldFlowAppliedGain("SyncPlayerGold", $"已修正金币={gold} 修正前金币={oldGold} 增加金币=+{diff} 座位={panel.currSitData.posID}");
|
||||
else if (diff < 0)
|
||||
GameManager.LogGoldFlowAppliedCost("SyncPlayerGold", $"已修正金币={gold} 修正前金币={oldGold} 扣除金币={diff} 座位={panel.currSitData.posID}");
|
||||
}
|
||||
public static void GetRoomInfoResult(string msg)
|
||||
{
|
||||
//GameManager.Instance.StartGame();RoomChangeResponse
|
||||
var roomData = JsonConvert.DeserializeObject<WebSocketResponseBase<RoomChangeResponse>>(msg).arguments[0];
|
||||
// ⭐ 记录金币流水:收到 RoomInfo 推送
|
||||
// ⭐ 记录金币流水:收到加钱信息(RoomInfo 推送玩家金币,尚未执行)—— 只记录自己
|
||||
if (roomData?.players != null)
|
||||
{
|
||||
string myId = GameManager.Instance.user?.id;
|
||||
foreach (var p in roomData.players)
|
||||
{
|
||||
GameManager.LogGoldFlow("RoomInfo", $"推送金币={p.gold} 钻石={p.diamond} 炮台消耗={p.cannonMultiple} 座位={p.position} 房间={roomData.roomId}");
|
||||
if (string.IsNullOrEmpty(myId) || p.userId != myId) continue;
|
||||
GameManager.LogGoldFlowReceiveGain("RoomInfo", $"推送金币={p.gold} 钻石={p.diamond} 炮台消耗={p.cannonMultiple} 座位={p.position} 房间={roomData.roomId}");
|
||||
}
|
||||
}
|
||||
UIHome_BY_SelectRoomLevelPanel.StartGame(roomData);
|
||||
@@ -1074,6 +1091,21 @@ namespace Assets.MyGame.Scripts.Net
|
||||
public string title;
|
||||
public string emailId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// FishGameHub Exception 数据({code, message})
|
||||
/// code: 0=未知错误
|
||||
/// 1001=房间已满 1002=金币不足 1003=房间不存在 1004=玩家不在房间
|
||||
/// 1005=签名错误 1006=请求已过期 1007=鱼配置不存在 1008=子弹参数无效
|
||||
/// 1009=金币参数超出范围 1011=用户不存在 1012=道具配置不存在
|
||||
/// 1013=道具数量不足 1014=钻石不足 1015=炮倍参数无效
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FishGameExceptionData
|
||||
{
|
||||
public int code;
|
||||
public string message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user