目录

  • 前言
  • 注意
  • 具体实现
  • 需要工具
  • 实现步骤
  • 寻找模拟键鼠的方法
  • 编写大体脚本
  • 使用记事本查看效果
  • 配置模拟器按键
  • 运行
  • 后记


前言

  自己在玩手游时经常会碰到重复的一些系列操作。比如坎公骑的轨道电梯(这里顺便推一下这个游戏,剧情真不错);公主连结的露娜塔、日常塔等。
  这些操作都是一些重复的点击(点位不会变化),既枯燥又乏味,但往往奖励又是必须的。对于这样情况我们就希望用脚本替代人工操作。而市面上的手机脚本要么要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。