着重对flags.dat进行了研究,参考吧里的部分帖子可以的出:
第一行(前16个字节)勉强算是文件头,存储了GFrogsCmbLnkV100这串字符串,没什么实际意义。
接下来是数据部分,数值以小端模式存储,低位在先高位在后,第一个4字节,代表剧情块的索引编号,紧跟的4字节指明了该剧情中剧情指令的数量和文本的数量,两个字节是该剧情快中剧情指令的数量,后两个字节是该剧情块中文本的数量。
接下来就是剧情指令的数据区,每个剧情指令由16字节构成,可以大致分为4部分,第一个4字节存储的是指令名称,后三个4字节则可以理解为该指令需要的参数param1,param2,param3。参数可以是人物代码、武功代码、剧情块代码、战斗场景代码、或者是直接给的数值(金钱值、经验、时间)。其中二维坐标参数格式稍有区别,用一个4字节的高位2字节低位2字节分别存储了(x,y)。
剧情指令完毕之后,文件中就是以字符串存储的文本了,单个文本以00结束,文本总数量和之前存储的数量相同。所有文本读完之后,该剧情块完毕。接下来4字节为下一个剧情块的索引,格式于前相同。