《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)

参考链接

  • 好吧,实在不行,果断修改,魔法技能153点,属性100
  • 魔法黎明-内存修改 Dawn of Magic
  • 魔法黎明存档属性点修改
  • 二进制转16进制

魔法黎明(Dawn of Magic)

相关记录(一)

一、 前言

魔法黎明,一款奇幻法术风的动作角色扮演游戏(ARPG)。我初中的时候第一次接触过,对这款游戏影响很深,后来断断续续玩了好几遍,但是都没有通关,因为升级比较慢,游戏也很难。最近,我翻以前的硬盘的时候,又看见这款游戏,忍不住再玩一次。但是,升级,难度还是挺高的,我不想花太多时间在刷怪升级身上,只是想通关一次游戏,所以上网搜索一些作弊教程,但是苦于游戏久远,还有玩的人也不多,教程也比较不那么容易懂。因此,再我搞懂了其中一些技巧之后,我准备稍微详细的写一写如何修改里面的一些数值。如果有童鞋像这么做,也方便一些。

二、需要准备的工具

  1. 游戏源文件
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第1张图片
  2. 存档
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第2张图片
  3. 二进制编辑器(用 Visual C++ 就可以)
    之前还在找,可以用啥二进制编辑器,没想到咱的 C 编辑器就可以做

三、具体操作

  1. 修改魔法技能、工匠技能点数
    用 Visual C++ 打开游戏存档 XXX.prof(XXX是你的名字)
    看不懂不要紧,我们只需要记住改的位置就可以
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第3张图片
    在右边一列,找到以下稍微看的懂得内容
    这是一款 32 位的老游戏,4 字节为一单位。
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第4张图片
    修改上图的两个分别代表魔法技能点和工匠技能点的数值
    比如把数值改为 FF,代表 255 点技能点,实际测试中,这好像是可以改的最大值。
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第5张图片
    返回到游戏中,查看效果

  2. 修改属性点
    找到以下位置
    这个比较讲究了,一开始,我还没懂,为什么是 00 00 80 3F。后来,查资料了解到这个是 浮点数 1.0 的表示方法,本文后面一些具体讲这个。
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第6张图片
    给一个参考修改的图(参考链接里有)
    分别的数值对应
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第7张图片
    改一个狠的,比如 00 00 80 44,就是 1024
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第8张图片
    进游戏,看看

  3. 修改金币数量
    找到以下位置
    12 10 00 00 代表的是这个存档,当前的金币数.
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第9张图片
    改为 3f 42 0f 00,就是 999999
    《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第10张图片
    回到游戏中

四、其它

关于浮点数 1.0 的问题
网上搬了一段程序,就是 浮点数如何转换为 16 进制形式

import struct

def float_to_hex(f):
    return hex(struct.unpack(', struct.pack(', f))[0])


def double_to_hex(f):
    return hex(struct.unpack(', struct.pack(', f))[0])


print('32位:', float_to_hex(1.0))
print('64位:', double_to_hex(1.0))

>>>32位: 0x3f800000
64位: 0x3ff0000000000000

3f 80 00 00 换一下位置,80 3f 00 00 ,这个需要自己理解一下
还有就是 32 位和 64 位的区别,两者结果不一样

关于修改金币数
比如之前的 12 10 00 00 ,实际上应该是 10 12 ,如下图所示:
12 10 00 00
《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第11张图片
3f 42 0f 00
《魔法黎明(Dawn of Magic)》修改存档魔法技能、工匠技能、属性点、金币数量(一)_第12张图片

五、找不到相同的位置

这个问题就需要自己去找位置了,我这里只是提供了我的位置,可能会不一样。
可以按照以下方法查:

  1. 把自己的数值转换为 16 进制
  2. 将自己的 16 进制数,拆分成为 4 个单独的字节
  3. 先搜完整的 4 个字节(顺序可正可逆)(如果有,进游戏再改相关数值,再查)【适合这里的技能点、属性点】
  4. 没有,搜 2 个字节(顺序可正可逆)(如果有,进游戏再改相关数值,再查)
  5. 最后,搜单个字节(如果有,进游戏再改相关数值,再查)【适合这里的金币数量】
  6. 没有,就换方法,改存档不行了

六、总结

本篇记录较为详细的写了如何修改修改存档魔法技能、工匠技能、属性点、金币数量。网上的教程不够详细,特定写一些文章来补充一下。

点我回顶部 ☚

 
 
 
 
 
 
 
Fin.

你可能感兴趣的:(杂项,魔法黎明,Dawn,of,Magic,修改数值,教程,详细)