I know it's not really a bot, but it works just like one. I use this for trolling the AH all day and night looking for deals. Auctioneer alerts me when it finds a deal and I have to hit a macro which essesntially clicks buyout for me. I bought a Teensy++(link below) and a microphone(link below) and wrote a little code to listen for the auctioneer doorbell sound, and to hit the '=' key to trigger the macro. It also will jump the character at a random interval(currently 8-10 minutes).
I know this isn't cheap, but it's fairly effective and safe. The Teensy isn't running any code on the computer when it runs. Everything is kept on the chip and it literally is just telling the computer that it's a keyboard. The code I use is below. It's pretty easy to follow.
Not terribly useful for most people, I know. If I were able to get WoW data externally somehow(packet sniffing & decryption?) I could pump serial commands to this and do some really nifty stuff, but unfortunately I don't know if that's possible.
Also I should note for the electronic faint of heart there is no soldering or anything like that in this setup. It was all pretty much plug and play. Also, if there's any actual interest in this I will write up a whole guide on how to configure/program it.
Thanks.
Code:
int analogPin = 0; // Audio from microphone is input on this pin
int val = 0; // value of the read on pin 0
long previousTime = 0; // will store last time it jumped
long interval = 0; // interval at which to jump
void setup() // This is run at the beginning of the execution
{
randomSeed(analogRead(0));
interval = random(480000,600001); // Initially sets interval to a random value from 8 to 10 minutes in miliseconds
}
void loop() // This is run infinately.
{
val = analogRead(analogPin); // Set val to the value of analogPin(this is the microphone pickup)
if (val > 700 || val < 300) { // Check the level to see if there's some input going on(mic sits anywhere from 400-600 normally
Keyboard.print("="); // Simulate a keypress of '='
}
unsigned long currentTime = millis(); // Setting the var currentTime to the ammount of milli's that the board has been on
if(currentTime - previousTime > interval) { // If the time since the last jump is greater than the interval process below code
previousTime = currentTime; // Set the previousTime to current time, as we're jumping now
Keyboard.print(" "); // Simulates a keypress of ' '
interval = random(480000,600001); // Re-randomizes the interval so you aren't always jumping at the same int
}
}
PJRC Store Teensy I use. For anti AFK you could get away with the regular teensy, and not the ++... but the ++ has analog inputs for things like microphones.
SparkFun Electronics - Breakout Board for Electret Microphone Simple microphone board
Teensyduino - Add-on for Arduino IDE to use Teensy USB development board - The software to program the Teensy can be found here.