这是我个人的魔兽争霸3地图开发工具库。 当前版本 0.0.6
War3Lib 是一个用于开发魔兽争霸3地图的工具库。它提供了编译脚本、任务管理等功能,可以帮助开发者更高效地创建和管理魔兽争霸3地图项目。
- 强大的编译功能
- 灵活的任务管理系统
- 支持多个项目和地图
- 开源分享
- 完善的调试工具集
- 克隆仓库
- 安装所需的依赖(如 LuaFileSystem)
- 在命令行中运行编译任务:
lua Lua/tasks/TaskCompile.lua <项目根目录> <地图名称>
Compiler.lua: 负责编译流程,包括Wave预处理、Lua处理和JassHelper编译TaskCompile.lua: 编译任务的入口点,处理命令行参数并调用编译器depends/: 常用工具库目录debug/: 调试工具集logger.lua: 日志系统memory_leak.lua: 内存泄露检测hero_detector.lua: 英雄数据检测struct_detector.lua: 结构体检测
init.lua: 基础初始化slkutils.lua: SLK数据工具w2s.lua: 坐标转换工具IOUtils.lua: IO操作工具
War3Lib/
│
├── Lua/
│ ├── compile/ # 编译相关模块
│ │ ├── Compiler.lua # 核心编译器,处理地图编译流程
│ │ ├── TestControl.lua # 测试控制器,管理测试版本和环境
│ │ ├── UTReplace.lua # 单元测试替换工具
│ │ ├── W3xLni.lua # 地图格式转换工具
│ │ ├── Inject.lua # 代码注入工具
│ │ └── Launcher.lua # 游戏启动器
│ ├── tasks/ # 任务管理模块
│ │ ├── TaskCompile.lua # 编译任务
│ │ ├── TaskCreateUT.lua # 单元测试创建
│ │ ├── TaskLNI.lua # 地图LNI格式转换
│ │ ├── TaskOBJ.lua # 物编重构建
│ │ ├── TaskLaunch.lua # 游戏启动
│ │ └── TaskStartMap.lua # 地图启动(支持多版本)
│ ├── tools/ # 工具类模块
│ │ └── Backuper.lua # 文件备份还原工具
│ ├── model/ # 模型处理相关
│ │ ├── 1.32模型处理.lua # 1.32版本模型适配工具
│ │ ├── 转移模型.lua # 模型迁移工具
│ │ ├── 模型第1步_FBX.lua # FBX模型转换工具
│ │ ├── 模型第3步_压缩.lua # 模型压缩工具
│ │ ├── 模型测试.lua # 模型效果测试工具
│ │ └── 寻找模型贴图.lua # 模型贴图提取工具
│ ├── image/ # 图片处理工具
│ │ ├── ImageUtils.lua # 图片处理工具集
│ │ └── GIF生成器.lua # GIF动图制作工具
│ ├── utils/ # 通用工具类
│ │ ├── FileUtils.lua # 文件操作工具
│ │ └── copy.lua # 文件复制工具
│ └── path.lua # 项目路径管理器
│
├── jass/
│ ├── core/ # 核心模块
│ │ ├── timer/ # 计时器相关
│ │ │ ├── AC.j # 计时器事件总线(Action Controller)
│ │ │ └── AC_Test.j # AC单元测试
│ │ ├── constant/ # 常量定义
│ │ │ └── UNDefine.j # 单位相关常量定义
│ │ └── structs/ # 核心数据结构
│ │ └── RandSet.j # 随机集合工具(不重复随机数)
│ ├── utils/ # 实用工具集
│ │ ├── combat/ # 战斗相关工具
│ │ │ ├── DamageUtils.j # 伤害计算工具
│ │ │ ├── DamageUtils.cfg # 伤害系统配置
│ │ │ ├── GroupUtils.j # 单位组操作工具
│ │ │ └── GroupUtils.cfg # 单位组系统配置
│ │ ├── unit/ # 单位相关工具
│ │ │ ├── UnitUtils.j # 单位操作工具集
│ │ │ ├── UnitFilter.j # 单位筛选器
│ │ │ └── UnitFilter.cfg # 单位筛选配置
│ │ ├── debug/ # 调试工具集
│ │ │ ├── Logger.j # 日志系统(支持5个级别输出)
│ │ │ ├── MemoryLeak.j # 内存泄露检测工具
│ │ │ └── StructDetector.j # 结构体检测工具
│ │ └── math/ # 数学计算工具
│ │ ├── NumberUtils.j # 数值计算工具集
│ │ └── MapBoundsUtils.j # 地图边界计算工具
│ │ ├── ConversionUtils.j # 数据类型转换工具
│ │ └── ConversionUtils.cfg # 转换工具配置
│ ├── template/ # 测试模板文件
│ │ ├── MTTemplate.j # 模型测试模板
│ │ ├── UTTemplate.j # 单元测试模板
│ │ └── UTTemplate2.j # 高级单元测试模板(可视化)
│ └── InnerJapi.j # 内部JAPI接口定义
│
├── README.md # 项目说明文档
├── CHANGELOG.md # 更新日志
└── 编译流程图.MD # 编译流程说明文档
MTTemplate.j: 模型测试模板文件UTTemplate.j: 单元测试模板文件UTTemplate2.j: 高级单元测试模板文件,包含可视化测试模块
欢迎提出建议和改进意见。如果您有任何想法,请随时提交 Issue 或 Pull Request。
本项目采用 MIT 许可证。详情请见 LICENSE 文件。
v0.0.6 版本主要更新:
- 完善了依赖注入系统
- 修复了重复注入文件的问题
- 优化了路径处理机制
- 增强了调试功能