AinsLord Posted February 11, 2017 Posted February 11, 2017 - script antibot -1,{ function GetString; OnNPCKillEvent: if( rand(100) > 30 ) end; // 30% trigger OnPCLoginEvent: switch( rand(2) ){ Case 0: sc_start sc_berserk, 1000000000, 1; set .@String$,GetString( 15,rand(5,10) ); mes "Input the ^FF0000RED COLOUR^000000 part"; mes "^0000FF"+GetString( 15,rand(5,10) )+"^FF0000"+.@String$+"^0000FF"+GetString( 15,rand(3,10) )+"^000000"; input .@Input$; if( .@Input$ != .@String$ ){ mes "Wrong.."; atcommand "@kick "+strcharinfo(0); } sc_end sc_berserk; break; Case 1: sc_start sc_berserk, 1000000000, 1; set .@A,rand(1000); set .@B,rand(1000); mes "If A = "+.@A+" B = "+.@B; switch( rand(4) ){ 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); } sc_end sc_berserk; break; } close; function GetString { if( getarg(0) & 1 ) setarray .@List$[ getarraysize( .@List$ ) ],"1","2","3","4","5","6","7","8","9"; if( getarg(0) & 2 ) setarray .@List$[ getarraysize( .@List$ ) ],"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"; if( getarg(0) & 4 ) setarray .@List$[ getarraysize( .@List$ ) ],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"; if( getarg(0) & 8 ) setarray .@List$[ getarraysize( .@List$ ) ],"!","@","#","$","%","^","&","*","(",")","-","=","/","+"; set .@Str$,""; while( getstrlen( .@Str$ ) < getarg(1) ) set .@Str$,.@Str$ + .@List$[ rand( getarraysize( .@List$ ) ) ]; return .@Str$; } } this is the NPC script every time a monster killed it will pop up can anyone modify this like it will activate an hour to check if the player is a bot or not Thnx in advance Quote
0 AinsLord Posted February 12, 2017 Author Posted February 12, 2017 thnx for suggesting but i want script anyone Quote
0 Emistry Posted February 17, 2017 Posted February 17, 2017 - script antibot -1,{ function GetString { if( getarg(0) & 1 ) setarray .@List$[ getarraysize( .@List$ ) ],"1","2","3","4","5","6","7","8","9"; if( getarg(0) & 2 ) setarray .@List$[ getarraysize( .@List$ ) ],"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"; if( getarg(0) & 4 ) setarray .@List$[ getarraysize( .@List$ ) ],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"; if( getarg(0) & 8 ) setarray .@List$[ getarraysize( .@List$ ) ],"!","@","#","$","%","^","&","*","(",")","-","=","/","+"; set .@Str$,""; while( getstrlen( .@Str$ ) < getarg(1) ) set .@Str$,.@Str$ + .@List$[ rand( getarraysize( .@List$ ) ) ]; return .@Str$; } OnCheck: switch( rand(2) ){ case 0: sc_start sc_berserk, 1000000000, 1; set .@String$,GetString( 15,rand(5,10) ); mes "Input the ^FF0000RED COLOUR^000000 part"; mes "^0000FF"+GetString( 15,rand(5,10) )+"^FF0000"+.@String$+"^0000FF"+GetString( 15,rand(3,10) )+"^000000"; input .@Input$; if( .@Input$ != .@String$ ){ mes "Wrong.."; atcommand "@kick "+strcharinfo(0); } sc_end sc_berserk; break; case 1: sc_start sc_berserk, 1000000000, 1; set .@A,rand(1000); set .@B,rand(1000); mes "If A = "+.@A+" B = "+.@B; switch( rand(4) ){ 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); } sc_end sc_berserk; break; } close2; OnPCLoginEvent: addtimer ( 60 * 60000 ), strnpcinfo(3)+"::OnCheck"; end; } try this. Quote
0 maxine02 Posted February 20, 2017 Posted February 20, 2017 (edited) On 2/17/2017 at 10:37 PM, Emistry said: - script antibot -1,{ function GetString { if( getarg(0) & 1 ) setarray .@List$[ getarraysize( .@List$ ) ],"1","2","3","4","5","6","7","8","9"; if( getarg(0) & 2 ) setarray .@List$[ getarraysize( .@List$ ) ],"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"; if( getarg(0) & 4 ) setarray .@List$[ getarraysize( .@List$ ) ],"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"; if( getarg(0) & 8 ) setarray .@List$[ getarraysize( .@List$ ) ],"!","@","#","$","%","^","&","*","(",")","-","=","/","+"; set .@Str$,""; while( getstrlen( .@Str$ ) < getarg(1) ) set .@Str$,.@Str$ + .@List$[ rand( getarraysize( .@List$ ) ) ]; return .@Str$; } OnCheck: switch( rand(2) ){ case 0: sc_start sc_berserk, 1000000000, 1; set .@String$,GetString( 15,rand(5,10) ); mes "Input the ^FF0000RED COLOUR^000000 part"; mes "^0000FF"+GetString( 15,rand(5,10) )+"^FF0000"+.@String$+"^0000FF"+GetString( 15,rand(3,10) )+"^000000"; input .@Input$; if( .@Input$ != .@String$ ){ mes "Wrong.."; atcommand "@kick "+strcharinfo(0); } sc_end sc_berserk; break; case 1: sc_start sc_berserk, 1000000000, 1; set .@A,rand(1000); set .@B,rand(1000); mes "If A = "+.@A+" B = "+.@B; switch( rand(4) ){ 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); } sc_end sc_berserk; break; } close2; OnPCLoginEvent: addtimer ( 60 * 60000 ), strnpcinfo(3)+"::OnCheck"; end; } try this. What if I want it to be on certain map only? I tried to add this OnCheck: getmapxy(@map$, @xb, @yb, 0 ); if(@map$ != "abyss_03") end; But, the antibot is not showing anymore.. Edited February 20, 2017 by maxine02 Quote
-1 Cyro Posted February 11, 2017 Posted February 11, 2017 Players won't be annoyed if it pop-up like that? Everytime? I think you can use ring sec shield which free and working good as anti cheat This is not proper answer for your question.. but just suggesting Quote
Question
AinsLord
this is the NPC script every time a monster killed it will pop up
can anyone modify this like it will activate an hour to check if the player is a bot or not
Thnx in advance
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.