- script Anti_Bot -1,{
//===========================================================================
//===== Configurações: ======================================================
OnInit:
set .npc$, "^00B2EE[Security AntiBot]^000000"; //
//===========================================================================
//= Character ban time when canceling / making a wrong answer (Minutes)
//===========================================================================
set .bantime,5;
//===========================================================================
//= Number of chances that the player has to answer the questions.
//===========================================================================
set .chances,5;
//===========================================================================
//= Minimum account level for the anti-bot to perform checks.
//===========================================================================
set .NvMax,0;
//===========================================================================
//= Minimum number of monsters that must be killed to activate the script.
//===========================================================================
set .MinMonster,rand(100,300);
//===========================================================================
//= Color options in the menu.
//===========================================================================
setarray .cores$, " Blue",
" Red",
" Black",
" Orange",
" Yellow",
" Green";
set .arraysize,getarraysize(.cores$);
//===========================================================================
//= NPC's speech color. (Advisable not to touch here)
//===========================================================================
setarray .cores2$, "^006eff", // Azul
"^ff000a", // Vermelho
"^000000", // Preto
"^fd680d", // Laranja
"^b69800", // Amarelo
"^41ad00"; // Verde
//===========================================================================
//= Questions asked in case of verification 1. (Just complete the question)
//===========================================================================
setarray .imges$, "bat_kiyom1",
"bat_crua1",
"bard_eland01",
"hair_f_22",
"hair_f_12",
"hair_f_19",
"kh_kiel01",
"lhz_diguts02",
"lhz_diguts02",
"prt_soldier",
"wish_maiden11",
"oliver_hum";
//===========================================================================
//= Perguntas feitas no caso da verificação 2. (Apenas complemente a pergunta)
//===========================================================================
setarray .pergs$, "of the cover",
"of the cover",
"of the hat",
"of hair",
"of shoes",
"of hair",
"of clothing",
"of the tie",
"of the pants",
"of the hat",
"of the wings",
"of hair";
//===========================================================================
//= Número da cor que responde corretamente à pergunta.
//===========================================================================
setarray .resps2,0,1,5,0,3,5,0,1,0,3,2,4;
//===========================================================================
//= Checagem no Login:
//===== IMPORTANTE: =========================================================
//= Uncomment: "OnPCLoginEvent" if you want the npc to always be
//= activated when the character accesses the server.
end;
//OnPCLoginEvent:
//===== End of Settings: ==============================================
//===========================================================================
//===== Script Start: ===================================================
set #antibot,.MinMonster;
OnNPCKillEvent:
if(set(#antibot,#antibot+rand(2))<.MinMonster) end;
set .@opt,(checkcart()?128:0)|(checkriding()?32:0)|(checkfalcon()?16:0);
set @AccLv,getgmlevel();
atcommand "@option 1 4 2";
setoption 0x40,1;
attachnpctimer;
initnpctimer;
mes .npc$;
mes (gettime(3)>= 6&&gettime(3)<= 12?"Good Morning":(gettime(3)>=13&&gettime(3)<=18?"Good Afternoon":"Good Night"))+", ^FFA500"+strcharinfo(0)+"^000000! To avoid malicious players, I need to test you...";
while(1){
next;
set .@menu$,"";
mes .@nome$;
for(set @i,0;@i<.arraysize;set @i,@i+1){
set .@num[@i],rand(.arraysize);
for(set @o,0;@o<@i;set @o,@o+1)
if(.@num[@i]==.@num[@o]){
set .@num[@i],rand(.arraysize); set @o,-1;
}
}
if(rand(2)){
mes .npc$;
mes "What is the color "+.pergs$[set(.@num2,rand(getarraysize(.resps2)))]+" of the character in the illustration displayed on your screen?";
cutin .imges$[.@num2],rand(5);
set @resps,.resps2[.@num2];
}else{
mes .npc$;
mes .cores2$[set(@resps,rand(.arraysize))]+"What color is currently being used in my speech? Select the correct color from the menu:";
}
for(set @i,0;@i<.arraysize;set @i,@i+1){
//mes .cores2$[@i]+.cores$[@i];
set .@menu$,.@menu$+"^3CB371[>]^000000" +.cores$[.@num[@i]]+":";
}
next;
if(prompt(.@menu$)==255) {
atcommand "@kick "+.bantime+"mn "+strcharinfo(0);
end;
}
mes .@nome$;
if(.@num[@menu-1]!=@resps){
if(set(.@tentvs,.@tentvs+1) >= .chances){
cutin "",255;
mes .npc$;
mes "^FF0000Suspicious activity detected! ^000000 For security reasons you will be disconnected from the server.";
atcommand "@option 0 0 "+.@opt;
atcommand "@kick "+strcharinfo(0)+"'";
end;
}
mes .npc$;
mes "^FF0000Incorrect answer!^000000 You still own ^ff0000"+(.chances-.@tentvs)+"^000000 attempts.";
cutin "",255;
continue;
}
mes .npc$;
mes "^3CB371Right answer!^000000 Thanks for answering the question, have a great game.";
cutin "",255;
setoption 0x40,0;
atcommand "@option 0 0 "+.@opt;
set #antibot,0;
stopnpctimer;
close;
}
end;
//===== End of Scriptt: ======================================================
//===========================================================================
//===== Check Response Time: (segundos*1000) ======================
OnTimer60000:
atcommand "@kick "+strcharinfo(0);
end;
//===== End of Check: ====================================================
//===========================================================================
}