;***********************************************************************************;
;******************************** 脚本概述 ************************************;
;***********************************************************************************;
;** 第〇,请不要利用本脚本的技术和方法进行非法外挂开发,否则后果自负!!! **;
;** **;
;** 第一,本脚本功能不存在非法外挂特性,仅仅是为了玩家更好的体验游戏,并且仅 **;
;** 仅重新动态映射了游戏的三个功能键(f,g,h),并且完全开源。如果腾讯无端官方认定本 **;
;** 脚本为外挂,请论坛版主们手下留情。我会立即删除这个帖子。 **;
;** **;
;** 第二,本脚本由腾讯生死狙击二区丿fly灬帝尊战队的高手高高手願願原创并分享, **;
;** 并保留软件所有权权利。本脚本测试环境为微软win8.1(64位)系统的firefox火狐网页 **;
;** 下的NPFLASH(64位)腾讯生死狙击flash游戏。其他系统如xp,vista,win10等等系统 **;
;** 以及微端和IE等等环境,未经测试。 **;
;** **;
;** 第三,希望无端腾讯官方尽早开发游戏键盘按键设置功能,终结本脚本的使命。 **;
;** **;
;** 第四,本脚本完全免费,完全开源,请自行辨别脚本的适用性。本脚本需要安装 **;
;** AutoHotkey Version 1.1.28.02及以上的版本。为避免windows系统的用户帐户控制UAC **;
;** 的限制,最好以administrator身份运行本脚本。运行方法:右键点击脚本,选择选项卡 **;
;** Run Script。如果未出现Run Script选项,再次右键 点击脚本,重复操作。退出方法: **;
;** 点击任务栏,出现“H”字样图标,右键点击,选择 Exit。退出后,系统恢复原始状态,**;
;** 本脚本的功能完全失效。本脚本为纯绿色软件等级,本脚本基本不消耗系统资源,极其 **;
;** 轻质。 **;
;** **;
;** 第五,本脚本使用的语言是AutoHotkey Version 1.1.28.02软件的语言。如发现本 **;
;** 脚本有bug,请在论坛回复我,也可在游戏中告诉我,如有时间我会回复。 **;
;** **;
;** 第六,本脚本在概念上划分了三个键盘布局:一是竞技键盘布局,二是正常键盘布 **;
;** 局,三是windows原始键盘布局。 **;
;** **;
;** 第七,windows原始键盘布局,不解释,就是字面上的意思。而正常键盘布局,仅仅 **;
;** 监听了ScrollLock键和Enter键的状态,其他特性与原始键盘布局完全一致;而竞技键盘 **;
;** 布局相比于正常键盘布局有三个变化:一是把f键变成q键,二是把g键也变成q键,三是 **;
;** 把h键变成原来的g键。 **;
;** **;
;** 第八,在全屏游戏下,ScrollLock键灯亮时,按回车,可在两种键盘布局间切换。 **;
;** 这样既保证了生死狙击竞技模式下,可以正常聊天打字,又保证了换枪和扔枪按键的需 **;
;** 要。 **;
;** **;
;** 第九,在脚本运行时,按ScrollLock键使其灯灭,再反复按回车键2次,则无条件 **;
;** 恢复成正常键盘布局。这样做保证了,在生死狙击冒险模式时,可以迅速恢复成正常键 **;
;** 盘,因为冒险模式打僵尸时,很少需要右换枪换枪,并且f和g键是加血或者加子弹的功 **;
;** 能,不需要再次将f键和g键重新映射,正常键盘就可以了。 **;
;** **;
;***********************************************************************************;
;******************************** 完 *************************************;
;***********************************************************************************;
;//////////////////////////////////////代码开始///////////////////////////////////;
;第一,#InstallKeybdHook,用来调试,查看按键消息需要;
;第二,一般需要用键盘钩子有四种情况(帮助文档中有);
;第三,本脚本功能不需要键盘钩子,所以这里注释掉了,可节约系统资源。
;;;;#InstallKeybdHook ;
;/////////////////////////////////////////////////////////////////////////;
;第一,Hotkey, IfWinActive语句可以限定脚本生效窗口;
;第二,本语句限定该脚本生效的游戏窗口为flash窗口;
;第三,可以用autohotkey自带spy查看游戏窗口的ahk_class名称;
;第四,Hotkey, IfWinActive语句使用一次就可以了,详见帮助文档。
Hotkey, IfWinActive, ahk_class ShockwaveFlashFullScreen ;
;/////////////////////////////////////////////////////////////////////////;
;第一,刚开始是正常键盘布局,无热键生效。
HotKey,f,switchKeyBoard,off ;
HotKey,g,switchKeyBoard,off ;
HotKey,h,switchKeyBoard2,off ;
;/////////////////////////////////////////////////////////////////////////;
;第一,本脚本,脚本明文只有一个线程和一个进程,若有其他线程则是由系统自己管理的;
;第二,本脚本,线程不会主动退出,也没有提供退出的热键;
;第三,想要退出,请直接在任务栏关闭本脚本;
;第四,一旦脚本出现问题,先熄灭ScrollLock,然后反复按回
; 车键2次,便可以恢复到正常键盘布局。
while true ;死循环
;/////////////////////////////////////////////////////////////////////////;
{
;/////////////////////////////////////////////////////////////////////////;
while not GetKeyState("ScrollLock" ,"T") ;ScrollLock灯灭,则恢复成正常键盘布局
{
BlockInput, On ;避免再次按下ScrollLock键,保证脚本运行稳定
HotKey,f,,Off ;
HotKey,g,,Off ;
HotKey,h,,Off ;
BlockInput, Off ;恢复键盘和鼠标响应
KeyWait,ScrollLock,D ;无限时间等待ScrollLock键按下
KeyWait,ScrollLock ;无限时间等待ScrollLock键放开
}
;/////////////////////////////////////////////////////////////////////////;
;第一,logicFlag这个布尔类型变量是用来使能切换热键状态的;
;第二,OnlyOneTimeFlag这个布尔类型变量用来在循环块中设置只执行一次的语句块;
;第三,光标坐标设置为相对于整个屏幕。
CoordMode,Caret,Screen ;
logicFlag:=true ;
OnlyOneTimeFlag:=true ;
;/////////////////////////////////////////////////////////////////////////;
;第一,ScrollLock灯亮并且游戏进入全屏模式后,进入回车键切换布局状态;
;第二,ScrollLock灯灭或者游戏退出全屏模式后,退出回车键切换布局状态。
while GetKeyState("ScrollLock" ,"T") and WinActive("ahk_class ShockwaveFlashFullScreen") ;
;/////////////////////////////////////////////////////////////////////////;
{
;/////////////////////////////////////////////////////////////////////////;
;为了不影响回车键切换键盘布局,所以只执行一次,并设置键盘布局为竞技键盘布局。
if OnlyOneTimeFlag ;
{
HotKey,f,,On ;
HotKey,g,,On ;
HotKey,h,,On ;
OnlyOneTimeFlag:=false ;
}
;/////////////////////////////////////////////////////////////////////////;
;第一,此处if-else语句用来在竞技键盘布局和正常键盘布局两个键盘布局间交替切换;
;第二,理想的语句应该是HotKey Toggle语句,但不会用,只能这样;
;第三,一旦出现意外情况,比如游戏退出全屏或者游戏正常结束退出全屏,只
; 需要反复按回车,就能回到正常状态;
;第四,等待回车键敲击,用GetKeyState语句效果不好,只能用KeyWait语句;
;第五,这里必须是按下和松开这两条语句。如果只写一条,回车键切换布局功能将不稳定;
;第六,这里用KeyWait语句有诸多考虑,比如:关于输入法及其窗口生命期过程等等。
if logicFlag ;如果logicFlag变量为真,则进入正常键盘布局
{
KeyWait,Enter,D ;无限时间等待Enter键按下
HotKey,f,,off ;
HotKey,g,,off ;
HotKey,h,,off ;
logicFlag:=false ;下次循环执行else语句块
KeyWait,Enter ;无限时间等待Enter键放开
}
else ;如果logicFlag变量为假,则执行
{
KeyWait,Enter,D ;无限时间等待Enter键按下
KeyWait,Enter ;无限时间等待Enter键放开
BlockInput, On ;避免再次按下Enter键,保证脚本运行稳定
sleep,16 ;等待输入窗口被销毁
if A_CaretY = ;判断输入窗口是否已经完全销毁
{
HotKey,f,,on ;
HotKey,g,,on ;
HotKey,h,,on ;
logicFlag:=true ;下次循环执行if语句块
}
BlockInput, Off ;
}
;/////////////////////////////////////////////////////////////////////////;
}
;/////////////////////////////////////////////////////////////////////////;
;退出循环,也就是ScrollLock键灯灭后,立即恢复成正常键盘布局。
HotKey,f,,off ;
HotKey,g,,off ;
HotKey,h,,off ;
;/////////////////////////////////////////////////////////////////////////;
sleep,663 ;为了减少对cpu时间的占用,这里规定脚本代码睡眠663毫秒
;/////////////////////////////////////////////////////////////////////////;
}
;/////////////////////////////////////////////////////////////////////////;
;第一,这里的代码是从按键历史消息中复制过来的,当时是使用静态映射f::q。
;第二,标签label名称可以随便取名,这里用了如下两个名字。
switchKeyBoard: ;
Send,{Blind}{q DownR} ;
SetKeyDelay,-1 ;
Send,{Blind}{q Up} ;
return ;
switchKeyBoard2: ;
Send,{Blind}{g DownR} ;
SetKeyDelay,-1 ;
Send,{Blind}{g Up} ;
return ;
;******************************** 脚本概述 ************************************;
;***********************************************************************************;
;** 第〇,请不要利用本脚本的技术和方法进行非法外挂开发,否则后果自负!!! **;
;** **;
;** 第一,本脚本功能不存在非法外挂特性,仅仅是为了玩家更好的体验游戏,并且仅 **;
;** 仅重新动态映射了游戏的三个功能键(f,g,h),并且完全开源。如果腾讯无端官方认定本 **;
;** 脚本为外挂,请论坛版主们手下留情。我会立即删除这个帖子。 **;
;** **;
;** 第二,本脚本由腾讯生死狙击二区丿fly灬帝尊战队的高手高高手願願原创并分享, **;
;** 并保留软件所有权权利。本脚本测试环境为微软win8.1(64位)系统的firefox火狐网页 **;
;** 下的NPFLASH(64位)腾讯生死狙击flash游戏。其他系统如xp,vista,win10等等系统 **;
;** 以及微端和IE等等环境,未经测试。 **;
;** **;
;** 第三,希望无端腾讯官方尽早开发游戏键盘按键设置功能,终结本脚本的使命。 **;
;** **;
;** 第四,本脚本完全免费,完全开源,请自行辨别脚本的适用性。本脚本需要安装 **;
;** AutoHotkey Version 1.1.28.02及以上的版本。为避免windows系统的用户帐户控制UAC **;
;** 的限制,最好以administrator身份运行本脚本。运行方法:右键点击脚本,选择选项卡 **;
;** Run Script。如果未出现Run Script选项,再次右键 点击脚本,重复操作。退出方法: **;
;** 点击任务栏,出现“H”字样图标,右键点击,选择 Exit。退出后,系统恢复原始状态,**;
;** 本脚本的功能完全失效。本脚本为纯绿色软件等级,本脚本基本不消耗系统资源,极其 **;
;** 轻质。 **;
;** **;
;** 第五,本脚本使用的语言是AutoHotkey Version 1.1.28.02软件的语言。如发现本 **;
;** 脚本有bug,请在论坛回复我,也可在游戏中告诉我,如有时间我会回复。 **;
;** **;
;** 第六,本脚本在概念上划分了三个键盘布局:一是竞技键盘布局,二是正常键盘布 **;
;** 局,三是windows原始键盘布局。 **;
;** **;
;** 第七,windows原始键盘布局,不解释,就是字面上的意思。而正常键盘布局,仅仅 **;
;** 监听了ScrollLock键和Enter键的状态,其他特性与原始键盘布局完全一致;而竞技键盘 **;
;** 布局相比于正常键盘布局有三个变化:一是把f键变成q键,二是把g键也变成q键,三是 **;
;** 把h键变成原来的g键。 **;
;** **;
;** 第八,在全屏游戏下,ScrollLock键灯亮时,按回车,可在两种键盘布局间切换。 **;
;** 这样既保证了生死狙击竞技模式下,可以正常聊天打字,又保证了换枪和扔枪按键的需 **;
;** 要。 **;
;** **;
;** 第九,在脚本运行时,按ScrollLock键使其灯灭,再反复按回车键2次,则无条件 **;
;** 恢复成正常键盘布局。这样做保证了,在生死狙击冒险模式时,可以迅速恢复成正常键 **;
;** 盘,因为冒险模式打僵尸时,很少需要右换枪换枪,并且f和g键是加血或者加子弹的功 **;
;** 能,不需要再次将f键和g键重新映射,正常键盘就可以了。 **;
;** **;
;***********************************************************************************;
;******************************** 完 *************************************;
;***********************************************************************************;
;//////////////////////////////////////代码开始///////////////////////////////////;
;第一,#InstallKeybdHook,用来调试,查看按键消息需要;
;第二,一般需要用键盘钩子有四种情况(帮助文档中有);
;第三,本脚本功能不需要键盘钩子,所以这里注释掉了,可节约系统资源。
;;;;#InstallKeybdHook ;
;/////////////////////////////////////////////////////////////////////////;
;第一,Hotkey, IfWinActive语句可以限定脚本生效窗口;
;第二,本语句限定该脚本生效的游戏窗口为flash窗口;
;第三,可以用autohotkey自带spy查看游戏窗口的ahk_class名称;
;第四,Hotkey, IfWinActive语句使用一次就可以了,详见帮助文档。
Hotkey, IfWinActive, ahk_class ShockwaveFlashFullScreen ;
;/////////////////////////////////////////////////////////////////////////;
;第一,刚开始是正常键盘布局,无热键生效。
HotKey,f,switchKeyBoard,off ;
HotKey,g,switchKeyBoard,off ;
HotKey,h,switchKeyBoard2,off ;
;/////////////////////////////////////////////////////////////////////////;
;第一,本脚本,脚本明文只有一个线程和一个进程,若有其他线程则是由系统自己管理的;
;第二,本脚本,线程不会主动退出,也没有提供退出的热键;
;第三,想要退出,请直接在任务栏关闭本脚本;
;第四,一旦脚本出现问题,先熄灭ScrollLock,然后反复按回
; 车键2次,便可以恢复到正常键盘布局。
while true ;死循环
;/////////////////////////////////////////////////////////////////////////;
{
;/////////////////////////////////////////////////////////////////////////;
while not GetKeyState("ScrollLock" ,"T") ;ScrollLock灯灭,则恢复成正常键盘布局
{
BlockInput, On ;避免再次按下ScrollLock键,保证脚本运行稳定
HotKey,f,,Off ;
HotKey,g,,Off ;
HotKey,h,,Off ;
BlockInput, Off ;恢复键盘和鼠标响应
KeyWait,ScrollLock,D ;无限时间等待ScrollLock键按下
KeyWait,ScrollLock ;无限时间等待ScrollLock键放开
}
;/////////////////////////////////////////////////////////////////////////;
;第一,logicFlag这个布尔类型变量是用来使能切换热键状态的;
;第二,OnlyOneTimeFlag这个布尔类型变量用来在循环块中设置只执行一次的语句块;
;第三,光标坐标设置为相对于整个屏幕。
CoordMode,Caret,Screen ;
logicFlag:=true ;
OnlyOneTimeFlag:=true ;
;/////////////////////////////////////////////////////////////////////////;
;第一,ScrollLock灯亮并且游戏进入全屏模式后,进入回车键切换布局状态;
;第二,ScrollLock灯灭或者游戏退出全屏模式后,退出回车键切换布局状态。
while GetKeyState("ScrollLock" ,"T") and WinActive("ahk_class ShockwaveFlashFullScreen") ;
;/////////////////////////////////////////////////////////////////////////;
{
;/////////////////////////////////////////////////////////////////////////;
;为了不影响回车键切换键盘布局,所以只执行一次,并设置键盘布局为竞技键盘布局。
if OnlyOneTimeFlag ;
{
HotKey,f,,On ;
HotKey,g,,On ;
HotKey,h,,On ;
OnlyOneTimeFlag:=false ;
}
;/////////////////////////////////////////////////////////////////////////;
;第一,此处if-else语句用来在竞技键盘布局和正常键盘布局两个键盘布局间交替切换;
;第二,理想的语句应该是HotKey Toggle语句,但不会用,只能这样;
;第三,一旦出现意外情况,比如游戏退出全屏或者游戏正常结束退出全屏,只
; 需要反复按回车,就能回到正常状态;
;第四,等待回车键敲击,用GetKeyState语句效果不好,只能用KeyWait语句;
;第五,这里必须是按下和松开这两条语句。如果只写一条,回车键切换布局功能将不稳定;
;第六,这里用KeyWait语句有诸多考虑,比如:关于输入法及其窗口生命期过程等等。
if logicFlag ;如果logicFlag变量为真,则进入正常键盘布局
{
KeyWait,Enter,D ;无限时间等待Enter键按下
HotKey,f,,off ;
HotKey,g,,off ;
HotKey,h,,off ;
logicFlag:=false ;下次循环执行else语句块
KeyWait,Enter ;无限时间等待Enter键放开
}
else ;如果logicFlag变量为假,则执行
{
KeyWait,Enter,D ;无限时间等待Enter键按下
KeyWait,Enter ;无限时间等待Enter键放开
BlockInput, On ;避免再次按下Enter键,保证脚本运行稳定
sleep,16 ;等待输入窗口被销毁
if A_CaretY = ;判断输入窗口是否已经完全销毁
{
HotKey,f,,on ;
HotKey,g,,on ;
HotKey,h,,on ;
logicFlag:=true ;下次循环执行if语句块
}
BlockInput, Off ;
}
;/////////////////////////////////////////////////////////////////////////;
}
;/////////////////////////////////////////////////////////////////////////;
;退出循环,也就是ScrollLock键灯灭后,立即恢复成正常键盘布局。
HotKey,f,,off ;
HotKey,g,,off ;
HotKey,h,,off ;
;/////////////////////////////////////////////////////////////////////////;
sleep,663 ;为了减少对cpu时间的占用,这里规定脚本代码睡眠663毫秒
;/////////////////////////////////////////////////////////////////////////;
}
;/////////////////////////////////////////////////////////////////////////;
;第一,这里的代码是从按键历史消息中复制过来的,当时是使用静态映射f::q。
;第二,标签label名称可以随便取名,这里用了如下两个名字。
switchKeyBoard: ;
Send,{Blind}{q DownR} ;
SetKeyDelay,-1 ;
Send,{Blind}{q Up} ;
return ;
switchKeyBoard2: ;
Send,{Blind}{g DownR} ;
SetKeyDelay,-1 ;
Send,{Blind}{g Up} ;
return ;
;//////////////////////////////////////代码完///////////////////////////////////;