Created
April 8, 2023 13:46
-
-
Save trienow/bf3a448f29fa9df71dba1b9d6cb1f3a9 to your computer and use it in GitHub Desktop.
AutoHotkey Scripts to solve painfully annoying puzzles in the Game DARQ - Might be useful for speedrunning too.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Requires AutoHotkey v2.0 | |
| #Warn All ;Enable warnings to assist with detecting common errors. | |
| SendMode "Input" ;Recommended for new scripts due to its superior speed and reliability. | |
| SetWorkingDir A_ScriptDir ;Ensures a consistent starting directory. | |
| #SingleInstance force | |
| #HotIf WinActive("ahk_exe DARQ.exe") | |
| ^1:: | |
| { | |
| ;Chapter 5 - Spinning Labyrith puzzle | |
| sleepyTime := 250 | |
| SendWithDelay("D", sleepyTime) | |
| SendWithDelay("RRRD", sleepyTime) | |
| SendWithDelay("RRRRRRRD", sleepyTime) | |
| SendWithDelay("RRRU", sleepyTime) | |
| SendWithDelay("RRRD", sleepyTime) | |
| SendWithDelay("RRD", sleepyTime) | |
| SendWithDelay("LLLLLLLD", sleepyTime) | |
| SendWithDelay("RRRRD", sleepyTime) | |
| } | |
| SendWithDelay(strokes, sleepyTime) | |
| { | |
| releaseSpace := False | |
| Loop StrLen(strokes) | |
| { | |
| instruction := SubStr(strokes, A_Index, 1) | |
| switch instruction | |
| { | |
| case "U": Send "{Up}" | |
| case "L": Send "{Left}" | |
| case "D": Send "{Down}" | |
| case "R": Send "{Right}" | |
| case "_": | |
| Send "{Space down}" | |
| releaseSpace := True | |
| case "F": Send "F" | |
| } | |
| Sleep sleepyTime | |
| } | |
| if (releaseSpace) | |
| { | |
| Send "{Space up}" | |
| Sleep sleepyTime | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Requires AutoHotkey v2.0 | |
| #Warn All ;Enable warnings to assist with detecting common errors. | |
| SendMode "Input" ;Recommended for new scripts due to its superior speed and reliability. | |
| SetWorkingDir A_ScriptDir ;Ensures a consistent starting directory. | |
| #SingleInstance force | |
| Sd := "{LShift down}" | |
| Su := "{LShift up}" | |
| F := "F" | |
| L := "L" | |
| R := "R" | |
| #HotIf WinActive("ahk_exe DARQ.exe") | |
| ^1:: | |
| { | |
| SendWithDelay("LDDRRDDLULD", 250) | |
| SendWithDelay("URDRUURRDRRRDRRURD", 250) | |
| SendWithDelay("ULDLLULURURRUUR", 250) | |
| } | |
| return | |
| ^2:: | |
| { | |
| sleepyTime := 300 | |
| SendWithDelay("_UL", sleepyTime) | |
| SendWithDelay("R", sleepyTime) | |
| SendWithDelay("_URRRR", sleepyTime) | |
| SendWithDelay("LLLL", sleepyTime) | |
| SendWithDelay("_URRR", sleepyTime) | |
| SendWithDelay("L", sleepyTime) | |
| SendWithDelay("_ULLD", sleepyTime) | |
| SendWithDelay("RUU", sleepyTime) | |
| SendWithDelay("_URD", sleepyTime) | |
| SendWithDelay("L", sleepyTime) | |
| SendWithDelay("_UR", sleepyTime) | |
| SendWithDelay("DDDL", sleepyTime) | |
| SendWithDelay("_ULD", sleepyTime) | |
| SendWithDelay("RUU", sleepyTime) | |
| SendWithDelay("_LD", sleepyTime) | |
| SendWithDelay("RUU", sleepyTime) | |
| SendWithDelay("_ULD", sleepyTime) | |
| SendWithDelay("R", sleepyTime) | |
| SendWithDelay("_ULD", sleepyTime) | |
| SendWithDelay("DDR", sleepyTime) | |
| SendWithDelay("_ULLD", sleepyTime) ;Ankhs are done | |
| SendWithDelay("RRU", sleepyTime) | |
| SendWithDelay("_LLL", sleepyTime) | |
| SendWithDelay("RR", sleepyTime) | |
| SendWithDelay("_ULD", sleepyTime) | |
| SendWithDelay("RR", sleepyTime) | |
| SendWithDelay("_LLD", sleepyTime) | |
| SendWithDelay("R", sleepyTime) | |
| SendWithDelay("_UR", sleepyTime) | |
| SendWithDelay("L", sleepyTime) | |
| SendWithDelay("_ULD", sleepyTime) | |
| SendWithDelay("R", sleepyTime) ;Eyes are done | |
| SendWithDelay("_LD", sleepyTime) | |
| SendWithDelay("LLL", sleepyTime) | |
| SendWithDelay("UUU", sleepyTime) | |
| SendWithDelay("_RRRR", sleepyTime) | |
| SendWithDelay("DL", sleepyTime) | |
| SendWithDelay("_URRD", sleepyTime) | |
| SendWithDelay("LL", sleepyTime) | |
| SendWithDelay("_UL", sleepyTime) | |
| SendWithDelay("DDDR", sleepyTime) | |
| SendWithDelay("_URRD", sleepyTime) | |
| SendWithDelay("R", sleepyTime) | |
| SendWithDelay("_LLLD", sleepyTime) ;789 | |
| SendWithDelay("RRUU", sleepyTime) | |
| SendWithDelay("_UR", sleepyTime) | |
| SendWithDelay("L", sleepyTime) | |
| SendWithDelay("_ULLD", sleepyTime) | |
| SendWithDelay("RR", sleepyTime) | |
| SendWithDelay("_ULLD", sleepyTime) | |
| SendWithDelay("L", sleepyTime) | |
| SendWithDelay("_RRRD", sleepyTime) | |
| SendWithDelay("LLLUUU", sleepyTime) | |
| SendWithDelay("_RRRRD", sleepyTime) | |
| SendWithDelay("R", sleepyTime) | |
| SendWithDelay("_LD", sleepyTime) | |
| } | |
| ^3:: | |
| { | |
| ;Coffin up-down thing | |
| sleepyTime := 550 | |
| SendWithDelay("RD", sleepyTime) | |
| SendWithDelay("RU", sleepyTime) | |
| SendWithDelay("LD", sleepyTime) | |
| SendWithDelay("RU", sleepyTime) | |
| SendWithDelay("RRD", sleepyTime) | |
| SendWithDelay("LLU", sleepyTime) | |
| SendWithDelay("RRD", sleepyTime) | |
| SendWithDelay("LLU", sleepyTime) ;coffin opens | |
| Sleep 3000 | |
| SendWithDelay("RD", sleepyTime) | |
| SendWithDelay("LLLU", sleepyTime) | |
| SendWithDelay("RRRRD", sleepyTime) | |
| SendWithDelay("RRU", sleepyTime) | |
| SendWithDelay("LD", sleepyTime) | |
| SendWithDelay("RU", sleepyTime) | |
| SendWithDelay("LD", sleepyTime) | |
| SendWithDelay("LLLLU", sleepyTime) | |
| SendWithDelay("F", sleepyTime) | |
| } | |
| ^4:: | |
| { | |
| ;Bells - Stand far left | |
| ;|=========---| | |
| ;|--=========-| | |
| ;|---=========| | |
| Send Sd | |
| Movement(R, 900) | |
| Send Su | |
| SendWithDelay(F, 1200) | |
| Send Sd | |
| Movement(L, 1200) | |
| Send Su | |
| SendWithDelay(F, 200) | |
| ;Now Music | |
| Sleep 1000 | |
| SendWithDelay("UUR", 200) | |
| Sleep 1700 | |
| SendWithDelay("LDDL", 200) | |
| Sleep 3000 | |
| SendWithDelay("RF", 200) | |
| } | |
| ;Push thing puzzle | |
| ;Start UP | |
| ; 01 R | |
| ; 02 R | |
| ; 03 L | |
| ; 04 R | |
| ; 05 L | |
| ; 06 L | |
| ; 07 R (Left Wall) | |
| ; 08 R | |
| ; 09 L | |
| ; 10 L | |
| ; 11 L | |
| ; 12 L | |
| ; 13 R (Eye) | |
| ; 14 R (Key) | |
| ^5:: | |
| { | |
| ;Coin Game | |
| ;Start on the far right | |
| ;Head on the right above the player right next to the first button | |
| ;The head's shadow should be just slightly on the rim | |
| SendWithDelay(F, 1200) | |
| Send Sd | |
| Movement(L, 1750) | |
| Send Su | |
| SendWithDelay(F, 300) | |
| Sleep 2000 ;Transition time | |
| Send Sd | |
| Movement(R, 800) ;1 2,1 | |
| Movement(L, 300) | |
| Movement(R, 300) ;2,2 | |
| Movement(L, 300) | |
| Movement(R, 400) ;2,3 | |
| Movement(R, 1500) ;3,1 4,1 | |
| Movement(L, 300) | |
| Movement(R, 300) ;4,2 | |
| Sleep 12000 | |
| ;Now let's make our way back. | |
| Movement(L, 300) ;4,1 | |
| Movement(R, 300) | |
| Movement(L, 1000) ;4,3 3,1 | |
| Movement(R, 300) | |
| Movement(L, 300) ;3,2 | |
| Movement(R, 300) | |
| Movement(L, 1500) ;3,3 2,1 1,1 | |
| Movement(R, 300) | |
| Movement(L, 300) ;1,2 | |
| Movement(R, 300) | |
| Movement(L, 300) ;1,3 | |
| Send Su | |
| Send F | |
| } | |
| ^ESC:: | |
| { | |
| Reload | |
| } | |
| Movement(stroke, pressTime) | |
| { | |
| switch stroke | |
| { | |
| case "U": key := "Up" | |
| case "L": key := "Left" | |
| case "D": key := "Down" | |
| case "R": key := "Right" | |
| } | |
| Send("{" key " down}") | |
| if (pressTime >= 0) | |
| { | |
| Sleep pressTime | |
| } | |
| Send("{" key " up}") | |
| if (pressTime < 0) | |
| { | |
| pressTime *= -1 | |
| Sleep pressTime | |
| } | |
| Sleep 200 | |
| } | |
| SendWithDelay(strokes, sleepyTime) | |
| { | |
| releaseSpace := False | |
| Loop StrLen(strokes) | |
| { | |
| instruction := SubStr(strokes, A_Index, 1) | |
| switch instruction | |
| { | |
| case "U": Send "{Up}" | |
| case "L": Send "{Left}" | |
| case "D": Send "{Down}" | |
| case "R": Send "{Right}" | |
| case "_": | |
| Send "{Space down}" | |
| releaseSpace := True | |
| case "F": Send "F" | |
| } | |
| Sleep sleepyTime | |
| } | |
| if (releaseSpace) | |
| { | |
| Send "{Space up}" | |
| Sleep sleepyTime | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment