- script Anti-bot -1,{
OnPCLoginEvent:
attachnpctimer ""+strcharinfo(0)+"";
initnpctimer;
end;
OnTimer3600000:
OnPCLoadMapEvent:
getmapxy(@map$,@x,@y,0);
if(strcharinfo(3) == @map$){
setmapflag .Map$,mf_loadevent;
dispbottom "This is only to find out if you're a BOT";
atcommand "@battleignore";
atcommand "@adjgroup -1"+strcharinfo(0);
atcommand "@option 2";
sc_start SC_FREEZE,10000000,1;
sc_start SC_HIDE,10000000,1;
mes "Please Enter Red Color Key in the Code...";
set .Code,rand(1000,99999);
mes "^0000FF"+rand(1,9999)+"^FF0000"+.Code+"^0000FF"+rand(1,9999)+"^000000";
input @Code;
if( @Code != .Code ){
stopnpctimer;
detachnpctimer;
atcommand "@kick "+strcharinfo(0);
}
else {
atcommand "@battleignore";
atcommand "@option 0";
sc_end SC_FREEZE;
sc_end SC_HIDE;
dispbottom "Sorry for INTERRUPTING you, Thank You!";
stopnpctimer;
initnpctimer;
}
close;
}
end;
}
well.. if im not wrong.. i can do it like this and both labels will run properly .-.
OnTimer3600000:
OnPCLoadMapEvent:
Warp to the MAP and then Anti-Bot show.. (input the right code and done..) [ready, please try it]
After 1 Hour the Anti-Bot show again.. (input again) [ready, please try it]
Only my point of view:
sometimes this tipe of anti-bots system could be annoying for the players.
Well you know that is not 100% solved and if anybody reach the max lvl the npc will show you the rank anyway but i going to see how i can make it...
maybe it work
change this
if($Rank$ != "") {
mes "No one reached the maximum level yet";
close;
}
for that
query_sql "SELECT `base_level` FROM char WHERE `base_level` = `99`", .@acclvl;
if (.@acclvl==.MaxLvl) {
mes "No one reached the maximum level yet";
close
}
It only work if you run sql tables