Нужно вписать как то алгоритм в этом скрипте, сам не бу бу (
// ==UserScript==
// @name        codeFarm+
// @namespace   wtBlock+
// @include     
http://worldoftanks.ru/*
// @include     
http://worldofwarplanes.ru/*
// @version     1
// @grant       none
// @run-at document-end
// ==/UserScript==
function waitForJquery(){
	if (typeof unsafeWindow.jQuery == 'undefined') {  
		window.setTimeout(waitForJquery, 100);
	} else {
		$ = unsafeWindow.jQuery;
		//your code here
	}
}
waitForJquery();
	var testcode='', 
		format='', 
		runTimes=0,
		codes={},
		letters=['F', 'G','C','R','T','Y', 'U', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M']
	;
	
	$('body').bind('code:generate', function(e){
		if(format=='')
			format=$('#id_code').val();
	    	var 
	    		regLet=new RegExp("n{1}"),
	    		regDig=new RegExp("x{1}")
	    	;
	    	testcode=format;
	    	var tempcodes={}, tmp='';
	    	while(regLet.test(testcode)){
	    		tmp=letters[Math.floor(Math.random()*(letters.length))];
	    		if(tempcodes[tmp]!=true){
	    			tempcodes[tmp]=true;
		    		testcode=testcode.replace(regLet, tmp);
	    		}
	    	}
	    		
	    	var tempcodes={}, tmp='';
	    	while(regDig.test(testcode)){
	    		tmp=(2+Math.floor(Math.random()*8)).toString();
	    		if(tempcodes[tmp]!=true){
	    			tempcodes[tmp]=true;
	    			testcode=testcode.replace(regDig, tmp);
	    		}
	    	}
	    	if(typeof(codes[testcode])=='undefind'||codes[testcode]!=true){
	    		codes[testcode]==true;
	    		$('#id_code').val(testcode);
	    		$('body').prepend(testcode+ ' :: ' +'Попытка ввода'+'<br>');
	    		
	    	}
	});
	$('body').bind('code:check', function(e){
		var text=$('.b-message-error-text').text();
		$('body').prepend(testcode+' :: '+text+'<br>');
		
	})
	$('body').bind('code:send', function(e){
    	$("#button-submit").click();
    	$("#js-edit-bonuscode-form").submit();
	});
	$('body').bind('code:clear', function(e){
		$('#id_code').val('');
	});
	$('body').bind('code:wait10min', function(e){
    	$('body').prepend('Ждём 1 минуту и 10 секунд<br>');
		setTimeout(function(){
			$('body').trigger('code:gen5codes');
		}, (1000*68+2000));
		$('#id_code').val('');
	});
	$('body').bind('code:gen5codes', function(){
		if(runTimes>0){
			$('body').trigger('code:wait10min');
			runTimes=0;
			return true;
		}else
			runTimes++;
		$('body').trigger('code:generate');
		$('body').trigger('code:send');
		
		setTimeout(function(){
			$('body').trigger('code:clear');
			$('body').trigger('code:check');
			$('body').trigger('code:gen5codes');
		}, 3400);
		
	});
	$('body').dblclick(function(){
		$('body').trigger('code:gen5codes');
	});