1hubert / genshin-dialogue-autoskip

A simple python script to automatically skip dialogue in Genshin Impact
MIT License
61 stars 23 forks source link

[Click here] for ALL resolution support (Keyboard Mouse Only) #18

Closed OWalbridge closed 1 year ago

OWalbridge commented 1 year ago

Summary

I've edited the KBM version to include all resolution support and some other neat features. Sadly, I've been unable to do the same for the controller version due to the way we're detecting inputs.

Here's the link to the .bat and .py file or download it from my fork, for anyone interested in this all resolution version! (GitHub doesn't let users attach .bat or .py files)

Please leave a comment if you're having issues with any particular resolutions and I'll try work on a fix ASAP.

I'll be continuing development and hoping to get controller support and a UI setup before submitting a pull request.

Solution

We're scaling the resolution by dividing the variables provided and multiplying by the detected resolution.

Controller and other issues

The issue with the controller version is how we're detecting inputs. TL;DR, it doesn't work (at least not as of Sep 2023). From my testing the program isn't able to detect the auto play button at all, even in the KBM solution I've attached. It's basically redundant so we should remove it.

Extra info (for anyone interested)

It seems that the only thing triggering the selecting of dialogue is the "is_dialogue()" function, in the controller version, and the "is_dialogue_option_available()" function, in the KBM version, because of this, and the way the conditions are setup in main, the program just tries every dialogue selection option regardless of UI (KBM, DS4, Xbox) and hopes one works (define_ui() and is_dialogue_playing() are currently broken, they can be removed and the code still works). We'll need a better way of detecting game pads (they do exist, it can be done).

1hubert commented 1 year ago

Thank you @OWalbridge for providing the all resolution support + constructive criticism.

I will make the kbm_only branch the main branch and will make the current main branch into gamepad_only branch. Then, I will remove any keyboard support from the gamepad_only branch and for now will left the hacky approach of detecting gamepads as it is, as I don't have any game pads to properly test it. The gamepad_only branch will be described as "experimental" in the readme.

After all that, I'll look into your all-resolution approach, test it and if I get it to work properly - push it with some note about how all-resolution works in the readme if necessary. I will also close all of the issues that mention a need for support of resolutions other than 1080p and describe the recent changes we made and how it can be done.

OWalbridge commented 1 year ago

@1hubert Sounds good. I've finished the GUI on my fork. I'll make a pull request once I've hooked it up to the back end. I'll attach some screenshots:

Screenshot 2023-08-31 at 11 28 42 pm

https://github.com/1hubert/genshin-dialogue-autoskip/assets/141431038/bd88435b-9cf6-423e-9821-8bcdeb2ffef0

1hubert commented 1 year ago

Hey @OWalbridge, I've tested and pushed your solution to auto resolution scaling to the main branch. Works great. I've added an .env file to store the resolution so that once a user knows it's correct, he doesn't have to deal with the Is the resolution correct? (y/n) every time he runs the script.

Your GUI looks super good. It honestly means a lot to me that people continue the work I did. Together, we can waste less time on filler genshin story and learn some coding along the way. I'll be waiting for your pull request.

Closing this issue as it's related to all resolution support. Thank you again.