Virtual File System (VFS) 基本使用方法

» 2009-06-07 50条评论

前言:

前几天熊窝更新的 JA2 1.13 svn1136 整合了 Virtual File System (VFS) ,具体什么是 Virtual File System (VFS) 呢?直译就是“虚拟文件系统”,暂时就这样称呼吧。

本来打算找 TBS 汉化组成员汉化一下说明文件并作详细介绍一下的,但由于 TBS 汉化成员个个都忙着生活。本来TBS 汉化组的wasteboy讨馒熊答应接手翻译,但翻译了开头部分后就忙去了,也找不到其他汉化成员接手。

没办法貌似只有我有时间,昨天下午就研究了一下 Virtual File System (VFS),至于说明文件我看的不太懂(老问题了,E 文差)。但‘折腾’很厉害,你一折腾,答案就出来了。下面我就根据我自己的理解来说说什么是 Virtual File System (VFS)  和怎么使用 Virtual File System (VFS) 来加装针对 JA2 1.13 的补丁和MOD,也许不是很准确,但都是通过慢慢折腾慢慢测试出来的。英文好的铁友可以直接看游戏目录下Docs文件夹下说明文件:VirtualFileSystem_Setup.txt

简单说明一下 Virtual File System (VFS) :

按我的理解,就是方便 Moder 制作的 MOD 加载,而且方便玩家自由加载各个 补丁(如汉化补丁)和MOD ,而且不至于时间久了把安装的 JA2 1.13 搞成一团糟。也就是大家一直希望的:各 MOD 相互独立又可以同时加载,而且各种 MOD 或者 组合的MOD的存盘文件可以设置在各自的文件夹,互不干扰!而且 MOD 可以打包成 7z 格式(但打包时选择存贮方式,也就是不压缩)直接使用,不用解压就可以加载,也就是说可以一个 MOD 就是一个7z包,例如 Cosplay909,可以打成一个 Cosplay909.7z 包,通过设置 ini 文件实现加载——等一下会说到具体的设置方法。

下面开始用例子来说明:
我只用加载 TBS 汉化补丁+ DBB909 来做例子说明,其它的请举一反三, 这里TBS 汉化补丁版本为Chinese svn2939,DBB909指打了909new C的full版本

前提:安装好 JA2 Gold 1.10 + 1.12官方补丁 + 1.13 svn1138(1136也可以,推荐1138) + ja2_2975_cn.exe(当然还有中文版专用字体 ja2font3.ttf),另安装好 7-zip 压缩工具软件。

开始:安装好 1.13 svn1138后,你会发现系统多了几个ini文件,其中要注意的是vfs_config.JA2Vanilla.ini和vfs_config.JA2113.ini,这两个文件就是 Virtual File System (VFS) 的配置文件,其中vfs_config.JA2Vanilla.ini是运行原版Gold配置文件,vfs_config.JA2113.ini是运行1.13的配置文件。用 ja2.ini 文件里的这个语句调用:VFS_CONFIG_INI = ,‘=’号后面就是填你要调用的 vfs_config.xxx.ini 文件名。默认情况下ja2.ini里面的 VFS_CONFIG_INI = vfs_config.JA2113.ini,就是说默认是加载了1.13 mod(大家不要忘了,1.13也是mod),另一种说法就是:默认是运行 ja2 1.13。

再一个前言:因为vfs_config.xxx.ini文件是可以通过2种方法来配置的,一种是全部配置写在一个vfs_config.xxx.ini,一种是一个vfs_config.001.ini + vfs_config.002.ini + vfs_config.003.ini + ... 的方式,这里讲的是后面那种,第一种方法留给喜欢折腾的铁友自己去。如果比喻一下就是:如果要玩1.13,那么ja2.ini就设置调用 vfs_config.JA2113.ini,如果你要加载dbb909,那么ja2.ini就设置成调用vfs_config.JA2113.ini + vfs_config.Cosplay909.ini(注:vfs_config.Cosplay909.ini指你配置好的加载Cosplay909的ini文件)

(篇外:其实说到这我有点觉得晕了,如果大家和我一样有点晕那么下面大家就晕着看下去)

第一步:制作 TBS 汉化补丁Chinese svn2939的 7z 包

1. 从svn更新的Chinese svn2939 导出到一个磁盘分区,如d盘,然后点击进入[Data]目录,把里面的4个文件夹:BinaryData、Chinese、Mercedt、Npcdata选中,按右键选择[7-zip]->[添加到压缩档案],在弹出的对话框中——压缩档案名填“TBS_Chinese_SVN”,压缩格式选“7z”,压缩方式选‘存贮压缩’(英文版是选‘store’)

第二步:制作Cosplay909 full(加了909 new C补丁)的 7z 包

因为 Virtual File System (VFS) 刚推出,所以 Moder 们还没准备好给现有的mod包制成单个未压缩的7z包,包括Dboy也就是教授也就是daboboye的 Coplay MOD(即dbb)for 1.13。

1. 猛击这里下载我整合好的Cosplay 909 Full包(COSPLAY_909_Full+909B+909C+new909C.7z),或者自己整合

2. 解压到硬盘得到5个文件夹:BigItems、Interface、Sounds、TableData、tilesets,然后把这5个文件夹选中,按右键选择[7-zip]->[添加到压缩档案],在弹出的对话框中——压缩档案名填“Cosplay909”,压缩格式选“7z”,压缩方式选‘存贮压缩’

3. 这样就制作好了 Cosplay909 的7z包了,把它拷贝到装好的1.13目录,我是在ja2 1.13游戏目录下建了一个目录名为“113mod”的文件夹专门放mod包,所以Cosplay909.7z我就放在这里

第三步:配置TBS 汉化补丁Chinese svn2939的 7z 包的调用ini文件,ini文件名我命名为:vfs_config.TBS_Chinese_SVN.ini,内容如下:

[vfs_config]
PROFILES += TBS_Chinese_SVN

[PROFILE_TBS_Chinese_SVN]
NAME = TBS Chinese SVN2939
LOCATIONS = TBS_Chinese_SVN_dir
PROFILE_ROOT =

[LOC_TBS_Chinese_SVN_dir]
TYPE = LIBRARY
PATH = 113Mod\TBS_Chinese_SVN.7z
MOUNT_POINT =

我简单解析一下,可能用词不是很准确(原因同样是E文差问题):
。[vfs_config]下的‘PROFILES’是给TBS补丁定义个档案名,这里是叫‘TBS_Chinese_SVN’,定义好后下面的[PROFILE_xxx]中的xxx要和‘TBS_Chinese_SVN’保持相同;
。[PROFILE_TBS_Chinese_SVN]是关于刚才定义的‘TBS_Chinese_SVN’一些属性,NAME=补丁或者mod的名称,LOCATIONS=补丁或者mod的位置名(随意取,但后面那项[LOC_xxx]的xxx要和此名相同)
。[LOC_TBS_Chinese_SVN_dir]补丁或MOD具体的位置,其实还有更详细的设置,这里不讨论。因为是7z包(目前只支持7z包和slf包),所以TYPE = LIBRARY,PATH=TBS_Chinese_SVN.7z所在的相对位置(这里我放在ja2游戏目录的113mod文件夹下)

第四步:配置Cosplay909 full(加了909 new C补丁)的 7z 包的调用ini文件,ini文件名我命名为:vfs_config.Cosplay909.ini,ini内容如下:

[vfs_config]
PROFILES += Cosplay909

[PROFILE_Cosplay909]
NAME = Cosplay909 mod for 1.13
LOCATIONS = Cosplay909_dir
PROFILE_ROOT =

[LOC_Cosplay909_dir]
TYPE = LIBRARY
PATH = 113Mod\Cosplay909.7z
MOUNT_POINT =

第五步:配置这个组合的存盘文件位置的ini文件,当然不设置也可以,如果不设置的话磁盘文件默认是在游戏目录下的Profiles\UserProfile_JA2113\SavedGames这里。不过下面我要为这个组合设置专用的存盘文件位置,ini文件我命名为:vfs_config.userCosplay909.ini,ini配置内容如下:

[vfs_config]
PROFILES += UserProf

[PROFILE_UserProf]
NAME =Cosplay909 Player Profile
LOCATIONS = uprof_root
PROFILE_ROOT = Profiles\UserProfile_Cosplay909
WRITE = true

[LOC_uprof_root]
TYPE = DIRECTORY
PATH =
MOUNT_POINT =

简单说明下:这里多了个WRITE,这个是设定此目录可写,调用后,此组合的存盘文件就存到Profiles\UserProfile_Cosplay909\SavedGames这里了

第六步:修改ja2.ini调用TBS汉化补丁Chinese svn2939和Cosplay909 MOD

在ja2.ini找到下面一样的设置:(大家应该都知道,ini文件里的“;”号是起屏蔽作用的,也就是注析,所以下面起作用的只有VFS_CONFIG_INI = vfs_config.JA2113.ini)

; JA2 1.13
VFS_CONFIG_INI = vfs_config.JA2113.ini

; JA2 Vanilla
; VFS_CONFIG_INI = vfs_config.JA2Vanilla.ini

把VFS_CONFIG_INI = vfs_config.JA2113.ini修改为:

VFS_CONFIG_INI = vfs_config.JA2113.ini, vfs_config.TBS_Chinese_SVN.ini,  vfs_config.Cosplay909.ini, vfs_config.userCosplay909.ini

第ok步:运行ja2_2975_cn.exe进行游戏,你会发现现在是加了汉化补丁和DBB909的1.13了

就简单又复杂的说到这,如果一边晕一边看到这里应该也大概明白了点,所以剩下的就要发挥大家的‘举一反三’了。以后的mod发布应该就是这种已经做好的7z包,然后再把7z包+设置好的ini文件压缩成另一个压缩包,然后解压,设置一下ja2.ini就可以加载mod了。

最后说一下,这是趋势,所以各位铁友们尽量快点适应。不知道我到底说清楚了没有,也不知有没有写错某些设置、步骤什么的,反正都是晕晕的。有错误麻烦各位尝试的铁友在这里评论指出,或者在TBS跟帖指出——哇,还要转载到TBS,累,稍后吧。

补充1:
1. Virtual File System (VFS) 调用的mod理论上是可以无限叠加的,也就是可以mod1 + mod2 + mod3 + ……只要各 mod 不存在‘有你就没我’的情况。
2. 对于 ja2.ini 里面的[VFS_CONFIG_INI = ]后面的ini文件调用是按照从后向前的顺序调用的,所以要注意顺序。

补充2:
如果一个mod里面是下面这些元素都可以打包成7z进行加载:Ambient, Anims, BattleSNDS, BigItems, Binarydata, Cursors, Faces, Fonts, Interface, Intro, Laptop, Loadscreens, Maps, Mercedt, Music, Npc_speech, Npcdata, Radarmaps, Sounds, Speech, Tilesets,TableData ...

zww
or
oooo

“Virtual File System (VFS) 基本使用方法”有50条评论

  1. 小奥 says:

    EBL ??

  2. zwwooooo says:

    @所以說 我负责游戏源程序代码修正和编译等……所以翻译就帮不了了

  3. zytyz says:

    唉,不玩MOD,这些专业性的东西都听不懂啊

    1. zwwooooo says:

      @zytyz 这只是游戏,呵呵

  4. nmli says:

    从装系统后我的JA2自带修改器用不了了,重新安装也不能用,望告知。

    1. zwwooooo says:

      @nmli 是不是忘装.NET Framework了?

  5. nmli says:

    谢谢 好了 正打算重做HK 416系列呢 着急啊

    1. zwwooooo says:

      @nmli 折腾的开心就好

  6. socekin says:

    我也晕了~~看标题我还以为是将virtual box的呢

    1. zwwooooo says:

      @socekin 本来想详细一下标题的,但标题太长不美观,呵呵

  7. mustang_er says:

    zwwooooo大,你写的这个我会了,正在纠结被你忽略的第一种方法ing...

    1. zwwooooo says:

      其实第二种方法就是把所有vfs_config.xxxx.ini文件里面的内容放在一个ini文件里,很简单的,但不直观,我个人觉得模块化方便、直观。第二种方法适合整合包。对了,如果你折腾熟悉了第二种方法考虑一下写成教程吧发布在TBS吧——当然我一定要转载到我的博客 :mrgreen:

  8. NTcong says:

    Z大,整合包的ini文件应该是要自己新建一个方面游戏根目录下是吧??然后在ini文件里面设置路径调用整合包,是这样理解吧? :?:

  9. NTcong says:

    by the way , 象我整合的一个7z包,里面并没有发现ini文件, :roll: 难道是搞错?

    1. zwwooooo says:

      vfs包有两种方式,一种是打成7z包(不压缩),一种是文件目录,然后写一个ini文件指明这个7z包或者是目录,再然后是在ja2.ini设置这个你写的ini文件。

      具体你可以看看我放出的 vfs 模块包,然后自己对比研究一下

  10. pkleemon says:

    第五步中,要在Profiles目录下创建文件夹UserProfile_JA2113\SavedGames
    一开始我没建就报错了。。。

    貌似是这样? :?:

    1. zwwooooo says:

      如果你安装的是较新的1.13版本的话这个文件夹本身是已经有的了。

  11. xyh230 says:

    看着头晕,感觉又在上学了 :wink:

    1. zwwooooo says:

      我写得也头晕 :lol:

  12. oAIxIAo says:

    感谢Z大的教程,自己根据教程鼓捣了一下,成功运行了!

    1. zwwooooo says:

      @oAIxIAo 原理搞清楚了就简单了。不过建议用文件夹模式,方便升级,7z不太方便。

  13. madchemist says:

    老大,[VFS_CONFIG_INI = ]后面的ini文件是按照从后向前的顺序调用的,举个例子,iov919和data113里都包括ja_option.ini这个文件,iov的调用较早,这是不是说明真正有效的是iov919中的ja_option.ini?抑或会被稍后调用的data113的ja_option.ini替换?

    1. zwwooooo says:

      @madchemist
      后面的起效,前面的会被覆盖

发表评论

昵称 *

网址

B em del U Link Code Quote