• C# winform 魔兽MH全图制作教程(1): 开发准备工作


    C# winform 魔兽MH全图制作教程(1): 开发准备工作

     

    一、开发条件:

    1. Visual Studio 2008
    2. win xp,win 7,win 2003.
    3. C# 语言基础
    4. 会调试
    5. 能够运行游戏:《魔兽争霸3冰封王座》
    6. 拥有版本魔兽客户端版本切换器1.20E,1.24E,1.24D

     

    二、设计思路:

    当时做这个程序没考虑太多,下手直接写代码,所以感觉有很多不足,但还是要讲下我的设计思路。

    首先:

    1. 把魔兽整个体系看做一个对象,而且它拥有属性字段如:魔兽版本信息、自身动态内存地址,扩展功能:窗体最大化、视野高度.等等。而且我们要把字段封装起来(也为了后期制作方便)字段设置为静态,以便快速获得信息。


    2. 无论是全图,还是改建改窗体,都是在调用系统API:kernel32.dll ,我们使用的接口大部分来自这里。所以你要知道如果失败了,那么调试时:库有没有导入成功、接口方法是否返回了正确的值、传参是否正确这都将是成功完成功能的关键所在。

    3. 写内存函数你必须了解。也就是:kernel32.dll。只要知道写入的内存地址,写入的值,以及进程,那么你就可以成功的调用,那么这些东西我们该如何获得呢?
    4. 要得知游戏的内存地址也就是动态内存地址(基础+偏移),我们必须能获得Game.dll的信息,判断版本也靠它,所以它也是个关键。游戏分多个版本,1.20E一般为普通RPG地图娱乐使用,1.24B,1.24E是目前比较流行的,也是Dota的主流版本,所以如果把1.20E的内存
    5. 如果你看完以上内容肯定会得出一个结论,也就是我们围绕在使用的: kernel32.dll <<< WriteProcessMemory <<< 信息 <<< Game.dll 而我们主要做的就是:获得信息,告知接口。

     

    三、调用结构图:

    结构图会根据文章进度解析其他参数来源,下一节会介绍基址的获得方法。

    W.je(zlawliet)作品,转载注明出处:http://www.cnblogs.com/tango/articles/2407816.html

  • 相关阅读:
    正则
    在开发过程中调试报表插件详细教程
    在开发过程中调试报表插件详细教程
    页面导出Excel文件总结
    java.lang.IllegalArgumentException: sheetName '' is invalid
    java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
    表达式中的一些常用模式.
    C++使用libcurl做HttpClient
    C++ curl跨平台HttpClient
    java.lang.NumberFormatException: empty String
  • 原文地址:https://www.cnblogs.com/tango/p/2979848.html
Copyright © 2020-2023  润新知