前面都是枯燥的概念,终于到了动手环节了。
一、软件下载(略)
请准备好以下软件或程序:
- 魔兽争霸III客户端
- 魔兽地图编辑器(KKWE、雪月编辑器、YDWE等任意一款,推荐雪月编辑器,QQ群号:659453611)
- VS Code(https://code.visualstudio.com/)
- W3x2Lni(推荐YDWE官方博客下载,百度网盘下载:https://pan.baidu.com/s/1Fdr-rTZXWUQVMOIV1hS50Q,提取码:ya54)
二、VS Code插件安装(略)
- Chinese (Simplified) (可以把VS Code界面文本显示改成简体中文)
- Lua(发布者:sumneko)
- Lua Debug(发布者:actboy168)
- Tasks(发布者:actboy168)
- jass(发布者:家貓hoo)
三、第一次环境配置
1、新建环境变量(已经优化了bat文件,所以这步可以省略了)
2、新建地图
用魔兽地图编辑器新建一张空白地图
3、新建触发
在触发编辑器(F4)里清空默认的触发,然后新建一个触发,并设置如下:
初始化
事件
地图初始化
条件
动作
游戏 - 输入作弊码: exec-lua:main
4、保存地图
将地图保存至一个空白文件夹里,然后可以关闭地图了
5、解包地图
(1)打开W3x2Lni
(2)将地图w3x文件转为Lni
a.将 新建的地图文件 拖入 W3x2Lni,点击 转为Lni
b.使用默认设置,点击 开始
提示1条告警不用理会
c.在地图w3x文件所在文件夹下会得到一个同名的文件夹
6、配置任务
(1)用VS Code打开文件夹
把解包地图得到的文件夹 拖入 VS Code
拖入后再VScode左边 可以看到 文件列表
(2)新建runmap.bat文件
a.在W3x2Lni文件夹根目录新建一个runmap.txt文件,将.txt
的文本后缀修改为.bat
的批处理后缀
b.鼠标右键点击runmap.bat文件,选择编辑
C.将以下内容复制粘贴进去
@echo off
:: 关闭命令回显,使脚本运行时不显示每条命令
chcp 65001
:: 为了能够显示echo的中文信息
:: 增加 w2l.exe 和 ydweconfig.exe 所在的目录作为临时的系统 PATH 环境变量
set PATH=%PATH%;F:\DarkSheep_War3_Tools\DarkSheep_常用\w3x2lni_zhCN_v2.7.3
set PATH=%PATH%;F:\1.9.0k3_雪月编辑器\bin
echo [调试信息]临时修改 PATH 环境变量
:: 设置你的WE编辑器目录
set YourwePath=F:\1.9.0k3_雪月编辑器
echo [调试信息]你设置的WE编辑器的目录是:%YourwePath%
cd /d %~dp0
echo [调试信息]切换到当前bat脚本所在的目录: %cd%
set mapPath=%~dpn1
echo [调试信息]需要使用w2l工具obj打包的地图目录:%mapPath%
set mapName=%~n1
echo [调试信息]地图名字(不包括路径和扩展名): %mapName%
echo [调试信息]开始使用w2l工具将地图文件转换为obj格式
w2l.exe obj "%mapPath%"
echo [调试信息]转换完毕!
set generatedW3xPath=%mapPath%.w3x
echo [调试信息]获取生成的 .w3x 文件的完整路径: %generatedW3xPath%
for %%I in ("%YourwePath%") do set ydweDrive=%%~dI
echo [调试信息]你的WE编辑器驱动器(盘符): %ydweDrive%
%ydweDrive%
cd "%YourwePath%"
echo [调试信息]切换到你的WE编辑器目录: %cd%
ydweconfig.exe -launchwar3 -loadfile "%generatedW3xPath%"
echo [调试信息]使用ydweconfig工具启动魔兽争霸III并加载指定的地图文件: "%generatedW3xPath%"
d.将set YourwePath=
后面的路径修改为你使用的魔兽地图编辑器所在文件夹的路径
例如我使用的是雪月编辑器,那么,我就修改为:
set YourwePath=D:\Program Files\War3 工具3.2\1.9.0k3_雪月编辑器
1、路径允许使用中文,避免运行时提示“文件名、目录名或卷标语法不正确”
2、修改了切换进入WE编辑器文件夹的方式,避免因bat文件和WE编辑器文件不在同一个盘,造成后续无法执行ydweconfig.exe
3、删除了将生成后的w3x文件移动到WE编辑器文件夹的命令,采用了直接获取生成后的w3x文件路径,然后直接使用ydweconfig.exe加载
4、每一步增加了echo显示,方便出错时知道是哪个步骤的问题
(3)配置默认生成任务
a.点击VS Code菜单栏终端
,再点击配置默认生成任务
b.点击最后一个任意模板
c.将以下内容复制粘贴到打开的json文件里
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "运行",
"type": "shell",
"command": "D:\\w3x2lni_v2.4.1\\runmap.bat",
"args": [
"${workspaceRoot}"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
d.将"command"的runmap.bat文件路径D:\\w3x2lni_v2.4.1\\runmap.bat
修改为你自己runmap.bat文件所在路径
例如我的是:
"command": "D:\\Program Files\\War3 工具3.2\\w3x2lni_zhCN_v2.5.2\\runmap.bat",
e.点击VS Code右边栏的管理
,再点击键盘快捷方式
,修改快捷键为F5
,敲Enter键
确认
运行
、或者直接使用默认快键键Ctrl+Shift+B(当然这个快捷键很有可能和你的其他软件冲突,比如QQ拼音的手写功能)
7、测试效果
(1)在左侧文件列表map文件夹下新建一个main.lua文件
(2)复制粘贴以下内容,保存
local console = require 'jass.console'
console.enable = true
print = console.write
print("hello world")
(3)点击运行,查看效果,成功!
8、常见错误
1、运行时提示'w2l.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
问题原因:在Windows系统的w2l.exe的环境变量未新建或路径不正确。例如你中途修改了w2l程序所在的文件夹名字。
2、运行时提示'ydweconfig.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
问题原因:在Windows系统的ydweconfig.exe的环境变量未新建或路径不正确。例如你中途修改了we编辑器所在的文件夹名字。