跳到主要内容

为什么用云竞技

一个玩家,同一时间只有一个状态​

云竞技里每个玩家只会处在下面其中一种状态,而且同时只有一种:

状态怎么进入怎么离开
排队中/ca join、菜单点模式配到对手、/ca leave、逾时、下线
比赛中配对成功、切磋接受比赛结束、/ca leave(判负)、下线(判负)
观战中/ca spectate、观战菜单/ca leave、比赛结束、下线、直接去排队

进入「比赛中」或「观战中」时会拍下一份备份,这份备份只属于这个状态。离开状态时还原并删除,不会有第二份备份去覆盖它。 所以「观战到一半去排队」「阵亡后先离开、马上开下一场」这类操作,都不会把别场的备份拿错。

备份写进数据库​

备份在建立的当下就写进数据库(ca_restores 表),还原成功才删除:

  • 下线:比赛中下线算判负;重新上线时自动还原背包与位置。
  • 崩服 / 断电:服务器重开后,玩家一上线就还原。
  • 关服:正在比赛与观战的人会在关服前直接还原。
  • 多个子服共用 MySQL 时,备份记着是哪一台子服的,只会在同一台还原。

详细流程见 背包与还原。

死亡不掉落、盔甲不脱下​

比赛中死亡一律保留物品:

  • 公平模式:身上本来就是套装,结束时整个背包换回进场前的备份。
  • 巅峰模式:用的是自己的东西,死亡不掉落、盔甲也不会被脱进背包,结束后原样带走。

死亡后会自动重生在观战点;2V2 还有队友活着时可以旁观队友,比赛一结束就和大家一起还原。

公平就是同一套装​

公平模式排队时可以选套装,也可以选「随机」:

  • 两个人选了不同的套装,不会配在一起。
  • 选「随机」的人可以配任何人;双方都选随机时,开赛时随机抽一套,两边拿到的是同一套。
  • 进场前清空药水效果、补满血量与饱食度,套装附带的效果两边一样。

匹配模式虽然不显示分数,但也有隐藏分,配对时会优先把实力接近的人放在一起。

每个排位各自独立​

排位模式分数定级赛排行榜
公平排位 1V1独立独立独立
公平排位 2V2独立独立独立
巅峰排位 1V1独立独立独立
巅峰排位 2V2独立独立独立

2V2 排位用两队的平均分算胜率期望,然后每个人在自己的分数上加减,队友不会被改成同一个分数。

排队不会被一组人卡住​

  • 配对从等最久的人开始找;他暂时配不到(分数差太多、套装不同、同 IP),就换下一个人找,不会让整条队列一起等。
  • 开赛前有人进不来(下线、倒数中离开、带了黑名单物品),只取消这一场:其他人带着原本的排队时间回到队列最前面。
  • 倒数中离开排位赛的人有 30 秒冷却,避免看到对手就跑。

不拖慢服务器​

  • 所有数据库读写都在独立线程;PlaceholderAPI 变量(含排行榜)只读内存缓存。
  • 场地恢复只扫描场地本身的范围;支持 Folia 的区域线程。
  • 授权在背景验证,不会拖慢开服。