饥荒游戏代码
GetPlayer().components.builder:GiveAllRecipes()//全物品制造
c_speed(num)//加速,例子里我写了个15
知识点:多文件,多线程(其实只用了一个),Windows虚拟按键
附录:代码全文
编译平台:Windows 10,Visual Studio 2017,C++
Key EventFuns.h
#pragma once
#include<stdio.h>
#include<Windows.h>
#include <thread>
#include <iostream>
using namespace std;
/*函数
输入键值,按下对应的按键*/
int mClickOne(int num);
//anxai按下两个键
void mClickTwo(int num1,int num2);
/*
找到文本框,将文本输入文本框
*/
void mClickLong(char * cc);
/*
全物品制造指令
//GetPlayer().components.builder:GiveAllRecipes()
*/
void mGiveAll();
/*
加速到15
c_speed(15)
*/
void mSpeed();
/*
找到指定名字窗口,激活
*/
void mFindWin(char* winName);
KeyEventFuns.cpp
/**fengzhuang 虚拟按键*/
#include "KeyEventFuns.h"
int mClickOne(int num){
keybd_event(num, 0, 0, 0);
Sleep(100);
keybd_event(num, 0, KEYEVENTF_KEYUP, 0);
return num;
}
void mClickTwo(int num1, int num2)
{
keybd_event(num1, 0, 0, 0);
Sleep(10);
keybd_event(num2, 0, 0, 0);
Sleep(100);
keybd_event(num1, 0, KEYEVENTF_KEYUP, 0);
keybd_event(num2, 0, KEYEVENTF_KEYUP, 0);
}
//函数4
void mClickLong(char * cc){
int i = 0;
while (cc) {
mClickOne(cc[i]);
i++;
}
}
void mGiveAll()
{
mClickTwo(180, 0xC0);//Shift+~ 调出饥荒游戏控制台
Sleep(100);
mClickTwo(160, 'G');//Shift + H
mClickOne('E');
mClickOne('T');
mClickTwo(160, 'P');
mClickOne('L');
mClickOne('A');
mClickOne('Y');
mClickOne('E');
mClickOne('R');
mClickTwo(160, 0x39);//(
mClickTwo(160, 0x30);//)
mClickOne(0xBE);//。
mClickOne('C');
mClickOne('O');
mClickOne('M');
mClickOne('P');
mClickOne('O');
mClickOne('N');
mClickOne('E');
mClickOne('N');
mClickOne('T');
mClickOne('S');
mClickOne(0xBE);//。
mClickOne('B');
mClickOne('U');
mClickOne('I');
mClickOne('L');
mClickOne('D');
mClickOne('E');
mClickOne('R');
mClickTwo(160, 0xBA);//:
mClickTwo(160, 'G');
mClickOne('I');
mClickOne('V');
mClickOne('E');
mClickTwo(160, 'A');
mClickOne('L');
mClickOne('L');
mClickTwo(160, 'R');
mClickOne('E');
mClickOne('C');
mClickOne('I');
mClickOne('P');
mClickOne('E');
mClickOne('S');
mClickTwo(160, 0x39);//(
mClickTwo(160, 0x30);//)
mClickOne(0X0D);//Enter
mClickTwo(VK_CONTROL, 'L');//Ctrl+L 关闭日志界面
}
void mSpeed()
{
mClickOne(0xC0);// ~ 调出饥荒游戏控制台
Sleep(50);
mClickOne('C');
mClickTwo(160, 189);//下划线
//mClickTwo(160, 189);//下划线
mClickOne('S');
mClickOne('P');
mClickOne('E');
mClickOne('E');
mClickOne('D');
mClickTwo(160, 0x39);//(
mClickOne(0x61);
mClickOne(0x65);
mClickTwo(160, 0x30);//)
mClickOne(0X0D);//Enter
mClickTwo(VK_CONTROL, 'L');//Ctrl+L 关闭日志界面
}
void mFindWin(char * winName)
{
if (HWND hd = FindWindowA(NULL, winName)) {//按照名称查找窗口
SetForegroundWindow(hd);//将窗口激活
}
else
{
cout << ("未找到窗口") << endl;
}
}
Main.cpp
#include "KeyEventFuns.h"
void thread02() {
char mwinname[20] = "饥荒 3DM汉化版";
mFindWin(mwinname);
mGiveAll();
mSpeed();
}
int main() {
thread task02(thread02);//创建线程02
task02.join();//运行线程02
return 0;
}