﻿════════════════════════════════════════════════════════
  苍穹对决 · 局域网联机 使用说明
════════════════════════════════════════════════════════

【一句话】
  房主在电脑上双击「启动联机服务器.bat」，朋友连同一个 WiFi，
  用浏览器打开房主给出的地址，就能一起打。朋友不用装任何东西。

────────────────────────────────────────────
一、开房（房主操作）
────────────────────────────────────────────
  1. 双击  启动联机服务器.bat
     · 会自动弹出一个黑色窗口（服务器）并帮你打开浏览器
     · 服务器窗口里会印出两个地址，比如：
         http://192.168.110.81:8080/
     · 如果你的电脑没装过 Node.js，脚本会提示你装一次（www.nodejs.org）

  2. 浏览器里选飞机 → 点「出 击」→ 进入房间
     · 房主页面必须带 ?host=1（bat 已经帮你加好了）

  3. 等朋友都进来后，点「开 始 对 战」

────────────────────────────────────────────
二、加入（朋友操作）
────────────────────────────────────────────
  1. 连上跟房主同一个 WiFi
  2. 打开手机 / 电脑的浏览器，输入房主给的地址
       http://192.168.x.x:8080/
  3. 只要两步：
       第 1 步  选你的操作设备（电脑 / 平板 / 手机）
       第 2 步  选一架战机，点「加 入 房 间」
     顶部会有一条进度条告诉你现在是第几步。
  4. 进房间后等房主点「开始对战」就行

  ※ 客人这边**不再经过**按键设置、模式、敌机类型、地图、难度、
    损伤模型、导弹可视化、敌方导弹、挂载 —— 这 9 页全是房主说了算的，
    客人选了也没用。武器直接用默认挂载。

  不用加任何参数 —— 服务器发出的页面会自动识别成「加入房间」。
  （如果是自己手动用 ?net=1 打开，效果一样）

────────────────────────────────────────────
三、目前能做什么 / 不能做什么
────────────────────────────────────────────
  能：
    · 2~4 个玩家在同一个战场里
    · 房主负责全部模拟（AI 敌机、导弹、地面单位、所有玩家都由房主算）
    · 其他玩家看到的是房主发过来的实时快照（局域网延迟很低）
    · 所有玩家都能正常开火、切弹、打干扰弹、被导弹打、被击落
    · ★ 两种模式，房主在大厅里一键切换：
        · 一起打 AI（合作，默认）—— 玩家之间打不到对方
        · 互相开火（混战）      —— 谁都能打谁，被击落后 5 秒自动重生
      切换会实时同步给房间里所有人。

  混战模式怎么玩：
    · 房主在大厅点「改 为 混 战」，其他人那边会立刻显示"房主切到互相开火"
    · 雷达 / 红外 / HMD 锁定对真人飞机同样有效（他们就是目标列表里的普通目标）
    · 导弹、机炮都能打；不会误伤自己（自己永远不会被自己的武器锁定）
    · 被击落 → 屏幕提示，5 秒后在外圈满血重生；击落别人 +1 击杀 +300 分
    · 混战里被打下来**不会结束对战**（单机的"任务结束"被替换成重生）

  还不能（下一步会做）：
    · 没有本地预测：客户端操作会有约半帧~一帧的延迟感
    · 客户端画面是"跟随快照"，比房主略平滑一些但偶尔会有轻微跳动
    · 手机不能当房主（房主必须是电脑）
    · AI 敌机不管你们是不是在混战，它们照常打所有人

────────────────────────────────────────────
四、常见问题
────────────────────────────────────────────
  Q: 朋友打开地址是白屏 / 连不上
  A: · 确认跟房主在同一个 WiFi（手机别用流量）
     · 电脑的防火墙可能拦了 8080 端口：
       控制面板 → Windows Defender 防火墙 → 允许应用通过墙
       给 Node.js 勾上「专用网络」
     · 换个端口试试：  启动联机服务器.bat 9000

  Q: 进了房间但看不到别人
  A: 看大厅里的玩家列表。如果列表是空的，说明服务器没认到房主 —— 
     确认房主页面地址里有 ?host=1。

  Q: 房主关掉服务器窗口会怎样？
  A: 全部人掉线回单机。这就是"房主权威"模式的代价：
     房主卡 = 全房卡，房主退 = 全房散。

  Q: 客人那边武器能自己选吗？
  A: 现在不能 —— 用机型的默认挂载（按客人本机的研发进度裁剪）。
     要改成可选的话说一声。

  Q: 房主动不了，或者看别人机型不对？
  A: 已修复（v1.1.5）。两个根因：
     ① 房主动不了 —— 替远端玩家跑帧时，把房主当成了「手机摇杆」
        输入，键盘鼠标全失效；现在换人后完整恢复本机输入。
     ② 看别人机型不对 —— 远端玩家实体漏了机型字段，
        一直画成默认飞机；已补上。
     请用 v1.1.5 的联机包，Ctrl+F5 强刷。

  Q: 进游戏后只有机场、看不到飞机，或者飞机动不了？
  A: 已修复（v1.1.4）。三个问题一起修了：
     ① 客人看不到画面 —— 客人开局时飞机没初始化，一画就崩；
     ② 房主动不了 —— 替远端玩家跑帧后，房主自己的按键被清空了；
     ③ 混战模式还冒人机 —— 现在混战不生成 AI，纯玩家互打。
     请用 v1.1.4 的联机包，并 Ctrl+F5 强刷。

  Q: 大厅里「开始对战」「改为混战」按钮点了没反应？
  A: 已修复（v1.1.3）。原因：按钮的点击事件绑定得太早，
     在按钮渲染出来之前就绑了，等于没绑上。
     请用 v1.1.3 的联机包，并 Ctrl+F5 强刷浏览器。

  Q: 大厅里「开始对战」点不动？
  A: 看大厅中间那行字，它会直接告诉你原因：
     · 「还没连上服务器」 -> 那个黑窗口（服务器）没开，或者你把它关了；
        重新双击「启动联机服务器.bat」，然后点「重 新 连 接」
     · 「你不是房主」      -> 你打开的地址没带 ?host=1。
        最简单的办法：点大厅里的「我 来 当 房 主」直接接手
     · 「房里还没有房主」  -> 同上，点「我 来 当 房 主」
     · 「还没选飞机」      -> 回上一步选一架

  Q: 混战模式下我怎么知道谁打了我？
  A: 击落会弹出通报（"某某 击落了 某某"）。被击落时自己屏幕也会提示。

  Q: 能跨网络玩吗（一个在家一个在公司）？
  A: 现在只做了局域网。要跨网有两条路，都比现在多一步：
     · 装个虚拟局域网工具（比如 ZeroTier / 蒲公英 / RadminVPN），
       大家都"进"同一个虚拟网段后，用那个工具的 IP 连
     · 或者用 Cloudflare Tunnel 把 8080 端口映射到公网
       命令：cloudflared tunnel --url http://localhost:8080

────────────────────────────────────────────
五、文件说明
────────────────────────────────────────────
  server.js            服务器本体（零依赖，只用 Node 内置模块）
  启动联机服务器.bat    双击这个就行
  web/index.html       游戏页面（服务器会发给每个加入的人）
  client-net.src.js    联机模块的源码（已经内联进 web/index.html，
                       留在这里只是为了以后改起来方便）
  _harness.js          自动化测试：模拟多个客户端验证联机链路
  _test_server.js      服务器单元测试（房间、权限、断线清理）
  _test_client.js      测试用的极简 WebSocket 客户端

  改完 client-net.src.js 后要重新内联进页面，跑：
      python fix_game_bugs.py
  然后重新打包（rebuild-apk.bat / rebuild-windows.bat）

  不想让页面带联机代码？把 net/client-net.src.js 移走再跑
  fix_game_bugs.py 就会自动跳过联机接线（会打印「[8] 跳过」）。

════════════════════════════════════════════════════════
  版本 v1.1.5 ｜ 联机：房主权威 · 局域网 · 最多 4 人
  模式：一起打 AI（合作） / 互相开火（混战）
════════════════════════════════════════════════════════
