来源:
data/AGENTS.md
data/mods/AGENTS.md
doc/MODDING.md
data/mods/TEST_DATA/modinfo.json
data/mods/TEST_DATA/effect_on_condition.json
Makefile
data/reference/json/ccb_json_object_types.json
data/reference/json/ccb_eoc_conditions.json
data/reference/json/ccb_eoc_effects.json
commit d32b9cc880a8
source-and-tests
完整 JSON/EOC Mod 教程¶
本教程的维护样例位于 CCB-Docs 的 examples/complete-json-eoc-mod/,包含两个文件:
1. 声明 Mod¶
modinfo.json 是完整 JSON 数组;ID 使用项目专用前缀,并明确依赖 core dda:
[
{
"type": "MOD_INFO",
"id": "ccb_docs_json_eoc_example",
"name": "CCB Docs JSON/EOC Example",
"authors": [ "CCB contributors" ],
"description": "A minimal contract-tested EOC mod used by the bilingual developer documentation.",
"category": "misc_additions",
"dependencies": [ "dda" ]
}
]
2. 添加 EOC¶
eocs.json 定义一个不会自动触发的 activation EOC,因此加载样例不会改变正常游戏流程:
[
{
"type": "effect_on_condition",
"id": "EOC_CCB_DOCS_HELLO",
"eoc_type": "ACTIVATION",
"condition": { "math": [ "1 == 1" ] },
"effect": [ { "u_message": "The CCB Docs example EOC ran." } ]
}
]
3. 验证维护样例¶
在 CCB-Docs 根目录运行;把路径替换为包含 PR #566 提交的 CCB clone:
# validation: docs-json-eoc-example
python3 scripts/check_json_eoc_example_mod.py --source-repo /path/to/Cataclysm-Cleanwater-Bomb
该检查真实解析两个 JSON 文件,并确认 MOD_INFO、effect_on_condition、math、
u_message 都存在于固定提交的生成清单。它刻意不声称执行了游戏 loader。
在 CCB 根目录运行基础仓库检查:
当前 json-check 不扫描 CCB-Docs 外部样例。最终发布前还必须把目录放入 CCB 支持的
第三方 Mod 位置,并调用真实 loader:
# validation: json-mod-load
ccb_source=/path/to/Cataclysm-Cleanwater-Bomb
ccb_example_user=/tmp/ccb-docs-example-user
mkdir -p "$ccb_example_user/mods"
cp -R examples/complete-json-eoc-mod "$ccb_example_user/mods/ccb_docs_json_eoc_example"
"$ccb_source/cataclysm" --basepath "$ccb_source/" --userdir "$ccb_example_user/" --check-mods ccb_docs_json_eoc_example
--check-mods 成功后,再在测试世界中启用 dda + 本 Mod,验证实际触发行为并保存日志。