5
被禁言


初级守护
先看介绍!!!!
代码:
#include <windows.h>
#include <iostream>
#define key1(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
// 函数1:模拟鼠标左键/右键按下
void mo_d(bool isLeftButton) {
INPUT input = {0};
input.type = INPUT_MOUSE;
if (isLeftButton) {
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
} else {
input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
}
SendInput(1, &input, sizeof(INPUT));
}
// 函数2:模拟鼠标左键/右键松开
void mo_u(bool isLeftButton) {
INPUT input = {0};
input.type = INPUT_MOUSE;
if (isLeftButton) {
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
} else {
input.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
}
SendInput(1, &input, sizeof(INPUT));
}
// 函数3:模拟键盘按键按下
void k_d(WORD keyCode) {
INPUT input = {0};
input.type = INPUT_KEYBOARD;
input.ki.wVk = keyCode; // 虚拟键码
input.ki.dwFlags = 0; // 按下
SendInput(1, &input, sizeof(INPUT));
}
// 函数4:模拟键盘按键松开
void k_u(WORD keyCode) {
INPUT input = {0};
input.type = INPUT_KEYBOARD;
input.ki.wVk = keyCode; // 虚拟键码
input.ki.dwFlags = KEYEVENTF_KEYUP; // 松开
SendInput(1, &input, sizeof(INPUT));
}
void move_mouse(int x,int y) {//移动鼠标
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
if (x >= screenWidth) x = screenWidth - 1;
if (y >= screenHeight) y = screenHeight - 1;
SetCursorPos(x, y);
}
int m2() {
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) {// 检查左键是否按下
return 1;
}
if (GetAsyncKeyState(VK_RBUTTON) & 0x8000) {// 检查右键是否按下
return 2;
}
if (GetAsyncKeyState(VK_MBUTTON) & 0x8000) {// 检查中键是否按下
return 3;
}
return false;
}
void m1(int& x, int& y) {
POINT cursorPos;
if (GetCursorPos(&cursorPos)) {
x = cursorPos.x;
y = cursorPos.y;
} else {
// 如果获取失败,可以设置默认值或抛出异常
x = -1;
y = -1;
}
}
// **确保是 main 函数(控制台入口点)**
using namespace std;
void w1(){//水平挖矿
int cnt;//时间
Sleep(3000);
while(true){
if(key1('P'))break;
mo_d(1);
k_d('W');
Sleep(3000);
mo_u(1);
k_u('W');
cnt++;
if(cnt%3==0){
k_d('S');
Sleep(1000);
k_u('S');
Sleep(100);
k_d('2');
Sleep(100);
mo_d(0);
Sleep(100);
k_u('2');
Sleep(100);
mo_u(0);
k_d('W');
Sleep(1000);
k_u('W');
k_d('1');
k_u('1');
}
}
}
void w2(){//倾斜挖矿
int cnt;//时间
Sleep(3000);
while(true){
if(key1('P'))break;
k_d('W');
mo_d(1);
Sleep(3000);
mo_u(1);
k_u('W');
k_d('S');
Sleep(500);
k_u('S');
mo_d(1);
Sleep(1500);
mo_u(1);
k_d('W');
Sleep(500);
k_u('W');
if(cnt%3==0){
k_d(' ');
k_d('S');
Sleep(1500);
k_u(' ');
k_u('S');
Sleep(100);
k_d('2');
Sleep(100);
mo_d(0);
Sleep(100);
k_u('2');
Sleep(100);
mo_u(0);
k_d('W');
Sleep(1500);
k_u('W');
k_d('1');
k_u('1');
}
cnt++;
}
}
void gun(){//快速射击
for(int i=1;i<=9;i++){
if(key1('P'))break;
k_d(char('0'+i));
Sleep(130);
mo_d(0);
Sleep(50);
k_u(char('0'+i));
}
for(int i=1;i<=9;i++){
if(key1('P'))break;
k_d(char('0'+i));
Sleep(150);
mo_d(0);
Sleep(1600);
k_u(char('0'+i));
}
mo_u(0);
}
void dl(){//搭路
k_d('W');
while(1){
if(key1('P'))break;
Sleep(120);
mo_d(0);
Sleep(40);
mo_u(0);
}
k_u('W');
}
// 函数:弹出一个名为S的提示框
void ShowMessageBox(const char* S) {
MessageBox(NULL, S, "MC辅助操作软件提醒您", MB_ICONINFORMATION);
}
int main() {
while(1){
Sleep(10);
if(key1('I')){ //水平挖矿
ShowMessageBox("开启水平挖矿!");
w1();
}
if(key1('O')){ //水平挖矿
ShowMessageBox("开启倾斜挖矿!");
w2();
}
if(m2()==3){ //快速射击
gun();
}
if(key1('Z')){ //自动搭路
dl();
}
}
return 0;
}
介绍:
快速射击:
1.按中键进行快速射击
2.快速射击时请确保你的物品栏的每一格都有一把上膛的弩(射击完成后会自动装填)
3.按'p'键停止
自动搭路:
1.保证你的物品栏第一格有足够的方块
2.按'z'键开始搭路
3.开始搭路前请确保你的视线中心处在方块边缘往外一点(这是如果直接放置会得到一个放置在方块外的方块)(自己搭过路的都知道我在说什么)
4.三中的特性在某些JAVA版中可能没有,目前仅限基岩版
5.不要在搭路时改变视线方向!!!
6.按'p'键停止