Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>vJassGoNew to Visual Studio Code? Get it now.
vJassGo

vJassGo

unouo

|
3 installs
| (0) | Free
vJass集成作图框架
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

vJassGo

vJassGo Logo

Version

vJassGo 是一个专为魔兽争霸 vJass/JASS 开发的 VS Code 扩展,提供完整的开发、编译、调试和发布工具链。

👥 QQ群:206306788

🚀 快速开始

  • 创建项目:CTRL+SHIFT+P输入vj.new vJassGo Logo

    • 会提示你输入地图名字(名字将保存在.vjass.config.json)
    • 首次使用会需要你选择你的WE路径
  • 目录解析:

    MyMap/                       # 项目根目录
    ├── .vjass.config.json       # 项目配置文件
    ├── build/                   # 编译输出目录
    │   ├── MyMap_slk.w3x        # 测试版地图
    │   └── MyMap_slk.crypt.w3x  # 发布版地图
    ├── lni/                     # 地图源文件
    ├── script/                  # 代码文件夹
    │   ├── jass/                # vJass/JASS 源码
    │   │   ├── main.j           # 主代码文件
    │   │   └── data/            # xlsx生成的数据
    │   ├── fdf/                 # FDF 界面文件
    │   └── lua/                 # Lua 脚本文件
    └── meta/                    # 元数据文件夹
        ├── xlsx/                # Excel 数据表
        └── toblp/               # 待转换图片
    

🔧 地图打包

  • 测试启动:按 F5 自动编译地图并启动 war3

    • 需光标置入 .lua、.jass 或 .fdf 文件内
    • 打包后的地图位于build\
    • 当你的vjass代码有错误时,会输出jasshelper或pjass给出的报错且打包行为会中断
    • 当你使用WE中的测试地图功能,vjass代码将不会生效
    • 建议除地形基础物体外一切都在vscode制作,舍弃WE
  • 自动加载:script\jass\ 文件夹下所有 .j、.jass 都会被正确的编译进地图

    • 不再需要手动 //!import 或者 #include(或许你习惯 cjass?这里将不再支持)
    • 如果你想使用原生 jass 来制作游戏,这估计需要你使用 vjass 库名排序文件加载顺序, 该情况并不建议你使用本框架,因为这是服务于 vjass 的
  • 加密发布:按 F9 自动化打包地图为可发布版本

    • 使用该功能必须要有 AutoHotkey,并且使用 KKWE
    • 打包后的地图位于build\
  • 代码共存:在 WE 里初始化的任何数据都将会生效,即使你使用 GUI 触发器(但不建议混用)

    • 打包地图后你的 .j 文件并不会受到影响,但脚本会以另一种方式写入地图,你只需要专注于编写 script\ 文件夹的代码
    • 可以做到在WE编辑器放置区域,使用vjass调用gg_rct_name
  • FDF代码:script\fdf\ 该文件夹下的所有 fdf 文件将会直接生效

    • 你不需要定义 .toc 以及任何操作,你可以自由的编写 fdf 然后在 jass 里创建,例如 DzCreateFrame("fdf定义的frame名称")
    • 你也可以在 fdf 文件夹下再新建文件夹,同样适用,它们最终会原封不动进入你的地图
    • 使用 fdf 的 IncludeFile 功能时,路径根目录为 fdf\
  • Lua代码:script\lua\,与fdf相同,将会自动写入地图

📊表格结构

  • 表格加载:meta\xlsx\该目录下的所有表格都会被转换为结构体,
  • 实例表格:
Boss结构 名称 头像 ai动作 创建时执行 生命值 是否暂停 玩家id 备注
integer string path type func real boolean integer mark
Boss name art aiAction onCreate hp isPause pid mark
bsid 基尔加丹 icon\bsid.blp SimpleBoss bossCreate.Bomb 999.56 TRUE 11 很简单的boss
~ 小黑 icon\black.blp ~ ~ 3535.44 ~ ~ ~
山丘 山丘之王 icon\abc.blp ~ ~ 8888 0 10 ~
  • 如上表格所示,假设已放入xlsx文件夹中,那么你就可以在vjass中调用这些数据。
  • 第一行为成员注释
  • 第二行为成员类型
  • 第三行为变量名称
  • 往后每一行都是实例
// 正确使用代码示例
function testXlsx1 takes nothing returns nothing
    local Boss b1 = Boss.get('bsid') // 表格内整数参数填写四字id将自动转换为魔兽的整数id
    local Boss b2 = Boss.get(StringHash("山丘")) // 表格内字符串参数填写名称将自动转换为字符串hash
    local Boss b3 = Boss[1] // 表格内数据行从1开始索引
    local Boss b4 = Boss[2] 
    local Boss b5 = Boss(1)
    local Boss b6 = Boss(2)
    call BJDebugMsg(b1.name) // 输出:基尔加丹
    call BJDebugMsg(b2.name) // 输出:山丘之王
    call BJDebugMsg(b1.art) // 输出:icon\\bsid.blp (path类型自动转译路径)
    call BJDebugMsg(I2S(b1.index)) // 输出:1
    call BJDebugMsg(I2S(b2.instanceId)) // 输出:等价于StringHash("山丘")
endfunction

// 错误使用代码示例
function testXlsx2 takes nothing returns nothing
    local Boss b1 = Boss.get("~") // 该实例将是0,"~"会使该行数据都为注释,所以并不是key
    local Boss b2 = Boss[3] // 该实例将是0,因为表格中第二行是注释行,所以第三行数据的index为2
    local Boss b3 = Boss(2)
    call BJDebugMsg(b3.mark) // 这将报错,因为mark列是注释列
endfunction

  • 类型格式对照:
表格类型 表格内容 实际类型 实际内容
integer 150 integer 150
integer 123.123 integer 123
integer abc integer StringHash("abc")
integer abcd integer abcd'
real 50.23 real 50.23
string hello string "hello"
boolean 0 boolean false
boolean true boolean true
boolean FALSE boolean false
path ui\minimap\hero.blp string ui\minimap\hero.blp
path ui\minimap\hero.blp string ui\minimap\hero.blp
type Hero integer Hero.typeid
func attr.addMana integer attr.addMana
mark vjassgo!
integer ~ integer 0
real ~ real 0.00
string ~ string ""
boolean ~ boolean false

🖼️ BLP转换

  1. meta\toblp\ 该文件夹下的所有blp、tga、png、bmp、jpg都能被转换为blp
  2. CTRL+SHIFT+P输入vj.blp vJassGo Logo
  3. 完成后会弹出转换后的路径,已自动帮你放入对应路径

🤝 致谢

感谢魔兽争霸地图开发社区的支持,以及以下开源项目:

  • JassHelper - vJass 编译器
  • w3x2lni - 地图转换工具
  • YDWE - 魔兽地图编辑器

让 vJass 开发更简单、更高效! 🚀

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