// ==UserScript== // @name SPSB captcha keys // @namespace http://llama/sp/ // @version 1.2 // @author http://www.starpirates.net/profiles.php?id=43234 // @description displays on-screen keybard for evil captchas. // @include *starpirates.net/*research* // @include *spybattle.com/*research* // @include *starpirates.net/*pickdebris* // @include *spybattle.com/*pickdebris* // @include *starpirates.net/*npcencounter* // @include *spybattle.com/*npcencounter* // @include *starpirates.net/*brokerage* // @include *spybattle.com/*brokerage* // @include *starpirates.net/*attack* // @include *spybattle.com/*attack* // @include *starpirates.net/*salvage* // @include *spybattle.com/*salvage* // @include *starpirates.net/*macro* // @include *spybattle.com/*macro* // @include *dupa* // ==/UserScript== //captcha: //attack brokerage pickdebris research npcencounter salvage ... MACRO :D var style=""; //Add GM_{set,get,delete}Value if(!GM_setValue) { function GM_setValue( cookieName, cookieValue, lifeTime ) { if( !cookieName ) { return; } if( lifeTime == "delete" ) { lifeTime = -10; } else { lifeTime = 31536000; } document.cookie = escape( cookieName ) + "=" + escape( cookieValue ) + ";expires=" + ( new Date( ( new Date() ).getTime() + ( 1000 * lifeTime ) ) ).toGMTString() + ";path=/"; } function GM_getValue( cookieName, oDefault ) { var cookieJar = document.cookie.split( "; " ); for( var x = 0; x < cookieJar.length; x++ ) { var oneCookie = cookieJar[x].split( "=" ); if( oneCookie[0] == escape( cookieName ) ) { try { // eval('var footm = '+unescape( oneCookie[1] )); var footm = unescape( oneCookie[1] ); } catch(e) { return oDefault; } return footm; } } return oDefault; } function GM_deleteValue( oKey ) { //yes, they didn't seem to provide a way to delete variables in Greasemonkey, and the user must use about:config to //delete them - so the stored variables will pile up forever ... GM_setValue( oKey, '', 'delete' ); } } function but(bbb) { return'