This commit is contained in:
2026-07-25 23:05:24 +08:00
parent 0c58becf41
commit a5d9a06030
11 changed files with 405 additions and 806 deletions
@@ -44,7 +44,7 @@ namespace Assets.MyGame.Scripts.Net.WebResponses
none = 0,
rotateTurrect=1,
fireBullet=2,
createFish=3,
// createFish=3 已废弃:鱼创建改由服务端 OnFishSpawn 事件下发
changeAutoTarget=4,
randomDieFish=5,
changeTurretState=6,
@@ -52,8 +52,7 @@ namespace Assets.MyGame.Scripts.Net.WebResponses
freezeFish=8,
changeCannonMultiple=9,
changeWing=10,
/// <summary>新玩家资源加载完成,请求房主广播场上活鱼</summary>
requestSyncFish=11
// requestSyncFish=11 已废弃:鱼同步改由服务端 OnFishSpawn(type=sync) 事件下发
}
[Serializable]
public class FireCannonSendData
@@ -145,4 +144,93 @@ namespace Assets.MyGame.Scripts.Net.WebResponses
{
public int cannonMultiple;
}
// ================================================================
// OnFishSpawn 事件数据结构 (服务端出鱼,破坏性替代 createFish 帧同步)
// ================================================================
/// <summary>
/// 服务端出鱼事件 OnFishSpawn 的数据载体。
/// type:
/// "init" - 首次出鱼(玩家进入房间后服务端推送初始鱼)
/// "spawn" - 定时出鱼(游戏中持续刷怪)
/// "sync" - 重连/取消挂机同步(把当前场上活鱼推送给回归玩家)
/// </summary>
[Serializable]
public class OnFishSpawnData
{
/// <summary>"init" | "spawn" | "sync"</summary>
public string type;
/// <summary>服务器当前时间戳(毫秒)</summary>
public long timestamp;
/// <summary>本批次出鱼列表</summary>
public List<OnFishSpawnFishItem> fish;
}
/// <summary>
/// OnFishSpawn 单条鱼描述。
/// 客户端据此调用 SpawnFishMainThread 生成鱼实例。
/// </summary>
[Serializable]
public class OnFishSpawnFishItem
{
/// <summary>服务端分配的全局唯一鱼 ID(作为 guid 使用)</summary>
public long fishId;
/// <summary>鱼编号(配置 fishNumber)</summary>
public string fishNumber;
/// <summary>路径编号</summary>
public int routeId;
/// <summary>鱼阵编号(非鱼阵时为空字符串)</summary>
public string fishArrayNumber;
/// <summary>鱼阵的 Boss 鱼编号</summary>
public string bossFishNumber;
/// <summary>鱼阵普通鱼数量</summary>
public int fishCount;
/// <summary>鱼阵 Boss 数量</summary>
public int bossCount;
/// <summary>鱼过期时间戳(毫秒),到期自动移除</summary>
public long expireAt;
/// <summary>鱼剩余存活秒数(客户端做倒计时用)</summary>
public int remainingSeconds;
}
/// <summary>
/// 机器人退出房间通知数据 BotLeaveRoomNotice: { userId }
/// </summary>
[Serializable]
public class BotLeaveRoomNoticeData
{
public string userId;
}
/// <summary>
/// 玩家挂机/取消挂机通知数据: { userId }
/// </summary>
[Serializable]
public class PlayerAfkNoticeData
{
public string userId;
}
/// <summary>
/// 全局击杀公告 KillNotice 数据。
/// 真人击杀时只填基础字段;机器人模拟时额外填 fishName/multiplier/sceneName。
/// </summary>
[Serializable]
public class KillNoticeData
{
/// <summary>鱼编号</summary>
public string FishId;
/// <summary>玩家名</summary>
public string userName;
/// <summary>金币</summary>
public long gold;
// —— 机器人模拟时额外字段 ——
/// <summary>鱼名(机器人模拟时填充)</summary>
public string fishName;
/// <summary>倍数(机器人模拟时填充)</summary>
public int? multiplier;
/// <summary>场景名(机器人模拟时填充)</summary>
public string sceneName;
}
}