铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 3693|回复: 6

[C++复刻] 求教,金群C++版的R存档修改

[复制链接]
发表于 2018-3-23 17:22 | 显示全部楼层 |阅读模式

不知道有人尝试过没。求教各位大神
坑爹的机器猫,所有数据的长度基本都翻了一倍,而且有些属性貌似删掉了,原来的修改器全都用不了了。

我本来想把ka巨的sfe2重新适配一遍:对照代码整理的sfe2的ini文件参见附件。

重新编译的sfe2,特么的倒是能顺利将r.grp32文件转换为xls了,但是xls里面的很多数据都是乱的,如图所示。并且用sfe2重新转换为存档后存档坏了。。。
不知道是那块适配的有问题。按说每一块的长度都和idx对的上。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-3-27 20:11 | 显示全部楼层
本帖最后由 紫府神箫 于 2018-3-27 20:36 编辑

自己研究出来是怎么回事了。。
并不是bt的锅,并且我之前写的资源文件也是完全正确的。

真正有问题的是ka的sfe2。因为这次的金群C++版好像是头一个使用4个字节(32位)整数的版本,之前所有的版本的整数都是2个字节(16位)的。所以sfe2就没有对此做任何适配。

看sfe2的代码,发现原来资源文件里的这个“字节长度”,对于字符串来说确实有作用。
但对于整型来说,ka帝之前只是简单粗暴地统一读进16位整型,读数据时并没有用到“字节长度”这个值,而只是在excel的数据类型显示里会显示int_data:4,但实际上还是按两个字节读的。


我简单修改了下这段代码,加了个判断,当字节长度为2时使用ReadInt16读入,其他长度使用ReadInt32。注意要把dataNum的赋值语句移动到前面。当然还会有其他情况比如64位的,遇到的时候再说吧。



经测试这样一来转换后的xls文档,里面就不存在乱码了:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-3-27 20:27 | 显示全部楼层
但这只解决了读存档的问题,写存档依然不行。因为sfe2之前根本就没适配过32位整数的情况,而且在写存档时直接默认整数就是16位,根本不会去参考资源文件。
所以只能给写Ranger的函数加个入参了。然后在下面做同样的判断,当字节长度为2时和不为2时分别用不同的转换方法:

对应的,在命令里面需要加上-kys参数,和gbk、big5什么的并列:



然后在调用命令时,设置当参数为-kys时,字节长度为4。同时注意将-kys时的编码方式也设置为GBK。




这样一来,写存档就也没问题了,通过xls转换的存档可以在游戏里面成功读入了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-3-27 20:33 | 显示全部楼层
最后还有一个问题,其实是sfe2之前的遗留问题:通过xls转换的存档,别的都好好的,但是游戏里面字符串会显示为乱码。
研究了一下发现,原来是ka帝之前写GBK转byte的时候,函数好像用错了(Big5的就没错)。
上面一行注释掉的是ka之前写的,下面一行是我参照Big5的重写的:


这样一来,通过xls生成的grp存档,在游戏里就也能正常显示所有字符串了,收工。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-4-1 21:03 | 显示全部楼层
有泪帝太强大了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-5-13 23:09 | 显示全部楼层
好细心的大神
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2019-5-9 11:22 | 显示全部楼层
大神这个导出工具通用到PTT的C++版本吗
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-21 20:31

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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