[转]【给游戏修改器制作爱好者】——一点游戏修改器制作的经验
2010-03-17 18:53
555 查看
估计没玩过单机游戏的人现在只好去火星找了……
恐怕很多人都用过游戏修改器,也有不少不少人写过,或者正在准备写,或者正在写但是遇到了一些小问题。在这里作为一个VB爱好者提供一些参考给大家,当然我写过的游戏修改器有不少,出于兴趣也写了好几年,在我CSDN的下载频道里面有一些,也有一些没有公布的,虽然这样,我也不是什么资深专家,这篇文章提到的很多知识也是我新学的,例如说我正在学OD(有点汗颜,有一段时间没摸了)。
这篇文章早就写好了,也没有订正,错误之处请大家多多指正。由于图片比较多,写的时候用的WORD,又不能直接贴到这里,所以干脆截屏下来了。在这些图片之后,有一个简短的游戏修改器,有兴趣的可以参考一下,么有用以前封装的类,只是那天找到修改方法作为记录写了一会。看了代码也许一些正在困惑的同学们就豁然开朗了,原来就那么点玩意,非高深之学也!呵呵,不过有些游戏并不是简单的搜索搜索标记标记NOPNOP就能得到修改方法的。
以上就是一点经验了。下面贴一个游戏修改器的源码:
幻幻球无限球内存修改器:
Public Class Form1
'将加-1(&HFFFFFFFF)修改为减-1
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, Optional ByVal nSize As Integer = 1, Optional ByRef lpNumberOfBytesWritten As Integer = 0) As Integer
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Int32, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, Optional ByVal nSize As Integer = 1, Optional ByRef lpNumberOfBytesWritten As Integer = 0) As Integer
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
Dim pros = Process.GetProcessesByName("Peggle")
Dim code As Byte
If pros.Length > 0 Then
ReadProcessMemory(pros(0).Handle, &H4536FD, code)
If code = &H3 OrElse code = &H2B Then
If CheckBox1.Checked Then
WriteProcessMemory(pros(0).Handle, &H4536FD, &H2B)
Else
WriteProcessMemory(pros(0).Handle, &H4536FD, &H3)
End If
Else
MsgBox("发现Peggle.exe版本不符!(适用版本1.00)")
End If
Else
MsgBox("未发现Peggle.exe")
End If
End Sub
End Class
这就是完整的代码了。只在窗体上加一个控件:CheckBox1即可。这个代码在测试的时候游戏界面显示的球个数是不变的,这一点要注意,当你把球打没了,还可以接着打——这就显示出效果了。。。不要看到数字没变就……谢谢观赏,再见。
恐怕很多人都用过游戏修改器,也有不少不少人写过,或者正在准备写,或者正在写但是遇到了一些小问题。在这里作为一个VB爱好者提供一些参考给大家,当然我写过的游戏修改器有不少,出于兴趣也写了好几年,在我CSDN的下载频道里面有一些,也有一些没有公布的,虽然这样,我也不是什么资深专家,这篇文章提到的很多知识也是我新学的,例如说我正在学OD(有点汗颜,有一段时间没摸了)。
这篇文章早就写好了,也没有订正,错误之处请大家多多指正。由于图片比较多,写的时候用的WORD,又不能直接贴到这里,所以干脆截屏下来了。在这些图片之后,有一个简短的游戏修改器,有兴趣的可以参考一下,么有用以前封装的类,只是那天找到修改方法作为记录写了一会。看了代码也许一些正在困惑的同学们就豁然开朗了,原来就那么点玩意,非高深之学也!呵呵,不过有些游戏并不是简单的搜索搜索标记标记NOPNOP就能得到修改方法的。
以上就是一点经验了。下面贴一个游戏修改器的源码:
幻幻球无限球内存修改器:
Public Class Form1
'将加-1(&HFFFFFFFF)修改为减-1
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, Optional ByVal nSize As Integer = 1, Optional ByRef lpNumberOfBytesWritten As Integer = 0) As Integer
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Int32, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Byte, Optional ByVal nSize As Integer = 1, Optional ByRef lpNumberOfBytesWritten As Integer = 0) As Integer
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
Dim pros = Process.GetProcessesByName("Peggle")
Dim code As Byte
If pros.Length > 0 Then
ReadProcessMemory(pros(0).Handle, &H4536FD, code)
If code = &H3 OrElse code = &H2B Then
If CheckBox1.Checked Then
WriteProcessMemory(pros(0).Handle, &H4536FD, &H2B)
Else
WriteProcessMemory(pros(0).Handle, &H4536FD, &H3)
End If
Else
MsgBox("发现Peggle.exe版本不符!(适用版本1.00)")
End If
Else
MsgBox("未发现Peggle.exe")
End If
End Sub
End Class
这就是完整的代码了。只在窗体上加一个控件:CheckBox1即可。这个代码在测试的时候游戏界面显示的球个数是不变的,这一点要注意,当你把球打没了,还可以接着打——这就显示出效果了。。。不要看到数字没变就……谢谢观赏,再见。
相关文章推荐
- 【给游戏修改器制作爱好者】——一点游戏修改器制作的经验
- Unreal Open Day 2017 参会总结——腾讯逆战游戏项目制作经验分享
- 游戏制作经验乱弹
- 做游戏修改器的一点记录,有关大航海家3
- 分享2D Unity游戏的动画制作经验
- 分享2D Unity游戏的动画制作经验
- 动手制作操作系统——一点分析问题的经验
- 游戏音乐音效制作团队 价格优惠 11年音乐制作经验品质保证
- 【科普】制作FLASH游戏修改器的一点小经验
- 游戏修改器制作流程
- 被正确使用的轮子才是好轮子——使用Construct2制作游戏的一点感想
- 如何使用CE来修改游戏并制作一个修改器
- Unreal Open Day 2017 参会总结——ACT(动作)游戏制作经验分享
- 分享2D Unity游戏的动画制作经验
- GDC 2012]Epic Games谈在智能手机上制作和台式游戏机同等级的图形游戏的经验
- 游戏制作之经验-1
- 游戏制作之经验-3
- CE游戏修改器制作游戏修改器教程
- 分享2D Unity游戏的动画制作经验
- 以休闲游戏“植物大战僵尸”为例,制作无限阳光修改器。