Sure, I could do that in Update 4 (I also need to make master_toggle, master_hold and suspend_hotkeys be able to be the same button because I just needed it today when I was shopping)
Iâve incorporated manual camera rotation because Iâm using it myself but I was thinking about automatic as well because, although not as optimal as manual camera rotation for crucible for example, itâs very fun to play with and pleasant to look at everything slowly rotating according to where youâre going. Itâs super chilling.
I need to rewrite it though from the ground up to use Timers (because now it works when youâre holding Left Click in a While Loop and I donât write like that anymore) and think how to incorporate it nicely into the program. Also itâs needs to have a lot of configuration options like
the angle of the segment around 12 oâclock where thereâs no camera rotation
inner region size where thereâs no rotation
the shape of the inner region (circular, rectangle, maybe even eliptic)
also I need to implement reading the userâs resolution and expressing all those sizes in % instead of pixel so that itâs invariant to changing the resolution
@klasperstanze for example likes only to have automatic rotation at the edges of the screen, I prefer it more aggressive, present almost everywhere except small inner circle around the character and small segment near 12 oâclock
Also before all this I think I need to figure out and implement a scalable mechanism that would enable all hotkeys be the same key because I think itâs limiting me a bit right now.
For example something like hotkeys having a list of functions that they trigger instead of being bound to one function. Iâve already got anxiety thinking of all this
mate, thank you very much for putting so much time and effort into this!
I like it very much. I can play my build a lot easier thanks to your program!
The camera thing annoys me very much in this game. I hate using the scroll button and using any keys for that is also very annoying. It would be really neat if youâd manage to do it! If itâs not very difficult, having the camera point not exactly the way your character is looking, but at an angle would be really useful, to be able to set the best snipe angle .
As far as automatic camera is concerned, I can only do it like this
(at this exact speed, changing it is impossible, rotation based on where youâre cursor is at)
And hereâs super fast manual camera rotation I use
Check out how Iâm snipping those mobs
I cannot really know whereâs your characterâs is looking, I only detect the cursor position
(when youâre holding Left Click in the base version but thatâll be configurable)
And I like it sooo much! I don´t play any script without this feature anymore.
By putting the rotation area to the edges of the screen, it´s not really an automated camera rotation anymore. The view remains constant (perfect for people who´ll get sea sick otherwise) and will only rotate once you reach the edges of the screen. It´s a feeling like the automatic-scrolling in a pdf viewer for example. Very convenient.
I made .exe for you to try out since youâre so impatient
You need to set the following in GD Keybinding
b - rotate left
n - rotate right
This is version that works near the character as well
camera rotates when youâre holding Left Click.
Hereâs the original post with if youâd like to change something (you would need to install AutoHotkey for that so that the scripts would work after you clicked them)
Had some issue with manual camera rotation for the 1st time. The cursor moved so slowly that it could be visible on the screen. Normally it moves so fast people donât even know the rotation is done by just by dragging the cursor and rotating the screen. Restarting the program fixed the issue.
Iâm planning to include the âcasting skill on the character/in the center of the screenâ since we already have that in the case of Inquisitor Skill and it more or less suits the program (every [k] section could have the option cast_on_character=true ore something like that)
maybe with enough development klasperstanze could use the program so that I have more testers
I donât know why, but your tool isnât working for me. When i run it, it shows on my tray bar with âSuspend Hotkeysâ turned on. I cannot switch it off.
You cannot make the keys not be suspended outside of the game. Thatâs intended.
Cannot you turn it on in-game as well?
Please share the config file youâre using
Well the program worked for me. Please do the following
Change the Blood of Dreeg from 15000 to 1000 for now
[9]
skill=Blood of Dreeg
toggle_key=9
delay=1000
so that you can better see if everythingâs working now.
Make sure to save the config file
Turn of the program again
Turn on the game or maximize it
Wait a few seonds, press â9â too see if Blood of Dreeg is cast when itâs not on cooldown (every 15 seconds or so)
Btw I think you should keep 1000 Blood of Dreeg delay not 15000
The reason is that for example after 15 seconds it can still be on cooldown and as a consequence you may need to wait like 30 seconds for it to be cast. If the delay is set to 1000 ms, the Blood of Dreeg is going to be cast as often as possible which is good imo. Especially for testing but for general gameplay too I think.
[edit] I forgot the step âturn on the program againâ
[reset timers and spam skills when hold]
skills=7
delay=100
key=Shift
duration=2000
[7]
skill=Wendigo Totem
delay=13000
hold_keys=Shift
What the 1st section is going to add is that after you hold Shift the totemâs timer is going to be reset and this skill spammed immediately for the duration of 2 seconds.
What is it for - to cast a skill immediately when you hold a key even if it has a very long delay like Wendigo Totem. Normally I have a 100 delay and this way skills is spammed immediately but Iâd like the totem to be spammed every 15 seconds not every 5 seconds when Iâm fighting the same enemy and holding Shift for 15 seconds.
Why not just force one press naturally and then carry on with 15 second delay after you press and hold Shift. Well, in Grim Dawn pressing a button once doesnât give you 100% guarantee the skill is cast. A Wendigo Totem is a skill you want to be cast with 100% chance otherwise you may get killed. The only way to guarantee this is to spam a skill for a short period of time but obviously shorter than the skill 5s cooldown.
This way we can have 100% guarantee (I already had something like this in my previous program) that a Wendigo Totem is spammed exactly once for every mob pack immediately with 100% chance and not more often than every 15 seconds unless moving between mob packs.
Of course, all of this achieved with the same button you use for other skills (I like to play with LMB + Shift only + occasional Space for movement skill out of rotation, health, energy potions, camera etc)
Also one more thing that I think needs to be done if the program is to be developed further.
Hotkeys being able to store multiple functions bound to them and execute them one by one.
Iâve already had âhiding stuff on the groundâ Shift hotkey but Iâd like another hotkey on Shift and thatâs impossible.
The simplest solution would be Hotkeys dictionary working more or less as follows (pseudo code):
And then when user presses Shift all these 3 things happen one at a time and there are no hotkey limitations in the program:
Shift::
for function in Hotkeys["Shift"]
function.Call()
Return
Shift hotkey created dynamically when first function is added to Hotkeys[âShiftâ] list in Hotkeys dictionary.
Yeah, lots of rewriting needed and v4 release gonna takes some time but really worth waiting since it will have much more options to create your perfect fight rotation and logic and far less limitations in regards to keybindings/configuration.