泰坦帝国

 找回密码
 加入帝国

QQ登录

只需一步,快速开始

查看: 2400|回复: 13

[教程文章] [其他]MOD包装,档案工具(编译反编译工具)使用文档

[复制链接]
发表于 2009-8-16 20:42:39 | 显示全部楼层 |阅读模式
[其他]MOD包装,档案工具(编译反编译工具)使用文档


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
档案工具(编译反编译工具)使用文档
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
转自Relic Forums
翻译:黑山
出处:家园官方论坛


Archive Tool DOCUMENTATION
       档案工具(编译反编译工具)使用文档

        文档版本 1.01



0 INTRODUCTION
介绍 .....................................2

1 COMMAND LINE ARGUMENTS
命令行详解 ...............................2


2 ARCHIVE TOOL OPERATIONS
操作 .....................................4


3 BUILDING AN ARCHIVE
建立档案 .................................5


3.1 Build Script Syntax
建立脚本 .................................5


4 APPENDIX A SAMPLE SCRIPT
附录A 脚本样板 ...........................7


5 APPENDIX B
附录B.....................................8


5.1 Game Rules
规则 .....................................8


5.2 Total Conversion
最后 .....................................8




0 INTRODUCTION 介绍


档案工具是什么? 档案工具赋予MOD玩家以编译他们的data以便于发布给低层用户的能力。它也允许MOD玩家创建剧情的包和数据链。档案工具是一个命令行工具。
这份文档将描述如何使用档案工具。

1 COMMAND LINE ARGUMENTS 命令行详解

下面的表格列出了该工具的命令行,可以详细操作的参数和代替的参数。

参数 解释
-a <档案文件> 这个参数描述的是档案文件。用路径和档案文件的名称替换<档案文件>。

-c <建立的文件> -r <根路径> 这些参数用于创建档案。当与-a参数合用时可以创建档案。<建立的文件>用来设置你要建立的脚本文件名和它的路径。<根路径>参数则用来定位你自己做的脚本。关于脚本的语法请阅读第四段。
-l 列出以-a参数描述(创建)的档案的内容。
-e <安装路径> 安装(解压)以-a参数描述(创建)的档案。这个参数会解压所有文件至指定的位置。
-t 测试以-a参数描述(创建)的档案,这个参数会对每一个储存文件进行循环冗余校验(CRC:Cyclic Redundancy Check)并与现存的版本比较。
-hash 分散输出(添加)到档案。这个参数用来独立地识别(并添加)档案
-v 使用冗长模式输出。这个参数应该与上面的参数合用。它将显示所有可能的错误。

2 ARCHIVE TOOL OPERATIONS 操作

使用以上介绍的命令行主要可以进行四种操作。这些操作已经被简单的列在了下面的表格里。

操作 举例
创建档案 -a c:\archives\archive.sga -c c:\archives\buildarchive.txt -r c:\IC\Data
这个例子用了位于c:\archives的buildarchive.txt的脚本文件在同目录创建了archive.sga档案。这些已经被列在脚本的文件可以在c:\IC\Data找到。更多有关于建立档案文件的信息请阅读第四段。

安装(解压)档案 -a c:\archives\archive.sga -e c:\archives\archivecontents
这个例子在目录c:\archives\archivecontents里解压了原本位于c:\archives的archive.sga档案文件。这会释放所有的文件并重建目录树。

列出档案内容 -a c:\archives\archive.sga -l
这个例子会列出c:\archives\archive.sga档案的内容,该命令会列出文件名和他们的尺寸,储存的方式也会一并列出。如果你在参数后加上“<目标文件及路径>”那可以将列出的内容写入你指定的文件里面,这是在检查时非常有用的方法。

测试档案 -a c:\archives\archive.sga -t
这个例子会测试该档案。如果循环冗余校验的时候发现与现存版本不符测试将不会被通过。同样,在检测档案完整性的时候这也是非常有用的。


3 BUILDING AN ARCHIVE 建立档案

建立一个档案是和建立一个用工具决定和添加文件的方法创建脚本相比一样复杂的操作。这一段描述了建立脚本的语法和方法。

3.1 建立脚本的语法

建立的脚本要有四个部分,档案信息、目次(相当于目录)信息、文件设定、最后是储存在档案的文件列表,脚本里的注解应该加在两个放在段落开始的正斜线“ // ”之间。程序解释脚本时同样也会忽略空的段落。

说明

灰色的斜体字表示必要的语法
< 粗体字则表示这是你应该自行填入的内容 >

正常字体则是原意。

语法

Archive name="<档案名称>"

创建档案。档案会有一个被填入文件头的名字(既档案会被你所指定的名字命名),这个名字仅用于区别档案。

TOCStart name="<名字>" alias="<别名>" relativeroot="<关联文件夹>"  

建立一个新目次。目次用于为游戏迅速从档案读取资料而提供文件列表,例如,大小尺寸。<名字>用于在目次里被识别;仅仅为了识别。<别名>则告诉游戏如何将档案映射到游戏的文件系统里;这些常会被载入到数据里。<关联文件>需要和-r参数连用来定位被列出的文件,如果 r参数指向游戏根目录那么这完全可以省略。

FileSettingsStart defcompression="<默认储存方式>"

(启动)文件的存储设定。这一段文字设定了档案对不同文件储存方式的取舍。<默认储存方式>用于设置你喜欢的文件默认储存方式,下列的表格列出了你可以选择的方式:

序数 储存方式
0 不经压缩直接储存
1 压缩,当它们被载入的时候解压。对大多数文件建议使用此项
2 压缩,载入的第一时间解压它们。对小文件很有用,尤其像.LUA文件

Override wildcard="<指定字符>" minsize="<最小比特> " maxsize="<最大比特> " ct="<存储>"  

这个指令可以多次覆盖你想改变的存储方式。找到第一个匹配的欲覆盖文件时指令将被执行,所以谨慎使用十分重要。你需要指定三个标准来匹配文件。<指定字符>参数用于搜索文件, * 和 ? 是被此参数支持的。<最小比特>用于匹配文件尺寸最小值,-1表示不限定最小值。<最大比特>用于匹配文件尺寸最大值,-1表示不限定最大值。<存储>用于为那些匹配的文件重新设定存储方式。

SkipFile wildcard="<指定字符> " minsize="<最小比特> " maxsize="<最大比特> "

这个指令可以令你有选择地从档案里排除指定的文件。这常用于批量删除文件。<指定字符>参数用于搜索文件, * 和 ? 是被此参数支持的。<最小比特>用于匹配文件尺寸最小值,-1表示不限定最小值。<最大比特>用于匹配文件尺寸最大值,-1表示不限定最大值。如果某个文件符合这三个标准的话就不会被包括在档案里面。

FileSettingsEnd  

这个指令在你完成了所有设定的时候使用,之后你将进入下一个文件列表开始工作。

< file listing … >

这个指令可以包含你想加入的任何文件,(由于这个浅显的解释,我并没有把粗体进行翻译)。这些文件可以有两种书写格式。

1)关联用-r命令创建的根目录(不是游戏根目录),并且以TOCStart指令<关联文件夹>

2)完整路径。必须从(游戏)根目录出发,使用-r命令和TOCStart指令<关联文件夹>指定路径
(1和2这两段……太差劲了。我用了近一个小时也没弄懂,哪位高人快来一下啊~~我头昏了~~)
在你为档案添加文件的目录里DOS命令"dir /s /a-d /b *.* > <filelist>”会产生能够插入脚本的文件列表。当我们在使用wildcard而不能支持文件添加的时候这可以被用来产生一份完成的文件列表。

TOCEnd

这个指令指明了所有文件已经列表完成,文档可以建立了。对照附录A来尝试简单的文件列表和脚本,从而创建一份档案。

4 APPENDIX A SAMPLE SCRIPT 附录A 脚本样板

这是一个有关于文件列表的目录。

Volume in drive C is unlabeled   Serial number is
Directory of C:\temp\test\*.*

2/03/03 0:02 <DIR> .
2/03/03 0:02 <DIR> . .
2/03/03 1:35 <DIR> TextFiles
2/01/03 15:54 2,965,745 SampleData.test


2,965,745 bytes in 1 file and 3 dirs 2,969,600 bytes allocated

Directory of C:\temp\test\TextFiles\*.*

2/03/03 1:35 <DIR> .
2/03/03 1:35 <DIR> . .
2/01/03 12:38 36 TestFile.txt

36 bytes in 1 file and 2 dirs 4,096 bytes allocated

Total for: C:\temp\test\*. *
2,965,781 bytes in 2 files and 5 dirs 2,973,696 bytes allocated

这里有一个包含着这些文件的新文件夹将用来创建档案。
包含了c:\temp\Test.build.lst

Archive name="ICTestArchive"
TOCStart name="ICTestData" alias="Data" relativeroot=""
FileSettingsStart defcompression="1"

  // Anything less than 100 bytes, just store, don't compress
  Override wildcard="*.*" minsize="-1" maxsize="100" ct="0"
  // Any of these file types we just store, don't compress
  Override wildcard="*.mp3" minsize="-1" maxsize="-1" ct="0"
  Override wildcard="*.wav" minsize="-1" maxsize="-1" ct="0"
  Override wildcard="*.jpg" minsize="-1" maxsize="-1" ct="0"
  // Lua files we always compress, and then decompress in one shot
  Override wildcard="*.lua" minsize="-1" maxsize="-1" ct="2"
  // Skip all files that meet this criteria
  SkipFile wildcard="*emptyfile.txt" minsize="-1" maxsize="-1"

FileSettingsEnd

// File specified relative to the root location passed in using the -r option
TextFiles\TestFile.txt
// File specified as a fully qualified path name
C:\Temp\test\SampleData.test

TOCEnd

这是档案工具运行这个脚本的时候记录的输出

[c:\icpc\bin]Archive.exe -a c:\temp\test.sga -c "c:\temp\Test.build.lst" -r c:\temp\test
Parsing Build File 'c:\Temp\Test.build.lst'
Creating TOC Entry Name:'ictestdata' Alias:'data'
Parsing Compression Overrides
Adding All files to TOC
Writing Archive Header
Writing Archive Root Info
Writing TOC Entries
Writing Folder Entries
Writing File Entries
Writing String Data Base
Writing File Data
FileName
Compression Type
testfile.txt
Store
sampledata.test
Compress Stream
Calculating Hash

Build Operation took 0.80 seconds.

5 APPENDIX B 附录B

家园2现有规则的MOD和所有转变的MOD并不会是主要的下载项,更重要的是所有的玩家需要运行游戏主程序。

5.1 游戏规则

遵循游戏规则的MOD会自动加载所有位于你bin\GAMERULES文件夹里的文件。

5.2 转变的

为了转变的MOD你需要使用以下的命令行:
-mod 你的MOD名称 ,你的第二个MOD名称

举例:
-mod modifiedUI.big ,;modifiedAI.big

你同样可以在使用-mod @你的MOD列表.txt 命令行之后在一份文本文件里按照以下的格式列出
你所有MOD的名单:

你的MOD名称
你的第二个MOD名称

举例:
modifiedUI.Big
modifiedAI.Big


--------------------------------------------------------------------------------
发表于 2009-8-31 15:40:41 | 显示全部楼层
想问下
额,那个具体点的例子来问吧:
homeworld2.exe -mod GUNDAM_MOD2.0.TZJ -Refresh 75
是高达2.0的编译文件,那后面的那个 -Refresh 75 是干嘛用的,不知道是什么意思,能给小小解释下吗?多谢了。
发表于 2009-8-31 17:10:19 | 显示全部楼层
设置屏幕刷新率为75
发表于 2009-8-31 17:29:57 | 显示全部楼层
再说那不是编译文件,是快捷方式的命令
发表于 2009-8-31 18:33:38 | 显示全部楼层
哦,搞了半天,多谢大大啦,(*^__^*) 嘻嘻……,终于看懂一句了,高兴中!
发表于 2009-8-31 18:39:16 | 显示全部楼层
我。。我不是大大。。。[s:140]
发表于 2009-8-31 21:12:10 | 显示全部楼层
本帖最后由 jy000590qj 于 2009-8-31 21:16 编辑

额,还有些问题,不知道怎么办,想请大大们邦解决一下,
额,BIG文件导入出来后,里面的LUA 文件全是乱码,要用什么翻译过来呢?
发表于 2009-9-4 07:44:43 | 显示全部楼层
好文,佩服
发表于 2009-10-2 18:09:54 | 显示全部楼层
问下,LUA DC反编译工具怎么用?
发表于 2010-8-12 15:33:49 | 显示全部楼层
下载下来。。回头再看
发表于 2010-11-24 03:44:55 | 显示全部楼层
这个不错,支持一下楼主!
发表于 2010-12-9 14:50:20 | 显示全部楼层
新东西,mark一下。
再学习。
发表于 2011-4-24 13:04:16 | 显示全部楼层
不错!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 加入帝国

本版积分规则

Archiver|手机版|小黑屋|泰坦帝国  

GMT+8, 2019-1-18 20:20 , Processed in 0.083734 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.2 Designed by 999test

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表