HotKeys for Dota LoD / Dota (last update 10.11.2018, v 0.2)
Keys works with Warcraft III 1.30+ patches. It's simply map one keys to others.
What does keys have
- Works with Warcraft III 1.30+ patches
- Turning On / Off
- All 6 inventory keys mapping (other keys, mouse Whell Up / Down)
- Skills mapping (up to 6 skills)
- Voice info about "Start recording" process and "On / Off"
- Prints mapping after recording
- "F1" on Mouse Wheel click
- Save inventory settings automatically (previously set keys loads on start)
- Don't switch letters while writing in the game
How does it works?
- Mouse Wheel Click: F1
- NumPad 6: On / Off
- NumPad 9: Start recording keys
- Enter: On /Off (I suggest not to use it manually, since it's for chat writing so it turns On / Off keys when you end / start writing)
- Skill 1: Z
- Skill 2: X
- Skill 3: C
- Skill 4 (ult): V
- Skill 5: D
- Skill 6 (ult2): F
How to record keys
When you press NumPad 9 record process is starting. You need to click 6 correspoding buttons (it's your set up) that later on will be mapped to ZXCVDF. After all buttons are recorded you will be noticed by In Game message with current mapping set up. Example
1. Click NumPad 6 to turn Off warkeys
2. Click NumPad 9 (start recording)
3. Click one by one: FBEWDG
4. Right now you will get message Mapping: FBEWDG -> ZXCVDF
5. Click NumPad 6 to turn On warkeys
6. Now you can use your skills. Every time you click Z it will use skill under F, click X to use skill under B and so on.
How to use inventory
1. Turn on warkeys by using NumPad 6.
Yea, that's simple
Issues you may occur
1. Warkesy works only when they are turn On. NumPad 6 turns it on / off. NumPad 9 automatically turns warkeys Off. If you start writing in the game, and close to input message not by clicking Enter you need to do this again (since clicking enter ones turns warkeys Off and when you send message you click enter and it turns it back On) or turn warkeys On by NumPad 6.
2. Sometime it crashes (didn't crashed for me for couple of days) - you need to start it again o_O
3. It's annying if you don't play War3 and they are still turned On (you can turn On / Off anywhere, not in game only)
4. Couple of antyviruses may treat it as a virus, probably because warkeys hooks the buttons you click (keylogger like issue). I can send whole code in private message if someone want to use it, but is afraid of what is under the hood of this application (code looks bad, but I don't care right now ).
5. While recording you always to record 6 buttons. For instance, I have only wrath and blink. They are always on second and forth skill slot. In that case I usually map my keys like this: KBKWKK). I type K for every empty skill slot (first, third, fifth and sixt) since I only have 2 skills. If I have more skills and they change order, I always remap keys so they suit ZXCVDF in good order (how they displays in the game)
6. Virus Total: https://www.virustotal.com/#/file/60cbe ... /detection
Changelog
v. 0.2
- https://www.virustotal.com/#/file/c2529 ... /detection
- Changed message from in game text to left top corner tooltip
HotKeys for Dota LoD / Dota Linux Version (last update 10.12.2018)
Here are some scripts for linux users. Guess if someone using linux to play War3 he will understand what is going on and how to use it. If not, just ping me PM and I will add some explaintion. Both "*.sh" file are required and they needs to be placed next to each other. It's annoying to write, but basically it's better than have your skills spread all over the keyboard
Main file to be run:
Code: Select all
close() {
source normal.sh
echo "Revert original mapping"
exit
}
reset() {
source normal.sh
echo "Revert orignal mapping"
}
mapKeys(){
declare tmp=$1
xmodmap -e "keycode 65 = KP_7"
xmodmap -e "keycode 39 = KP_8"
xmodmap -e "keycode 40 = ${tmp:6:1}"
xmodmap -e "keycode 41 = ${tmp:7:1}"
xmodmap -e "keycode 52 = ${tmp:2:1}"
xmodmap -e "keycode 53 = ${tmp:3:1}"
xmodmap -e "keycode 54 = ${tmp:4:1}"
xmodmap -e "keycode 55 = ${tmp:5:1}"
}
declare prevCmd=""
while true
do
read -r cmd
if [ "$cmd" = "\\" ] ;then
close
fi
if [ "$cmd" = "n" ] ; then
source normal.sh
fi
if [ "$cmd" = "]" ] ; then
reset
fi
if [ "${cmd:0:1}" = "r" ] ;then
prevCmd=$cmd
mapKeys "$cmd"
#xmodmap -e "keycode 65 = KP_7"
#xmodmap -e "keycode 39 = KP_8"
#xmodmap -e "keycode 40 = ${cmd:6:1}"
#xmodmap -e "keycode 41 = ${cmd:7:1}"
#xmodmap -e "keycode 52 = ${cmd:2:1}"
#xmodmap -e "keycode 53 = ${cmd:3:1}"
#xmodmap -e "keycode 54 = ${cmd:4:1}"
#xmodmap -e "keycode 55 = ${cmd:5:1}"
fi
if [ "${cmd:0:1}" = "p" ] ;then
mapKeys "$prevCmd"
fi
done
Helper file. Needs to be named "normal.sh". Change the name in the main script if you want to.
Code: Select all
close() {
source normal.sh
echo "Revert original mapping"
exit
}
reset() {
source normal.sh
echo "Revert orignal mapping"
}
mapKeys(){
declare tmp=$1
xmodmap -e "keycode 65 = KP_7"
xmodmap -e "keycode 39 = KP_8"
xmodmap -e "keycode 40 = ${tmp:6:1}"
xmodmap -e "keycode 41 = ${tmp:7:1}"
xmodmap -e "keycode 52 = ${tmp:2:1}"
xmodmap -e "keycode 53 = ${tmp:3:1}"
xmodmap -e "keycode 54 = ${tmp:4:1}"
xmodmap -e "keycode 55 = ${tmp:5:1}"
}
declare prevCmd=""
while true
do
read -r cmd
if [ "$cmd" = "\\" ] ;then
close
fi
if [ "$cmd" = "n" ] ; then
source normal.sh
fi
if [ "$cmd" = "]" ] ; then
reset
fi
if [ "${cmd:0:1}" = "r" ] ;then
prevCmd=$cmd
mapKeys "$cmd"
#xmodmap -e "keycode 65 = KP_7"
#xmodmap -e "keycode 39 = KP_8"
#xmodmap -e "keycode 40 = ${cmd:6:1}"
#xmodmap -e "keycode 41 = ${cmd:7:1}"
#xmodmap -e "keycode 52 = ${cmd:2:1}"
#xmodmap -e "keycode 53 = ${cmd:3:1}"
#xmodmap -e "keycode 54 = ${cmd:4:1}"
#xmodmap -e "keycode 55 = ${cmd:5:1}"
fi
if [ "${cmd:0:1}" = "p" ] ;then
mapKeys "$prevCmd"
fi
done
For the moderators, if the topic have community feedback maybe it will be good to make it sticky?
Cheers!!!