X-Template
Xavier 的 dota2 自定义游戏开发模板
前置条件
如果你要使用这个模板,除了掌握 V 社的开发工具以外,你还需要额外学会
typescript
,javascript
的语法react
的基础知识node.js
的基础知识- 学习一下react-panorama
- 学习一下TypeScriptToLua
- 了解一下
DOTA2 Typescript API
,完成npm install
后你可以查看node_modules/dota-lua-types
和node_modules/panorama-types
- 当然,使用强类型语言需要你有更好的代码规范和写声明的觉悟 😉
- 不过也能提升你的代码效率就是了
支持的功能
- 将
excels
文件夹的内容变成 kv 文件并放到game/scripts/npc
文件夹 - 将
localization
文件夹的内容生成对应的语言文件并放到game/resources
文件夹 - 将
game/scripts/npc
文件夹的内容同步到content/panorama/scripts/keyvalues.js
支持的指令
npm run launch [--a addon_name] [--m map_name]
启动 dota2,如果提供了addon_name
那么会载入指定的 addon(默认该项目),提供了map_name
则会自动载入对应的地图名npm run dev
进入 dev 模式,将会执行同步KV到js,生成localization,Excel转KV等操作
npm run prod
执行发布
操作,将会自动生成publish
文件夹并自动 link 到dota_addons/you_addon_name_publish
文件夹,之后你可以选择这个文件夹发布
使用步骤
- 点击使用本项目作为模板生成你自己的项目或者 fork 本项目
- 安装
node.js
,要求是 above Node v14.10.1因为低于这个版本的没有测试过 - clone 生成或者 fork 的项目
- 打开
package.json
,将name
修改为你自己喜欢的名字 - 执行
npm install
安装依赖,他应该会自动 linkcontent
,game
文件夹到你的dota 2 beta/dota_addons
,(如果碰到权限问题,请尝试重启) npm run dev
,开始你的开发
文件夹内容
- content 会和
dota 2 beta/content/dota_addons/your_addon_name
同步更新 - game 会和
dota 2 beta/game/dota_addons/your_addon_name
同步更新 - declaration 用来写
panorama ts
和tstl
公用的声明,如custom_net_tables
等 - excels 用来写 KV 表
- localization 用来写各种本地化文本
- scripts 各种 node 脚本,用来完成各种辅助功能
其他的工作
- 如果你需要加密,请自行修改
scripts/publish.js
- 欢迎提
issues
- 欢迎贡献代码
鸣谢
- ModDota Community
- https://github.com/ark120202 开发的
react-panorama
和对 API 的维护 - 有部分代码来自 https://github.com/MODDOTA/TypeScriptAddonTemplate