游戏辅助制作原理Word文档格式.docx
- 文档编号:14549522
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:15
- 大小:25.46KB
游戏辅助制作原理Word文档格式.docx
《游戏辅助制作原理Word文档格式.docx》由会员分享,可在线阅读,更多相关《游戏辅助制作原理Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
一类是将游戏中大量繁琐和无聊的攻击动作使用辅助自动完成,以帮助玩家轻松搞定攻击对象并可以快速的增加玩家的经验值。
比如在《龙族》中有一种工作的设定,玩家的工作等级越高,就可以驾驭越好的装备。
但是增加工作等级却不是一件有趣的事情,毋宁说是重复枯燥的机械劳动。
如果你想做法师用的杖,首先需要做基本工作--?
砍树。
砍树的方法很简单,在一棵大树前不停的点鼠标就可以了,每10000的经验升一级。
这就意味着玩家要在大树前不停的点击鼠标,这种无聊的事情通过"
按键精灵"
就可以解决。
辅助的"
功能可以让玩家摆脱无趣的点击鼠标的工作。
另一类是由辅助程序产生欺骗性的网络游戏封包,并将这些封包发送到网络游戏服器,利用这些虚假信息欺骗服务器进行游戏数值的修改,达到修改角色能力数值的目的。
这类辅助程序针对性很强,一般在设计时都是针对某个游戏某个版本来做的,因为每个网络游戏服务器与客户端交流的数据包各不相同,辅助程序必须要对欺骗的网络游戏服务器的数据包进行分析,才能产生服务器识别的数据包。
这类辅助程序也是当前最流利的一类游戏辅助程序。
另外,现在很多辅助程序功能强大,不仅实现了自动动作代理和封包功能,而且还提供了对网络游戏的客户端程序的数据进行修改,以达到欺骗网络游戏服务器的目的。
我相信,随着网络游戏商家的反辅助技术的进展,游戏辅助将会产生更多更优秀的技术,让我们期待着看场技术大战吧......
三、辅助技术综述
可以将开发游戏辅助程序的过程大体上划分为两个部分:
前期部分工作是对辅助的主体游戏进行分析,不同类型的辅助分析主体游戏的内容也不相同。
如辅助为上述谈到的辅助类型中的第一类时,其分析过程常是针对游戏的场景中的攻击对象的位置和分布情况进行分析,以实现辅助自动进行攻击以及位置移动。
如辅助为辅助类型中的第二类时,其分析过程常是针对游戏
服务器与客户端之间通讯包数据的结构、内容以及加密算法的分析。
因网络游戏公司一般都不会公布其游戏产品的通讯包数据的结构、内容和加密算法的信息,所以对于开发第二类辅助成功的关键在于是否能正确分析游戏包数据的结构、内容以及加密算法,虽然可以使用一些工具辅助分析,但是这还是一种坚苦而复杂的工作。
后期部分工作主要是根据前期对游戏的分析结果,使用大量的程序开发技术编写辅助程序以实现对游戏的控制或修改。
如辅助程序为第一类辅助时,通常会使用到鼠标模拟技术来实现游戏角色的自动位置移动,使用键盘模拟技术来实现游戏角色的自动攻击。
如辅助程序为第二类辅助时,通常会使用到挡截Sock和挡截API函数技术,以挡截游戏服务器传来的网络数据包并将数据包修改后封包后传给游戏服务器。
另外,还有许多辅助使用对游戏客户端程序内存数据修改技术以及游戏加速技术。
本文主要是针对开发游戏辅助程序后期使用的程序开发技术进行探讨,重点介绍的
如下几种在游戏辅助中常使用的程序开发技术:
●动作模拟技术:
主要包括键盘模拟技术和鼠标模拟技术。
●封包技术:
主要包括挡截Sock技术和挡截API技术。
动作模拟技术
我们在前面介绍过,几乎所有的游戏都有大量繁琐和无聊的攻击动作以增加玩家的功力,还有那些数不完的迷宫,这些好像已经成为了角色游戏的代名词。
现在,辅助可以帮助玩家从这些繁琐而无聊的工作中摆脱出来,专注于游戏情节的进展。
辅助程序为了实现自动角色位置移动和自动攻击等功能,需要使用到键盘模拟技术和鼠标模拟技术。
下面我们将重点介绍这些技术并编写一个简单的实例帮助读者理解动作模拟技术的实现过程。
1.鼠标模拟技术
几乎所有的游戏中都使用了鼠标来改变角色的位置和方向,玩家仅用一个小小的鼠标,就可以使角色畅游天下。
那么,我们如何实现在没有玩家的参与下角色也可以自动行走呢。
其实实现这个并不难,仅仅几个WindowsAPI函数就可以搞定,让我们先来认识认识这些API函数。
(1)模拟鼠标动作API函数mouse_event,它可以实现模拟鼠标按下和放开等动作。
VOIDmouse_event(
DWORDdwFlags,//鼠标动作标识。
DWORDdx,//鼠标水平方向位置。
DWORDdy,//鼠标垂直方向位置。
DWORDdwData,//鼠标轮子转动的数量。
DWORDdwExtraInfo//一个关联鼠标动作辅加信息。
);
其中,dwFlags表示了各种各样的鼠标动作和点击活动,它的常用取值如下:
MOUSEEVENTF_MOVE 表示模拟鼠标移动事件。
MOUSEEVENTF_LEFTDOWN表示模拟按下鼠标左键。
MOUSEEVENTF_LEFTUP表示模拟放开鼠标左键。
MOUSEEVENTF_RIGHTDOWN表示模拟按下鼠标右键。
MOUSEEVENTF_RIGHTUP表示模拟放开鼠标右键。
MOUSEEVENTF_MIDDLEDOWN表示模拟按下鼠标中键。
MOUSEEVENTF_MIDDLEUP表示模拟放开鼠标中键。
(2)、设置和获取当前鼠标位置的API函数。
获取当前鼠标位置使用GetCursorPos()函数,设置当前鼠标位置使用SetCursorPos()函数。
BOOLGetCursorPos(
LPPOINT lpPoint//返回鼠标的当前位置。
BOOLSetCursorPos(
intX,//鼠标的水平方向位置。
intY//鼠标的垂直方向位置。
通常游戏角色的行走都是通过鼠标移动至目的地,然后按一下鼠标的按钮就搞定了。
下面我们使用上面介绍的API函数来模拟角色行走过程。
CPointoldPoint,newPoint;
GetCursorPos(&
oldPoint);
//保存当前鼠标位置。
newPoint.x=oldPoint.x+40;
newPoint.y=oldPoint.y+10;
SetCursorPos(newPoint.x,newPoint.y);
//设置目的地位置。
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
//模拟按下鼠标右键。
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
//模拟放开鼠标右键。
2.键盘模拟技术
在很多游戏中,不仅提供了鼠标的操作,而且还提供了键盘的操作,在对攻击对象进行攻击时还可以使用快捷键。
为了使这些攻击过程能够自动进行,辅助程序需要使用键盘模拟技术。
像鼠标模拟技术一样,WindowsAPI也提供了一系列API函数来完成对键盘动作的模拟。
模拟键盘动作API函数keydb_event,它可以模拟对键盘上的某个或某些键进行按下或放开的动作。
VOIDkeybd_event(
BYTEbVk,//虚拟键值。
BYTEbScan,//硬件扫描码。
DWORDdwFlags,//动作标识。
DWORDdwExtraInfo//与键盘动作关联的辅加信息。
);
其中,bVk表示虚拟键值,其实它是一个BYTE类型值的宏,其取值范围为1-254。
有关虚拟键值表请在MSDN上使用关键字“Virtual-KeyCodes”查找相关资料。
bScan表示当键盘上某键被按下和放开时,键盘系统硬件产生的扫描码,我们可以MapVirtualKey()函数在虚拟键值与扫描码之间进行转换。
dwFlags表示各种样的键盘动作,它有两种取值:
KEYEVENTF_EXTENDEDKEY和KEYEVENTF_KEYUP。
责任编辑:
下面我们使用一段代码实现在游戏中按下Shift+R快捷键对攻击对象进行攻击。
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0);
//按下CTRL键。
keybd_event(0x52,MapVirtualKey(0x52,0),0,0);
//键下R键。
keybd_event(0x52,MapVirtualKey(0x52,0),KEYEVENTF_KEYUP,0);
//放开R键。
keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),
KEYEVENTF_KEYUP,0);
//放开CTRL键。
3.激活辅助
上面介绍的鼠标和键盘模拟技术实现了对游戏角色的动作部分的模拟,但要想辅助
能工作于游戏之上,还需要将其与游戏的场景窗口联系起来或者使用一个激活键,就象按键精灵的那个激活键一样。
我们可以用GetWindow函数来枚举窗口,也可以用Findwindow函数来查找特定的窗口。
另外还有个FindWindowEx函数可以找到窗口的子窗口,当游戏切换场景的时候我们可以用FindWindowEx来确定些当前窗口的特征,从而判断是否还在这个场景,方法很多了,比如可以GetWindowInfo来确定一些东,比如当查找不到某个按钮的时候就说明游戏场景已经切换了等等办法。
当使用激活键进行关联,需要使用Hook技术开发一个全局键盘钩子,在这里就不具体介绍全局钩子的开发过程了,在后面的实例中我们将会使用到全局钩子,到时将学习到全局钩子的相关知识。
4.实例实现
通过上面的学习,我们已经基本具备了编写动作式游戏辅助的能力了。
下面我们将创建一个画笔程序辅助,它实现自动移动画笔字光标的位置并写下一个红色的“R”字。
以这个实例为基础,加入相应的游戏动作规则,就可以实现一个完整的游戏辅助。
这里作者不想使用某个游戏作为例子来开发辅助(因没有游戏商
家的授权啊!
),如读者感兴趣的话可以找一个游戏试试,最好仅做测试技术用。
首先,我们需要编写一个全局钩子,使用它来激活辅助,激活键为F10。
创建全局钩子步骤如下:
(1).选择MFCAppWizard(DLL)创建项目ActiveKey,并选择MFCExtensionDLL(共享MFC拷贝
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 辅助 制作 原理