游戏更新 · 文章更新日期
更新要点
- 保存现在比较合并后的实际进度与云端内容。云端时间较新,也不会再把本机尚未上传的票券、金币和宝可梦误判为已经保存。同一浏览器、云账号模式下的标签页通过 storage 事件立即合并改动;不同设备仍在打开游戏或处理保存冲突时合并,没有新增持续跨设备监听。使用同一账号,换设备前点击保存;显示“待保存”或“离线”时保留原浏览器副本。
- 上传数据现在适配既有服务器上限:整数时长1~86400秒,等级1~10+floor(时长/4),击败数0~100+12×时长。例如2400秒、击败40000只的记录会上传28900只,2400秒时长保留,避免因击败速度过快整条记录被拒。这不会削弱实战伤害或改变计算器。普通榜仍要求至少120秒,单宝可梦榜至少600秒;网络或其他校验仍可能使上传失败。
- 主机超过3秒未收到队友数据帧,会把该队友标为静默;普通敌人和审判阿尔宙斯选择存活目标时会跳过它,收到新帧即清除标记。这与既有45秒连接失败恢复期分别处理,并不赋予通用伤害免疫。原版新房间以主机账号ID命名,每个账号主持一个房间;客人在加入或恢复成员记录前写入自己的 rin 加入标记,离开时清除。原有直连/TURN及房间恢复时序保留。
- 审判每次更新都会把本地玩家(包括客人)限制在距场心(24−1.4)=22.6格的半径内,不能再靠高速跑出场地无限生存。敌人和阿尔宙斯选目标时也会跳过静默队友。这两次提交未改变石板概率、伤害记分缩放、传说敌人成长、道具破坏时序,以及任何招式/种族值公式。
跨设备与浏览器标签页保存
保存现在比较合并后的实际进度与云端内容。云端时间较新,也不会再把本机尚未上传的票券、金币和宝可梦误判为已经保存。同一浏览器、云账号模式下的标签页通过 storage 事件立即合并改动;不同设备仍在打开游戏或处理保存冲突时合并,没有新增持续跨设备监听。使用同一账号,换设备前点击保存;显示“待保存”或“离线”时保留原浏览器副本。
两个设备重复花掉旧余额,曾可能留下负账本,导致后续保存凭空增加数量或扣掉新收益。新代码通过 led.fix 一次性修复该欠额;合并时取计数器最大值,同一修复不会重复累加。票券、金币、背包物品及招式学习器数量均按账本余额恢复。内容未变时,即使本地更新时间变化,点击保存也会跳过云写入;公开资料昵称未变时,也会跳过昵称登记表查询。
启动时首次读取云端失败,会保留本机副本并安排最多10次重试:首次等待10秒,之后指数退避,每次间隔最多10分钟。读取成功后合并云端内容,剩余本地进度仍需手动保存。这只针对失败的启动读取;正常运行不会因此持续轮询其他设备。重试耗尽后,先保留本地数据,再在网络恢复时重新打开。原有存档修订号、写入限制和冲突重试规则继续有效。
排行榜:合法上传与最佳成绩显示
上传数据现在适配既有服务器上限:整数时长1~86400秒,等级1~10+floor(时长/4),击败数0~100+12×时长。例如2400秒、击败40000只的记录会上传28900只,2400秒时长保留,避免因击败速度过快整条记录被拒。这不会削弱实战伤害或改变计算器。普通榜仍要求至少120秒,单宝可梦榜至少600秒;网络或其他校验仍可能使上传失败。
浏览器不额外读取服务器,就会合并已缓存的短周期摘要:历史榜吸收月/周/日榜,月榜与周榜各吸收日榜。周可能跨月,因此不会整周复制到月榜;时间与阿尔宙斯伤害摘要都适用。部分历史成绩仍延迟6小时上传,但待上传的更佳单人成绩会立即显示,较差新局不能覆盖它;缓存仍为2小时。日/周/月和单宝可梦好友榜使用保留的榜单摘要,历史时间好友榜可另查总榜前50名以外的好友。伤害好友榜仍筛选伤害摘要,没有单宝可梦伤害榜。本站 Challenge 积分独立。
静默队友与有界房间信令
主机超过3秒未收到队友数据帧,会把该队友标为静默;普通敌人和审判阿尔宙斯选择存活目标时会跳过它,收到新帧即清除标记。这与既有45秒连接失败恢复期分别处理,并不赋予通用伤害免疫。原版新房间以主机账号ID命名,每个账号主持一个房间;客人在加入或恢复成员记录前写入自己的 rin 加入标记,离开时清除。原有直连/TURN及房间恢复时序保留。
配套 Realtime Database 规则检查成员身份和主客信令方向,校验成员字段、最多24字符昵称,并将每组发送者/接收者限制在100个循环槽位,每条消息最多16000个 JavaScript 字符串单位。这些是源码定义的信令限制;原版运营方决定何时部署后台规则,本站同步既不部署这些规则,也不声称已验证其线上执行。客户端容忍 rin 标记写入被旧规则拒绝,以维持兼容。
审判会把每个本地玩家限制在竞技场内
审判每次更新都会把本地玩家(包括客人)限制在距场心(24−1.4)=22.6格的半径内,不能再靠高速跑出场地无限生存。敌人和阿尔宙斯选目标时也会跳过静默队友。这两次提交未改变石板概率、伤害记分缩放、传说敌人成长、道具破坏时序,以及任何招式/种族值公式。
手柄抽卡与触屏双摇杆
10月25日原版修复了手柄在“继续”后自动选中消耗票券的抽卡按钮;现在需主动移动到×10或×100。抽卡动画可选择跳过和继续,B也可继续。宝珠槽显示X使用当前宝珠、Y切换。手机在设置→无障碍中恢复手动瞄准:浮动摇杆左半屏移动、右半屏瞄准;固定摇杆模式在移动摇杆区域以外瞄准。松开瞄准手指后恢复自动索敌,连锁和陨石招式仍自动选目标。等级、道具或羁绊卡打开时,可在框外提前握住移动摇杆,但不会跳过选择暂停。竖屏顶部栏改为两行,金币、票券和昵称可见。
合作选择恢复与客人天气
客人现在每个普通数据帧都带上已选完的等级轮次及道具/羁绊选择等待状态;“选完了”通知丢失后,下一帧可恢复,不再永久卡住全队,旧客户端仍依赖原通知。日照、降雨、扬沙和降雪特性作为客人也能请求天气。每个本地召唤天气特性在开局及每180秒活跃时间检查,没有现存天气时触发60秒天气;房主校验天气ID,并对每个客人至少间隔60秒接受请求。此次修复改变天气能否触发,不改变天气伤害/属性倍率;计算器应选择场上实际天气。
如何看待结算伤害与DPS
原版现在为单人和合作对局显示结算摘要,可按标签查看有可用快照的队友。每招显示实际记入的伤害和DPS=伤害÷max(5,对局秒数−学会该招的秒数),显示时取整。例如900秒结算、300秒学会的招式累计12000伤害,显示20/秒,而非12000÷900。辅助招式显示横线;总伤害累加当前列出的伤害招式。网络快照最多8招,对时间与伤害取整,约每5秒刷新,并随结算发送,掉线队友可能保留较旧快照。这是实战记账,与本站计算器的条件输出、阿尔宙斯团队排行榜伤害分别理解。
公开资料与重复邀请
公开资料的纪录、奖章自动发布改为最多每6小时一次;自己的本地显示仍立即更新,显式强制更新另行处理。同一房间20秒内重复邀请同一好友,会跳过重复写入;邀请仍3分钟过期,退出清理跳过已过期的发送记录。Firestore源码把管理员封禁检查放到进入可见前50名摘要时,而非每条存储成绩;这不允许被封账号进入前50名。后台规则仍由原版运营方部署。
收藏招式详情与菜单窗口
更新日志将这组界面改善归在10月24日,但代码实际于10月25日的dc3029a7提交合入。收藏详情中可学习招式图标从16增至32像素;鼠标悬停或手机点击可看名称、属性、适用时的物理/特殊分类及描述,再次点击、点别处或滚动可收起。它展示现有合法学习池(含已教学的兼容招式学习器),不会额外授予招式。变隐龙商店和更新窗口在顶部栏下方显示,包括手机竖屏。菜单、设置、更新和支持等窗口仅在按下与松开都发生于暗色背景时关闭,从框内拖出不会关闭;手柄B/返回行为保留。
原版YouTube直播标记
680c3e12修复原版频道直播标记:只把可播放且正在直播、并非仅预约的视频判为直播,也能识别直播结束后的普通频道页。上游工作流仍每5分钟检查,无法识别响应时保留之前结果。这说的是原版游戏频道按钮,与本站独立运营的YouTube频道不同,也不表示此刻正在直播。
适用版本与来源
行为说明覆盖原版d567c6da至680c3e12完整7次提交,发布标记6b6bde6e28。实体数值、招式/进化规则及计算器数值公式沿用d567c6da提取;player/game改动涉及天气触发、输入和结算摘要。13个工具全部保留。嵌入的社区独立版及本站本地收藏/分享状态分别维护,不会自动继承原版账号、云端和排行榜修复。原版源码测试采用隔离模拟,不使用真实玩家账号。
相关页面
上一次与下一次更新
游戏数据与来源
链接中的游戏文件说明这些数值、费用和规则的来源。游戏更新后可能发生变化。
数据版本: d567c6da
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/core/db.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/ranking.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/ranking-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/social.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/net.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/net/coop.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/entities/enemy.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/entities/player.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/game.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/core/gamepad.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/core/touch.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/hud.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/menu.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/run-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/settings-ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/ui/ui.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/systems/judgment.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/database.rules.json
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/firestore.rules
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/js/data/changelog.js
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/.github/workflows/live.yml
- https://github.com/JPTER78/pokesurvivor/blob/680c3e12c670a0f131ec846c43248372853389b1/version.json