Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workarounds For Ex-TheCore and Ex-Manta Users #162

Closed
FlorianWendelborn opened this issue May 25, 2016 · 133 comments
Closed

Workarounds For Ex-TheCore and Ex-Manta Users #162

FlorianWendelborn opened this issue May 25, 2016 · 133 comments

Comments

@FlorianWendelborn
Copy link
Contributor

FlorianWendelborn commented May 25, 2016

Why?

Because muscle memory is a bitch.

How?

Basically, the goal of this issue is to find the best possible ingame & crippleexec workarounds to provide similar functionality.

Workaround List

Space For SelfCast

It turns out, that Valve didn't disable the dota_remap_alt SPACE command. In addition to that, you can now use your alt-key for SelfCast by ticking an ingame setting. Combining these two, you get a layout, that allows you to use Space + Skill/Item to SelfCast.

Autoattack toggle

Untested source, somebody please verify this is a replacment.

Update 2016.06.02: It's now in the game options

Complete Replacement By Using AHK

See below.

Meta

Related to FlorianWendelborn/manta-config-engine-app#76.

@Aevyz
Copy link
Contributor

Aevyz commented May 25, 2016

I'll get working on this tomorrow. Hopefully we can get a sensible transition configuration.

@thth
Copy link

thth commented May 26, 2016

Since with the latest patch it looks like Valve is going in the direction of adding the broken things to the in-game options/configs menu instead of fixing console inputs, here's a list of stuff now broken that I'm maybe planning to put on reddit to recommend for valve to add.

it's by no means exhaustive, so tell me if I'm missing anything.

Realistically Implementable
  • modifier keys
  • hold key to toggle:
    • voice chat
    • shop
    • locking camera on currently selected unit (LoL-style)
  • press key to toggle:
    • autoattack mode
  • multiple chatwheels
    • mousewheel scrolling through chatwheels
  • self-cast binding
  • autocast all spells with one hotkey
  • separate bindings for regular- and quick-attack
probably dead:
  • bindings that rebinding keys
    • one key to cycle through chatwheel_say
    • one key to cycle through camera bindings

@lupuleasa-core
Copy link
Owner

I'll chip in on the work, but probably starting with the next week.

@silencer666
Copy link

silencer666 commented May 26, 2016

@dodekeract I'll be a tester I guess... Since I can't code... I want to help in whatever way possible...

Question:

  1. Do you think this proposed workaround can even get remotely close to what @loopuleasa came up with without using AHK?
  2. Is there a reason why you are not using the AHK route? Is it because it is not as powerful as autoexec.cfg?
  3. How is everyone playing Dota 2 at the moment? I don't even dare load up steam while online to avoid Dota 2 being patched, in hope that I can still play bots in the future when the itch really strikes and a workaround has not been introduced.

Much obliged.

@FlorianWendelborn
Copy link
Contributor Author

FlorianWendelborn commented May 26, 2016

@silencer666 I don't think it will get even close, but playable.

I personally managed to win the two games I played with the space workaround. My communication is still fucked because my ping key changed and I lost 60% of my chatphrases, but other than that it's barely playable for me.

You can still play botgames with Manta/TheCore, since they only labeled it as a cheat. If you enable them, you're fine.

I don't go the AHK route, since it would:

  • feel like cheating
  • be less powerful
  • Be even more work than Manta
  • be most likely bugged and
  • I'm a linux user, so screw AHK

@silencer666
Copy link

@dodekeract thanks for replying. I'm checking this github page multiple times a day...even tho I can't code anything... i wish i could help. term break right now.

@Karrandalf
Copy link

Karrandalf commented May 27, 2016

Most of this post is outdated.
Here is the latest download link.
Be sure to read "Readme Message from Karrandalf.txt" for installation instructions.

https://github.com/Karrandalf/Dota2-TheCore-Config-Engine

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=

IT WORKS!!!!!!
...mostly.
I went the AHK route and got most of Loopulseasa working.
So what I did was bind all the keys to the default keyboard layout in the autoexec.
Then I used space or alt and a key in AHK to reach a key all the way on the other side of the keyboard, the numpad for example.
It works pretty flawlessly but we are limited by the number of keys on the keyboard.

So here is the stuff that isn't working because I ran out of keys to bind;
The camera movements and enter on the numpad.
All the chatwheel phrases.
Control Groups 7,8,9 (Keys 8,9,0) EDIT: Control Groups 7 and 8 now work!
EDIT: Control Groups 7 and 8 are gone again. I needed the extra keys.
Toggle RClick Repeat
Toggle Right.C Deny
Right.C Deny ON
Toggle Developer Mode
Cast Mode Toggle
Support for custom hero bindings
and F8 now reloads the AHK script instead of the autoexec.

With that said, everything else works including the auto-attack toggle, select summons toggle, orb effects toggle, and Cycle Health Barsplit.
The AHK script does not contain macros with a few small exceptions (such as the Swift Courier Script). I realize that the chatwheel phrases could be reworked as macros but it isn't worth the risk especially since they can be bound in the console if we ever had a spare key to bind them to.

=-=-=-=-=-=-=-=-=To INSTALL-==-=-=-=-=-=-=-=
Simply extract to
dota 2 beta\game\dota\cfg
just as before.
The AHK script or the exe can be run from any location.
I suggest you run them on startup as they only affect dota 2.
You only need to run the .ahk or the .exe NOT BOTH.
EDIT: Unbind all your hotkeys like before EXCEPT the quickcasts on the abilities and items. You need to use valve's alt+[Key] to self cast now.
YOU MUST PRESS F7 IN-GAME TO START Loopuleasa AFTER IT IS RUNNING.
YOU CAN TOGGLE Loopuleasa ON AND OFF SO YOU CAN USE CHAT IN DOTA 2 WHILE NOT IN AN ACTUAL MATCH BUT WITHIN THE CLIENT.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I'm sure this has some bugs.
I'm sorry I went the AHK route dodekeract, but it made the most sense to me as I just needed to bind keys to a space modifier.

I'll comment the code eventually but not anytime soon as I'll be busy the next few days.
If anyone can find keys that aren't on my keyboard to bind additional commands to, it would fix the running out of room issue.

Sincerely,
Karrandalf

EDIT2: I have fixed an issue causing l and m not to be capitalized correctly when shift was held. By utilizing ScrollLock and Pause, control groups 7 and 8 are re-implemented. The download link has been updated. Install as before.
EDITv1.02: I have fixed the global chat. Keyboard function outside of a DotA match remains an issue. For now, F7 will suspend the script. Press F7 if you wish to use default keyboard functionality. Press F7 again to activate the Loopuleasa script. Remember F8 reloads the AHK script as it looks like it is no longer possible to reload an autoexec once in a game. I think this version is playable. I apologize, the global chat was not something I checked during testing.
EDITv1.03: I have made the windows key toggle the script on and off (F7 for non-windows users).
I have changed the script to be disabled on start (F8 reloads the script but does not start it).
To start the script you have to hit the toggle windows key or F7.
You will receive the in-game message in student chat "Loopuleasa ON" or "Loopuleasa OFF" and hear two beeps. As a consequence, control group 7 and 8 are gone again.
So, if you need your default keyboard back, just press the windows key or F7.
YOU MUST PRESS WINKEY OR F7 IN-GAME TO START Loopuleasa AFTER IT IS RUNNING.
EDITv1.04:Removed Windows Key as hotkey

@silencer666
Copy link

Praise be to @Karrandalf!

May you be blessed with wealth, health and many beautiful children.

@Karrandalf
Copy link

Ty @silencer666,
I have just updated the download link to v1.01.
It fixes some minor bugs and control groups 7 and 8 are back.

@Karrandalf
Copy link

I'm not sure if this method will work for people without a Numpad.
If any of you who do NOT have a Numpad get it to work, let me know.

@Karrandalf
Copy link

Karrandalf commented May 27, 2016

Chat works will you are in a game but not in the lobby.
So, you might want to pause the script if you need to use the lobby chat pre-game.

@FlorianWendelborn
Copy link
Contributor Author

@Karrandalf I'm really sure that it will work, even without a numpad.

@thth
Copy link

thth commented May 27, 2016

I made that reddit post of a list of now-missing functionalities that I mentioned earlier:

https://www.reddit.com/r/DotA2/comments/4lazjm/dear_valve_heres_a_list_of_things_broken_by_the/

I'm sure I've missed somethings, and you guys probably would know about whatever I've missed the most; if there's anything I've missed, tell me here or on the reddit thread and I'll add it in~

@Karrandalf
Copy link

I need to fix global chat.
The Shift-Enter registers as an ordinary Enter

@Karrandalf
Copy link

@dodekeract The only thing that worries me about the numpad is that my script calls though the keyboard hooks rather than calling a virtual key. So... hopefully the keyboard hooks for a numpad are there even if the physical keys aren't. If not, I can look into calling virtual keys.

@Karrandalf
Copy link

Fixed the global chat with v1.02 and added F7 as a toggle to suspend the script.
Let me know if you guys find any bugs.

@Jinnai
Copy link

Jinnai commented May 27, 2016

@silencer666
Copy link

@Karrandalf

I am very happy to report that your workaround... works. Thank you so much.

@Karrandalf
Copy link

Karrandalf commented May 27, 2016

Ty @silencer666 ,
Here is v1.03
I have made the windows key toggle the script on and off (F7 for non-windows users).
I have changed the script to be disabled on start (F8 reloads the script but does not start it).
To start the script you have to hit the toggle windows key or F7.
You will receive the in-game message in student chat "Loopuleasa ON" or "Loopuleasa OFF" and hear two beeps.
As a consequence, control group 7 and 8 are gone again.
https://github.com/Karrandalf/Dota2-TheCore-Config-Engine

@Jinnai
I haven't had any luck binding
bind pgup incrementvar dota_player_units_auto_attack_mode 0 2 1
in the autoexec
It works pasting it in the console though

@silencer666
Copy link

Hi @Karrandalf.

Binding the windows key is NOT a good idea. A lot of us disable it during gaming anyway.

I'm sticking with Version 1.02.

@Karrandalf
Copy link

OK, I'll change it

@Karrandalf
Copy link

Karrandalf commented May 27, 2016

@silencer666 Here is version 1.04.
I have removed the windows hotkey, use F7.
https://github.com/Karrandalf/Dota2-TheCore-Config-Engine

@e-nikolov
Copy link
Contributor

e-nikolov commented May 27, 2016

Is there a way other than using alias to bind something on key press or release? Alias no longer works right?

@e-nikolov
Copy link
Contributor

Also is there another way to bind a combination of keys from the autoexec (like alt + f), or is this only possible from the ingame menu now?

@Karrandalf
Copy link

@e-nikolov No and No
I am not aware of any way.

@Karrandalf
Copy link

Plans for the Future:
*Use AHK instead of autoexec to give visual and audio confirmations for toggles freeing up 10+ keys.
*Use those 10+ keys for the missing chatwheel phrases.
*Remap the key binds in a logical order (I bound them in a really disorganized way in the autoexec and ahk script when I was trying to find a work around).
*Since the keys are bound in a logical order, reflecting their location on the keyboard, remove the F7 toggle. It wouldn't be needed anymore. Loopulesea could always be ON without interfering with default keyboard layout.
*Possibly use virtual keys from the ahk side (if users complain that the work around does not work for them because they are missing the physical keys on their keyboard)

@Karrandalf
Copy link

Well, I won't be able to work on this this weekend. You guys are free to fiddle with it as you wish.
If anyone wants to help, what I really need is a complete list of all bindable keys in the autoexec (even if they are not physically on YOUR keyboard).
That would be the holy grail.
Here is what I have so far;

"A - Z"
"0 - 9"
"F1 - F12"
"KP_0 - KP_9"

"KP_ENTER"
"KP_MULTIPLY"
"KP_SUBTRACT"
"KP_DIVIDE"
"KP_ADD"
"KP_DEL"
"PgDn"
"PgUp"
"END"
"HOME
"PAUSE"
"SCROLLLOCK"
"DEL"
"BACKSPACE"
"INS"
"="
""
"["
"]"
"'"
"SEMICOLON"
"."
","
"/"
"`"
"TAB"
"CAPSLOCK"
"ARROWUP"
"ARROWDOWN"
"ARROWLEFT"
"ARROWRIGHT"
"mouse3"
"mouse4"
"mouse5"

I haven't tried anything higher than mouse5, but mouse6 looks promising.
Does anyone know what [-] the minus key bind is?
Really what I am looking for is bizarre keys.
Add to the list if you can.
Thanks,
Karrandalf

@e-nikolov
Copy link
Contributor

There are multimedia keys like play/pause/next song and so on. Those are bindable in dota 2, but maybe people use them for other things.

@Karrandalf
Copy link

I'll begin work for the update of my project tomorrow.

@AveYo
Copy link

AveYo commented May 18, 2017

Great! I used to experiment with ahk myself (the high performance ahk_dll by HotKeyIt) and some things were fine - I even managed to implement multiple chatwheels. But then more time-sensitive things like my all-in-one casting with just one key+various delays was not perfect no matter what I tried - it was affecting the chat typing more than I wish. I guess I should revisit it since Valve managed to screw the chat by themselves so now there won't be any noticeable difference :)

What we really need is more bindable functions exposed by the GUI.
That's why I'm more interested in client-side modding. My unreleased mod does open some doors, but it's only pseudo-modifiers that can't be assigned in the default settings ui. However, there is no reason why ahk could not be used as a companion :)

Your script should perform ok most times, but beware of fringe issues - I've tested many versions, many environments, even compiled myself, and there were still times when ahk would go ham - you absolutely need to provide a shortcut to hard-restart the script (and guard against multiple instances - I might be able to help with that in the future). I guess security software and the windows kernel don't really like stuff messing with keyboard input - even official macro support from manufacturers gets stuck at times.

Good luck!

@Karrandalf
Copy link

Karrandalf commented May 19, 2017

Thanks @AveYo,
I did encounter the issues you mentioned in previous versions of my ahk releases were much longer and more complex.
By simplifying my ahk script to 3 lines (and discovering that Valve already had the windows key as a 2nd hidden modifier that could be assigned in the default settings ui), I have managed to avoid all previously seen issues.
My goal is to re-implement 85% of TheCore, but this time have both modifiers fully bindable inside the default settings ui. I will leave the more ambitious goals to your project.

I went ahead and took your suggestion in preventing multiple instances:

#SingleInstance force
#IfWinActive ahk_exe dota2.exe
~*SPACE::ControlSend, , {LWin Down}, Dota 2
*SPACE Up::Send {LWin Up}
As for the hotkey for a hard-restart, I do not believe that this script will "mess up" due to its simplicity and minimal function.

@Karrandalf
Copy link

Karrandalf commented May 19, 2017

In case anyone is interested in what my now 4 lines are doing in-game, here is a screen shot.
image

The script essentially "unlocks" the windows modifier and binds it to the spacebar while maintaining full functionality of the spacebar.

This, in addition to the already accessible Alt modifier, gives you 2 modifiers that you can bind however you wish using the default in-game ui (Space and Alt).

@Karrandalf
Copy link

Karrandalf commented May 19, 2017

I have updated my project if you guys want to start building your own keyboard layouts. I have included my personal layout as an example.

https://github.com/Karrandalf/D2SpaceModifier

(sorry I changed the name)

My script is 4 lines and works by blocking the OS from seeing that the windows key was pressed but allows dota2.exe to see the key press. It still amazes me that an entire second modifier layer can be unlocked with such a simple script.

The script:

#SingleInstance force

#IfWinActive ahk_exe dota2.exe

~*SPACE::ControlSend, , {LWin Down}, Dota 2

*SPACE Up::Send {LWin Up}

My method also allows almost everything to be rebound using the default in-game UI. It is too early to say, but this might be the Holy Grail that I was looking for last year. I will polish up the project's supporting documentation and such tomorrow. It looks like the project will make it into beta testing after all. I will make a Reddit post in a couple of weeks if I don't find any problems.

image

image

image

@Karrandalf
Copy link

@Karrandalf
Copy link

Karrandalf commented May 20, 2017

@loopuleasa @AveYo @dodekeract @Aevyz @Chillrox @silencer666 @thth @Jinnai @e-nikolov @dsrtfx @tarqs @Patrickjd1243

So I have updated the supporting documentation of my project. https://github.com/Karrandalf/D2SpaceModifier

Before I make the Reddit post, does anyone see a better way to get a 2nd modifier?

I only see one downside to my solution, the fact that it uses AHK at all, however small:

#SingleInstance force
#IfWinActive ahk_exe dota2.exe
~*SPACE::ControlSend, , {LWin Down}, Dota 2
*SPACE Up::Send {LWin Up}

It should in no way be illegal as it is blocking the Windows shortcuts from triggering while you are playing DotA and does not modify the game client or "mess" with your DotA key presses in any way, shape, or form. Simply put, it hides all down key presses of the left windows key from ALL applications EXCEPT dota2.exe. If anyone knows of an easier way to do this, please let me know.

Whatever method you suggest, it needs to remain simple. This way the average user can fully understand exactly what they are running on their machine.

There are a number of pluses to do it this way such as the fact that we now have 2 ACTUAL modifiers which can be fully assigned using the default ui. Pseudo-modifiers can't.

@AveYo , can you elaborate more on the two pseudo-modifiers you created from the original ALT modifier.
Are you using dota_gamescom_althack 1 as part of your work? I experimented with the command but could not get it to do anything by itself. I just need to make sure that there isn't some way to get two modifiers without AHK or modifying the game client if I don't want any of the functions and extra stuff.

Here is my Triple Keyboard Layout that I have achieved with the four line script (and a crippled autoexec.cfg):

No Modifier:
image

Space Pressed:
image

Alt Pressed:
image

While a longer AHK script is capable of much more, I have concluded that I should not expand the script's capabilities beyond "unlocking" a second ACTUAL modifier.

@AveYo
Copy link

AveYo commented May 21, 2017

@Karrandalf
dota_gamescom_althack is broken since Reborn - that's why I created an alternative in my script.
The ability to remap ALT key in a cfg is also broken. Actually, removed.
So there is no way outside client-side modding or external macro software.
Great job!

@dssrtfx
Copy link

dssrtfx commented May 21, 2017

Did the reddit post get removed by mods?

@Karrandalf
Copy link

no, https://redd.it/6ch520

@Karrandalf
Copy link

nvm
i guess it did

@Karrandalf
Copy link

I wonder why

@Karrandalf
Copy link

does anyone know of a different subreddit i can post to?

@Karrandalf
Copy link

I think it is just because my account is new to reddit so the post was removed by the spam-filter. I have asked the moderators to approve the post.

@Karrandalf
Copy link

I went ahead and just put the link in a comment until moderators approve of the post.

@Karrandalf
Copy link

@Karrandalf
Copy link

Karrandalf commented May 22, 2017

@loopuleasa @AveYo @dodekeract @Aevyz @Chillrox @silencer666 @thth @Jinnai @e-nikolov @dsrtfx @tarqs @Patrickjd1243 @dsrtfx @xackoff @HASJ @Aevyz @xBorsti @Chillrox @haphihp

I received moderator permission to repost, as the last one got buried because it was spam filtered for the first 2 hours. The new one was spam filtered and after 30 mins, I just deleted it and asked my brother to post as he has an older account. Here it is successfully not spam filtered. This should also be the last post I tag everyone in. Sorry about that.

@Karrandalf
Copy link

  ~*CapsLock::SetCapsLockState Off

I'll be adding one more line to keep Capslock Off while you are in dota. Works normally outside of dota.

@Karrandalf
Copy link

Karrandalf commented May 22, 2017

Small correction:

~*CapsLock Up::SetCapsLockState Off

@Karrandalf
Copy link

The exe has been updated. CapsLock will remain off while you are in dota now.

@dssrtfx
Copy link

dssrtfx commented May 22, 2017

Will it prevent me from binding CAPS LOCK to push to talk in game?

@Karrandalf
Copy link

no

@Karrandalf
Copy link

The way it works is by turning CapsLock ON when the key is held down and OFF once it is released (similar to the Shift key). This allows stuff to be bound to CapsLock while preventing you from shouting. Outside of dota, it retains default functionality (as the script is inactive).

@Karrandalf
Copy link

Karrandalf commented May 27, 2017

I released v1.0.1

  • added this line to the autoexec.cfg for meepo/chen/visage/ect. players.

                  dota_player_smart_multiunit_cast 1
    
  • removed the color changes to the minimap.

  • rebound the camera zoom to Alt + mousewheels

  • added some hotkeys for video makers

I believe this to be the final layout for quite some time (until Valve changes things again):

My personal triple keyboard layout

No Modifier:
image

Space Pressed:
image

Alt Pressed:
image

Camera Double-Tap

Double-Tap is a quick way to move to camera between a specific point on the map and your hero or to simply jump to your control groups or courier.

Nomod Double-Tap:
image

Space Double-Tap:
image

Alt Pressed:
image

Shop

The shop hotkeys have not proved to be particularily useful since 7.00, so I removed them in favor of the search upon open shop option.
Use shift to que a single item in the quick buy and use ctrl + shift to que multiple items in the quick buy.

No Modifier:
image

Ctrl Pressed:
image

@Karrandalf
Copy link

Karrandalf commented May 27, 2017

I somehow broke the camera positions but have now fixed them.
I decided to add the radiant and dire fountain camera positions back while I was at it.
So here is v1.0.2.
Hopefully v1.0.3 is very far away.

image

@Karrandalf
Copy link

Because I forgot to update the double-tap visual images in v1.0.2, here is v1.0.4. I looked over the supporting documentation hard. Therefore unless I find some bug in game v1.0.5 should not happen (fingers crossed).

@lupuleasa-core
Copy link
Owner

Good job @Karrandalf

@FlorianWendelborn
Copy link
Contributor Author

FlorianWendelborn commented Oct 15, 2017

I think we're done here. Was a fun time. Good luck with your future projects. 👋

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests