Skip to content

Repository files navigation

Dota 2 地图项目模板

这是由 Dota 2 自定义地图开发手册 确定性导出的最小 Dota 2 自定义地图项目模板。它提供 Lua 入口、示例技能与 Modifier、KV 配置、Panorama HUD,以及初始化和静态检查脚本。

Verification status: script-tested. 模板已通过自动化静态检查,但尚未在当前 Dota 2 Workshop Tools 中完成地图构建和游戏内运行验证。

开始使用

1. 创建自己的仓库

点击 GitHub 页面上的 Use this template,选择 Create a new repository,然后克隆新仓库。不要在本模板仓库中直接开发自己的地图。

2. 初始化 Addon 内部名

在新仓库根目录运行:

powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/initialize-addon.ps1 `
  -AddonName "my_custom_game"

内部名必须以小写字母开头,只包含小写字母、数字和下划线,长度为 3 到 64 个字符。初始化脚本将:

  • 替换模板中的 __ADDON_NAME__
  • 写入 .addon-name,防止重复初始化。
  • 自动运行静态检查。
  • 在检查失败时恢复本次修改。

3. 接入 Workshop Tools

先在 Dota 2 Workshop Tools 中创建或确认同名 Addon。模板目录对应关系:

仓库/game/     -> <DOTA_ROOT>/game/dota_addons/my_custom_game/
仓库/content/  -> <DOTA_ROOT>/content/dota_addons/my_custom_game/

首次合入前先比较现有目录,不要覆盖未提交的 Hammer 地图、工具配置或资源。<DOTA_ROOT> 是 Steam 中 Dota 2 的实际安装目录,不要直接照抄其他机器的盘符。

4. 运行检查

powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/check-addon.ps1 `
  -GameAddonPath ./game `
  -ContentAddonPath ./content

检查通过后,继续在 Hammer 中创建和构建地图,并在 Dota 2 中验证 Lua、KV、Panorama、重连和多人行为。

模板内容

game/
|-- scripts/vscripts/addon_game_mode.lua
|-- scripts/vscripts/abilities/template_damage.lua
|-- scripts/vscripts/modifiers/modifier_template_slow.lua
`-- scripts/npc/npc_abilities_custom.txt

content/
`-- panorama/
    |-- layout/custom_game/custom_ui_manifest.xml
    |-- layout/custom_game/template_hud.xml
    |-- styles/custom_game/template_hud.css
    `-- scripts/custom_game/template_hud.js

scripts/
|-- initialize-addon.ps1
`-- check-addon.ps1

模板故意不包含:

  • Hammer 地图和编译产物。
  • 本地化根文件和玩家可见示例文本。
  • Workshop 发布配置或 Workshop Item 身份。
  • Valve 游戏资源。

这些内容依赖当前 Workshop Tools 生成结果和你的项目设计,不能由静态模板安全预设。

下一步

模板由手册仓库单向导出。模板缺陷应在手册仓库修复,再通过发布流程同步;不要在生成仓库中维护分叉版本。

许可

模板代码采用 MIT License。Dota 与 Dota 2 的商标、游戏资源及其他 Valve 内容不包含在本授权中。