铁血丹心

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

[其他] 哪儿能下载到DOS版的再战江湖?

  [复制链接]
发表于 2011-4-20 23:04 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

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

x
本帖最后由 lsl_lsq 于 2011-4-20 23:06 编辑

不知道发这个合适不?斑竹留下情。。

目前个人在制作PSP版的再战江湖,用鱼大的转换文件将事件都转换成LUA文件,在PSP中进入游戏可以玩了。

可是一碰到商店买东西选项就会出错退出,看到鱼大的PSP苍龙版,基本可以确认是目前采用都是Windows复刻版文件的原因,要是早期的DOS版应该就没问题了。

在网上找到的都是复刻版,请问那位能提供下DOS版的再战江湖?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-20 23:13 | 显示全部楼层
这样说吧,你的方法不可以实现

再战江湖里使用了50指令,而鱼大提供的转化脚本的工具,缺乏对50指令的支持.

我之前做了另外一个方案来支持老mod
即lua本身来解析kdef.grp,50指令基本都是支持的
不过貌似还有一些bug,不是所有mod都OK(不过至少再战江湖是没问题了)

悲剧的是源文件经历各个修改版本后,源文件搞丢了。

如果搂住有兴趣,可以参考S60版的再战江湖,理论上和PSP版是通用的。
S60版再战江湖也不是完美的,主要问题是kdef有bug,需要楼主去找一下没问题的kdef,有可能的话,还需要手动修正。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-20 23:21 | 显示全部楼层
回复 2 # jy02785317 的帖子


谢谢027大人。。

因为没玩过再战江湖,看到有苍龙版的PSP,想在PSP上在再战。今天有空,折腾了一天,终于进入游戏。战斗,对话等都没问题,可一碰到商店买东西选择之类的就会退出,估计是采用了50指令之类的吧?

嗯,还不太熟悉,再找些资料了解下。。请027大人多帮助啊!


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-20 23:28 | 显示全部楼层
回复 3 # lsl_lsq 的帖子

简单的来说,基本上就是直接copy S60版的再战江湖就OK了
不过,由于路径的不同,可能需要在config或者const里面改一下
别的方面基本不用作变动
---------------------
或者再简单一些,就把readkdef.hsk这个文件copy进去
然后在你psp版的脚本里,加一句dofile 路径\readkdef.hsk就好了
当然再战的数据文件你需要复制过去。


另外,由于现在仅有的readkdef.hsk版本很多,而且都是被我加密了的,
所以我也不知道它里面到底做了些什么...有些细节可能有问题....很悲剧

举个例子,有的readkdef.hsk里面有对kdef的解密模块,有的没有,那么对应的kdef.grp就不一样
(再战最早的kdef是加密的,后来的复课版则没有加密)

所以建议你还是参考下S60的那个版本
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-20 23:36 | 显示全部楼层
本帖最后由 lsl_lsq 于 2011-4-20 23:38 编辑

回复 4 # jy02785317 的帖子


直接COPY不行,我试过。。好像你那个如JYMAIN.LUA文件都是加密的,进不了游戏。


嗯,我就用复刻版kdef文件导的LUA文件,按照鱼大苍龙版,放在oldevent目录下,就可以进游戏了。

我用了鱼大的苍龙版没加密的LUA文件,我再试试。。

谢谢!
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-20 23:37 | 显示全部楼层
那就用dofile
别的文件都不要动,还是用psp版的
仅仅dofile来加载readkdef.hsk就行了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-20 23:42 | 显示全部楼层
jy02785317 发表于 2011-4-20 23:37
那就用dofile
别的文件都不要动,还是用psp版的
仅仅dofile来加载readkdef.hsk就行了


对不住027大人,个人不太懂dofile。。

是要改下哪些的文件的意思吗?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-20 23:49 | 显示全部楼层
dofile 后面是文件路径

意思就是调用那个文件
比如说你把readkdef.hsk放在主程序同一目录(个人不了解psp文件结构)
那么你就需要写 dofile ".\\readkdef.hsk"
这一句,你在jymain.lua里找,找dofile,应该能找到类似的句子,就加在一起吧。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-21 00:03 | 显示全部楼层
回复 8 # jy02785317 的帖子


我把你说的都加到了jymodify.lua文件里了,而且找到你以前的帖子,加了如下的代码:


  • CC.KRP='.\\data\\kdef.grp'--kdef.grp的路径
  • CC.KDX='.\\data\\kdef.idx'--kdef.idx的路径
  • CC.TRP='.\\data\\talk.grp'--talk.grp的路径
  • CC.TDX='.\\data\talk.idx'--talk.idx的路径
  • dofile '.\\script\\readkdef.hsk'--假设该文件在script下

可是还是进不了游戏,是不是readkdef.hsk文件加密的原因?

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-21 00:19 | 显示全部楼层
回复 8 # jy02785317 的帖子


我仔细看了鱼大未加密的苍龙PSP版的JYMAIN.LUA文件,他的事件是调用script/oldevent下转好的LUA文件名,如果对50指令兼容不好,基本这条路就死了。。

所以,要不用你的JYMAIN.LUA之类的文件,加readkdef.hsk直接调用kdef文件,可是你的这些文件都是加密的,在PSP上没法运行。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-21 00:28 | 显示全部楼层
路径不对
你先弄清psp的路径吧

加没加密对实际使用没影响的
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-21 00:42 | 显示全部楼层
本帖最后由 lsl_lsq 于 2011-4-21 00:46 编辑

回复 11 # jy02785317 的帖子


PSP的目录是这样的,我觉得在LUA中用的都是相对目录吧?

程序运行的是游戏目录,调用时用如.\\data\\kdef.grp'相对目录吧?

鱼大的苍龙版PSP在CONFIG.LUA中目录设定:


--设置各个数据文件的路径,如果是其他目录标志和windows不同的OS, 如linux,则改为合适的路径
CONFIG.CurrentPath ="./"
CONFIG.DataPath=CONFIG.CurrentPath .. "data/";
CONFIG.PicturePath=CONFIG.CurrentPath .. "pic/";
CONFIG.SoundPath=CONFIG.CurrentPath .. "sound/";
CONFIG.ScriptPath=CONFIG.CurrentPath .. "script/";
CONFIG.OldEventPath=CONFIG.ScriptPath .. "oldevent/";
CONFIG.NewEventPath=CONFIG.ScriptPath .. "newevent/";

CONFIG.JYMain_Lua=CONFIG.ScriptPath .. "jymain.lua";   --lua主程序名





本帖子中包含更多资源

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

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-21 12:11 | 显示全部楼层
你不要复制粘贴。这些我都有。你自己吧这些看懂不就好了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-23 23:54 | 显示全部楼层
本帖最后由 lsl_lsq 于 2011-4-24 00:53 编辑

回复 13 # jy02785317 的帖子


027大人,你那个readkdef文件已经可以利用在PSP上了,可是目前只要一对话就死机。。

调试了半天,应该不是你程序的错误,因为我在PC上可用readkdef文件来取代oldevent?.lua进行游戏。。

会不会是取对话内容的那段有什么和PSP上有不兼容的代码?

----可以确认是readkdef中的ReadTalk函数的原因,排除了talk.grp和talk.idx文件目录格式的原因,实在看不出有别的问题啊!




点评

看了下s60的记录,当时对话跳出似乎是路径配制错误  发表于 2011-4-24 07:37
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-24 07:33 | 显示全部楼层
回复 14 # lsl_lsq 的帖子

可能的话,把出错后的debug.txt的内容发出来看一下

我记得当初s60版也有这个问题,具体原因现在想不起来了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-24 13:00 | 显示全部楼层
回复 15 # jy02785317 的帖子


027大人真早啊。。

debug文件的内容:

04:56:16 JY_Main start.
04:56:29 Loadrecord time=5824

个人觉得要是路径的原因,读事件文件kdef.grp也应该出错的说,目前运行事件文件kdef.grp是可以读取的。。



【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-24 13:57 | 显示全部楼层
回复 16 # lsl_lsq 的帖子

保险起见,还是检查一下吧
事件文件是kdef.grp/idx
对话文件是talk.grp/idx
应该都在data\下

如果可能的话,readkdef请尽量使用s60那个版本里的,里面针对再战江湖好像有点设置。
我回头去找找,看能不能找到当时的源码
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-24 16:22 | 显示全部楼层
回复 17 # jy02785317 的帖子


再次确认了下,应该不是路径设置问题。

因为我把talk.grp和talk.idx文件删除后,反而不会死机了,就是对话框都是空的,事件都能进行,就是没对话内容。。

还有另一种可能,就是talk.grp和talk.idx的文件不对,可我把DOS版,复刻版,LUA版的都拷过来一一测试,全部死机。。

真实怪事,在PC上都是同样的文件,可以运行,到了PSP上咋就不行了??
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-24 19:29 | 显示全部楼层
回复 17 # jy02785317 的帖子


找到原因了,不是路径问题,是Realtalk的一段程序,在PSP上不兼容造成的。。

不好意思,又要复制你的代码了:

for i=0,len-2 do
        local byte=Byte.getu16(talk,i)

                lib.Debug(string.format('id=%d,idx1=%d,idx2=%d,len=%d,str=%s,i=%d',id,idx1,idx2,len,str,i))

        byte=255-math.fmod(byte,256)
        --Byte.setu16(talk,i,byte)
   
        str=str..string.char(byte)
               
                lib.Debug(string.format('id=%d,idx1=%d,idx2=%d,len=%d,str=%s,i=%d',id,idx1,idx2,len,str,i))
  end

Debug.txt文件是这样的:

11:21:31 JY_Main start.
11:21:42 Loadrecord time=3187
11:21:52 id=2747,idx1=138098,idx2=138115,len=17,str=,i=0
11:21:52 id=2747,idx1=138098,idx2=138115,len=17,str=?i=0

第一个循环结束后,就死了。是PSP的不支持ASCII编码?把PSP的内码设成US,中文简体,中文繁体都不行。。




【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-24 19:32 | 显示全部楼层
似乎你用的是我在达摩堂发布的?
建议你直接使用s60版里面的readkdef.hsk

你发的代码,我稍候找出源码看一下
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-24 19:46 | 显示全部楼层
回复 20 # jy02785317 的帖子


是的,你发的源码,那个s16的readkdef是加密的,在PSP上用不了,或是我不会用。。

就是加dofile文件,可是程序运行后就自动退出了,而用源码就没问题。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-24 19:51 | 显示全部楼层
或者你可以用另外一种方法读取对话

以下是鱼大的原始代码

  1. --根据oldtalk.grp文件来idx索引文件。供后面读对话使用
  2. function GenTalkIdx()         --生成对话索引文件
  3.         os.remove(CC.TalkIdxFile);
  4.         local p=io.open(CC.TalkIdxFile,"w");
  5.         p:close();

  6.         p=io.open(CC.TalkGrpFile,"r");
  7.         local num=0
  8.         for line in p:lines() do
  9.             num=num+1;
  10.         end
  11.     p:seek("set",0);
  12.         local data=Byte.create(num*4);

  13.         for i=0,num-1 do
  14.             local talk=p:read("*line");
  15.                 local offset=p:seek();
  16.                 Byte.set32(data,i*4,offset);
  17.         end
  18.     p:close();

  19.         Byte.savefile(data,CC.TalkIdxFile,0,num*4);
  20. end

  21. --从old_talk.lua中读取编号为talkid的字符串。
  22. --需要的时候读取,可以节约内存占用,不用再把整个文件读入内存数据了。
  23. function ReadTalk(talkid)            --从文件读取一条对话
  24.         local idxfile=CC.TalkIdxFile
  25.     local grpfile=CC.TalkGrpFile

  26.         local length=filelength(idxfile);

  27.         if talkid<0 and talkid>=length/4 then
  28.             return
  29.         end

  30.         local data=Byte.create(2*4);
  31.         local id1,id2;
  32.         if talkid==0 then
  33.         Byte.loadfile(data,idxfile,0,4);
  34.                 id1=0;
  35.             id2=Byte.get32(data,0);
  36.     else
  37.         Byte.loadfile(data,idxfile,(talkid-1)*4,4*2);
  38.                 id1=Byte.get32(data,0);
  39.             id2=Byte.get32(data,4);
  40.     end

  41.     local p=io.open(grpfile,"r");
  42.     p:seek("set",id1);
  43.         local talk=p:read("*line");
  44.         p:close();

  45.         return talk;

  46. end
复制代码
这种方法,是先用fe将对话导出成old_talk.idx
然后再通过lua的io指令来读取这个文件。

我们这里也可以用这个方法:
修改readkdef.hsk里面的ReadTALK函数

  1. function ReadTALK(id)
  2.         return ReadTalk(id); --调用鱼大的函数
  3. end
复制代码
楼主你不妨试试,不过需要先整理出old_talk.lua
另外还要配置CC.TalkIdxFile/CC.TalkGrpFile,(可能已经预先配置好了?)
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-24 19:59 | 显示全部楼层
回复 22 # jy02785317 的帖子


谢谢027大人!やった!

调用鱼大的之后,终于对话正常了。。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-4-25 08:41 | 显示全部楼层
本帖最后由 沈小侠 于 2011-4-25 08:43 编辑

我的天。。。

本来我那个想上传的,看到那么多的技术帖,最后还貌似解决了,算了吧。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-4-25 18:28 | 显示全部楼层
回复 22 # jy02785317 的帖子


027大人,今天又调试了下再战江湖的程序。。

readkdef文件没有问题,问题出在你在jymodify.lua文件里增加了对应函数造成的。。

请问下还有jymodify.lua源代码文件吗?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-5-16 17:44

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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