目录
- 前言
- 注意
- 具体实现
- 需要工具
- 实现步骤
- 寻找模拟键鼠的方法
- 编写大体脚本
- 使用记事本查看效果
- 配置模拟器按键
- 运行
- 后记
前言
自己在玩手游时经常会碰到重复的一些系列操作。比如坎公骑的轨道电梯(这里顺便推一下这个游戏,剧情真不错);公主连结的露娜塔、日常塔等。
这些操作都是一些重复的点击(点位不会变化),既枯燥又乏味,但往往奖励又是必须的。对于这样情况我们就希望用脚本替代人工操作。而市面上的手机脚本要么要root(触动精灵),要么要money(autojs),或者脚本还是需要自己制作(很多冷门游戏都没有)。又因为自己学习了编程,就希望自己制作一个简单的脚本(程序员的怪病ლ(´ڡ`ლ))。
注意
本简单脚本只适用于重复的操作,无法处理变动的点位(什么原神日常啊),也没有牛逼烘烘的功能(什么联盟自动走位啊)。且非全自动,需要把应用置于顶层。没错我就是太烦坎公骑电梯了。
具体实现
需要工具
C语言编译器(推荐dev c++)、一个模拟器(推荐mumu模拟器)
实现步骤
寻找模拟键鼠的方法
我使用的是头文件windows.h的keybd_event函数模拟键盘输入。以下是使用案例。
keybd_event('A',0,0,0); // 按下a键
keybd_event('A',0,KEYEVENTF_KEYUP,0); // 松开a键
keybd_event(65,0,0,0); // 按下a键
keybd_event('B',0,0,0); // 按下b键
keybd_event(66,0,0,0); // 按下b键
keybd_event(27,0,0,0); // 按下ESC键
关于该函数的具体说明请看博文keybd_event 使用方法
编写大体脚本
#include <stdio.h>
#include <windows.h>
int main(void)
{
printf("开始\n");
// 设置10秒反应时间
Sleep(10*1000);
// 用i记录次数
int i=0;
// 一直执行
while(1)
{
printf("第%d次循环\n",++i);
// 点击 塔层
printf("键入A %d\n",i);
keybd_event('A',0,0,0);
Sleep(100); // 设置0.1s按键松开延迟
keybd_event('A',0,KEYEVENTF_KEYUP,0);
Sleep(1000);// 设置1s间隔时间,过一下动画时间
// 点击 进入
printf("键入B %d\n",i);
keybd_event('B',0,0,0);
Sleep(100);
keybd_event('B',0,KEYEVENTF_KEYUP,0);
Sleep(1000);
// 点击 进入确认
printf("键入C %d\n",i);
keybd_event('C',0,0,0);
Sleep(100);
keybd_event('C',0,KEYEVENTF_KEYUP,0);
Sleep(30000);
// 点击 奖励确认
printf("键入D %d\n",i);
keybd_event('D',0,0,0);
Sleep(100);
keybd_event('D',0,KEYEVENTF_KEYUP,0);
Sleep(3000);
}
return 0;
}
使用记事本查看效果
演示效果详见视频
配置模拟器按键
将模拟按键放到需要点击的点位即可
运行
演示效果详见视频 这里需要使用管理员运行,详见原因和解决办法
后记
本来我是想在android上找到或者自己制作一个全自动的坎公骑爬塔脚本的,但是没找到,实现也都比较麻烦QAQ。