炎龙骑士团吧 关注:10,155贴子:116,601

炎2 FDFIELD.DAT解析

只看楼主收藏回复

好久没来盐巴了,先给大家补上N+N天的问候~ 呵呵
这周末有些时间,又把经典的炎2拿出来看了看,分享一些结论给大家。

以4字节为单位,保存游戏33个地图的信息
每张地图信息由3部分数据组成:
第一部分为地图构成数据
第二部分为地图控制信息,包括我方出场人物上限,地图宝物信息,以及一些剧情信息(增援,NPC出场等等)
第三部分为人物出场位置信息
以第一关 孤岛 为例:

高亮部分表示第一关地图3部分数据各自的其实偏移量,由此可知第一关地图的3部分数据分别为:
第一部分: 0x196 ~ 0xA99 共0x904字节。
第二部分:0xA9A ~ 0xE42 共0x3A9字节。
第三部分:0xE43 ~ 0xF10 共0xCE字节。
下面以第一关为例具体解析各部分数据:




附一张全是海水的第一张地图。非PS哦~



1楼2010-08-07 20:28回复
    只能推高手了... *拜倒*


    IP属地:中国台湾2楼2010-08-07 20:46
    回复
      • 27.37.32.*
      第一关原来叫孤岛啊?!
      PS:恭请PlayerLin专家出场....


      3楼2010-08-07 20:47
      回复
        补充对FDSHAP.DAT文件的解析


        4楼2010-08-07 21:02
        回复
          不来是不来,一来就是重量级的,服了!


          IP属地:北京5楼2010-08-07 21:14
          回复
            看不懂。。。。。。。


            6楼2010-08-07 21:18
            回复
              對外傳沒興趣的人別看我的這篇了。 :P
              外傳的FDFIELD.VFS的內部資料結構和二代一致,只不過每張地圖的數據都被拆開來放。 MAPXX.COD 和 MAPXX.DAT,每張地圖都有成對的文件。
              MAPXX.COD = 第三部分(文件頭含有"COD"的字元)
              MAPXX.DAT = 第二部分
              第一部份的地圖構成 還 沒 找 到。
              (奇了,是我漏看什麼嗎?每個VFS都翻開來看就是沒發現類似的...
              MAP01的地圖大小是30x24,所以如果是用二代規則的話,那應該要搜尋1E001800,但搜尋所有VFS文件後,只在FIELD1.VFS中的0x0306F4找到這個字串。但看了一下後面的資料,似乎不太像是...比較像是某種index字串集?)
              FDSHAP.DAT裡面的東西可在FIELD2.VFS中的 ATTRXXX.DAT文件裡找到(文件頭有ATR字樣),但某些ATTRXXX.DAT的內容似乎"蠻特別的",所以我不確定這些DAT是不是都是代表地圖元件信息的。
              *滾走*


              IP属地:中国台湾7楼2010-08-07 21:31
              回复
                • 27.37.32.*
                炎外和二代应该是相通的吧?
                相信楼主的这些数据一出很快就有人做出相应的修改器了~
                到时势必掀起一股新的MOD风云。


                8楼2010-08-07 21:52
                回复
                  我也希望可以有工具出来,实现战场修改就有意思了。


                  IP属地:北京9楼2010-08-07 21:55
                  回复
                    • 59.41.99.*
                    回个跑题帖......什么时候能够让2代英雄索尔打出能扣血的破龙击......


                    10楼2010-08-07 23:14
                    回复
                      强帖留名
                      这个研究对做MOD太有用了


                      IP属地:陕西11楼2010-08-07 23:45
                      回复
                        饿。。。。。。。我想问下。宝箱所在位置的信息在哪里??比如说,X,Y的信息??


                        IP属地:湖南12楼2010-08-08 12:54
                        回复
                          回复:12楼
                          宝箱的位置不是直接给出的,需要在第一部分地图的构成里面看。
                          地图构成数据格式是AA AA BB BB的形式, 前面的AA AA表示该位置的图形在FDSHAP.DAT文件里的序号。 BB BB一般为 00 00 ,表示什么都没有。若为数字,例如 01 00 ,则表示该位置的宝藏内容为 本地图宝物列表里第 1 个位置对应的东西。
                          如果想知道这个位置的坐标,那么需要先知道这个区块的次序。 以第一关地图为例, 在FDFIELD.DAT文件中 offset 0x626 的数据是 FA 00 01 00 ,表示这个位置的宝物是个草药。第一关地图构成信息的起始 offset 是 0x196, 加上前面4个字节的地图大小,变成 0x19A , 那么FA 00 01 00 的区块次序就是 (0x626-0x19A) / 4 = 0x123 = 291(dec) 那么该区块的x,y 坐标为
                          y = 291 / 24 ( 地图宽为24) = 12
                          x = 291 % 24 = 3
                          地图左上角坐标为(0,0),现在去(3,12) 的位置验证,发现该位置是个蓝色宝箱,里面为草药,验证正确。
                          


                          13楼2010-08-08 13:31
                          回复
                            额。更正一下,那个宝箱里面是3000块钱。。。我一直错以为是草药来的。。。


                            14楼2010-08-08 13:37
                            回复
                              我不怎麼想研究那個地圖構成部分的原因就是13樓說的,座標什麼的通通都要自己去算orz
                              比看反彙編的結果還麻煩...||||||


                              IP属地:中国台湾15楼2010-08-08 13:40
                              回复