\[头饰位置相关\]coordinate BIN文件格式解析


  • 管理员

    抽空看了下coordinateinfo和coordinate文件的结构,这里发上来保存一下,需要注明的是,关于coordinate相关bin格式解析的已知的文档(http://cgsword.com/filesystem_graphicmap.htmhttp://bbs.mocwww.com:86/viewthread.php?tid=28125)中格式的分析都有瑕疵

    先说coordinateinfo文件格式
    文件包含一个文件头,为0x01,也就是文件的0x00000000位置(这个文件头很容易迷惑分析者)
    之后每块数据长0x0A,分别由两个unsigned int和一个unsigned short组成,结构体为
    ```
    typedef struct tagCoordinateInfo{
    unsigned int AnimeID; // 动画的id
    unsigned int binfileOffset; // 在coordinate.bin中的偏移位置
    unsigned short dataNum; // 表示有多少组coordinate数据
    }CoordinateInfo;
    ```
    再来说coordinate文件格式没有文件头,每段数据长0x08byte,结构如下

    typedef struct tagCoordinate{
    unsigned int GraphicIndex; // 图档的内存索引编号,这个值并非图档的地图元素编号
    short xoffset; // 图档的x轴偏移量
    short yoffset; // 图档的y轴偏移量
    }Coordinate;
    

    用两个bin文件的第一组数据来解析
    coordinateinfo 排除掉第一个文件头后,第一组数据为

    92 8A 01 00 00 00 00 00 58 01
    分析得出图档ID为0x00018A92 101010 穴熊的动画
    然后得出一共有0x0158个数据
    于是乎转到coordinate.bin,看看第一组数据是什么

    58 E8 02 00 EE FF B6 FF
    分析得知 图档在内存中的索引为 0x0002e858 190552
    因为这里是第一个图档的文件,也就是Graphic_xx.bin,所以直接转向Graphic_xx.bin,找到第190552张图片,看一下吧

    就是穴熊的第一个动作的第一帧图片,这里就定义了这个角色佩戴头饰等显示的偏移值,0xffee, 0xffb6

    其他数据可以依次分析


    • 想着从别人那获取什么之前,请先自己做出点什么贡献。

    • 技术不是可以衣来伸手饭来张口的。

    • 在你开口问别人为什么之前,请先自己问问搜索引擎。

    • 自由和分享是需要建立在你自身的基础之上的。

    0


  • 厲害 知道咋麼改了3q



  • 诶二个代码引用 y坐标错了



  • 哇~终于看到我想找的东西了~可是还是看不太懂?如何追加骑宠偏移的补丁到韩服cg支持的客户端呢?台服人物和小黑帽等都无法正确骑宠哦,



  • 刚刚测试了一下添加新数据没成
    用的是西恩1.0杖的数据转移到西恩麦克风gm
    不知道那个环节错了哦:Q用的是最新的台服段


  • 管理员

    牛排你的那个bin里面最后一个动画我读取到地354个数据就已经到文件尾了,但是你定义了一共584帧数据


    • 想着从别人那获取什么之前,请先自己做出点什么贡献。

    • 技术不是可以衣来伸手饭来张口的。

    • 在你开口问别人为什么之前,请先自己问问搜索引擎。

    • 自由和分享是需要建立在你自身的基础之上的。

    0


  • 哦哦 那估计是数据搞坏了:Q:Q:Q



  • 今天自己整了个读取工具 真是搞死啦 本身不是编程的:Q:Q:Q



  • 感谢分享:lol



  • 我想知道 see4 在哪里下。 我下载的 都是老版本的



  • 太太太太利害......
    原來單單一個頭飾也這麼難


登录后回复