游戏文件解剖
两代档案格式:MPQ 与 CASC
游戏文件从不以散装文件形式躺在硬盘上,而是打包在档案(archive)里:
- MPQ:1.31 之前的老档案格式。旧版安装目录下的
war3.mpq、war3x.mpq、war3patch.mpq、war3local.mpq、war3xlocal.mpq都是 MPQ。 - CASC(Core Asset Storage System):1.32(重制版)起全面启用的新格式,取代 MPQ。所有资源统一存进一个 CASC 存储,不再按补丁拆包。
两代共同的顶层是 本地文件 > 地图包:往地图里导入的同名资源会盖掉游戏自带的。再往下才轮到游戏档案——MPQ 时代按 war3patch.mpq > war3xlocal.mpq > war3x.mpq > war3local.mpq > war3.mpq 逐层回退(补丁包级别最高,x 为冰封王座专用,local 为语言层;此外每张地图还会按地形额外加载一个地形包,如 A.mpq);重制版把这些层压成一个 CASC 存储。这也是「启用本地文件」能覆盖游戏数据的原因,见文末。
工具:CASCView
CASC 格式社区通用的浏览、提取工具是 Ladik 的 CASCView(Ladislav Zezula,免费),旧版 MPQ 则用他家的 MPQ Editor。
- 下载并运行 CascView,菜单
Storage → Open Storage(打开存储)。 - 选择游戏根目录——即包含
.build.info的那个文件夹(通常是Warcraft III\_retail_\),程序会自动识别 CASC 存储。 - 左侧文件树展开
war3.w3mod等节点,右键Extract / Export即可导出单个文件或整个目录。
两点提示:① 文件树里大量出现的 .w3mod 后缀只是虚拟目录标记,不是真实文件夹;② CascView 是只读工具,想改动请先导出,再走文末的本地文件覆盖流程。
安装目录速览
战网客户端的安装形如 Warcraft III\(安装目录),1.32.7 起真正的游戏根是其中的 _retail_\。表内 ∟ 表示层级,说明列逐行解释该层的作用:
| 路径 | 说明 |
|---|---|
Warcraft III\ | 战网安装目录,正式与 PTR 的游戏根并列于此 |
∟ _retail_\ | 游戏根(PTR 为 _ptr_\),工具与本地文件都指向这里 |
∟ .build.info | 记录构建版本与 CASC 指纹,CascView 靠它定位 |
∟ Data\ | CASC 存储本体,全为二进制,不用手拆,交给工具 |
∟ data\ | 分包文件 *.bin,游戏数据的主体 |
∟ config\ | 存储配置 |
∟ indices\ | 索引,记录文件名与分包位置的对应关系 |
∟ dbcache\ | 本地数据库缓存 |
∟ x86_64\ | 64 位客户端目录,游戏与编辑器主程序都在这里 |
∟ Warcraft III.exe | 游戏主程序 |
∟ World Editor.exe | 世界编辑器主程序,汉化补丁作用的对象 |
∟ Warcraft III.exe | 启动器,负责拉起 x86_64\ 下的主程序 |
CASC 分层结构
CASC 内部不是一个大文件夹,而是像「图层」一样叠放多层根目录,读取时从上往下找,先命中先用。表内 ∟ 表示层级,说明列逐行解释该层的作用:
| 层 | 说明 |
|---|---|
_Balance\ | 数据集覆盖层:slk 与 *Func.txt 各一套,即编辑器数据集 |
∟ Melee_V0\ | 对战(近战)数据集 |
∟ Custom_V0\ | 自定义数据集的基线版本 |
∟ Custom_V1.w3mod\ | 自定义数据集的最新版本 |
_hd.w3mod\ | 重制版(HD)模型与贴图,贴图多为 .dds |
_de.w3mod\ | 决定版(Definitive Edition)图标与美术 |
_tilesets\ | 按地形组覆盖的 HD 资源 |
∟ *.w3mod\ | 每个地形组一个包(洛丹伦的夏天、卡利姆多……) |
_locales\ | 语言覆盖层,每种语言一个包 |
∟ <语言>.w3mod\ | 各语言一个包:串表、UI 文本、字体与配音 |
_teen.w3mod\ | 青少年模式(低暴力)资源 |
_deprecated.w3mod\ | 为兼容保留、实际已弃用的文件 |
war3.w3mod\ | 基础层:对象数据、脚本、SD 美术与下表的目录 |
war3.w3mod 目录速查
一级目录 21 个,二级目录的组织主线只有三条:模型按「种族 / 地形组」分文件夹,每个素材再单独占一个目录;对象数据与 slk 表放在各目录根;贴图大多平铺。表内 ∟ 表示层级,路径较深的一层层拆成行,说明列逐行解释该文件夹的作用。
| 目录 | 说明 |
|---|---|
abilities\ | 技能特效与弹道模型,分两个子目录 |
∟ spells\ | 技能特效模型,按「种族 → 技能」两层组织 |
∟ <种族>\ | human / orc / undead / nightelf / demon 等 |
∟ <技能>\ | 每个技能一个目录,内含该技能的特效模型 |
∟ weapons\<弹道>\ | 投射物 / 弹道模型,每个弹道一个目录 |
buildings\ | 建筑模型 |
∟ <种族>\<建筑>\ | 每个建筑一个目录,按种族分 |
campaign\ | 官方战役地图,按战役 / 章节分文件夹 |
doodads\ | 装饰物模型 |
∟ <地形组>\ | lordaeronsummer / ashenvale / northrend 等 |
∟ <类别>\ | structures / plants / props |
∟ <名称>\ | 每个装饰物一个目录,内含模型与贴图 |
environment\ | 环境模型、植被;无子目录,按素材名平铺 |
fonts\ | 字体;.ttf 直接平铺在此层 |
maps\ | 对战与遭遇战地图 |
movies\ | 过场动画;.mp4 直接平铺在此层 |
objects\ | 杂项对象模型;除下列目录外,其余素材按名称平铺 |
∟ inventoryitems\<物品>\ | 可拾取物品模型,每个物品一个目录 |
pathtextures\ | 通行判定贴图,用于寻路与建造 |
replaceabletextures\ | 可替换贴图:图标、选择圈、悬崖、团队色 |
∟ commandbuttons\ | 技能 / 物品的亮图标(BTN*.blp) |
∟ commandbuttonsdisabled\ | 对应的暗图标(DISBTN*.blp),用于冷却与不可用态 |
∟ selection\ | 选择圈、施法范围圈 |
∟ cliff\ | 悬崖贴图 |
∟ teamcolor\ | 团队色蒙版 |
scripts\ | JASS 公共库与 AI 脚本 |
∟ ai\ | AI 脚本 |
shaders\ | 着色器;无子目录,文件平铺 |
sharedmodels\ | 共享杂项模型:烟雾、羽毛、光晕等 |
sound\ | 单位语音、界面音、音乐、环境音 |
∟ units\ | 单位语音,按「种族 → 单位」两层组织 |
∟ <种族>\ | human / orc / undead / nightelf / creeps 等 |
∟ <单位>\ | 每个单位一个目录,内含选中、移动、攻击等语音 |
∟ interface\ | 界面提示音,含 warning\ 等 |
∟ music\mp3Music\ | 背景音乐 |
∟ ambient\ | 环境音 |
splats\ | 地面贴花与闪电数据 |
terrainart\ | 地形贴图与地形 slk |
∟ <地形组>\ | 按地形组划分,文件名形如 <缩写>_<地块>.blp*…… |
textures\ | 贴图,以 .blp 为主;无子目录,基本平铺 |
ui\ | 界面资源 |
∟ framedef\ | .fdf 框架定义 |
∟ glues\ | 主菜单等界面 |
∟ console\ | 控制台皮肤 |
units\ | 单位模型与对象数据 |
∟ <种族或类别>\ | human / orc / undead / creeps / critters 等 |
∟ <单位>\ | 每个单位一个目录,内含 .mdx 模型与贴图 |
webui\ | 1.32+ 的网页化前端资源 |
∟ baseframes\ | 界面框架的网页资源 |
路径不区分大小写;上表以经典(SD)层为准,_hd.w3mod / _de.w3mod 层的目录会多出一些、少一些。
核心数据文件:SLK 与 INI 串表
「单位/技能/物品/科技」的对象数据由三类纯文本文件拼合而成,改数据、做对照都绕不开它们:
SLK 表(数值字段)
units\ 与 _Balance\*.w3mod\units\ 下的 .slk 是类 SYLK 电子表格文本,一行形如 C;X列;Y行;K"值",首列 ID 决定对象。常见文件:
UnitData.slk/UnitBalance.slk/UnitUI.slk/UnitWeapons.slk—— 单位数据(杂项 / 属性 / 界面 / 武器)AbilityData.slk—— 技能数据ItemData.slk—— 物品数据UpgradeData.slk—— 科技升级DestructableData.slk—— 可破坏物
*Func.txt(补充字段)
同目录下的 HumanUnitFunc.txt、CommonAbilityFunc.txt、ItemFunc.txt 这类文件是 INI 风格的补充字段:按钮位置、快捷键、图例引用等。
*Strings.txt(显示文本)
名称与提示文本集中在语言层 _locales\<语言>.w3mod\units\ 下(humanunitstrings.txt、commonabilitystrings.txt、itemstrings.txt……按种族 / 类别分文件),同样是 INI 格式,以对象 ID 为节:
[AHtb] ; 山丘之王 —— 风暴之锤(节选,有删改)
Name=风暴之锤
Tip=风暴之锤(|cffffcc00T|r)
Ubertip=掷出一把魔法之锤,对目标造成伤害并使其眩晕。
常用键:Name(名称)、Tip(按钮提示)、Ubertip(详细说明)、Hotkey、EditorSuffix;|cAARRGGBB…|r 是内联颜色标记。
本站汉化词条表与补丁说明的专名,就是拿 zhcn.w3mod 与 enus.w3mod 两套 Strings 逐 ID 对照核出来的。
ui\ 目录(编辑器与界面)
编辑器的行为数据在基础层 ui\:triggerdata.txt(触发 GUI 的事件 / 动作 / 参数结构)、triggerstrings.txt、worldeditdata.txt(菜单、对象编辑器字段等)、worldeditstrings.txt、aieditordata.txt 等;对应的显示文本在语言层 _locales\<语言>.w3mod\ui\。ui\framedef\ 与语言层 ui\framedef\*.fdf(如 globalstrings.fdf)则是游戏内界面的框架定义。编辑器汉化补丁改的主要就是这批文件。
地图文件(.w3m / .w3x / .w3n)
地图也是档案包:.w3m 是原版(混乱之治)地图,.w3x 是冰封王座地图,.w3n 是战役包——本质都是带 512 字节头部的 MPQ 容器。游戏本体虽已改用 CASC,地图至今仍是 MPQ,所以拆地图用 MPQEditor,不必碰 CASC。包内的 war3map.* 家族——地形 .w3e、地图信息 .w3i、物编七件套 .w3u / .w3t / .w3b / .w3d / .w3a / .w3h / .w3q、触发 .wtg / .wct、字符串表 .wts 等——逐文件详解见姊妹篇:
资源格式速查
| 格式 | 说明 |
|---|---|
.blp | 调色板或 DXT 压缩,贴图主力格式 |
.dds | HD 层使用的现代贴图格式 |
.tga | 无压缩图片,常见于导入素材 |
.mdl / .mdx | 模型(文本 / 二进制),含骨骼与动画 |
.wav / .mp3 / .ogg | 音效与音乐 |
.ttf | 字体(语言层 fonts\) |
.fdf / .toc | UI 框架定义 / 框架载入清单 |
.mp4 | 过场动画(movies\) |
启用本地文件(Allow Local Files)
游戏默认只读地图和 CASC。开启「本地文件」后,读取顺序变为「本地文件 > 地图 > CASC 各层」——把文件按 CASC 内的有效路径放进游戏根目录,游戏就会优先加载你的文件。
注意本地文件整体只是最上面的一个「图层」,不能像 CASC 里的 _hd.w3mod、_locales 那样拆成多个层互相叠放覆盖。
第一步:修改注册表
在注册表 HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III 下新建一个 DWORD (32 位) 值:名称 Allow Local Files,数值数据 1。三种做法任选其一:
- 直接运行本站编辑器汉化补丁附带的
AllowLocalFiles.reg; - 自建
.reg文件:新建文本文档,粘贴以下内容,另存为allow.reg后双击导入; - 命令行一条搞定:
reg add "HKCU\Software\Blizzard Entertainment\Warcraft III" /v "Allow Local Files" /t REG_DWORD /d 1
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III]
"Allow Local Files"=dword:00000001
关闭同理:把值改回 0 或删除该值即可。注意游戏根目录的位置:1.32.7 起是安装目录下的 _retail_\(PTR 为 _ptr_\),更早版本直接就是安装目录。
第二步:按有效路径放文件
把 CascView 导出的文件放进游戏根目录,路径 = CASC 虚拟路径去掉 war3.w3mod\、_locales\zhcn.w3mod\ 等层前缀后的有效路径:
war3.w3mod\units\human\peasant\peasant.mdx→_retail_\units\human\peasant\peasant.mdx(换农民模型)_locales\zhcn.w3mod\ui\WorldEditStrings.txt→_retail_\ui\WorldEditStrings.txt(编辑器汉化补丁即由此生效)
两个典型玩法
- 画面 MOD:把改好的纹理和模型按目录整包复制进
_retail_\的相应目录(units\、buildings\、textures\……),覆盖同名文件。 - 字体 MOD:把字体文件放进
_retail_\的fonts\目录,覆盖war3.w3mod\fonts\同名文件。
风险:本地文件在联机时同样生效,改动可能被对战平台视为作弊,请勿在对战中使用。