/x-template

Xavier's DOTA 2 modding template using typescript and react-panorama

Primary LanguageLuaMIT LicenseMIT

X-Template

Xavier 的 dota2 自定义游戏开发模板

License: MIT Version

前置条件

如果你要使用这个模板,除了掌握 V 社的开发工具以外,你还需要额外学会

  1. typescript, javascript 的语法
  2. react 的基础知识
  3. node.js的基础知识
  4. 学习一下react-panorama
  5. 学习一下TypeScriptToLua
  6. 了解一下 DOTA2 Typescript API,完成npm install后你可以查看node_modules/dota-lua-typesnode_modules/panorama-types
  • 当然,使用强类型语言需要你有更好的代码规范和写声明的觉悟 😉
  • 不过也能提升你的代码效率就是了

支持的功能

  1. excels文件夹的内容变成 kv 文件并放到game/scripts/npc文件夹
  2. localization文件夹的内容生成对应的语言文件并放到game/resources文件夹
  3. game/scripts/npc文件夹的内容同步到content/panorama/scripts/keyvalues.js
  4. 前端的content/panorama/src与后端的game/scripts/src文件夹分别用来写用户界面react源码和游戏逻辑的ts源代码

支持的指令

  1. npm run launch [[addon_name] map_name] 启动 dota2,两个参数为可选参数,如果提供了addon_name那么会载入指定的 addon(默认该项目),提供了map_name则会自动载入对应的地图名(若未提供addon_name则默认载入当前addon)
  2. npm run dev 进入 dev 模式,将会执行同步KV到js,生成localization,Excel转KV等操作
  3. npm run prod 执行发布操作,将会自动生成publish文件夹并自动 link 到dota_addons/you_addon_name_publish文件夹,之后你可以选择这个文件夹发布(可以在package.json -> dota_developer中对发布进行一些设置)。

使用步骤

  1. 点击使用本项目作为模板生成你自己的项目或者 fork 本项目
  2. 安装node.js,要求是 above Node v14.10.1 因为低于这个版本的没有测试过
  3. clone 生成或者 fork 的项目
  4. 打开package.json,将name修改为你自己喜欢的名字
  5. 执行npm install安装依赖,他应该会自动 linkcontent,game文件夹到你的dota 2 beta/dota_addons,(如果碰到权限问题,请尝试重启)
  6. npm run dev,开始你的开发

文件夹内容

  • content 会和 dota 2 beta/content/dota_addons/your_addon_name 同步更新
  • game 会和 dota 2 beta/game/dota_addons/your_addon_name 同步更新
  • shared 用来写panorama tststl公用的声明,如custom_net_tables
  • excels 用来写 KV 表
  • localization 用来写各种本地化文本
  • scripts 各种 node 脚本,用来完成各种辅助功能

其他的工作

  1. 如果你需要加密,请自行修改scripts/publish.js
  2. 欢迎提issues
  3. 欢迎贡献代码

鸣谢