Scp秘密实验室 语音通讯脚本:D-Class Comms.ahk

脚本的由来:玩这个游戏的时候我发现玩电脑有一个痛点, 一局二十分钟Q键基本需要一直按着,而游戏内有没有按住改为切换的选项于是就和AI制作了这个脚本

Q 键切换语音激活状态(模拟按下/释放语音键{屏幕底部居中显示状态提示T_T=开^_^=关})

F2 键启用/禁用整个脚本(ON/OFF=脚本开关)

使用系统音效(Speech On/Off.wav)提供操作反馈。

#NoEnv
SendMode Input
#InstallKeybdHook
#SingleInstance force

; ==============================================
; 配置部分 - 可根据需要修改这些参数
; ==============================================

; 设置语音激活键 (默认是 Q 键)
VoiceKey := "q" 

; 设置脚本总开关的热键 (默认是 F2 键)
ToggleKey := "F2"

; ==============================================
; 全局变量定义
; ==============================================

; 脚本总开关状态 (true = 启用, false = 禁用)
ScriptEnabled := true  

; 语音激活状态 (true = 激活中, false = 未激活)
VoiceActive := false   

; 用于跟踪所有创建的状态提示框数量
global StatusGUICount := 0

; 显示初始状态提示
ShowStatusMessage("ON", 1500)

; ==============================================
; 主功能热键 - Q键切换语音激活状态
; ==============================================
$q::
{
    global VoiceActive, ScriptEnabled
    
    ; 如果脚本被禁用,直接发送普通Q键
   if (!ScriptEnabled) {
        Send {q}
        return
    }
    ; 切换语音激活状态
 VoiceActive := !VoiceActive
    
    if (VoiceActive) {
        ; 激活语音 - 按下语音键
        Send {Blind}{%VoiceKey% down}
        ShowStatusMessage("T_T", 1500) ; 显示激活状态表情
        SoundPlay, %A_WinDir%\Media\Speech On.wav  ; 播放激活提示音
    } else {
        ; 关闭语音 - 释放语音键
         Send {Blind}{%VoiceKey% up}
        ShowStatusMessage("^_^", 1500) ; 显示关闭状态表情
        SoundPlay, %A_WinDir%\Media\Speech Off.wav; 播放关闭提示音
    }
}
return

; ==============================================
; 脚本总开关热键 - F2键切换脚本启用/禁用状态
; ==============================================
F2::
{
    global ScriptEnabled, VoiceActive
    
    ; 如果禁用脚本时语音处于激活状态,先释放语音键
    if (ScriptEnabled && VoiceActive) {
        Send {%VoiceKey% up}
        VoiceActive := false
        ShowStatusMessage("^_^", 500)  ; 确保状态显示正确
    }
    
    ; 切换脚本总开关状态
    ScriptEnabled := !ScriptEnabled
    
    if (ScriptEnabled) {
        ShowStatusMessage("ON", 1500)  ; 显示启用状态
        SoundPlay, %A_WinDir%\Media\Speech On.wav  ; 播放启用提示音
    } else {
        ShowStatusMessage("OFF", 1500)  ; 显示禁用状态
        SoundPlay, %A_WinDir%\Media\Speech Off.wav  ; 播放禁用提示音
    }
}
return

; ==============================================
; 状态提示显示函数
; 功能: 在屏幕底部居中显示状态提示信息
; 参数: message - 要显示的信息; duration - 显示时长(毫秒)
; ==============================================
ShowStatusMessage(message, duration) {
    global StatusGUICount
    
    ; 先关闭所有现有提示框
    CloseAllStatusMessages()
    Sleep 10  ; 给系统一点时间处理销毁操作
    
    ; 递增计数器并创建唯一命名的GUI
    StatusGUICount++
    guiName := "StatusGUI" StatusGUICount
    
    ; 创建GUI窗口 - 配置为置顶、无标题栏、点击穿透
    Gui, %guiName%:New, +AlwaysOnTop +ToolWindow -Caption +E0x20 +LastFound
    Gui, %guiName%:Color, 333333  ; 深灰色背景(将被设为透明)
    
    ; 设置字体样式:白色、加粗、20号大小、Segoe UI字体
    Gui, %guiName%:Font, s20 cWhite bold Quality=4, Segoe UI
    
    ; 添加文本并设置居中显示
    Gui, %guiName%:Add, Text, Center w200, %message%
    
    ; 调整GUI大小以适应内容
    Gui, %guiName%:Show, Hide  ; 先隐藏显示以计算大小
    Gui, %guiName%: +LastFound
    WinGetPos,,, GuiWidth, GuiHeight  ; 获取实际宽度和高度
    
    ; 计算位置(屏幕底部居中,距离底部50像素)
    xPos := (A_ScreenWidth - GuiWidth) // 2
    yPos := (A_ScreenHeight - GuiHeight - 50)
    
    ; 在计算好的位置显示GUI
    Gui, %guiName%:Show, NoActivate x%xPos% y%yPos%
    
    ; 将背景色设置为透明(只显示文字)
    WinSet, TransColor, 333333
    
    ; 设置定时关闭
    SetTimer, CloseStatusMessage, % -duration
}

; ==============================================
; 关闭所有状态提示框的函数
; ==============================================
CloseAllStatusMessages() {
    global StatusGUICount
    Loop % StatusGUICount {
        guiName := "StatusGUI" A_Index
        Gui, %guiName%:Destroy
    }
    StatusGUICount := 0
}

; ==============================================
; 关闭提示框的定时器回调函数
; ==============================================
CloseStatusMessage:
    CloseAllStatusMessages()
return
    

D-Class Comms.ahk

提取码:1145复制
解压码:无
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
其他

用极空间Z4Pro+性能版下载夸克网盘备份文件 2025年9月8日

2025-9-8 9:41:45

教程

AHK调用opencv系列目录

2022-4-2 15:44:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索