Updated the script to include Nextron's until loop on the Play button because my original setup still failed to hit Play on occasions. Thanks Nextron!
Code: Select all
#NoEnv
SetWorkingDir %A_ScriptDir%
DetectHiddenWindows, On
SetKeyDelay, 40, 40
SetMouseDelay, 40
SetTitleMatchMode, 2
SetFormat, FloatFast, 0 ;; Round the math up.
;; Configuration
Bypass := 0 ;; Start Warframe w/o Steam or the checking for updates with the launcher. Not a good idea if there's updates.
LoginButtonColor := 0xD7D7D7 ;; A Gray Color I use to determine the Login Button is Visable
LoginBtnVariation := 25 ;; PixelSearch color variation set to 25 works for my setup.
MyPassword = WaitingRoomGame
;; The Script
If ( Bypass = 0 )
{
Run, steam://rungameid/230410 ;; Steam Browser Link to Warframe
SetTimer, CheckPlayBtn, 200 ;; Check for the PLAY button
}
Else
{
;; Steamless Startup
RegRead, TheLauncherEXE, HKEY_CURRENT_USER\Software\Digital Extremes\Warframe\Launcher, LauncherExe
SplitPath, TheLauncherEXE, l_name, l_dir
;Run, %TheLauncherEXE% -cluster:public -registry:Steam, %l_dir% ;; Uncomment this line to Run the Launcher and check for updates, but no Steam.
;SetTimer, CtrlWait, 200 ;; Uncomment this one too if you want to run the launcher without Steam. Remember to comment the line below after!
Run, %l_dir%\..\Warframe.x64.exe -fullscreen:0 -dx10:0 -dx11:1 -threadedworker:1 -cluster:public -language:en ;; Start Warframe in 64bit Directx11 non-fullscreen mode.
}
;; After Launcher runs or not wait for WF to start and grab some stats we need for pixel searching.
WinWaitActive, WARFRAME ahk_exe Warframe.x64.exe
WinGetActiveStats, wTitle, wWidth, wHeight, wX, wY
h_wWidth := ( wWidth / 2 ) ; Half window width
l_wHeight := ( wHeight * 0.766666 ) ; Login Button yPosition
p_wHeight := ( wHeight * 0.726851 ) ; Password Box yPosition
h_wHeight := ( wHeight / 2 ) ; Half window height
Loop,
{
If !WinActive( "WARFRAME ahk_exe Warframe.x64.exe" )
{
WinWaitActive, WARFRAME ahk_exe Warframe.x64.exe
}
;; Get the Login Color
; PixelGetColor, MyLoginClr, %h_wWidth%, %l_wHeight%
; Tooltip, Login Color is %MyLoginClr%, 10, 10
;; Look for the Gray Login Button. Color could be wrong on some setups if you use something like Reshade/SweetFX
PixelSearch, , , %h_wWidth%, %l_wHeight%, %h_wWidth%, %l_wHeight%, %LoginButtonColor%, %LoginBtnVariation%
If ( Errorlevel = 0 ) && WinActive( "WARFRAME ahk_exe Warframe.x64.exe" )
{
Break
}
Sleep, 100 ; Stop spamming
}
BlockInput, On
Send, {Click, %h_wWidth%, %p_wHeight%, 3} ; Have to click the password box because the cursor poofs sometimes. Thanks DE.
Sleep, 30
ControlSendRaw, , %MyPassword%, WARFRAME ahk_exe Warframe.x64.exe ; ControlSend so our password isn't sent to the wrong window on accident.
Sleep, 30
SendInput, {Enter}
BlockInput, Off
ExitApp
CheckPlayBtn:
ControlGet, PlayButton, HWND, , Warframe is up to date!, Warframe ahk_exe Launcher.exe ; Look for these words so we know WF is up to date.
If !PlayButton
{
Return
}
Else
{
Loop
{
While WinExist("Warframe ahk_class Launcher ahk_exe Launcher.exe")
{
ControlClick, PLAY, Warframe ahk_class Launcher ahk_exe Launcher.exe
Sleep, 200
}
Sleep, 1500
} Until !WinExist("Warframe ahk_class Launcher ahk_exe Launcher.exe") ;Second loop in case the launcher updates and restarts
SetTimer, CheckPlayBtn, Off
}
Return
UPDATE: Pixel location and color has changed on the new login screen and I haven't bothered to update it. You'll have to change that and it should work again.