Jump to content
  • 0

Anti Bot disable commands on start


Question

Posted

Good day, help me with these because I want to make this when character logs in, character cannot use any command but after typing the answer, character back to normal, thanks! :)

- script AntiBot -1,{

OnPCLoginEvent:
atcommand "@option 2";
set .@A,rand(50);
set .@B,rand(50);
mes "If A = "+.@A+"   B = "+.@B;
switch( rand(1) ){
Case 0:
set .@Answer,.@A + .@B;
mes "How many is A + B ?";
break;
//Case 1:
set .@Answer,.@A - .@B;
mes "How many is A - B ?";
break;
//Case 2:
set .@Answer,.@A * .@B;
mes "How many is A * B ?";
break;
//Case 3:
set .@Answer,.@A / .@B;
mes "How many is A / B ?";
break;
}
input .@Input;
if( .@Input != .@Answer ){
mes "Wrong";
atcommand "@kick "+strcharinfo(0);
}
close;

}

13 answers to this question

Recommended Posts

Posted (edited)

Thanks for that idea EvilPuncker

@Bahmut, I am using eathena btw.

I'm testing this but i think the last if statement is not working.

- script AntiBot -1,{

OnPCLoginEvent:
atcommand "@option " + 2;
atcommand "@mute "+"200" +strcharinfo(0);
set .@A,rand(50);
set .@B,rand(50);
mes "If A = "+.@A+"   B = "+.@B;
switch( rand(1) ){
Case 0:
set .@Answer,.@A + .@B;
mes "How many is A + B ?";
break;
//Case 1:
set .@Answer,.@A - .@B;
mes "How many is A - B ?";
break;
//Case 2:
set .@Answer,.@A * .@B;
mes "How many is A * B ?";
break;
//Case 3:
set .@Answer,.@A / .@B;
mes "How many is A / B ?";
break;
}
input .@Input;
if( .@Input != .@Answer ){
mes "Wrong";
atcommand "@kick "+strcharinfo(0);
}

if( .@Input == .@Answer ){
mes "CHECKED! You're not a bot.";
atcommand "@unmute "+strcharinfo(0);
atcommand "@option " +0;
}
close;

}

Fixed that forgot to add one more "="

@evil

Nice idea but if the character is muted, they cannot use atcommand again.. /swt

any more ideas?? Thanks! :)

Edited by .- Versiglia -.
Posted

You never have to add constants in separate quotes, only variables, e.g.

atcommand "@option " + 2;
atcommand "@mute "+"200" +strcharinfo(0);

Could be written as:

atcommand "@option 2";
atcommand "@mute 200 "+strcharinfo(0);

  • Upvote 1
Posted (edited)

Anyways, Fixed that with this :))

THanks for all the help :D


- script AntiBot -1,{

OnPCLoginEvent:
atcommand "@battleignore";
atcommand "@option " + 2;
atcommand "@adjgmlvl -1 "+strcharinfo(0);
set .@A,rand(50);
set .@B,rand(50);
mes "If A = "+.@A+"   B = "+.@B;
switch( rand(1) ){
Case 0:
set .@Answer,.@A + .@B;
mes "How many is A + B ?";
break;
//Case 1:
set .@Answer,.@A - .@B;
mes "How many is A - B ?";
break;
//Case 2:
set .@Answer,.@A * .@B;
mes "How many is A * B ?";
break;
//Case 3:
set .@Answer,.@A / .@B;
mes "How many is A / B ?";
break;
}
input .@Input;
if( .@Input != .@Answer ){
mes "Wrong";
atcommand "@kick "+strcharinfo(0);
}

else if( .@Input == .@Answer ){
mes "Good Job!";
atcommand "@battleignore";
atcommand "@adjgmlvl 0 "+strcharinfo(0);
atcommand "@option "+0;
}
close;

}

Thanks Euphy! :)

Thanks to all :D

Edited by .- Versiglia -.
Posted

atcommand "@option 2 0 3";

sc_start sc_berserk, 1000000000, 1;

sc_end sc_berserk;

atcommand "@option 0";

i think it's better to use

OnNPCKillEvent:

rather than

OnPCLoginEvent:

it's like allow all bots except hunting bot :)

i've been using this.. and work smoothly :)

Posted

@Chickz I cannot understand what you're trying to say. no HAHA!

I'm really looking for anti bot that will appear if a player already killed 100 + monsters.

Posted (edited)

What if not answered within 30 seconds? The Player will be kicked from the server.

Thanks you very much for help :D

- script AntiBot -1,{
OnNPCKillEvent:
 set @bot_chk, @bot_chk+1;
 if (@bot_chk < 100) end;
 else set @bot_chk,0;
atcommand "@battleignore";
atcommand "@option " + 2;
atcommand "@adjgmlvl -1 "+strcharinfo(0);
set .@A,rand(50);
set .@B,rand(50);
mes "If A = "+.@A+"   B = "+.@B;
switch( rand(1) ){
Case 0:
set .@Answer,.@A + .@B;
mes "How many is A + B ?";
break;
//Case 1:
set .@Answer,.@A - .@B;
mes "How many is A - B ?";
break;
//Case 2:
set .@Answer,.@A * .@B;
mes "How many is A * B ?";
break;
//Case 3:
set .@Answer,.@A / .@B;
mes "How many is A / B ?";
break;
}
input .@Input;
if( .@Input != .@Answer ){
mes "Wrong";
atcommand "@kick "+strcharinfo(0);
}
else if( .@Input == .@Answer ){
mes "Good Job!";
atcommand "@battleignore";
atcommand "@adjgmlvl 0 "+strcharinfo(0);
atcommand "@option "+0;
}
close;
}

Edited by .- Versiglia -.
Posted

Quick script that I did. It's modified to fit your thing. There's also a 30 second timer.


- script FUBOTTERS -1,{
OnNPCKillEvent:
set @botz, @botz+1;
if (@botz < 100) end; else set @botz, 0;
atcommand "@option 2"; atcommand "@battleignore"; atcommand "@mute 1337"+strcharinfo(0);
mes "[Anti-Botting System]";
mes "Dun-dun-dun! Seems like the server suspects that you're a bot.";
mes "You will have 30 seconds to enter in my special codes otherwise you'll be kicked.";
mes "Ready? Go!";
next;
mes "[Anti-Botting System]";
mes "^FF0000Please enter the following numbers:^000000";
set @random,rand(100000,999999);
mes @random;
initnpctimer;
attachnpctimer strcharinfo(0);
input @value;
if (@value == @random){
next;
mes "[Anti-Botting System]";
mes "You may now continue playing!";
atcommand "@option 2"; atcommand "@battleignore"; atcommand "@unmute 1337"+strcharinfo(0);
close;
stopnpctimer;
}else{
next;
set @player$,strcharinfo(0);
mes "[Anti-Botting System]";
mes "Incorrect numbers have been inputted.  You will now be kicked from the server.";
next;
atcommand "@kick "+@player$;
close;
stopnpctimer;
}
OnTimer30000:
set @player$,strcharinfo(0);
dispbottom "You failed to answer the question within 30 seconds.";
goto L_Fail; 
L_Fail:
mes "[Anti-Botting System]";
mes "You have been detected as a bot and will now be kicked off the server.";
next;
announce "Anti-Botting System : "+@player$" has failed to answer the codes within 10 seconds and is suspected a bot! He is now kicked.";
atcommand "@kick "+@player$;
close;
}

Posted (edited)

dont use @battleignore

atcommand "@option 2 0 3"; // it'll frozt, Hide, & Sight status so Insect or MVP cannot attack

sc_start sc_berserk, 1000000000, 1; // Berserk status (LK skill) Disable Chat & Command too

sc_end sc_berserk; // this is for release berserk

atcommand "@option 0"; // this is for release status..

OnNPCKillEvent:

if( rand(100) > 5 ) end; // It's random chance to activate antibot after killing mob. 5 is 5% chance, just change it to 30 to get 30% chance or 50 for 50%

if u use antibot will activate when u kill 100 mobs, then botter just set a macro trigger that if it kills 90 or 99 mobs than relog.. :)

i hope u can understand ^^ haha

Edited by Chickz

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...