200 lines
3.6 KiB
Markdown
200 lines
3.6 KiB
Markdown
# 积分赛最小配置模板
|
||
|
||
本文档提供一份 **积分赛(`score-o`)最小可跑配置模板**。
|
||
|
||
目标:
|
||
|
||
- 只保留积分赛跑通所需的最少字段
|
||
- 适合快速起活动、联调、排查配置链
|
||
- 每个字段都带简要说明
|
||
|
||
---
|
||
|
||
## 1. 最小模板
|
||
|
||
```json
|
||
{
|
||
"schemaVersion": "1",
|
||
"version": "2026.03.30",
|
||
"app": {
|
||
"id": "sample-score-o-minimal-001",
|
||
"title": "积分赛最小示例"
|
||
},
|
||
"map": {
|
||
"tiles": "../map/lxcb-001/tiles/",
|
||
"mapmeta": "../map/lxcb-001/tiles/meta.json"
|
||
},
|
||
"playfield": {
|
||
"kind": "control-set",
|
||
"source": {
|
||
"type": "kml",
|
||
"url": "../kml/lxcb-001/10/c01.kml"
|
||
}
|
||
},
|
||
"game": {
|
||
"mode": "score-o",
|
||
"punch": {
|
||
"policy": "enter-confirm",
|
||
"radiusMeters": 5
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 字段说明
|
||
|
||
### `schemaVersion`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:配置结构版本
|
||
- 当前建议值:`"1"`
|
||
|
||
### `version`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:配置版本号
|
||
|
||
### `app.id`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:活动配置实例 ID
|
||
|
||
### `app.title`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:活动标题 / 比赛名称
|
||
|
||
### `map.tiles`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:地图瓦片根路径
|
||
|
||
### `map.mapmeta`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:地图 meta 文件路径
|
||
|
||
### `playfield.kind`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:空间对象类型
|
||
- 积分赛固定使用:`control-set`
|
||
|
||
### `playfield.source.type`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:空间底稿来源类型
|
||
- 当前推荐值:`kml`
|
||
|
||
### `playfield.source.url`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:KML 文件路径
|
||
|
||
### `game.mode`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:玩法模式
|
||
- 积分赛固定值:`score-o`
|
||
|
||
### `game.punch.policy`
|
||
|
||
- 类型:`string`
|
||
- 必填:是
|
||
- 说明:打点策略
|
||
- 当前常用值:
|
||
- `enter-confirm`
|
||
- `enter`
|
||
|
||
### `game.punch.radiusMeters`
|
||
|
||
- 类型:`number`
|
||
- 必填:是
|
||
- 说明:打点判定半径,单位米
|
||
- 建议默认值:`5`
|
||
|
||
---
|
||
|
||
## 3. 当前默认逻辑
|
||
|
||
如果你不写下面这些字段,积分赛会按当前客户端默认逻辑运行:
|
||
|
||
- `map.declination`
|
||
- 默认按 `0` 处理
|
||
- `map.initialView.zoom`
|
||
- 默认由客户端初始视口逻辑接管
|
||
- `playfield.CPRadius`
|
||
- 默认按客户端内置值处理
|
||
- `playfield.controlOverrides.*.score`
|
||
- 没配时走 `game.scoring.defaultControlScore` 或玩法默认值
|
||
- `game.session.*`
|
||
- 默认手动开始
|
||
- `game.guidance.allowFocusSelection`
|
||
- 默认按积分赛逻辑允许选点
|
||
- `game.finish.finishControlAlwaysSelectable`
|
||
- 默认按积分赛逻辑处理终点可选
|
||
- `resources.*`
|
||
- 默认 profile
|
||
- `debug.*`
|
||
- 默认关闭
|
||
|
||
---
|
||
|
||
## 4. 推荐补充字段
|
||
|
||
如果你要让积分赛更接近正式活动,通常很快会补这几项:
|
||
|
||
```json
|
||
{
|
||
"playfield": {
|
||
"controlOverrides": {
|
||
"control-1": {
|
||
"score": 10
|
||
},
|
||
"control-2": {
|
||
"score": 20
|
||
}
|
||
}
|
||
},
|
||
"game": {
|
||
"scoring": {
|
||
"type": "score",
|
||
"defaultControlScore": 10
|
||
},
|
||
"guidance": {
|
||
"allowFocusSelection": true
|
||
},
|
||
"finish": {
|
||
"finishControlAlwaysSelectable": true
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 适用场景
|
||
|
||
这份模板适合:
|
||
|
||
- 快速验证积分赛主流程
|
||
- 联调自由选点、积分累加、终点结束
|
||
- 后台先跑通最小积分赛配置
|
||
|
||
如果要看更完整版本,请继续参考:
|
||
|
||
- [D:\dev\cmr-mini\doc\config-template-full-current.md](D:/dev/cmr-mini/doc/config-template-full-current.md)
|
||
- [D:\dev\cmr-mini\event\score-o.json](D:/dev/cmr-mini/event/score-o.json)
|