Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>W3xTgNew to Visual Studio Code? Get it now.
W3xTg

W3xTg

Tichy

|
1 install
| (0) | Free
TG - Warcraft III 地图开发一体化工具,支持地图解压/编辑/打包/测试全流程
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

W3xTg — Warcraft III 地图开发一体化工具

TG 是一款专为《魔兽争霸 III》地图开发者打造的 VS Code / Trae 插件,集成地图解压 → 编辑 → 打包 → 测试全流程工作流,提供 3D 模型预览、SLK 数据表可视化编辑、触发器查看、Lua 悬停提示等丰富功能。


✨ 功能一览

�️ 地图开发全流程

功能 说明
打开地图 选择 .w3x / .w3m 文件,一键解压到当前工作区目录
保存地图 将工作区打包为 .w3x 地图文件
地图另存 另存为新的地图文件
加密 对地图 Lua 做自包含加密外壳(点开选 加密保存 / 加密另存 / 运行加密地图)
测试地图 一键启动游戏测试,支持 KKWE 和 YDWE 两种启动方式
打开编辑器 用 KKWE / YDWE 编辑器打开当前地图
代码注入 配置 injectCode,保存时自动注入到 war3map.j 的 main 函数末尾

🎮 3D 模型预览 (MDX / MDL)

  • 自定义编辑器:双击 .mdx / .mdl 文件即可在编辑器内预览 3D 模型
  • 完整渲染引擎:基于 mdx-m3-viewer,支持动画、粒子、队伍色等
  • 模型缩略图:自动生成并缓存模型缩略图,供悬停提示等场景使用
  • 悬停实时预览:在 Lua 代码中悬停模型路径字符串,右侧 Beside 面板实时显示 3D 预览
  • 本地资源管理:配置 localResourceDir,在模型选择器中浏览本地模型库

🖼️ 图片预览与格式转换

支持 BLP / TGA / PNG / JPG 四种格式的预览与互转:

  • 自定义编辑器:双击图片文件直接预览
  • Alpha 通道查看:一键切换「显示透明度」与「显示 Alpha 通道」模式
  • 描边效果:为透明图标添加描边,支持多种颜色切换
  • 格式互转:右键菜单一键转换为 PNG / TGA / BLP 格式
  • BLP 图标缓存:从 WC3 安装目录的 MPQ 中批量提取技能/物品图标并缓存

📊 SLK 数据表可视化编辑器

告别枯燥的 INI 文本编辑,提供可视化的对象数据编辑器:

  • 🏹 技能编辑器 (ability.ini)
  • 💊 Buff 编辑器 (buff.ini)
  • 🏗️ 可破坏物编辑器 (destructable.ini)
  • 🌳 装饰物编辑器 (doodad.ini)
  • 💎 物品编辑器 (item.ini)
  • ⚙️ 杂项编辑器 (misc.ini)
  • 👤 单位编辑器 (unit.ini)
  • ⬆️ 升级编辑器 (upgrade.ini)
  • 🎯 命令编辑器 (order.ini)

双击对应 INI 文件即可打开可视化编辑器,模型/贴图字段支持选择器浏览与预览。

🔧 触发器查看器 (WTG)

  • 双击 .wtg 文件,以结构化树形视图查看触发器内容
  • 支持事件、条件、动作的分类展示
  • 函数名与参数自动解析,关联 TriggerData 函数签名表

📋 地图信息查看器

  • w3i.ini:地图信息可视化查看(玩家、队伍、地形等)
  • imp.ini:导入文件列表查看

💻 Lua 悬停提示

在 Lua 代码中,鼠标悬停即可获得:

  • 函数 / 常量中文说明:基于内置的 WorldEditStrings.txt 和 WorldEditGameStrings.txt
  • 模型路径预览:悬停模型路径字符串,显示缩略图 + 「查看 3D 模型」链接
  • 图标预览:悬停贴图路径,自动显示 BLP/TGA 图标预览

💾 本地存档编辑器

  • 可视化编辑 dz_w3_plugin.ini(DzAPI 存档配置)
  • 支持增 / 删 / 改键值对
  • 自动定位存档文件路径(优先使用配置的 wc3Dir)

⌨️ 状态栏快捷按钮

扩展激活后,编辑器底部状态栏会出现一排快捷按钮:

📦 打开地图  💾 保存地图  💾 地图另存  🔒 加密  🧪 测试地图  ✏️ 打开编辑器

🚀 快速开始

安装

  1. 打开 VS Code / Trae 的插件市场
  2. 搜索 W3xTg
  3. 点击「安装」

首次配置

  1. 打开设置(Ctrl+,),搜索 W3xTg
  2. 配置 Warcraft III 安装目录 (W3xTg.wc3Dir),插件会自动检测常见路径
  3. 配置 KKWE 或 YDWE 路径(用于测试地图和打开编辑器)
  4. 可选:配置 本地资源根目录 (W3xTg.localResourceDir),用于模型选择器浏览本地模型

使用流程

  1. 新建或打开一个工作区目录(作为地图解压后的工作目录)
  2. 点击状态栏「📦 打开地图」按钮,选择一张 .w3x 地图
  3. 等待解压完成,工作区中会出现地图的所有源文件
  4. 编辑:直接修改 Lua 脚本、INI 数据表等
  5. 保存:点击「💾 保存地图」打包回 .w3x
  6. 测试:点击「🧪 测试地图」一键启动游戏测试

⚙️ 配置项说明

配置项 类型 默认值 说明
W3xTg.wc3Dir string "" Warcraft III 安装目录(含 war3.mpq)
W3xTg.localResourceDir string "" 本地资源根目录,模型选择器「本地资源」页读取该目录下的模型
W3xTg.injectCode string "" 注入到 war3map.j main 函数末尾的代码
W3xTg.useKKWE boolean true 使用 KKWE 路径测试地图(否则使用 YDWE)
W3xTg.kkwePath string "" KKWE 可执行文件路径
W3xTg.kkweWindowMode string "全屏模式" KKWE 测试窗口模式:全屏模式 / 窗口化全屏 / 适用分辨率窗口
W3xTg.kkweRenderingEngine string "Direct3D 8" KKWE 渲染引擎:Direct3D 8 / Direct3D 9 / OpenGL
W3xTg.kkweTestMode string "单机测试" KKWE 测试模式:单机测试 / 单人局域 / 多人局域
W3xTg.kkweFastLoad boolean true KKWE 快速加载
W3xTg.kkweSLK boolean false KKWE 启用 SLK 优化格式
W3xTg.kkweWideScreen boolean true KKWE 宽屏支持
W3xTg.kkweLockMouse boolean false KKWE 锁定鼠标到窗口内
W3xTg.kkweDisableSecurity boolean false KKWE 禁用安全访问提示
W3xTg.ydwePath string "" YDWE 可执行文件路径

📚 Lua 函数库

专为 TG 插件设计的魔兽争霸 3 Lua 函数库,提供丰富的 Lua API,助力地图开发:

👉 TG_lua


🛠️ 命令列表

按 Ctrl+Shift+P 打开命令面板,输入 W3xTg 查看所有命令:

命令 说明
W3xTg.openMap 打开地图
W3xTg.saveMap 保存地图
W3xTg.saveMapAs 地图另存
W3xTg.encryptMenu 加密 Lua(弹窗选择:加密保存 / 加密另存 / 运行加密地图)
W3xTg.testMap 测试地图
W3xTg.openEditor 打开编辑器
W3xTg.rebuildIconCache 重建 BLP 图标缓存
W3xTg.viewImage 查看图片 (BLP/TGA→PNG)
W3xTg.convertToPng 转换为 PNG
W3xTg.convertToTga 转换为 TGA
W3xTg.convertToBlp 转换为 BLP
W3xTg.viewModel 查看 3D 模型 (MDX/MDL)
W3xTg.buildModelThumbnails 生成模型缩略图
W3xTg.openModelPreview 打开 3D 模型预览
W3xTg.openLocalSave 本地存档 (dz_w3_plugin.ini)

🔐 Lua 加密(W3xTg.encryptMenu)

状态栏 $(lock) 加密 按钮或命令面板 W3xTg.encryptMenu 可对当前地图的 Lua 进行加密。直接打开 w3x2lni 工程目录(如 电炸园区)即可点击,无需先「打开地图」解压 .w3x。

注:加密只做一层——Lua 源码加密后由 w2l obj 打包成 .w3x。不再走 SLK 第二层(SLK 优化已废弃,避免二次处理)。

  1. Lua 加密(合并为单一加密 bundle,三层加固):把工作区内所有 .lua 的源码合并进一个加密文件 map/__w3xtg_bundle.lua(其余每个原 .lua 仅保留 2 行 stub)。引擎 require 优先查 package.preload 加载合并后的代码,加载顺序、全局变量、返回值、缓存语义与原「逐文件 require」完全一致——效果不变。在此基础上叠加三层防护:
    • T1 字节码:每个模块先由同工具链的 Lua 5.4 编译器编译成去调试信息的字节码再加密。文件里不再有可读源码,反编译只能得到脏逻辑。
    • T2 算法与密钥移入原生 DLL:xorshift128 密钥流与主密钥 KEK 整体移入编译好的 w3xtg_crypto.dll,TS 侧不再持有密钥常量或算法实现。每张地图生成完全不同的 Lua 解密器(KEK 以算术表达式出现、标识符带随机后缀、注入死代码),且解密器本身也编译为字节码嵌入,地图内无明文算法、无明文密钥。
    • T3 逐图随机数据密钥:加密时生成逐图随机的 dataKey,由 DLL 内 KEK 包裹后嵌入外壳(XOR 自逆,解包裹用同一函数)。一张图的密钥被抠出不影响其他图。加解密使用非标准 xorshift128 密钥流 XOR(保留 4 字节小端长度头),无标准算法特征。

弹窗提供两种动作:

动作 行为
W3xTg加密保存 输出 原名_enc.w3x,与当前地图/工作区同目录(持久保存)
运行W3xTg加密地图 先打包并保存为 原名_enc.w3x(同目录),再直接启动游戏测试该加密地图

注:运行W3xTg加密地图 用的就是落盘后的 原名_enc.w3x,不再使用临时文件——避免出现「地图路径没用到 / 加密 w3x 找不到」的问题。

重要约定:

  • 工作区保持不动。加密前会把整个工作区复制到扩展的 globalStorage/encrypt_cache/<地图名> 缓存目录(如 C:\Users\<用户>\AppData\Roaming\Trae CN\User\globalStorage\tichy.w3xtg\encrypt_cache\电炸园区),所有操作都在缓存目录上进行。完成后可打开该目录查看:加密后的核心代码在 __w3xtg_bundle.lua,其余 .lua 为 stub。缓存移至扩展目录,可避免工程目录被 IDE 文件监视器/资源管理器锁定导致的 EBUSY 错误。
  • 若某个 .lua 被其它文件以 io.open/loadfile/dofile("xxx.lua") 当作文本数据读取,则会自动跳过加密(保留明文),否则运行时按文本读取会崩溃。
  • 这是「混淆」而非「绝对保密」:密钥随地图分发,逆向者仍可提取。

📝 说明

  • 地图解压 / 打包基于 w3x2lni 工具
  • 3D 模型渲染基于 mdx-m3-viewer
  • 插件目前仅支持 Windows 平台

作者:Tichy
QQ:1663171114 群号:722748070

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft