C#和十六进制偏移范围

问题描述 投票:-1回答:1

抱歉,您有一个新手问题。我有一个游戏保存文件,其中包含有关游戏角色的一些信息。我想更改一些统计信息,例如金钱或技能,我知道数据在哪里,但我不知道如何使用十六进制范围偏移量。例如,我知道技能点在4863-4866之间,如何正确读取和编写新值?

enter image description here

我在代码中的尝试:

        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
        }
c# hex
1个回答
0
投票

尝试一下:

byte[] data = File.ReadAllBytes("Player.chr");
data[0x12FF] += 10;
File.WriteAllBytes("Player.chr", data);
© www.soinside.com 2019 - 2024. All rights reserved.