KevinTyrrell / FishingBot

World of Warcraft automatic fishing program. Fishes by using the mouse and searching pixel colors around the cursor to detect 'splashes' in-game.
34 stars 22 forks source link

Can't find bobber after calibration #4

Open gianclaudio-giordano opened 7 years ago

gianclaudio-giordano commented 7 years ago

I made a small video to better understand the issue. https://youtu.be/6wev5b-whgE

This happens in either fullscreen, windowed (maximized), and windowed mode, with both first person camera and third person camera. After starting the bot, it doesnt cast fishing itself, and even when you manually do it fails at finding the bobber.

OS: Windows 10 home 64 bit (10.0, build #10586)

KevinTyrrell commented 7 years ago

@jancloud

Thank you so much for your report. I really appreciate it.

Firstly, can you make sure that after you press START, you select the WoW client (meaning that window has focus)? In order to have FishingBot type "/cast Fishing" it needs to have WoW in focus. I notice that in your video, the WoW window is white meaning it doesn't have focus.

So right now the process will go like this:

Make sure calibration search area is correct. Press calibrate button. Hover over bobber. After message, press start. Click into the WoW window once.

I'm thinking maybe to implement a feature to automatically focus your WoW window for you but that's a little weird because I have to search for the WoW process on your computer first.

gianclaudio-giordano commented 7 years ago

@KevinTyrrell Thanks for the reply. I rewatched my video and you are right, I did not switch back to WoW window after starting the process. However I am currently trying it the correct way and yes, the bot automatically casts fishing now, but when fishing is being "channeled" the cursor still loops in some weird horizontal movement, and does not catch the splash.

About the feature, perhaps some box to be filled by the user with the process # might help the bot to automatically focus WoW; I am not familiar with Windows api but there used to be some function like findProcessById or close to that as far as I remember.

KevinTyrrell commented 7 years ago

Hey man,

Okay so I got home and tested my program again on a new server and I had a whole bunch of problems where my mouse refused to move (sometimes), calibration wasn't working, it wouldn't type /cast fishing, etc. I went into my options menu and disabled the option called Use Hardware Cursor and restarted my game. When I logged back in, everything was normal and it was working amazingly. Can you make sure you have this option disabled?

Option is here

For fishing, make sure your camera is positioned like this: http://i.imgur.com/BPUOwBV.jpg

gianclaudio-giordano commented 7 years ago

@KevinTyrrell Thanks for the headups. You explained it very clearly and now I fixed the cursor issues with that in-game setting, although the ideal search area for bobber appears to be at a higher height than 40% (i'd say 50-60% on my screen but might be influenced by resolution?). The cursor now successfully finds the idle bobber, however no splash is being caught. Looks like the bot does not simulate the click of the mouse, or just doesn't understand when to do it. I've tried both lowering and increasing the sensitivity, the console always prints "Failed to detect the bobber's splash!".

Your screenshot makes me think you are using a 1.12 client, is that true? I am using a 3.3.5. Could this be the cause of any issue?

gianclaudio-giordano commented 7 years ago

EDIT: After several tries with the settings I managed to catch some splash! Looks like I found the correct setup to have it working. The only thing I noticed, is that the fish is not automatically looted when the loot window appears, despite the "Auto loot" setting in the interface options being active. In fact when I manually fish I have no issues with it, the fish/item gets automatically looted but when the bot is working it does not. What do you think could be the problem? Btw, sorry for my language, I am not english I try to express as good as I can :s

KevinTyrrell commented 7 years ago

Haha what a roller-coaster of problems. It's really interesting because many of these are beyond the scope of my program. I'm not exactly sure why certain options of WoW affect how mouse cursor programs work (Vertical Sync, Hardware Cursor, etc) but now I know to warn people about them.

My program automatically shift clicks when looting so make sure you have Auto Loot disabled or holding shift will disable auto-loot haha. If I made it so my program did not hold shift, then players would auto loot disabled would not be able to use FishingBot. It's a tough call, you know?

Press the 'Debug Mode' button and you will see the values of the scan. A higher sensitivity will mean it will loot the fish with more tiny amounts of color changes. Different graphic settings and different expansions of World of Warcraft would mean different sensitivity. Luckily the program should save these settings upon being closed.

Please let me know how the program is performing for you. I have only little testing on non-Vanilla servers so I'm very curious of what changes need to be made to keep it working across all versions.

I hope your experience with the program improves from here. Let me know if there are any changes or features you believe should be made.

Thanks!

gianclaudio-giordano commented 7 years ago

If I remember right it was Cataclysm with added the liquid detail graphic settings. Perhaps with higher liquid detail it requires less sensitivity? As the water would look more flat, without those tiny white waves. Those white particles appear to interfere the most with the program, probably depending on their density they are detected as it was a splash, and vice-versa. My ideal sensitivity seems to be 2 ticks from 100, where the value searched for on the console is 0.83. I will keep testing and write my reports! :)