我的世界java怎么开启作弊模式 我的世界怎么开作弊
引言:我的世界是一款风靡全球的游戏,其中键盘操作很多,比如W,A,S,D,E,Q等,往往在遇到突发险情时举手无措(对与我这种新手玩家),既然都是键盘操作,我们用C++实现一个伪作弊(不是违规违法的那种)
正文:首先我们要介绍几个函数
1:GetAsyncKeyState,看一下网上对其的解释
GetAsyncKeyState是一个用来判断函数调用时指定虚拟键的状态,确定用户当前是否按下了键盘上的一个键的函数。如果按下,则返回值最高位为1。//引用来自百度百科,以下同
很难懂吧,直接看用法
#define T_keydown(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)这是一个宏函数,用来判断某键是否按下(T_是我为了避免重复写的前缀,没什么意思)
2:keybd_event,用来模拟按键
keybd_event 是函数功能:该函数合成一次击键事件。系统可使用这种合成的击键事件来产生WM_KEYUP或WM_KEYDOWN消息。
直接看用法
keybd_event(VK_SPACE/*键盘码,这里是空格*/,0,0,0); keybd_event(VK_SPACE/*键盘码,这里是空格*/,0,KEYEVENTF_KEYUP,0);3:mouse_event,模拟键盘
mouse_event是一个计算机函数,功能是综合鼠标移动和按钮点击。如果鼠标被移动,用设置MOUSEEVENTF_MOVE来表明,dX和dy保留移动的信息。给出的信息是绝对或相对整数值。
mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);//右键一次 mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);//按下右键 mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);//抬起右键正式开工
不知道有没有这样的感觉,很难腾出手一直按着Ctrl键(特别是我的键盘位置刁钻),过一段时间按一下又麻烦,我就想到,可以用C++帮我按住按键。
第一步:判断机制,我们希望按一次键(这里假定为N)开始跑步,再按一次结束,但在短时间内我们会检测到多次按下(其实是没有放开),控制台大概是这样:
开始跑步
结束跑步
开始跑步
结束跑步
……几百次后
结束跑步
必须像蜻蜓点水一般,十分麻烦。😡😵
怎么解决,相信聪明的你已经想到,松开一次才计数,于是有了下面的代码
#include <iostream> #include <conio.h> #include <string> #include <map> #include <stdio.h> #include <windows.h> #include <time.h> #include <math.h> #include <algorithm> #define T_keydown(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std; int main(int argc, char** argv) { int k=0,k1=0; while(1) { if(T_keydown('N') k=1; else if(k==1) { k=0; if(k1);cout<<"结束奔跑"<<endl; else cout<<"开始奔跑"<<endl; k1=1-k1; } Sleep(10); } }😃
判断有了,我们开始键盘操作,即为开始时按下Ctrl,结束时松开Ctrl,简单易改
#include <iostream> #include <conio.h> #include <string> #include <map> #include <stdio.h> #include <windows.h> #include <time.h> #include <math.h> #include <algorithm> #define T_keydown(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std; int main(int argc, char** argv) { int k=0,k1=0; while(1) { if(T_keydown('N') k=1; else if(k==1) { if(k1) { keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); cout<<"结束奔跑"<<endl; } else { keybd_event(VK_CONTROL,0,0,0); cout<<"开始奔跑"<<endl; } k1=1-k1 } Sleep(10); } }结果会发现,不能跳跃了,堪比潜行
换个电脑砸
当然也好解决,只要判断按下空格键,就松开Ctrl键和空格键,再按下就行了
#include <iostream> #include <conio.h> #include <string> #include <map> #include <stdio.h> #include <windows.h> #include <time.h> #include <math.h> #include <algorithm> #define T_keydown(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std; int main(int argc, char** argv) { int k=0,k1=0; while(1) { if(T_keydown('N') k=1; else { if(k==1) { if(k1) { keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); cout<<"结束奔跑"<<endl; } else { keybd_event(VK_CONTROL,0,0,0); cout<<"开始奔跑"<<endl; } k1=1-k1 } if(k1==1) { if(T_keydown(VK_SPACE)) { keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); keybd_event(VK_SPACE,0,0,0);//这里交给键盘松开 keybd_event(VK_CONTROL,0,0,0); } } } Sleep(10); } }完美解决,还出现了一个意想不到的功能,长按空格到合适时机就可以自动一直跳跃,慎用,总归不希望和小白对战时一蹦一跳的准确接箭,掉下山崖吧(可以确定,复活后还会跳)
最后,我们给他来个黑字白底,加一个缓冲
#include <iostream> #include <conio.h> #include <string> #include <map> #include <stdio.h> #include <windows.h> #include <time.h> #include <math.h> #include <algorithm> #define T_keydown(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std; int main(int argc, char** argv) { SetWindowText(GetConsoleWindow(),"RUN"); system("color F0"); string a; cout<<"奔跑要按住Ctrl键到手酸?还不能跳跃!自动帮你跑步"<<endl <<"使用方法:按N键,再次按下结束"<<endl <<"将在得到指示后开始"<<endl <<"你可以键入任意词语:"; cin>>a; cout<<"\""<<a<<"\",HaHa,Let's run"<<endl; int k=0,k1=0; while(1) { if(T_keydown('N') k=1; else { if(k==1) { if(k1) { keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); cout<<"结束奔跑"<<endl; } else { keybd_event(VK_CONTROL,0,0,0); cout<<"开始奔跑"<<endl; } k1=1-k1 } if(k1==1) { if(T_keydown(VK_SPACE)) { keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); keybd_event(VK_SPACE,0,0,0);//这里交给键盘松开 keybd_event(VK_CONTROL,0,0,0); } } } Sleep(10); } }收工
或问:就这……?我按Ctrl很舒服,打小白很顺手
这只是最没用的,之一
关注,点赞(这个随你)
接下来我将写:落地水、搭建工具(1,2)、斗争工具、总概(工具)
下一章:落地水,将介绍char,int互换与T_keydown进阶,利用求余放缓和定时器的制作
代码都好了,想直接要工具的
不是图片,下载下来后保存为run.exe即可