Thanks for the suggestions!Quote:
There are a few mooch detection possibilities:
- Chat log
- Hotkey availability
- Fishing result; sourced from on-screen popup gathering result or HQ animation upon reel-in
The last option requires advance knowledge of which fish are part of mooch chains, which means each fish and possibly each location must be sourced prior to runtime. Since you already appear to know whether the result is HQ or not, you should be able to tell whether or mooch can be used or not by the type of fish (ex. Merlthor Goby HQ = yes).
BTW you do not need to inject code to read from the chat log. In fact, you never need to inject code to read anything from memory.
I believe the chat structure works similar to the 1.0, an array of line lengths and a pointer to the data blob. Chat is in a binary format you'll need to parse (auto-translates, item links, etc are in there too). The format is quite similar to the log files, except the offsets and the data are stored separately in memory and the log file has a start and end line number at the top.
My private bot uses the hotbar data for mooching, I found it to be the best fit for what I wanted. If you're looking for new features, mine has a few I didn't see mentioned:
- Automatic enabling of cast light (to avoid looking like a bot)
- Catching big fish only (dump bad results with Quit because it is faster)
- Ability to pregame for a fish before a window and automatically hold the nth mooch
- Ability to repair
- Ability to move/reset fishing location ("The fish sense something is amiss")
- Multibox support?
You could also consider reading the user's configuration so they can set hotbars however they'd like.
Catching big fish only is not an indication that the person is botting because players can listen to the sound of the fish biting and determine the size. Small fish sound like a slight rattle, medium fish have a more robust rattling sound and big fish sound like a stick (rod) breaking/snapping.
I've been using code injection to extract dynamic pointers as I had no luck finding a base pointer for e.g. the chat log, but I found very easily where the different pointers were used in the code, so I injected some code to write the pointers in codecave.
I'll be working on a feature update next month. Been very busy with work these past few weeks.