`
zhuyifeng
  • 浏览: 44903 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

解释一下为什么魔兽没办法改金钱

 
阅读更多

解释一下为什么魔兽没办法改金钱今日上网看到一篇很好的解释了此问题的文章,转载如下:


关于《魔兽争霸3》的验证机制

最近迷上了玩魔兽3的RPG地图,在学习·揣摩和娱乐之中体验到很多乐趣,不仅感慨连连。

一个游戏。在发布5年之后依然在全球拥有几千万的忠实玩家,有着数以万计的开发者不断的深入研究它的机制和扩展接口,并为它开发第三方的地图,插件,以及模型。诸多的电视,网络以及平面媒体紧追其后,捕捉关于它的点点滴滴。任何一个小小的升级都经过开发团队上万次的平衡性测试以及讨论。一个可以用“伟大” 来形容的游戏

我无力的描述并无法表达我对这款游戏以及开发者由衷的赞美和敬佩。暴雪带给我的是一种精神,让我深有感触。

晚上遇到了iSaiAh.net,向他请教了一下魔兽的验证机制。学到很多东西,记录与此:

我的问题是,魔兽的联网对战并没有通过官方架设服务器,那么它是如何来判断双方数据准确性以及合法性的呢。为什么5年之后这款游戏仍然没有一个可以严重影响平衡性的作弊器出现呢?iSaiAh 的回答中包含了几个关键字,如果你都清楚的明白它的含义,那么我的疑问也就可以解答了。

数据同步结构
操作流
相互验证

魔兽发送的封包不包含任何操作的结果,而发送的是操作的本身,即操作流的概念。比如封包A发送的可能是X玩家制造了一个建筑,封包B发送的是Y玩家选择Z 英雄用普通攻击打了X玩家的某一建筑。那么在这两个封包的内容中,只包含操作的方法,不包含任何计算或结果,比如B封包中不会包含Z英雄有没有打到X玩家,打了多少血等等信息。发送的只是一个操作,单纯的向对方描述我的这一动作。但是问题又出现了,如果封包中不包含结果那么如何确保双方的计算结果相同呢,如果计算中有随机因素的出现,又如何确保双方的随机因素一样呢?这就说到了数据同步结构。iSaiAh.net 说魔兽3的数据同步结构可以保证同时计算,同一时刻,双方的随机因素相同。对于这种描述以及所谓的同步结构我并不理解,数学基础只是淡薄。但似乎也只有这么一种方法才可以解释。最后,如果其中某一结果被单方面恶意篡改,则双方计算结果必然不同。即认为双方结果都无效。这就是所谓的相互验证。

欢迎任何来访的达人指出上面分析中的错误,并补充。 我将万分感激。

iSaiAh.net说:在离散数学中,关于递推的原理有一句描述,大概用在这里正合适:
If we Start out right and if Nothing can go wrong,then we will always be right.

其实生活中的很多东西也都如此。
感谢 iSaiAh.net




就是说魔兽联机的时候,计算是在每一台机器上同时进行的

所以你的金钱数量(包括英雄等级、技能冷却之类等数据)在每一台机器都有,你只修改你自己机器上的数据的话,会造成跟其他人数据不一致,结果就是掉线。

而对于魔兽中存在的一些随机数据,例如是否暴击之类,我以前一直认为是在主机上计算的。但是看了这篇文章之后恍然大悟,所谓的随机其实并不是真正的随机,依旧是通过一系列公式计算出来的,当这一公式中所有的变量都是相同的时候,计算结果也相同。

也就是说,随机数据也是同时在每一台机器计算的,所以这些数据你也没有办法修改。
也许有人会问,maphack怎么会存在呢?

maphack其实正好是利用了魔兽的联机数据机制。
正因为计算是在每一台机器同时进行的,所以每个人的机器上都有其他玩家的数据,例如敌方的金钱数量,建筑,单位等等这些数据,而魔兽在本地经过判断,屏蔽了敌方数据,不让他显示出来。
maphack所做的就是修改本地判断,显示出来那些本不应显示的。
因为maphack并没有修改任何数据,所以并不会造成掉线。
另一方面,上面提到了maphack只是修改本地判断,显示出那些本不应该显示的东西,而从一楼的数据操作流理论可以得知,魔兽联机游戏传送的只是操作,所以maphack所做的修改只是在本地,并不会传送到其他机器,所以maphack是无法检测到的,即你无法知道其他玩家是否使用了maphack。


当然还是有两个例外的,一个是mh里的允许选中视野外单位,这个功能的作用是修改本地判断,使你可以点选黑影中的敌方单位。但是你选中黑影中单位的这一个操作会被发送到其他机器,所以其他玩家之后可以在rep中看到你的这个不合理操作(因为正常情况下是无法选中黑雾之中的单位的),这基本是mh的铁证。
另外一个就是dota中的给钱,同上一个一样,这个操作也会被发送并且记录在rep中,因为dota中本来是不允许给钱的,所以这个也是mh铁证。

分享到:
评论

相关推荐

    C# 魔兽争霸 内存修改实例

    在本实例中,我们主要探讨的是如何利用C#语言来实现对魔兽争霸(Warcraft III,简称war3)游戏的内存修改,以创建辅助工具。内存修改是编程中的一种技术,通常用于游戏辅助或调试目的,它允许程序读取和修改其他运行...

    魔兽争霸III重置版改键和喊话软件

    自己用易语言写的一款支持魔兽重置版的改建软件 使用说明 1、打开重置版(指定了进程放置...5、360等误报问题我没办法,只会用易语言写东西,贴上部分代码吧,不放心我做的,又有动手能力的可以参考思路自己写。

    魔兽改键源码

    【魔兽改键源码】是基于MFC(Microsoft Foundation Classes)框架开发的一个应用程序,主要用于修改魔兽游戏中的按键映射,以实现自定义快捷操作。在编程领域,这种类型的软件通常会利用系统级钩子(System Hooks)...

    VC魔兽争霸3(war3)改键源代码

    【VC魔兽争霸3(War3)改键源代码】是一个涉及到计算机编程、游戏修改和Windows API调用的项目。在本文中,我们将深入探讨这个主题,解析相关知识点,并提供一个全面的理解。 首先,"VC"通常指的是Visual C++,这是...

    简单魔兽改键源码

    【简单魔兽改键源码】是一个编程项目,主要目的是实现对魔兽争霸游戏的键盘映射功能,以便玩家可以根据自己的习惯自定义快捷键。这个项目仅提供了源代码,并没有包含编译后的可执行文件,因此用户需要具备一定的编程...

    魔兽小键盘按键修改 (附源码)

    在魔兽游戏中,通过编程技术,我们可以实现在魔兽启动后,将小键盘7键的功能临时替换为Z键。这在快速施法、单位选择等方面能提供显著的效率提升,特别是对于那些需要频繁使用Z键的英雄或技能。 要实现这样的功能,...

    魔兽改键源码,收藏自论坛C++制作

    本文将以“魔兽改键源码,收藏自论坛C++制作”为主题,深入探讨这个C++编写的魔兽改键精灵的原理、实现方法以及其在游戏中的应用。 魔兽争霸III是一款深受玩家喜爱的即时战略游戏,其丰富的单位和技能操作需求催生...

    DotAKey 魔兽争霸改键源代码

    魔兽争霸dota改键。可以改鼠标键。Diablo样式的移动。AeroFlip3D动画效果。祈求者改键。一键喊话。

    魔兽显血物品改键源代码

    在这个场景中,我们有一个名为"魔兽显血物品改键源代码"的项目,它涉及到C++编程语言以及与游戏《魔兽世界》相关的技术。这个小程序的主要目的是增强玩家的游戏体验,通过模拟按键来显示角色的生命值(显血)以及...

    魔兽世界模型文件代码

    在《魔兽世界》这款大型多人在线角色扮演游戏(MMORPG)中,模型文件是构成游戏世界、角色和物品视觉表现的核心元素。模型文件包含了游戏中的3D几何数据、纹理贴图、动画序列等信息,使得游戏中的角色、环境和物品...

    魔兽改键助手 1.2 VC源代码

    魔兽改键助手 1.2 开发环境VC2008 更新内容: (1)使用全局WH_KEYBOARD_LL 无需使用dll文件。 (2)智能判断聊天模式,如果正在聊天,则取消改键。 (3)支持托盘。 (4)暂时只支持1.24版

    光柱_WOW_模型修改.zip

    在《魔兽世界》(WOW)这款大型多人在线角色扮演游戏中,玩家常常会遇到各种资源采集活动,如采矿和草药学。这些活动对于某些职业来说至关重要,因为它们能提供制作装备和消耗品所需的材料。然而,游戏中的矿物和...

    逍遥魔兽HTML模板下载

    这款模板以其独特的设计风格,融合了魔兽世界的元素,为网站构建提供了极具特色的视觉体验。网络游戏模板,尤其是HTML模板,是网页设计中的一种常见形式,它预设了网页的布局、颜色搭配、字体样式等,使得开发者可以...

    你想要的魔兽改键绝对好用

    总之,魔兽改键是一款为魔兽争霸玩家量身定制的实用工具,它通过个性化快捷键设置,提升了游戏操控体验,是提升游戏水平的一个有效途径。只要合理使用,并注意游戏公平性,它就能成为玩家手中的利器。

    魔兽改键助手源代码(VC6.0)

    【魔兽改键助手源代码(VC6.0)】是一个基于Visual C++ 6.0开发的工具,主要用于魔兽争霸游戏的快捷键设置优化。这个软件的目的是为了提供玩家更便捷的游戏体验,尤其是在《真三国无双》(简称真三)这种对操作速度...

    魔兽争霸3地图 SLK编辑器

    总的来说,SLK编辑器是魔兽争霸3地图制作的重要工具,它为玩家提供了无限的创新空间。虽然当前版本的局限性对制作者提出了更高的要求,但相信随着技术的发展,未来SLK编辑器将不断完善,为地图创作提供更便利的环境...

    魔兽物品ID查询

    在魔兽争霸3这款经典的即时战略游戏中,物品ID是游戏内部用来标识不同物品的重要代码。"魔兽物品ID查询"工具正是为了帮助玩家和地图编辑者更好地理解和利用这些ID而设计的。通过这个工具,用户可以方便地打开一张...

    c#制作魔兽改键

    在本文中,我们将深入探讨如何使用C#编程语言制作魔兽改建工具。魔兽争霸是一款深受玩家喜爱的即时战略游戏,改建工具则能帮助玩家通过自定义快捷键提高游戏体验和操作效率。下面,我们将讨论C#的基本知识、键盘事件...

Global site tag (gtag.js) - Google Analytics