You are viewing a potentially older version of this package.
View all versions.
OnlineFlights
PEAK 联机航班 — 主菜单多人航班浏览面板,搜索并加入公开 Steam 大厅,支持房间密码、自定义房间名、地区中文显示、暂停菜单房间信息卡、Steam 头像加载
By AIAWAR
| Date uploaded | 3 months ago |
| Version | 1.2.1 |
| Download link | AIAWAR-OnlineFlights-1.2.1.zip |
| Downloads | 205 |
| Dependency string | AIAWAR-OnlineFlights-1.2.1 |
This mod requires the following mods to function
BepInEx-BepInExPack_PEAK
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301README
OnlineFlights — PEAK 联机航班
在 PEAK 主菜单添加一个多人航班浏览面板,可以搜索并加入其他玩家创建的公开 Steam 大厅,无需加好友即可一起登山。
功能
- 航班浏览面板:主菜单右侧滑出式面板,暖色羊皮纸/赤陶美学,锚点自适应布局
- 搜索公开大厅:自动查询全球公开 Steam 大厅(最多 200 个),支持按房间名/房主名关键词过滤
- 一键加入:点击卡片上的「加入」按钮直接加入大厅(有密码的房间需先输入密码)
- 房间信息卡:面板顶部显示当前房间详情(房间名、房主、地区中文、场景、人数、Photon 区域),支持复制邀请链接和房间码
- 暂停菜单增强:游戏内暂停菜单显示房间信息卡 + 玩家 Steam 头像
- 自定义房间:在 BepInEx 配置中设置自定义房间名和密码
- 公开大厅:自动将你创建的大厅设为公开,让其他玩家能搜索到
- 滚动播报栏:面板底部像素风滚动提示条(悬停暂停)
- 自动刷新:每 120 秒自动刷新航班列表,也可手动刷新
安装
- 确保已安装 BepInEx 5
- 将
OnlineFlights文件夹放入PEAK/BepInEx/plugins/目录 - 启动游戏即可
配置
在游戏内或 BepInEx/config/com.peakmod.onlineflights.cfg 中调整:
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 公开大厅 | true | 将创建的大厅设为公开 |
| 自定义房间名 | (空) | 房间显示名称 |
| 房间密码 | (空) | 加入时需输入的密码 |
| 面板宽度 | 880 | 面板宽度(像素) |
| 面板高度 | 480 | 面板高度(像素) |
| 面板X偏移 | 700 | 面板水平偏移 |
| 面板Y偏移 | 0 | 面板垂直偏移 |
使用
- 进入主菜单后,面板会在连接成功后自动滑出
- 点击主菜单左侧的篝火按钮可手动开关面板
- 点击卡片空白处复制加入链接
- 点击「加入」按钮直接加入大厅
- 按 Esc 关闭面板
技术信息
- BepInEx 5 / HarmonyX / netstandard2.1 / Unity 6
- 通过 SteamMatchmaking API 查询公开大厅
- 通过 steam://joinlobby 协议加入大厅
- 地区信息来自 Photon 区域代码,场景信息来自游戏原生元数据
- 按钮图标为 DLL 内嵌资源(OnlineFlights.FlightsButton.png)
注意事项
- Steam 头像:好友自动加载;非好友(缓存损坏时)走 HTTP 保底从
steamcommunity.com获取,国内直连需开启加速器
CHANGELOG
Changelog
[1.3.0] - 2026-07-29
新增
- 多语言支持:中文、英文、日语、德语、法语、西班牙语、葡萄牙语、乌克兰语共 8 种语言,自动检测 Steam 游戏语言切换
- 剪贴板加入卡片:房间列表首位新增剪贴板卡片,复制邀请链接后点击即可加入房间,SDF 圆角加号图标
- 标题栏面板标题和刷新按钮支持 TMP 自动缩放,防止长翻译文本溢出
- 面板标题、刷新按钮、加入按钮等多处 UI 文本国际化
优化
- 地区显示:中文环境下显示中文地区名(如"香港""日本"),其他语言显示 Photon 原始代码
- 房间卡片头像 56×56 → 60×60,人数文本显示区域更宽裕
- 加密房间按钮文本"码" → "密码",含义更清晰
- 剪贴板无链接提示"未识别到房间码" → "未检测到房间链接",与引导文案一致
- 密码房安全:设置了密码的房间不再允许点击卡片复制加入链接,防止绕过密码保护
- 地区解析顺序优化:具体国家(HK/TW)在大洲兜底(CN/AS)之前匹配,避免 StartsWith 子串误判
修复
- 剪贴板加入:提取最长数字序列作为大厅 ID(17-19 位),避免误取 7 位 AppID
- 像素字体缺少"+"字形导致加号不渲染,改用 SDF 纹理生成
- 面板标题和按钮文本在德语/乌克兰语等长翻译语言下溢出按钮边界
[1.2.1] - 2026-07-24
修复
- 面板恢复:设置树深层导航(主菜单→设置→模组配置→设置→主菜单)后面板正确恢复,
_inSettingsTree标志位防止内部导航覆盖预存状态 - Steam 头像错误码:
GetLargeFriendAvatar返回 -1 时不再视为有效句柄(改为h <= 0过滤)
优化
- 头像加载管线精简为三阶段:快速匹配 →
RequestUserInformation→ HTTP 保底(移除 10s 延迟重试和缓存刷新逻辑,总等待时间大幅缩短) - HTTP 保底超时 8s → 15s,图片下载加 1 次重试,适配加速器环境
- 房间元数据写入房主 Steam ID(
ownerSteamId),用于浏览端加载头像 - 自动刷新间隔 60s → 120s
- 代码清理:移除诊断日志、冗余注释、无用 using,DLL 110080 → 100864 字节(-8.4%)
[1.2.0] - 2026-07-23
新增
- 设置/制作人员名单打开时自动关闭航班面板,关闭后恢复显示(
_wasOpen状态记忆,面板原本关闭则不恢复) - 房间卡片头像:SteamID 缺失但房主名存在时,显示房主名首字而非「?」
- 房间介绍:房主可在 BepInEx 配置中设置介绍文本(默认 "Bing Bong~Bing Bong~"),写入大厅元数据
description键,卡片第三行滚动显示
修复
- Steam 头像加载:陌生人须先调
RequestUserInformation(steamId, false)请求头像数据,否则GetLargeFriendAvatar永远返回默认头像 - Steam 头像默认头像陷阱:
GetLargeFriendAvatar在异步请求完成前就返回默认头像的非零句柄,导致自定义头像永远不被加载。改为追踪句柄变化——句柄更新才重新提取,连续两轮稳定后才接受 - 暂停菜单「资料」/「好友」按钮点击串台:移除根部 Image 的 raycastTarget(相邻按钮中心距仅 38px,根部矩形重叠导致后创建的 AddFriendButton 截走 ProfileButton 点击),点击目标仅限 KickIcon 子对象
- KickIcon 缩放 0.7 → 0.9,补偿点击面积;ButtonHoverFX 悬停缩放同步更新
优化
- 房间卡片重做:宽度 270 → 250px,高度 84 → 100px;地区·人数移至头像正下方(10px 居中);房间名独占第一行全宽(168px,14→9px 自动缩放);加入按钮下移至与第二行对齐并左移;新增第三行「房间介绍」滚动文本(RectMask2D 裁剪,40px/s 右→左滚动,短文本居中不滚动)
- 卡片交互触感重做:CrispHover 取代 SpringHover(DOTween OutCubic 120ms 悬停 1.03x + 50ms 按压 0.97x + 100ms 释放,阴影同步,零弹簧振荡)
- 暂停菜单按钮悬停反馈:ButtonHoverFX(仅 IPointerEnter/Exit 两接口)取代 EventTrigger(16 接口),避免截断 Button 的 PointerDown/Up 状态追踪
- 跑马灯移除悬停暂停机制(删除 TickerHoverHandler 内部类及 viewport raycast),DLL 体积缩减
依赖
- BepInEx 5.4.23.5 → BepInExPack_PEAK 5.4.75301
[1.1.0] - 2026-07-22
清理与重构
- 移除点击外部关闭面板逻辑(该功能从未生效:Background 层 raycastTarget 始终为 false,EventSystem 轮询仅响应键盘/手柄 Submit)
- 移除全透明 Background 遮罩层(随点击外部关闭一同删除)
- 抽取
UIFactory.Place/Stretch/Fill布局辅助方法,收掉 FlightsPanel、RoomInfoHeader、FlightCard、RoomCodeDialog 中约 50 处 RectTransform 锚定八股 - 搜索过滤移除 RoomCode 匹配(房间密码不应被搜索框匹配)
- 纹理加载改为仅内嵌资源,删除外部 FlightsButton.png 覆盖加载路径及
System.IO依赖 - 移除 FlightInfo.Name 孤儿字段及相关解析代码
- 修正 FlightInfo 中 3 处过时的富presence注释
- 修正 BiomeNames 类摘要注释
体积
- DLL 98304 → 95744 字节(-2.6%)
- IL 41678 → 39259 字节(-5.8%)
[1.0.0] - 2026-07-18
首次发布
- 主菜单航班浏览面板(暖色羊皮纸/赤陶美学)
- Steam 公开大厅搜索(全球范围,最多 200 个)
- 按房间名/房主名关键词过滤
- 一键加入大厅(支持房间密码)
- 房间信息卡(房间名、房主、地区中文、场景、人数、Photon 区域)
- 暂停菜单房间信息 + 玩家 Steam 头像
- 自定义房间名和密码(BepInEx 配置)
- 强制公开大厅(双层 Harmony 补丁:Steam API 层 + 游戏代码层)
- 底部像素风滚动播报栏(悬停暂停)
- 每 60 秒自动刷新 + 手动刷新
- 主菜单篝火按钮(DLL 内嵌图标)
- 面板锚点自适应布局,支持配置宽高和偏移