看到别人跳一跳搞了很多分。
我也跳一下。最高分才十几分,被别人秒杀。
于是制作这个外挂,能够轻松上千分。
原理很简单,计算出两点距离,测试出按下的时间,就可以了。
现在开始喽
当然是免费!!!
软件开发技术交流:自强不息QQ:1222698
(跳一跳技术交流就算了,我只玩了几分钟而已。)
第零步、看看效果,我几分钟就跳了2000多分。

第一步、下载安装手游助手,腾讯官网:http://syzs.qq.com/

第二步、安装微信、登录、手机验证

第三步、打开游戏,打开辅助工具


第四步、把鼠标放在跳跳人的脚下,按下空格键

第五步、把鼠标放在目标位置,按下空格键

第六步、2018年,元旦快乐!

下载地址:https://files.cnblogs.com/files/bhss/%E8%B7%B3%E5%A4%A7%E7%A5%9E-v0.1.1.rar
源码地址:https://files.cnblogs.com/files/bhss/%E8%B7%B3%E5%A4%A7%E7%A5%9E-v0.1.1.rar
源码是vs2015开发,net2.0,可以用vs2005 2008 2010 2013 版本打开
源代码讲解
第1部分:热键管理
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
namespace Tyt
{
public class AppHotKey
{
[DllImport("kernel32.dll")]
public static extern uint GetLastError();
//如果函数执行成功,返回值不为0。
//如果函数执行失败,返回值为0。要得到扩展错误信息,调用GetLastError。
[DllImport("user32.dll", SetLastError = true)]
public static extern bool RegisterHotKey(
IntPtr hWnd, //要定义热键的窗口的句柄
int id, //定义热键ID(不能与其它ID重复)
KeyModifiers fsModifiers, //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效
Keys vk //定义热键的内容
);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd, //要取消热键的窗口的句柄
int id //要取消热键的ID
);
//定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)
[Flags()]
public enum KeyModifiers
{
None = 0,
Alt = 1,
Ctrl = 2,
Shift = 4,
WindowsKey = 8
}
/// <summary>
/// 注册热键
/// </summary>
/// <param name="hwnd">窗口句柄</param>
/// <param name="hotKey_id">热键ID</param>
/// <param name="keyModifiers">组合键</param>
/// <param name="key">热键</param>
public static void RegKey(IntPtr hwnd, int hotKey_id, KeyModifiers keyModifiers, Keys key)
{
try
{
if (!RegisterHotKey(hwnd, hotKey_id, keyModifiers, key))
{
if (Marshal.GetLastWin32Error() == 1409) { MessageBox.Show("热键被占用 !"); }
else
{
MessageBox.Show("注册热键失败!");
}
}
}
catch (Exception) { }
}
/// <summary>
/// 注销热键
/// </summary>
/// <param name="hwnd">窗口句柄</param>
/// <param name="hotKey_id">热键ID</param>
public static void UnRegKey(IntPtr hwnd, int hotKey_id)
{
//注销Id号为hotKey_id的热键设定
UnregisterHotKey(hwnd, hotKey_id);
}
}
}
第2部分、按键管理
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace Tyt
{
public class MouseHelper
{
[DllImport("user32.dll")]
public static extern bool SetCursorPos(int X, int Y);
[System.Runtime.InteropServices.DllImport("user32")]
static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
const int MOUSEEVENTF_MOVE = 0x0001; //移动鼠标
const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模拟鼠标左键按下
const int MOUSEEVENTF_LEFTUP = 0x0004; //模拟鼠标左键抬起
const int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键按下
const int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模拟鼠标中键按下
const int MOUSEEVENTF_MIDDLEUP = 0x0040; //模拟鼠标中键抬起
const int MOUSEEVENTF_ABSOLUTE = 0x8000; //标示是否采用绝对坐标
public static void Click()
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
public static void Move()
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 0, 0, 0, 0);
}
public static void Down()
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
}
public static void Up()
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
}
}
第3部分、核心代码:跳一跳算法
#region 基本操作
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
AppHotKey.RegKey(Handle, 1007, AppHotKey.KeyModifiers.None, Keys.Space);
}
protected override void WndProc(ref Message m)
{
const int WM_HOTKEY = 0x0312;
switch (m.Msg)
{
case WM_HOTKEY:
switch (m.WParam.ToInt32())
{
case 1007:
Tiao();
break;
}
break;
}
base.WndProc(ref m);
}
#endregion
#region 跳一跳
void Tiao()
{
if (IsTiaoQian)
{
PointQian = new Point(Control.MousePosition.X, Control.MousePosition.Y);
}
else
{
TiaoHou();
}
IsTiaoQian = !IsTiaoQian;
}
void TiaoHou()
{
PointHou = new Point(Control.MousePosition.X, Control.MousePosition.Y);
double len=Math.Sqrt((PointHou.X - PointQian.X) * (PointHou.X - PointQian.X) +
(PointHou.Y - PointQian.Y) * (PointHou.Y - PointQian.Y));
int d= (int)(len * XiShu * 1000) ;
if (d<=0)
{
MessageBox.Show("两次点击空格时,鼠标未移动。");
return;
}
timer1.Interval = (int)(d * 1000);
MouseHelper.SetCursorPos(PointHou.X, PointHou.Y);//开始跳
MouseHelper.Down();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
MouseHelper.Up();
}
#endregion
《完毕》
by 自强不息 qq1222698