kpreisser / MouseClickSimulator

Mouse Click Simulator for Toontown Rewritten and Corporate Clash
MIT License
26 stars 17 forks source link

Suggestions from another pixel searching-based toontown bot creator #14

Open AskAlice opened 7 years ago

AskAlice commented 7 years ago

Firstly, I would like to say I'm very glad I stumbled upon this, I have a very bot in toontown, though not for fishing. I too look at pixels to work around the memory obfuscation and ssl. There are a few things I think could make this work a lot, lot better.

It would look less like you're hacking if the mouse moves gradually over to its next destination. This is probably very possible with C#, though my Toontown bot is written in AutoHotkey (check my repo TTR-Tools) so I can't help you implement.

Another suggestion, the fishing node that the bot selects should always be the closest possible one, as it seems more humanly logical to go about fishing in this way.

Also, the iteration number should probably only increase when the fish stats dialog is closed. This prevents the iteration number getting thrown off by user interference. Another, more robust way to go about fixing this bug, is by using image recognition to find the font character for each number before the slash in the bucket count.

Is it possible to change delay?

Additionally, you might be able to implement a method to check which direction the node is moving in... possibly even its velocity (though I think they use bezier curve motion). Then if it is moving towards the toon, or sideways, fish to either where it thinks it will end up, or half way between there and where it is currently

Another bug is if you catch jellybeans or boots, it still counts it as an iteration. This shouldn't happen, could be fixed by what I said in previous paragraph, or by searching pixels of the stats dialog to see if there are jellybeans or boots.

When the node is too close to the dock, but not under it, the toon will not fish, even though it's possible to fish this manually

The biggest issue is speed. Running this bot once, It finished in 2 minutes 30 seconds with 19 fish in bucket. I tested human fishing and I finished in 1 minute 30 seconds with 20 fish. Now, I understand the appeal for AFK, but I think it could be improved on a lot.

primetime43 commented 7 years ago

Hey man, I notice you're modding TTR too. I think we should talk and see if we can work on something together. Here's some of the bots I've made so far... Old bot: https://youtu.be/MC5iOsb-a5k New bot: https://youtu.be/V99R-XxamC0 Message me on here, YouTube, or skype: drprimetime43

kpreisser commented 7 years ago

Hi, thanks for logging this issue and for your suggestions.

Changing the mouse movement to be more smooth can be done, but would have to be programmed manually (e.g. making small movements, perhaps with using a RNG).

It is possible to change some of the delays in the XML file (e.g. minimumPause, maximumPause, duration), but some other delays are currently hard-coded in the corresponding action (e.g. the time which the simulator waits until it decides to cast the rod, see the Fishing action files). The delays are generated by the await provider.WaitAsync(xx) calls.

I agree that the speed of the simulator can be improved and that the fishing function is not yet ideal (see also #4).

I don't have much time and a strong preference to work on this at the moment, but you (and others) are welcome to submit a Pull Request if you like, to contribute to the project and improve the simulator.

Hi @primetime43, nice to see that you are developing a TTR bot too.

Thank you!