置頂:最新連點(diǎn)器更好了
源代碼
可執(zhí)行文件
如果編譯亂碼,敬請(qǐng)參閱Embarcadero Dev-C++ 中文字符的處理
此處敬告:以上連點(diǎn)器是偏游戲性的,本文的講解也是偏游戲性的,請(qǐng)謹(jǐn)慎閱讀。
在 Minecraft \texttt{Minecraft} Minecraft各大服務(wù)器中,你是否苦惱于手速太慢,打不過(guò)?
看到這篇文章,那就是你的福利。使用 C + + \rm C++ C++,編寫一個(gè)獨(dú)特的連點(diǎn)器,震驚所有人!
前置知識(shí):
I
.
\rm{I.}
I. Sleep()
函數(shù)
要理解這個(gè)函數(shù),其實(shí)也不難。Sleep(x)
的作用是讓程序休眠
x
x
x 毫秒,在那期間,程序什么都不會(huì)干。很簡(jiǎn)單。
I
I
.
\rm{II.}
II.mouse_event
顧名思義,mouse_event
的作用是執(zhí)行一次鼠標(biāo)的事件。關(guān)于鼠標(biāo)事件,有兩個(gè)最常用的:
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
讓鼠標(biāo)左鍵點(diǎn)擊一次;
mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);
讓鼠標(biāo)右鍵點(diǎn)擊一次。
I
I
I
.
\rm{III.}
III.GetAsyncKeyState(key)
key
是鍵盤上面的一個(gè)鍵,可以是大寫字母或數(shù)字。如果你點(diǎn)擊了這個(gè)鍵,GetAsyncKeyState(key)
就會(huì)返回true
;否則返回false
。
I V . \rm{IV.} IV. 改變文字顏色
現(xiàn)在來(lái)說(shuō)主體。
前置知識(shí)說(shuō)完了,寫出一份優(yōu)秀的代碼應(yīng)該不成什么問題:
這是一份可以點(diǎn)擊鼠標(biāo)左鍵或右鍵的代碼,還可以控制頻率。
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
void SetColorAndBackground(int ForgC, int BackC) {
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
int main(){
SetColorAndBackground(11,9);
printf("---------C++ Quick Click---------\n\n\n\n\n");
SetColorAndBackground(4,0);
char key;
int CPS;
string s="The notes you must know before use:\n1.Never let the CPS more than 100 or your computer will crash.\n2.If you use this for Minecraft service,don't let the CPS more than 13.Or you may be kicked out!";
for(int i=0;i<s.size();++i){
cout<<s[i];
Sleep(75);
}
SetColorAndBackground(15,0);
printf("\n");
printf("Input the CPS you need:");
scanf("%d",&CPS);
LOOP:printf("\nDo you want to click left of right?\nIf you want to click left button,input 1;\nIf yoou want to click right button,input 2.\n");
int op;
scanf("%d",&op);
if(op==1){
printf("What key do you want to press to take left button's place?");
cin>>key;
if(key>='a'&&key<='z'){
key-=32;
}
cout<<"Press "<<key<<" to start quick click";
double time=CPS;
double t=1000/time;
while(true){
if(GetAsyncKeyState(key)){
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(t);
}
}
}
else if(op==2){
printf("What key do you want to press to take right button's place?");
cin>>key;
if(key>='a'&&key<='z'){
key-=32;
}
cout<<"Press "<<key<<" to start quick click";
double time=CPS;
double t=1000/time;
while(true){
if(GetAsyncKeyState(key)){
mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);
Sleep(t);
}
}
}
else{
printf("Invalid input!\n");
goto LOOP;
}
return 0;
}
這份代碼的缺點(diǎn)是點(diǎn)擊過(guò)于規(guī)律,容易被發(fā)現(xiàn)。
這是一份點(diǎn)擊不規(guī)律的代碼,還可以根據(jù)點(diǎn)擊頻率更改字體顏色:
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
void SetColorAndBackground(int ForgC, int BackC) {
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
int main(){
srand(time(0));
char key='R';
printf("Press R to start Quick Click\nNow CPS:");
while(true){
int t=rand()%100;
if(t<=50){
t+=50;
}
double tt=t;
double cpsCCPS=1000.0/tt;
if(GetAsyncKeyState(key)){
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(t);
if(cpsCCPS<=12.00){
SetColorAndBackground(12,0);
}
else if(cpsCCPS<=14.00){
SetColorAndBackground(14,0);
}
else if(cpsCCPS<=17.00){
SetColorAndBackground(10,0);
}
else{
SetColorAndBackground(9,0);
}
printf("%.5f",cpsCCPS);
printf("\b\b\b\b\b\b\b\b");
SetColorAndBackground(7,0);
}
}
return 0;
}
但是,它不僅只能點(diǎn)鼠標(biāo)左鍵,還不能控制頻率。(不過(guò)你想點(diǎn)右鍵的話把本代碼中所有LEFT
改成RIGHT
就行了。)
這一份代碼十分完美,點(diǎn)擊既不規(guī)律,還可以控制頻率,即我們開頭看到的最新連點(diǎn)器。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-777289.html
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void SetColorAndBackground(int ForgC, int BackC) {
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
}
void UpDaTe(){
SetColorAndBackground(11,0);
printf("Much better Irregular Quick Click[Version:4.0]\n(c)light_dream Corporation.\n\n");
printf("Update on 2023/11/21\n");
printf("Update:可以使用中文!\n\n");
}
void NoTiCe(){
SetColorAndBackground(12,0);
printf("使用須知:\n");
printf("1.設(shè)定點(diǎn)擊頻率的時(shí)候,不要讓頻率超過(guò)120!否則你會(huì)聞到一股烤焦的味道!\n");
printf("2.把這玩意用在Minecraft各大服務(wù)器的同志們,最好不要讓點(diǎn)擊頻率超過(guò)14!否則可能被封!(本人親身體會(huì))\n");
printf("3.如果您使用C++編譯器編譯本代碼而亂碼,敬請(qǐng)參閱:\n");
printf("https://www.luogu.com.cn/blog/642173/The-treatment-of-treating-chinese-charactor-in-enbarcadero-dev-dpp!\n\n");
}
int main(){
srand(time(0));
char key;
UpDaTe();
NoTiCe();
SetColorAndBackground(15,0);
printf("輸入您要的點(diǎn)擊頻率(一個(gè)整數(shù),單位 次/秒):");
int cps;
scanf("%d",&cps);
double Cps=cps;
double sleep_time=1000/Cps;
int bse=sleep_time;
bse=bse-5;
printf("輸入您想要按下來(lái)啟動(dòng)連點(diǎn)的按鍵:");
cin>>key;
if(key>='a'&&key<='z'){
key=key-32;
}
int op;
printf("您想點(diǎn)左鍵還是右鍵?\n");
SetColorAndBackground(10,0);
printf("左鍵");
SetColorAndBackground(15,0);
printf("——輸入1;\n");
SetColorAndBackground(10,0);
printf("右鍵");
SetColorAndBackground(15,0);
printf("——輸入2.\n");
scanf("%d",&op);
printf("按%c開始連點(diǎn)\n現(xiàn)在的點(diǎn)擊頻率(單位 次/秒):",key);
if(op==1){
while(true){
int t=rand()%10;
t+=bse;
double tt=t;
double cpsCCPS=1000.0/tt;
if(GetAsyncKeyState(key)){
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(t);
if(t>=bse+8){
SetColorAndBackground(12,0);
}
else if(t>=bse+5){
SetColorAndBackground(14,0);
}
else if(t>=bse+2){
SetColorAndBackground(10,0);
}
else{
SetColorAndBackground(9,0);
}
printf("%.5f",cpsCCPS);
if(cpsCCPS<10){
printf("\b\b\b\b\b\b\b");
}
else if(cpsCCPS<100&&cpsCCPS>=10){
printf("\b\b\b\b\b\b\b\b");
}
else{
printf("\b\b\b\b\b\b\b\b\b");
}
SetColorAndBackground(7,0);
}
}
}
else{
while(true){
int t=rand()%10;
t+=bse;
double tt=t;
double cpsCCPS=1000.0/tt;
if(GetAsyncKeyState(key)){
mouse_event(MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);
Sleep(t);
if(t>=bse+8){
SetColorAndBackground(12,0);
}
else if(t>=bse+5){
SetColorAndBackground(14,0);
}
else if(t>=bse+2){
SetColorAndBackground(10,0);
}
else{
SetColorAndBackground(9,0);
}
printf("%.5f",cpsCCPS);
if(cpsCCPS<10){
printf("\b\b\b\b\b\b\b");
}
else if(cpsCCPS<100&&cpsCCPS>=10){
printf("\b\b\b\b\b\b\b\b");
}
else{
printf("\b\b\b\b\b\b\b\b\b");
}
SetColorAndBackground(7,0);
}
}
}
return 0;
}
但是說(shuō)句公道話,你真的不需要這樣點(diǎn)擊不規(guī)律的代碼的話,選第一個(gè)就是了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-777289.html
到了這里,關(guān)于C++ 令鼠標(biāo)點(diǎn)擊&&連點(diǎn)器的原理講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!