哪位大哥能介绍一个修改dota里面英雄快捷键的软件 并且在详细的说明怎么修改快捷键 感激不尽!!!

如题所述

Nodd.psi(autohotkey)首发于replays.net
#本文部分参考了一个很老的脚本中的极个别片段(我找不到那个外国作者的名字了...),如有冒犯请指出
使用autohotkey可使大家打dota的操作更简便,autohotkey比warkey之类的优点是,可以自己编写脚本,得到适合自己的快捷键解决方案.
我写这篇文章是为什么?
给那些"还在为快捷键郁闷的"并且"愿意动脑筋研究的"人一个自己的解决方案
并不是因为我工程材料考了61
我希望大家自己改成自己喜欢的习惯的然后给自己用 我不愿意写一个我喜欢的然后编译成exe还换个图标挂个名再贴上来 没意思
还有我不会提供类似狗头跳刀忽悠宏的影响平衡性的脚本
请注意比赛是允许自定义快捷键的 本文内容并不受到道德层面的约束
我会比较简要的介绍下ahk简单脚本的编写使用方法 以使大家能看懂并编写可以为dota服务的脚本

我有心理准备 本帖子可能看的人关心的人不多 但是既然我研究过 还是愿意把成果给大家分享下 也许还是有些朋友需要的

还有RN论坛的BBcode中加code不好使 我这里都用quote代替了 其实差不多 希望管理员重视此错误并修复之

那下面正式开始

目录:
#0 autohotkey最简单的使用方法
#1 win键杀手
#2 滚轮控制录像回放速度
#3 物品快捷键映射
#4 显血条
#5 一键-di
#6 更高级的考虑到聊天的开关
#7 示例脚本(有详细注释)

#0 autohotkey最简单的使用方法
首先发一个标准的ahk脚本例子;将A键映射为B
a::
Send {b}
return非常简单,我来解释下含义
以分号开头的是注释,在ahk脚本中,分号后面之本行结束的内容是注释,编译器忽略这一段
a::表示将a作为快捷键,从a::开始至return结束,这部分就是此快捷键的功能
恩这个脚本中a快捷键的功能就是发送b
也就是运行了此脚本后,按键盘上的a系统就接收到b了,当然按b系统也接收到b

对了咋运行脚本啊?
首先下载并安装软件:autohotkey
http://www.autohotkey.com/download/
然后用文本编辑器(实在不行就记事本),输入脚本内容,保存为XXX.ahk
双击,完毕.
autohotkey还自带编译器,可以把ahk后缀的脚本编译成exe后缀的可执行文件
很简单,右键点你的ahk脚本,compile script,于是出现了绿地白字H图标的同名可执行文件
这个可执行文件可以在不带autohotkey软件的计算机上运行
最常用的就是你把这个编译好的可执行文件放到网盘上,去网吧给下载了直接运行就能用,不然每次去网吧还要下autohotkey这软件就太麻烦了

还有Suspend的使用:
Suspend是你的脚本中所有快捷键的总开关 有on和off两个状态
在Suspend Off(默认)情况下 右下角托盘图标显示为H 这时所有快捷键有效
在Suspend On情况下 右下角托盘图标显示为S 这时大多数快捷键无效 除了有Suspend Permit声明的
有Suspend Permit声明的快捷键无论何时都有效
你可以用Suspend on/off/toggle(toggle就是反转)语句改变suspend标志的状态
如果听起来小抽象,那就举个例子吧
a::
Send {b}
return
c::
suspend permit
Send {d}
return
F1::
suspend permit
suspend toggle
return
这段脚本中 F1就是suspend的开关了
a在suspend off状态下可以映射为B
c在任何状态下可以映射为D
注意F1,就是控制suspend的按键也一定要加suspend permit
不然Suspend On了你就没法再Off了(开关键也被suspend了)

组合键怎么表示?介绍些简单的
你想用Ctrl+A 那就打^A
你想用Alt+A 那就打!A
你想用Shift+A 那就打+A
你想用Win+A 那就打#A
举例:
Alt+F4 表示为!F4
Ctrl+alt+delete 表示为^!DELETE

其实后面实现的诸多功能仅仅是整点花样

#1 win键杀手
;Winkeykiller
Lwin::
return第一行还是注释
Lwin:: 这是左侧的win键作为一个快捷键
这个快捷键做什么呢?直接return了,什么也不做
这个快捷键脚本使得按下Lwin没反应

而win键杀手是什么时候(Suspend on/off)我都不想关的,为了使这个快捷键对suspend免疫,可以改成这样:
;Winkeykiller
Lwin::
suspend permit
return
恩,加了suspend permit以后该快捷键就无视suspend了

#2 滚轮控制录像回放速度
脚本如下:WheelUp::
Send {=}
return

WheelDown::
Send {-}
returnWheelUp和WheelDown是鼠标滚轮向上和向下的含义,我们分别将它们映射到=与- 这两个键是war3默认的控制回放速度的按键
比方说你打开这个脚本,随便开个文本编辑器,滚下滚轮,会看到类似====------=====-----=====----(这是我刚才自己滚的)
看录像时用滚轮,war3会接收到=和-,于是录像速度就改变了

#3 物品快捷键映射
不知道大家喜欢用什么键映射物品 从我观察来看一般来说映射3或者q的比较多
很简单
3::
Send {Numpad7}
return
4::
Send {Numpad8}
return这是用3和4映射前两个物品
如果你愿意用q 那就q::
Send {Numpad7}
return总之自己按自己习惯改

注意这里我没加SuspendPermit的 这是因为有时候这快捷键也影响聊天
看到那种要撤退的时候喊7的队友 你就知道他用了什么样的快捷键了
所以这个快捷键还需要开关控制 还需要加一段告诉系统你的开关用什么键控制
我用的是
Home::
Suspend Permit
Suspend Off
return

End::
Suspend Permit
Suspend On
return这里使用了Home键打开 End关闭
如果你就喜欢用一个键 那也容易Home::
Suspend Permit
Suspend toggle
return不愿意用HomeEnd你自己去改吧

#4 显血条+F2::
Suspend permit
if (HealthBarOff == Ture)
{
Send, {[ Down}
Send, {] Down}
HealthBarOff := False
}
else
{
Send, {[ Up}
Send, {] Up}
HealthBarOff := Ture
}
return
此脚本,按下Shift+F2就可以显血条(敌我都显示)了,而且无视suspend
你可能会想到用别的键,Shift+F2太复杂,你可以看autohotkey的帮助,里面详细写了怎样表示各组合键
我推荐你用这些之一替代+F2::
Lwin::
左win键,有了这个,win键杀手那段都可以不要了,我用的就是这个,可惜有的电脑没win键- -
ScrollLock::
电脑上面有个ScrollLock键,找找吧,用它当显血开关也不错

你完全可以定义两个键同时作为显血条,以免发生某些键盘上找不到键这种尴尬的事:Lwin::
Suspend permit
if (HealthBarOff == Ture)
{
Send, {[ Down}
Send, {] Down}
HealthBarOff := False
}
else
{
Send, {[ Up}
Send, {] Up}
HealthBarOff := Ture
}
return

+F2::
Suspend permit
if (HealthBarOff == Ture)
{
Send, {[ Down}
Send, {] Down}
HealthBarOff := False
}
else
{
Send, {[ Up}
Send, {] Up}
HealthBarOff := Ture
}
return这里认为一般的电脑都可以用win键,万一遇到IBM的笔记本打dota,就用Shift+F2

#5 一键-di
懒人就是懒人 像我连-di都懒的打
^.::
Suspend permit
temp = %clipboard%
clipboard = -di
Send {Enter}
Sleep 10
Send ^v
Sleep 10
Send {Enter}
clipboard = %temp%
return
以后按Ctrl+.就可以在游戏中一键-di了
你还想-ap也省了?自己加啊
#改成了-allpick之类显得好玩点 别人看我-allpick而不是-ap 似乎我还是很勤快的人嘛 其实用的快捷键
还是那句话 自己改成喜欢的习惯的 我不愿意写一个我喜欢的然后编译成exe还换个图标挂个名再贴上来 没意思
其实也可以这么写:
^.::
Suspend permit
Send {Enter}
Sendraw -di
Send {Enter}
clipboard = %temp%
return
为什么不这样写呢 因为输入法捣乱 老是 -地 还不回车 多闹心呢 试过你就知道了
结果就改成了我现在的变通方法 缺点就是有时候cpu占用过高的时候会出现奇异情况 打出来的不是-di而是C:\DOCUME~1\...之类
不过不特别影响使用 记得在游戏15秒左右的时候不要打就行了

#6 更高级的考虑到聊天的开关
stopped = 0
Suspend On

$Enter::
Suspend toggle
Send {Enter}
return

$+Enter::
Suspend toggle
Send {Shift down}{Enter}{Shift up}
return

$^Enter::
Suspend toggle
Send {Ctrl down}{Enter}{Ctrl up}
return

$Esc::
Suspend Permit
If (A_IsSuspended = 1)
{
Suspend Off
Send {Esc}
}
else
{
Send {Esc}
}
return

+F1::
Suspend Permit
if (stopped = 1)
{
Suspend Off
Hotkey $Enter, On
Hotkey $+Enter, On
Hotkey $^Enter, On
Hotkey $Esc, On
stopped = 0
}
else
{
Suspend On
Hotkey $Enter, Off
Hotkey $+Enter, Off
Hotkey $^Enter, Off
Hotkey $Esc, Off
stopped = 1
}
return

End::
Suspend Permit
Suspend On
Hotkey $Enter, Off
Hotkey $+Enter, Off
Hotkey $^Enter, Off
Hotkey $Esc, Off
stopped = 1
return

Home::
Suspend Permit
Suspend Off
Hotkey $Enter, On
Hotkey $+Enter, On
Hotkey $^Enter, On
Hotkey $Esc, On
stopped = 0
return

这段脚本比较复杂,我不想慢慢解释每段什么意思了
还好这段没什么可改的
这段的功能:相当于有两级开关 都打开快捷键才有效(主要是物品快捷键)
一级开关:Home(使一级开关打开) End(使一级开关关闭) Shift+F1(使一级开关反转)
二级开关:回车(保留回车作用的同时使开关反转) Esc(保留Esc作用的同时使快捷键有效)
你可以把一级开关改成自己喜欢的 二级开关没啥可改的

平常这样使用:
像羊刀之类要用的还没出的时候 大可不必开一级开关 直接按End 物品快捷键全部失效 也不需要考虑任何聊天问题
出了羊刀之类 按Home或者Shift+F1打开一级开关 二级开关也自动初始打开
聊天的时候按回车会自动关闭二级开关 聊完了按回车发送又会打开 要是聊一半按ESC取消掉了也会打开2级开关

很完美?其实有两个小毛病
一个是如果你在聊天中用输入法并用回车键选词 那么二级开关就打开了 实际上你这时候还没聊完 就会影响后续聊天或者后续游戏 因为二级开关和你预想的相反了
另一个是如果你在开局聊天的时候主机-ah-mode2了 这时候聊天框不是会消失么... 那么后面二级开关和你预想的就反了
我没想到完美的解决办法 不过当你发现异常的时候 在游戏(不聊天)的状态下按Esc或Home一次(或者不解气玩命按很多次也行) 就会恢复正常

#7 示例脚本

; autohotkey script for Dota
; by Nodd.psi 2008-3-5

;初始化 初始物品快捷键关闭
stopped = 0
Suspend On

;考虑到聊天问题的开关

$Enter::
Suspend toggle
Send {Enter}
return

$+Enter::
Suspend toggle
Send {Shift down}{Enter}{Shift up}
return

$^Enter::
Suspend toggle
Send {Ctrl down}{Enter}{Ctrl up}
return

$Esc::
Suspend Permit
If (A_IsSuspended = 1)
{
Suspend Off
Send {Esc}
}
else
{
Send {Esc}
}
return

+F1::
Suspend Permit
if (stopped = 1)
{
Suspend Off
Hotkey $Enter, On
Hotkey $+Enter, On
Hotkey $^Enter, On
Hotkey $Esc, On
stopped = 0
}
else
{
Suspend On
Hotkey $Enter, Off
Hotkey $+Enter, Off
Hotkey $^Enter, Off
Hotkey $Esc, Off
stopped = 1
}
return

End::
Suspend Permit
Suspend On
Hotkey $Enter, Off
Hotkey $+Enter, Off
Hotkey $^Enter, Off
Hotkey $Esc, Off
stopped = 1
return

Home::
Suspend Permit
Suspend Off
Hotkey $Enter, On
Hotkey $+Enter, On
Hotkey $^Enter, On
Hotkey $Esc, On
stopped = 0
return

;显血条部分 左win键和Shift+F2控制血条开关 同时也含有win键杀手作用了
Lwin::
Suspend permit
if (HealthBarOff == Ture)
{
Send, {[ Down}
Send, {] Down}
HealthBarOff := False
}
else
{
Send, {[ Up}
Send, {] Up}
HealthBarOff := Ture
}
return

+F2::
Suspend permit
if (HealthBarOff == Ture)
{
Send, {[ Down}
Send, {] Down}
HealthBarOff := False
}
else
{
Send, {[ Up}
Send, {] Up}
HealthBarOff := Ture
}
return

;物品快捷键映射 用3和4映射前两个物品(可以用开关使此快捷键禁用)
3::
Send {Numpad7}
return
4::
Send {Numpad8}
return

;用了Ctrl+, Ctrl+. Ctrl+/ Ctrl+; Ctrl+' 分别使得你可以一键输入-ap -di -afk -ms -ma
^,::
Suspend permit
temp = %clipboard%
clipboard = -allpick
Send {Enter}
Sleep 10
Send ^v
Sleep 10
Send {Enter}
clipboard = %temp%
return

^.::
Suspend permit
temp = %clipboard%
clipboard = -di
Send {Enter}
Sleep 10
Send ^v
Sleep 10
Send {Enter}
clipboard = %temp%
return

^/::
Suspend permit
temp = %clipboard%
clipboard = -afk
Send {Enter}
Sleep 10
Send ^v
Sleep 10
Send {Enter}
clipboard = %temp%
return

^;::
Suspend permit
temp = %clipboard%
clipboard = -movespeed
Send {Enter}
Sleep 10
Send ^v
Sleep 10
Send {Enter}
clipboard = %temp%
return

^'::
Suspend permit
temp = %clipboard%
clipboard = -matchup
Send {Enter}
Sleep 10
Send ^v
Sleep 10
Send {Enter}
clipboard = %temp%
return

;滚轮控制录像回放速度(可以用开关使此快捷键禁用)
WheelUp::
Send {=}
return

WheelDown::
Send {-}
return

尽管没啥信心,但还是希望能对大家有用吧...
还有疑难问题或者其他功能需求可以直接问我
如果我技术上能帮你 并且这功能符合我的游戏道德标准 我会尽量帮你
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-03
移花接木
载了你就看懂了。
不然去载个U9魔兽超级助手
那个更简单本回答被提问者采纳
第2个回答  2008-12-03
http://www.skycn.com/soft/40926.html
上面有下载和使用说明

哪位大哥能介绍一个修改dota里面英雄快捷键的软件 并且在详细的说明怎...
Lwin:: 这是左侧的win键作为一个快捷键这个快捷键做什么呢?直接return了,什么也不做这个快捷键脚本使得按下Lwin没反应而win键杀手是什么时候(Suspend on\/off)我都不想关的,为了使这个快捷键对suspend免疫,可以改成这样:;WinkeykillerLwin:: suspend permit return恩,加了suspend permit以后该快捷键就无视suspend...

怎么修改DOTA英雄技能快捷键
第一步: 打开软件界面会看到左上角的file菜单鼠标左键点击一下出现如下图 第二步: 打开菜单“自定义英雄和英雄包裹的快捷键”会出现如下图,数字7、数字8等就是代表了游戏中兄包裹的默认按键,后面的数值就表示的是键盘代码,默认的103就代表小键盘数字7,104就代表小键盘数字8,所以大家如果想要修...

dota修改快捷键设置_dota怎么修改快捷键
1. dota怎么修改快捷键 建议改出一个Q键,一是因为DOTA里没有Q键技能和快捷键,二是Q很非常好使用,与技能键盘区非常近,使用像跳刀这类要快速操作的物品效果非常好.对于对操作要求不是非常高的玩家来说,改一个S键也是非常好用,S是停止的快捷键,一般高手玩家在操作高攻击延迟的英雄时会使用S键...

dota改键快捷键_dota修改快捷键
1:s键,s是终止,这在卡兵和补刀,尤其是远程英雄和施法前摇较长的英雄身上,可以发挥出较好的优势。2:shift键,它的指令是完成一个操作后立即进入下一个指令,比如沙王跳大的时候,先开大,要施法时间,你跳的早的话又会打断,晚的话伤害又有浪费,这时你可以先按c,然后shift+跳刀的快捷键(你...

dota 英雄技能快捷键怎么修改
修改是可以用地图编辑器随意修改自己喜欢的键位 不过要提醒你一下 修改后的地图就不是原版了 如果要去网上跟其他玩家打对战建议不要用修改后的图

dota里怎么修改快捷键
箭头前的方框填英雄技能快捷键 箭头指向的方框 填你要改到的那个键 平台的话都有改建 和改建精灵差不多 还有特定的改建 比如说 技能一 湖面有个方框 填写快捷键后 点击开始 以后每个英雄的第一技能(主动的)都能用那个键 释放 要修改的话 点击结束 在修改 在开始 就能使用了 ...

求Dota中的快捷键大全!
1 、 2 、六个键,也可以通过插件修改成自己方便使用的键位。再就是操作时常用的如shift键,小队编号,英雄选择等键位。用F1键可以快速的找到自己的英雄(如果用狗头可以用F2、F3、F4快速选择分身)如果是召唤系、分身系英雄或者使用支配头、死灵书等可召唤单位物品时,可以用CTRL+数字键给召唤单位编号...

dota快捷键重复了怎么修改
那就改别的吧,一般数字键从3开始就不常用了,你可以改 3 4 因为好按, 然后是 是~键和Tab键,这就四个了,Q键也可以设置,根据个人了,因为Q键只有一个技能,就是大魔导的大招。如果你在11平台玩,开可以设置鼠标滚轴键做快捷键,一般主动释放的物品比较好,比如梅肯、笛子、黑皇、罗萨等。

魔兽Dota中的快捷键是否可以修改,怎么修改?
WarcraftKey就可以修改成任意键,还可以修改小键盘。能自动显示血条很好用

冰封王座快捷键修改_冰封王座快捷键修改版
冰封王座怎么修改快捷键 有点击Tab 和Shift 同时点击。然后右下角就会重新一个改字。然后点击改。然后然后然后然后。你自己改就行了。冰封王座3快捷键大全 在局域网的对战中,想暂停游戏先按F10,会弹出一个菜单,第一个就是暂停游戏(快捷键M),点它就哦了,想继续游戏就再点一下在单人游戏中直接按F10...

相似回答