真的很难吗?最详细的有分!(100分)

  • 主题发起人 主题发起人 荣荣
  • 开始时间 开始时间

荣荣

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]请教我制作一个某游戏(可以用《武林群侠传》作例子)专用存档修改器![8D]
 
先是要知道如何手工修改这个游戏的存档,之后可以用文件流实现,具体因为我没有玩过这个
游戏,所以不能给出例子。
 
我会,但是不知怎样制作,必须用delphi5.0制作。请速回题。[8D]
 
假设你要修改文件第5个字节的一个Integer.
使用TStream;
var
myStream:TStream;
nData:integer;
begin

myStream:=TFileStream.Create(文件名);

nData:=10;
try
myStream.position:=5;
myStream.Write(nData,sizeof(integer):
finally
myStream.free;

end;

end;


这样就可以了。
 
请联系我发的“我想制作一个修改器”问题,重点教我制作修改物品[:)]
 
其实难点在于,得到游戏存档文件的格式,某某字节是金钱,是生命值等。
得到文件格式后,就可以将相应数据修改在程序中修改了。
我不玩游戏,编过一些小游戏,从经验上看应该是这样的。
 
一般游戏存档中属性的位置都是固定的,如《魔法门4—天堂之令》。
你可以用TFilestream的方式读写即可!但是不是只能如此呢?显然不是,你也可以用其他方式打开存档文件修改!
这样的修改器倒是曾经写过一个(就是上面这个游戏)!
如果是要动态修改数据,如游戏中产生的一些临时数据等等,就要用TMemorystream!
对于内存地址可能要直接操作!这种还没做过!
 
你说的情形一般是用于修改文件存档。

那么首先你必须分析清楚文件存档格式:用十六进制看了。
一般是用比较法来分析,先存一个档。 当你的物品、经验值、金钱等发生变化时,另存一档,
你分析这两个存档不同的地方,就可以得出什么地方对应什么东西。
物品的保存一般有两种方法:
1、先用一个字节表示有无这种东西,再就是有多少;
2、只接用数字表示有多少个,为0则表示没有;如:唐伯虎那个什么游戏

金钱的一般会分段记录,并且不按顺序,如玉蒲团的什么游戏

慢慢看吧如果改得正确就能进入游戏,如果改错了,呵呵……

当你完全撑握了这些东西时动手吧! Pan Ying 已经告诉了你该怎么做了。

不好意思,没玩过《武林群侠传》,否则可以给你提供一点有用的东东
 
对不起,各位还是没有回答我:怎么样可以制作修改物品的存档修改器[:(]
 
楼上兄弟的看法是对的,我手工修过。
你要确定是第几个字节要改下面的事就好办是用的方法。
 
其实用ini文件作为存档文件调用相当的方便!
不用改地址这么麻烦!
 
呵呵,你终于到这里来问了!
 
后退
顶部