From there, it could "read" enough to find the right places to click to buy things. The bot basically world hopped constantly, 24 hours a day, and bought cheap items until the general store was depleted. I'd then sell them in bulk for several times more. I never got hit with random events (in-game captchas), because I never stayed logged in for more than a minute or so. I was also not hit by any of the big banning waves, since I didn't rely on reflection in Java or use any of the popular "frameworks" for macroing.
Joke's on me though, because that game consumed several years of my life and I spent a lot of money buying several years worth of "members".
Later on there was also a gambling culture of "dicing" where you'd join an IRC channel, type a command to a bot like '/roll', and get paid in-game if the 'dice roll' came out in a certain way. I took an educated guess that the channel operators were running bots with mIRC, and reverse engineered the random number generator in the mIRC client (which was fun, because it was written in C++). Turns out it was a linear congruential generator which was in principle brute forceable given a few consecutive rolls. I wrote some OpenCL code for my GPU in the very early days when "GPGPU" was a new idea, but was never able to get it fully working because mIRC used 64-bit floating point arithmetic and the least significant digits were relevant to the outcome of the RNG, and my GPU was only 32 bit.
Link to my SE question at the time: https://crypto.stackexchange.com/questions/2086/predicting-v...