gtabbs吧 关注:2,631贴子:16,533

GTASA详细解析文件

只看楼主收藏回复


这是与前面相比更为详细的解析教程,我尝试着努力扩展这些内容,解释纯手打..
据说本帖理解对某些人有难度,建议大家遇到一些代码类的直接无视即可,那是给需要的人的,单纯想了解文件用途的朋友只需要看文件后面的蓝字就好啦\(^o^)/~
| anim 动画与地图链接文件
| |- anim.img一些动作文件的归档(ps:归档即img),如购物动作,XX动作,游泳动作等等
| |- cuts.img同上,还用以存放其附带的dat文件 .cut的文件是第一被加载的,它包含重要数据的过场动画像它的偏移量和加载模型等等东西,其TEXT的格式为

text
starttime, length, gxt
end

MODELS的格式为

model
?, name, animation
end


IP属地:中国香港本楼含有高级字体1楼2013-08-27 10:18回复
    ....
    更多格式参见gtamodding
    | \- ped.ifp CJ平时的动作文件,比如一些跑步姿势等都在这里面
    | audio
    | | CONFIG 配置
    | | |- AudioEventHistory.txt 音频历史记录,用于记录你的播放历史,没看出有什么用,大概是为统计准备的吧
    | | |- BankLkup.dat
    | | |- BankSlot.dat
    | | |- EventVol.dat
    | | |- PakFiles.dat
    | | |- StrmPaks.dat
    | | \- TrakLkup.dat
    | | SFX类似的IMG存档中,包含sfx.sdt和sfx.raw的归档。目录中的每个条目的大小为24字节,内含如放屁声,打呼声等等
    | | |- FEET
    | | |- GENRL
    | | |- PAIN_A
    | | |- SCRIPT
    | | |- SPC_EA
    | | |- SPC_FA
    | | |- SPC_GA
    | | |- SPC_NA
    | | \- SPC_PA
    | \ streams音频流文件,圣安地列斯里面音频的处理不同于VC和III,它是在磁盘上的数据流进行编码,所以不能直接读出或写入。幸运的是,编码算法是一个非常简单的
    下面是一个简单的C + +算法的编码(取自圣安地列斯音频工具包的源代码)

    void stream_encode(int8_t *buff, constsize_t size, int &index)

    {

    for (size_t i = 0; i < size; ++i)

    {

    buff[i] ^= encode_key[index];

    index = (index + 1) & 15;

    }

    return;

    }



    IP属地:中国香港本楼含有高级字体2楼2013-08-27 10:19
    回复
      | |-AA
      | |-ADVERTS
      | |-AMBIENCE
      | |-BEATS
      | |-CH
      | |-CO
      | |-CR
      | |-CUTSCENE
      | |-DS
      | |-HC
      | |-MH
      | |-MR
      | |-NJ
      | |-RE
      | |-RG
      | \-TK


      IP属地:中国香港3楼2013-08-27 10:19
      回复
        | data 数据文件
        | | Decision包含人物事件等等文件
        | | Icons图标文件
        | | |- app.ico
        | | |- bin.ico
        | | |- saicon.ICN
        | | |- saicon2.ICN
        | | \- saicon3.ICN
        | | maps地图文件,其中包含3个城市和乡村等的地图碰撞文件等
        | | | generic
        | | | interior
        | | | LA
        | | | leveldes
        | | | SF
        | | | vega
        | | \-veh_mods
        | | Paths
        | | |-train.dat 火车(- -)路径数据文件,看得出来R星用一个文件整合了gta3中的train.dat和train2.dat的内容
        | | \- carrec.img 3R文件存放地 本文件用以储存RRR后缀的文件,从carrec001.rrr到carre834.rrr,包含了制动踏板力等很多数据,每个RRR文件没有头,只有一个二进制数据,各长为32个字节的结构是一组,所述的单独的路径点
        | | script脚本
        | | |-main.scm游戏任务脚本文件,它的结构首先是定义一些物品,然后采用多线程触发性执行脚本(意思就是当你做了一件事情,达到了脚本开始要求的时候才会继续下面的任务,比如一个任务规定你必须步行进入一个区域才能触发任务,倘若你使用自行车就不能触发任务,这样就有效的防止了一些未知BUG的发生),合理分配了内存空间,使任务状态和普通状态不冲突
        | | \-script.img逆天的R型居然用来储存一些脚本文件,如脱衣舞厅的一些舞者动作、单独跳舞等脚本,我想可能是与任务直系而通常不用才整合在脚本归档了的吧...其实我也不解这里面的很多文件脚本和main.scm是一样的?- -名字不同而已
        根据gm的解释是这是R星废弃的文件,在原始的游戏中他们不会出现,但他们可以用于修改,比如 PatrickW和Dutchy3010弄的 DYOM(design your own mission)就是使用这个的一个杰出作品
        | |- animgrp.dat行走动作组数据文件,包含预定义的动画序列
        | |- animviewer.dat同上,用以存放一些IDE路径
        | |- ar_stats.dat武器统计信息记录
        | |- AudioEvents.txt音频播放世界记录
        | |- carcols.dat 汽车颜色相关的所有数据,包含调色板等等,其文件的基本结构是

        # a comment!
        COL
        ...
        end
        CAR
        ...
        end
        CAR4
        ...
        end


        IP属地:中国香港本楼含有高级字体4楼2013-08-27 10:20
        回复

          | |- object.dat 定义动态对象的其他对象信息,包含了物体的碰撞效果,可断裂部分等数据
          | |- ped.dat行人类型
          | |- pedgrp.dat 32人定义为一个组,包含每个组的列表
          | |- peds.ide 它是用来定义字符和行人 ,及它们的一些属性
          | |- pedstats.dat行人统计
          | |- plants.dat 植物信息,包括贴图RGBA等
          | |- polydensity.dat ??
          | |- popcycle.dat用于控制各个时间段各个地区刷出NPC的密集度
          | |- procobj.dat游戏表面数据
          | |- shopping.dat游戏中购买东西的价钱等数据
          | |- statdisp.dat 统计信息数据记录文件
          | |- surface.dat游戏表面数据,路面潮湿度宽松等东西
          | |- surfaud.dat游戏表面数据,定义路面有草金属等等
          | |- surfinfo.dat游戏表面数据,粘连摩擦等等系数
          | |- timecyc.dat控制天气和游戏的外观
          | |- timecycp.dat同上,光影党比我清楚
          | |- txdcut.ide
          | |- vehicle.ide定义车辆和一些它们的属性
          | |- water.dat水域数据,定义水域的位置大小等等
          | |- water1.dat同上
          | \- weapon.dat武器参数文件,在这里是采用近战武器和枪械这样大的分类,然后进行小分类
          | CLEO 圣安地列斯游戏扩展脚本,原版没有,需自行下载
          | |- CLEO_TEXT fxt文本存放的文件
          | |-racal.cs cleo script脚本文件,就是所谓的*.cs文件,作为一个插件的形式可以通过调用OPCODES实现很多功能如


          IP属地:中国香港6楼2013-08-27 10:20
          回复
            chdir
            0A99: chdir 0
            这句话是设置当前目录,通常情况下为默认
            文件操作
            文件操作是cleo4中新加入的op,它允许用户使用脚本进行一些文件(主要是ini)的操作,就如下面
            0A9A: $hFILE = openfile "settings.ini" mode 0x72 // IF and SET
            表示打开settings.ing配置文件并读取和写入,返回false,否则true。
            各个0x00:
            3 – file open mode: 文件打开方式(不难看出,二进制和文本文件二选一)
            0x6272 – opens binary file for reading 打开并读取二进制文件
            0x72 – opens text file for reading打开并读取文本文件
            0x6277 – opens binary file for writing打开并修改二进制文件
            0x77 – opens text file for reading打开并修改文本文件


            IP属地:中国香港7楼2013-08-27 10:20
            回复
              racal.scm 名为racal的mission cleo script
              racal.cm 名为racal的cleo mission
              racal.s *.s文件
              | |-mp3 默认cleo中调用到额mp3存放地址
              | \-plugins插件,你可以下载CLEO插件到此文件,如外部记录op等插件
              | models 模型文件库
              | | coll人物汽车武器的碰撞文件,没有这个就可以穿透无压力了,不过...
              | | generic一些杂物,车轮模型及贴图等
              | | grass草
              | | txd贴图
              | |- cutscene.img过场动画文件,圣安地列斯的过场动画使用main.scm加载,但是过场动画的相机不会随脚本而动,因此使用这个文件储存外部所需文件,其中就有传说中的fam4.dff和fam4.txd
              | |- effects.fxp 粒子效果数据
              | |- effectsPC.txd粒子效果贴图
              | |- fonts.txd字体贴图
              | |- fronten_pc.txd 电脑指针和移动图
              | |- fronten1.txd电台LOGO贴图
              | |- fronten2.txd游戏主菜单背景贴图
              | |- fronten3.txd同上
              | |- gta_int.img厨房,卧室,照片壁画等模型和贴图
              | |- gta3.img GTASA的车辆人物建筑武器动作模型等等
              | |- hud.txd 如命,雷达贴图
              | |- misc.txd轮胎贴图,可见R星的高明之处,只用了几个车辆轮胎贴图就解决了几百辆车的问题,防止了过多加载
              | |- particle.txd 特效贴图,比较杂乱,还包含日冕导弹图标等
              | |- pcbtns.txd前后左右光标贴图
              | \- player.img玩家身体各个部分模型的归档,如大腿脸部等


              IP属地:中国香港8楼2013-08-27 10:22
              回复
                | movies 幕
                | |- GTAtitles.mpg载入幕
                | \- Logo.mpg 载入幕
                | ReadMe帮助文件
                | \- Readme.txt帮助文件,咱盗版从未见过- -
                | TEXT字体文件,汉化主要就是这个东西
                | |- american.gxt 英语(虽然是美国制造的游戏)
                | |- french.gxt法语
                | |- german.gxt德语
                | |- italian.gxt意大利语
                | \- spanish.gxt西班牙语
                |- eax.dll 环绕音效特性相关动态链接库文件
                |- gta_sa.exe 游戏执行程序,其入口点地址为 008245B0,早期gta允许硬编码,即 直接做为固定内容写入了程序中,而不是使用变量来改变,不过在sa中已经不允许了(准确的说是使用另一种方式替代了硬编码)
                |- ogg.dll
                |- cleo.asi
                |- stream.ini stream流的配置文件
                |- vorbis.dll
                \- vorbisFile.dll


                IP属地:中国香港9楼2013-08-27 10:22
                回复
                  e.e
                  可以转么


                  IP属地:浙江10楼2015-02-07 00:30
                  收起回复
                    和安卓版有关联吗?


                    IP属地:广东来自Android客户端11楼2015-10-23 04:09
                    回复
                      。。。。。。
                      ✎﹏
                          水帖效率Ⅲ
                          水神眷顾Ⅱ
                          吧务杀手Ⅳ
                      经验抢夺Ⅸ
                          封号保护Ⅴ
                      经验时运Ⅹ
                          无限水Ⅷ
                          深海探索者Ⅲ
                         --来自助手版贴吧客户端


                      IP属地:广东来自Android客户端12楼2015-10-24 21:12
                      回复
                        。。。。。。
                        ✎﹏
                            水帖效率Ⅲ
                            水神眷顾Ⅱ
                            吧务杀手Ⅳ
                        经验抢夺Ⅸ
                            封号保护Ⅴ
                        经验时运Ⅹ
                            无限水Ⅷ
                            深海探索者Ⅲ
                           --来自助手版贴吧客户端


                        IP属地:广东来自Android客户端13楼2015-10-24 21:12
                        回复
                          。。。。。。
                          ✎﹏
                              水帖效率Ⅲ
                              水神眷顾Ⅱ
                              吧务杀手Ⅳ
                          经验抢夺Ⅸ
                              封号保护Ⅴ
                          经验时运Ⅹ
                              无限水Ⅷ
                              深海探索者Ⅲ
                             --来自助手版贴吧客户端


                          IP属地:广东来自Android客户端14楼2015-10-24 21:12
                          回复
                            streams文件夹应该在哪个位置啊,我的是阉割版,没有音乐。。。


                            15楼2015-12-26 20:36
                            回复
                              txd是什么意思


                              IP属地:湖北来自Android客户端17楼2016-03-05 18:53
                              收起回复