Dino Run的高超作弊方法

Dino Run是一个在谷歌浏览器中,断网后仍然可以游玩的休闲游戏。游戏规则是,使用上下键(分别代表跳跃和低头),操作小恐龙奔跑,躲避路上的障碍(仙人掌和鸟)。

就是这样。如果断网,上面就会显示出小恐龙,按一下上或下键即可操作它玩游戏了!

在Google Chrome浏览器上,进入网站chrome://dino即可游玩游戏。或者也可以断网。不过这不值得

如题所说,Dino Run游戏中,我们可以开外挂

首先,右键点击Google Chrome,选择“检查”/“审查元素”(或者也可以按F12键);

右方就会出现写程序的面板,选择Resources

接下来就是我们的操作了。

1.不死挂

Runner.instance_.gameOver=function(){};

在Resources写代码处,复制一个这样的代码,然后关闭检查,重新开一局游戏即可体验。

效果:可穿过障碍物

原理:清空游戏的中断逻辑,也就是说将判断死亡函数清空,做到无敌效果。

2.加分挂

var hackScore=0;

Object.defineProperty(Runner.instance_,"distanceRan",{get:function(){return hackScore},set:function(a){return hackScore=a+Math.floor(1E3*Math.random())},configurable:!0,enumerable:!0});

效果:获取分数的速度增大1000倍。也可以调整代码中的数字(1E3),调节分数增长速度。

原理:ES5 有一个很古老的APIAPIObject.defineProperty(),借助这个APIAPI,我们能够轻易的修改现有对象上的属性,配合重新定义对象具体内容的 gettersetter 描述符,可以做到对于属性的劫持操作。

3.自动挂

function TrexRunnerBot(){function f(){Runner().onKeyDown(d);setTimeout(function(){Runner().onKeyUp(d)},500)}var b=function(a){return{keyCode:a,preventDefault:function(){}}},c=b(38),d=b(40),e=b(32);Runner().playing||(Runner().onKeyDown(e),setTimeout(function(){Runner().onKeyUp(e)},500));return{conquerTheGame:function(){if(Runner&&Runner().horizon.obstacles[0]){var a=Runner().horizon.obstacles[0];if((!a.typeConfig||"SNACK"!==a.typeConfig.type)&&50!==a.yPos&&a.xPos<=18*Runner().currentSpeed)if(50=== a.yPos)f();else{var b=Runner().horizon.obstacles[1];if(b&&b.xPos-a.xPos<=42*Runner().currentSpeed)Runner().onKeyDown(c),Runner().onKeyUp(c);else Runner().onKeyDown(c)}}}}}var bot=TrexRunnerBot(),botInterval=setInterval(bot.conquerTheGame,2);

效果:自动跳跃,躲避,不需人工操作

原理:通过修改跳跃函数,计时器的操作来实现自动化。

这个外挂是基于计时器进行距离计算并模拟用户操作的,当你获得很高很高的分数之后,障碍物推进速度过快,一旦你进行窗口的来回切换,游戏进行暂停和游玩的状态切换,很大概率上操作会延时,导致游戏失败。

Stay hungry, stay foolish.