抱歉,您有一个新手问题。我有一个游戏保存文件,其中包含有关游戏角色的一些信息。我想更改一些统计信息,例如金钱或技能,我知道数据在哪里,但我不知道如何使用十六进制范围偏移量。例如,我知道技能点在4863-4866之间,如何正确读取和编写新值?
我在代码中的尝试:
int skill = 0;
using (BinaryReader br = new BinaryReader(File.OpenRead("Player.chr")))
{
br.BaseStream.Position = 0x12FF; // read position
label1.Text = br.ReadInt32().ToString();
}
using (BinaryWriter bw = new BinaryWriter(File.OpenWrite("Player.chr")))
{
bw.Seek(0x12FF, SeekOrigin.Begin); // go to position
bw.Write(skill + 10); // plus 10 skill points
}
尝试一下:
byte[] data = File.ReadAllBytes("Player.chr");
data[0x12FF] += 10;
File.WriteAllBytes("Player.chr", data);