mirror of
https://github.com/bnowakow/GT7-Scripts.git
synced 2026-01-06 11:27:24 +00:00
322 lines
7.9 KiB
AutoHotkey
322 lines
7.9 KiB
AutoHotkey
#NoEnv
|
|
#MaxHotkeysPerInterval 99000000
|
|
#HotkeyInterval 99000000
|
|
#KeyHistory 0
|
|
#Include Lib\Gdip.ahk
|
|
#Include Lib\AHK-ViGEm-Bus.ahk
|
|
#Include Lib\__utility__.ahk
|
|
#Include Lib\__controller_functions__.ahk
|
|
#Include Mod\Mods.ahk
|
|
#Include Race.ahk
|
|
|
|
hModule := DllCall("LoadLibrary", "Str", A_LineFile "\..\Lib\SuperSleep.dll", "Ptr")
|
|
SuperSleep := DllCall("GetProcAddress", "Ptr", DllCall("GetModuleHandle", "Str", A_LineFile "\..\Lib\SuperSleep.dll", "Ptr"), "AStr", "super_sleep", "Ptr")
|
|
|
|
ListLines Off
|
|
Process, Priority, , A
|
|
SetBatchLines, -1
|
|
SetKeyDelay, -1, -1
|
|
SetMouseDelay, -1
|
|
SetDefaultMouseSpeed, 0
|
|
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
|
|
|
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
|
DetectHiddenWindows, On
|
|
#Persistent
|
|
|
|
; --------- Constants
|
|
; Time at turn in seconds and Stablizing control
|
|
Global t := 210000
|
|
Global debug_mode := 1
|
|
intensity := 230
|
|
delay := 300
|
|
init_delay := 10000
|
|
|
|
MenuDirect := "Right"
|
|
Menu_loops := 6
|
|
menu_s := 1
|
|
global color_check1 := 0xBBE044
|
|
color_check2 := 0xBBE044
|
|
color_2_delay := 400
|
|
|
|
global box_size := 2
|
|
global tolerance := 20
|
|
|
|
; resolution parameters and pixel search locations
|
|
ps_win_width := 640
|
|
ps_win_height := 360
|
|
global pix1x := 458
|
|
global pix1y := 114
|
|
global pix2x := 607
|
|
global pix2y := 319
|
|
|
|
bm_delay := 100
|
|
box_size := 2
|
|
|
|
ps_load_time1 := 12000
|
|
ps_load_time2 := 6000
|
|
ps_load_time3 := 9000
|
|
global SysCheck := 1
|
|
|
|
; Create a new controller controller
|
|
Global controller := new ViGEmDS4()
|
|
controller.SubscribeFeedback(Func("OnFeedback"))
|
|
|
|
OnFeedback(largeMotor, smallMotor, lightbarColor){
|
|
;OutputDebug % "AHK| Feedback received - LargeMotor: " largeMotor ", SmallMotor: " smallMotor ", LightBarColor: " lightbarColor
|
|
}
|
|
|
|
; ---------- Gui Setup -------------
|
|
Gui, -MaximizeBox
|
|
Gui, 2: -MaximizeBox
|
|
Gui, 2: -MinimizeBox
|
|
Gui, Color, c282a36, c6272a4
|
|
Gui, Add, Button, x15 y10 w70 default, Start
|
|
Gui, Add, Button, x15 y40 w70 default gVariableWindow, Variables
|
|
Gui, Add, Button, x15 y70 w70 default gCheckHairpin, Stuck Leaderboard
|
|
Gui, Add, Button, x110 y70 w70 default gGetColo_g, Stuck Replay
|
|
Gui, Add, Button, x110 y10 w70 default gModWindow, Mods
|
|
Gui, Add, DropDownList, w50 Choose1 vMenuDirect, Right|Left
|
|
Gui, Add, Edit, vMenu_loops w20 x165 y39, 6
|
|
Gui, Font, ce8dfe3 s9 w550 Bold
|
|
Gui, Add, Radio, Group x15 y115 altsubmit Checked gPSystem vSysCheck, PS5
|
|
Gui, Add, Radio, x70 y115 altsubmit gPSystem, PS4
|
|
Gui, Add, Radio, x125 y115 altsubmit gPSystem, PS4 Pro
|
|
;Gui, Add, Radio, Group x15 y130 altsubmit Checked gMenuSel vMenuCheck, Pixel
|
|
;Gui, Add, Radio, x70 y120 altsubmit gMenuSel, Timing
|
|
Gui, Add, Button, x70 y135 w70 default gReset, Reset
|
|
Gui, Add, Button, default gMouseColor, Color Picker
|
|
Gui, Font, ce8dfe3 s9 w550 Bold
|
|
loop, Files, % A_ScriptDir "\Races\*.ahk*"
|
|
{
|
|
SplitPath, A_LoopFileName,,,, FileName
|
|
List .= FileName "|"
|
|
}
|
|
List := RTrim(List, "|")
|
|
List := StrReplace(List, "|", "||",, 1) ; make first item default
|
|
Gui, Add, DropDownList, vRaceChoice, % List
|
|
Gui, Show
|
|
|
|
;--------- Gui 2 Setup --------------
|
|
Gui, 2: Color, c535770, c6272a4
|
|
Gui, 2: Font, c11f s9 Bold
|
|
Gui, 2: Add, Text,, Turn Length (time miliseconds)
|
|
Gui, 2: Add, Edit, w70 vA, %t%
|
|
Gui, 2: Add, Text,, Turn Intensity
|
|
Gui, 2: Add, Edit, w40 vB, %intensity%
|
|
Gui, 2: Add, Text,, Turn Delay
|
|
Gui, 2: Add, Edit, w40 vC, %delay%
|
|
Gui, 2: Add, Text, x100 y90, Color 2 Delay
|
|
Gui, 2: Add, Edit, x100 y110 w40 vD, %color_2_delay%
|
|
Gui, 2: Add, Button, x20 y170 gSaveVars, Save
|
|
Gui, 2: Add, Button, x100 y170 gVarDef, Defaults
|
|
Gui, 2: Add, Checkbox, x100 y150 Checked vdebug_mode gDebugging, Debug Mode
|
|
Gui, Show, AutoSize, GT7AHK
|
|
return
|
|
|
|
Debugging:
|
|
MsgBox, %debug_mode%
|
|
|
|
return
|
|
|
|
VariableWindow:
|
|
Gui, 2: Show, w220 h205, Variables
|
|
return
|
|
|
|
ModWindow:
|
|
Gui, 3: Show, AutoSize, Mod List
|
|
return
|
|
|
|
SaveVars:
|
|
Gui, 2:Submit
|
|
GuiControlGet, t, 2:, A
|
|
GuiControlGet, intensity, 2:, B
|
|
GuiControlGet, delay, 2:, C
|
|
GuiControlGet, color_2_delay, 2:, D
|
|
return
|
|
|
|
VarDef:
|
|
t := 210000
|
|
intensity := 230
|
|
delay := 300
|
|
GuiControl, 2:, A, %t%
|
|
GuiControl, 2:, B, %intensity%
|
|
GuiControl, 2:, C, %delay%
|
|
GuiControl, 2:, D, %color_2_delay%
|
|
return
|
|
|
|
ButtonStart:
|
|
Gui, Submit, NoHide
|
|
id := ""
|
|
SetKeyDelay, 10
|
|
Process, priority, , High
|
|
gosub, GrabRemotePlay
|
|
if (id = "")
|
|
return
|
|
gosub, PauseLoop
|
|
CoordMode, Pixel, Screen
|
|
CoordMode, ToolTip, Screen
|
|
sleep 1000
|
|
gosub, AFKLoop
|
|
; ---------- Gui Setup End-------------
|
|
|
|
; ---------- AFK Loop -----------------
|
|
AFKLoop:
|
|
loop{
|
|
Press_X()
|
|
gosub, Race
|
|
/*
|
|
if (tyres_overheating) {
|
|
break
|
|
}
|
|
*/
|
|
gosub, Menu
|
|
}
|
|
return
|
|
|
|
;; General Functions for AHK
|
|
|
|
PixelTuning:
|
|
x_ratio := ps_win_width/640
|
|
y_ratio := ps_win_height/360
|
|
pix1x := Floor(pix1x*x_ratio)
|
|
pix1y := Floor(pix1y*y_ratio)
|
|
pix2x := Floor(pix2x*x_ratio)
|
|
pix2y := Floor(pix2y*y_ratio)
|
|
tyreX := Floor(tyreX*x_ratio)
|
|
tyreY := Floor(tyreY*y_ratio)
|
|
return
|
|
|
|
GrabRemotePlay:
|
|
WinGet, remotePlay_id, List, ahk_exe RemotePlay.exe
|
|
if (remotePlay_id = 0)
|
|
{
|
|
MsgBox, PS4 Remote Play not found
|
|
return
|
|
}
|
|
Loop, %remotePlay_id%
|
|
{
|
|
id := remotePlay_id%A_Index%
|
|
WinGetTitle, title, % "ahk_id " id
|
|
If InStr(title, "PS Remote Play")
|
|
break
|
|
}
|
|
WinGetClass, remotePlay_class, ahk_id %id%
|
|
WinMove, ahk_id %id%,, 0, 0, 640, 360
|
|
ControlFocus,, ahk_class %remotePlay_class%
|
|
WinActivate, ahk_id %id%
|
|
GetClientSize(id, ps_win_width, ps_win_height)
|
|
gosub, PixelTuning
|
|
return
|
|
|
|
MenuTest:
|
|
;MsgBox, This will test the number of Left/Right presses at the championship selection menu. `nTry this if you have not finished all cafe menus. `nPress OK to test
|
|
gosub, GrabRemotePlay
|
|
Gui, Submit, NoHide
|
|
loop, %menu_loops% {
|
|
controller.Dpad.SetState(MenuDirect)
|
|
Sleep, 125
|
|
controller.Dpad.SetState("None")
|
|
Sleep, 200
|
|
}
|
|
return
|
|
|
|
GetColo_p:
|
|
gosub, GrabRemotePlay
|
|
color_check1 := PixelColorSimple(pix1x, pix1y)
|
|
return
|
|
|
|
GetColo_g:
|
|
gosub, GrabRemotePlay
|
|
color_check2 := PixelColorSimple(pix2x, pix2y)
|
|
return
|
|
|
|
PSystem:
|
|
Gui, Submit, NoHide
|
|
if (SysCheck = 1){
|
|
ps_load_time1 := 12000
|
|
ps_load_time2 := 6000
|
|
ps_load_time3 := 8400
|
|
}
|
|
if (SysCheck = 2){
|
|
ps_load_time1 := 44000
|
|
ps_load_time2 := 12000
|
|
ps_load_time3 := 37000
|
|
}
|
|
if (SysCheck = 3){
|
|
ps_load_time1 := 37000
|
|
ps_load_time2 := 12000
|
|
ps_load_time3 := 32000
|
|
}
|
|
return
|
|
|
|
Reset:
|
|
gosub, PauseLoop
|
|
Reload
|
|
Sleep 1000
|
|
return
|
|
|
|
PauseLoop:
|
|
controller.Buttons.Cross.SetState(false)
|
|
controller.Buttons.Square.SetState(false)
|
|
controller.Buttons.Triangle.SetState(false)
|
|
controller.Buttons.Circle.SetState(false)
|
|
|
|
controller.Buttons.L1.SetState(false)
|
|
controller.Buttons.L2.SetState(false)
|
|
controller.Axes.L2.SetState(0)
|
|
controller.Buttons.R1.SetState(false)
|
|
controller.Buttons.R2.SetState(false)
|
|
controller.Axes.R2.SetState(0)
|
|
|
|
controller.Buttons.RS.SetState(false)
|
|
controller.Axes.RX.SetState(50)
|
|
controller.Axes.RY.SetState(50)
|
|
|
|
controller.Buttons.LS.SetState(false)
|
|
controller.Axes.LX.SetState(50)
|
|
controller.Axes.LY.SetState(50)
|
|
|
|
controller.Dpad.SetState("None")
|
|
|
|
return
|
|
|
|
MouseHelp:
|
|
|
|
coord=relative
|
|
sleep, 1000
|
|
CoordMode, ToolTip, %coord%
|
|
CoordMode, Pixel, %coord%
|
|
CoordMode, Mouse, %coord%
|
|
CoordMode, Caret, %coord%
|
|
CoordMode, Menu, %coord%
|
|
return
|
|
|
|
Refresh:
|
|
MouseGetPos, x, y
|
|
PixelGetColor, cBGR, %x%, %y%,, Alt RGB
|
|
WinGetPos,,, w, h, A
|
|
ToolTip,Location: %x% x %y%`nRGB: %cBGR%`nWindow Size: %w% x %h%
|
|
return
|
|
|
|
MouseColor:
|
|
gosub, MouseHelp
|
|
SetTimer, Refresh, 75
|
|
return
|
|
|
|
GuiClose:
|
|
gosub, PauseLoop
|
|
ExitApp
|
|
^Esc::ExitApp
|
|
|
|
/*
|
|
Pink RUF color"
|
|
which is the standart first one to buy if you want to buy car manufactur color (for me german GT7 i think its same for everyone)
|
|
0xFA559F
|
|
|
|
i have put that into Color check 1 and 2 works since 5 cycles - so maybe put them in with like (not tested)
|
|
(i think the first option that gets shown to buy a new color is the easiest to explain for people to buy except for colors the car exists in anyways (venom green)
|
|
here is the Hex Code for Porsche "Sternrubin" Ruby or Starruby depending on language:
|
|
0xBA3A64
|
|
*/
|