[玩转编程] C语言+模拟器制作简单脚本

前言

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

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值