mirror of
https://github.com/bnowakow/GT7-Scripts.git
synced 2025-12-18 01:57:08 +00:00
486 lines
12 KiB
AutoHotkey
486 lines
12 KiB
AutoHotkey
;----------------------------------------------------------------------
|
|
; // START TOKYO RACE SCRIPT
|
|
;----------------------------------------------------------------------
|
|
|
|
GoTo EndRace_Tokyo_Def
|
|
Race_Tokyo()
|
|
{
|
|
|
|
; // PIT STOP MANAGER
|
|
|
|
; PIT IN LAP (index 0 - Example: Lapping in Lap 5 is VALUE 4)
|
|
pitlap := 5
|
|
|
|
; CHANGE TIRES TO:
|
|
; 0 = RACING HARD
|
|
; 1 = INTERMEDIATES
|
|
tires := 1
|
|
|
|
; VARIABLES
|
|
lapcounter := 0
|
|
pitstop := 0
|
|
outlap := 0
|
|
|
|
|
|
;----------------------------------------------------------------------
|
|
;---------------------------- // LAP 01 -------------------------------
|
|
;----------------------------------------------------------------------
|
|
|
|
;----------------------------------------------------------------------
|
|
; 01 // CHANGE FUEL MAP TO (LEAN 5) BEFORE RACE STARTS
|
|
;----------------------------------------------------------------------
|
|
|
|
Sleep(1000)
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 01 // Changing to Lean (5), 25, 250, Screen
|
|
loop 4 {
|
|
Press_Up(delay:=200)
|
|
sleep, 200
|
|
}
|
|
Sleep(6000)
|
|
|
|
;----------------------------------------------------------------------
|
|
; 02 // ACTIVATE ACCELERATION (100%) AND SHIFT TO 7TH GEAR
|
|
;----------------------------------------------------------------------
|
|
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 02 // Acceleration ON & Shifting to 7th gear, 25, 250, Screen
|
|
Accel_On(100)
|
|
;Nitrous_On()
|
|
loop 3 {
|
|
Press_X(delay:=200)
|
|
sleep, 200
|
|
}
|
|
|
|
|
|
;----------------------------------------------------------------------
|
|
; 03 // TRIGGER FORCED 5 SECOND PENALTY
|
|
;----------------------------------------------------------------------
|
|
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 03 // Triggering 5 sec. penalty, 25, 250, Screen
|
|
Sleep(1000)
|
|
Turn_Left(1000,10)
|
|
|
|
Turn_Left(13000,36)
|
|
|
|
;----------------------------------------------------------------------
|
|
;---------------------------- // LAP 02-12 ----------------------------
|
|
;----------------------------------------------------------------------
|
|
|
|
;----------------------------------------------------------------------
|
|
; 04 // START THE BIG LOOP
|
|
;----------------------------------------------------------------------
|
|
|
|
loop
|
|
{
|
|
|
|
;----------------------------------------------------------------------
|
|
; 05 // TRIGGER FORCED 5 SECOND PENALTY AND HUG WALLS UNTIL HAIRPIN
|
|
;----------------------------------------------------------------------
|
|
|
|
; // FIRST LAP
|
|
if (lapcounter = 0){
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 05.1 // Hugging left wall from straight to turn 1, 25, 250, Screen
|
|
Turn_Left(25000,36)
|
|
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 05.2 // Hugging right wall from chicane to hairpin, 25, 250, Screen
|
|
Turn_Right(20000,72)
|
|
}
|
|
|
|
; // LAP 02+ UNTIL WE DID A PITSTOP
|
|
if (lapcounter > 0) and (pitstop = 0){
|
|
ToolTip, [LAP: 02+][PITSTOPS: 0] 05.3 // Hugging left wall from straight to turn 1, 25, 250, Screen
|
|
Turn_Left(28000,36)
|
|
|
|
ToolTip, [LAP: 02+][PITSTOPS: 0] 05.4 // Hugging right wall from chicane to hairpin, 25, 250, Screen
|
|
Turn_Right(25000,72)
|
|
}
|
|
|
|
|
|
|
|
; // OUTLAP AFTER PITSTOP
|
|
if (outlap = 1){
|
|
ToolTip, [OUTLAP][LAP: 02+][PITSTOPS: 1] 05.5 // Hugging left wall from straight to turn 1, 25, 250, Screen
|
|
Turn_Left(34000,36)
|
|
|
|
ToolTip, [OUTLAP][LAP: 02+][PITSTOPS: 1] 05.6 // Hugging right wall from chicane to hairpin, 25, 250, Screen
|
|
Turn_Right(35000,72)
|
|
}
|
|
|
|
; // LAPS AFTER PITSTOP AND OUTLAP
|
|
if (lapcounter > 0) and (pitstop = 1) and (outlap = 0) {
|
|
ToolTip, [LAP: 02+][PITSTOPS: 1] 05.7 // Hugging left wall from straight to turn 1, 25, 250, Screen
|
|
Turn_Left(30000,36)
|
|
|
|
ToolTip, [LAP: 02+][PITSTOPS: 1] 05.8 // Hugging right wall from chicane to hairpin, 25, 250, Screen
|
|
Turn_Right(24000,72)
|
|
|
|
}
|
|
outlap := 0
|
|
;----------------------------------------------------------------------
|
|
; 06 // LOOKING FOR HAIRPIN -1-
|
|
;----------------------------------------------------------------------
|
|
|
|
ToolTip, // 06 Looking for hairpin -1-, 25, 250, Screen
|
|
|
|
color_player := 0xDE6E70
|
|
hairpin_complete := false
|
|
hairpinX := 506
|
|
hairpinY := 72
|
|
hairpinCount := 0
|
|
hairpinTolerance := 10
|
|
|
|
loop
|
|
{
|
|
|
|
tc := BitGrab(hairpinX, hairpinY,2)
|
|
for i, c in tc
|
|
{
|
|
td := Distance(c, color_player)
|
|
if (td < 9 ){
|
|
hairpin_complete := true
|
|
hairpinCount += 1
|
|
ToolTip, 06 // Hairpin -1- found, 25, 250, Screen
|
|
break
|
|
}
|
|
}
|
|
;Turn_Left(300, 30)
|
|
if( hairpinCount = 1 )
|
|
break
|
|
Sleep(100)
|
|
}
|
|
|
|
;----------------------------------------------------------------------
|
|
; 07 // IF HAIRPIN -1- FOUND:
|
|
; 07 // WAIT, THEN:
|
|
; 07 // HUG LEFT WALL THEN RIGHT UNTIL PEN LINE
|
|
;----------------------------------------------------------------------
|
|
|
|
; // LAP 01 TIMINGS
|
|
if (lapcounter = 0) {
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 07.1 // Hairpin - turn right 5700 70, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
ToolTip, [LAP: 01][PITSTOPS: 0] 07.2 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 02 TIMINGS
|
|
if (lapcounter = 1) and (pitstop = 0) {
|
|
ToolTip, [LAP: 02][PITSTOPS: 0] 07.3 // Hairpin - turn right 5700 70, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
ToolTip, [LAP: 02][PITSTOPS: 0] 07.4 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 03 TIMINGS
|
|
if (lapcounter = 2) and (pitstop = 0) {
|
|
ToolTip, [LAP: 03][PITSTOPS: 0] 07.5 // Hairpin - turn right 5700 70 - SLEEP 800, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
|
|
;Sleep(800)
|
|
ToolTip, [LAP: 03][PITSTOPS: 0] 07.6 // Hairpin - turn right 12000 65 , 25, 250, Screen
|
|
|
|
Accel_On(55)
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
|
|
; // LAP 04 TIMINGS
|
|
if (lapcounter = 3) and (pitstop = 0) {
|
|
ToolTip, [LAP: 04][PITSTOPS: 0] 07.7 // Hairpin - turn right 5700 70 - SLEEP 1500, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
;Sleep(1500)
|
|
ToolTip, [LAP: 04][PITSTOPS: 0] 07.8 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
|
|
|
|
Accel_On(55)
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 05 TIMINGS
|
|
if (lapcounter = 4) and (pitstop = 0) {
|
|
ToolTip, [LAP: 05][PITSTOPS: 0] 07.9 // Hairpin - turn right 5700 70 - SLEEP 2000, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
;Sleep(2000)
|
|
ToolTip, [LAP: 05][PITSTOPS: 0] 07.10 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
|
|
Accel_On(55)
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 06 TIMINGS
|
|
if (lapcounter = 5)
|
|
|
|
{
|
|
ToolTip, [LAP: 06][PITSTOPS: 0] 07.11 // Hairpin - turn right 5700 70 - SLEEP 2400, 25, 250, Screen
|
|
Accel_On(55)
|
|
Turn_Right(5700,70)
|
|
;Sleep(2400)
|
|
ToolTip, [LAP: 06][PITSTOPS: 0] 07.12 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 07 TIMINGS
|
|
if (lapcounter = 6) {
|
|
ToolTip, [LAP: 07][PITSTOPS: 1] 07.13 // Hairpin - turn right 5700 70, 25, 250, Screen
|
|
Accel_On(55)
|
|
Turn_Right(5700,70)
|
|
ToolTip, [LAP: 07][PITSTOPS: 1] 07.14 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 08 TIMINGS
|
|
if (lapcounter = 7) {
|
|
ToolTip, [LAP: 08][PITSTOPS: 1] 07.15 // Hairpin - turn right 5700 70, 25, 250, Screen
|
|
Accel_On(55)
|
|
Turn_Right(5700,70)
|
|
ToolTip, [LAP: 08][PITSTOPS: 1] 07.16 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
; // LAP 09 TIMINGS
|
|
if (lapcounter = 8) {
|
|
ToolTip, [LAP: 09][PITSTOPS: 1] 07.17 // Hairpin - turn right 5700 70 - SLEEP 800, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
ToolTip, [LAP: 09][PITSTOPS: 1] 07.18 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
;Sleep(800)
|
|
|
|
Accel_On(55)
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 10 TIMINGS
|
|
if (lapcounter = 9) {
|
|
ToolTip, [LAP: 10][PITSTOPS: 1] 07.19 // Hairpin - turn right 5700 70 - SLEEP 1500, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
;Sleep(1500)
|
|
ToolTip, [LAP: 10][PITSTOPS: 1] 07.20 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 11 TIMINGS
|
|
if (lapcounter = 10) {
|
|
ToolTip, [LAP: 11][PITSTOPS: 1] 07.21 // Hairpin - turn right 5700 70 - SLEEP 2000, 25, 250, Screen
|
|
Turn_Right(5700,70)
|
|
;Sleep(2000)
|
|
ToolTip, [LAP: 11][PITSTOPS: 1] 07.22 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
|
|
Accel_On(55)
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
}
|
|
|
|
; // LAP 12 TIMINGS
|
|
if (lapcounter = 11) {
|
|
ToolTip, [LAP: 12][PITSTOPS: 1] 07.23 // Hairpin - turn right 5700 70 - SLEEP 2400, 25, 250, Screen
|
|
Accel_On(55)
|
|
Turn_Right(5700,70)
|
|
;Sleep(2400)
|
|
ToolTip, [LAP: 12][PITSTOPS: 1] 07.24 // Hairpin - turn right 12000 65, 25, 250, Screen
|
|
|
|
Turn_Right(6000,65)
|
|
Accel_On(100)
|
|
Turn_Right(6000,65)
|
|
|
|
;OLD
|
|
;Turn_Right(12000,65)
|
|
|
|
; // DRIVE IT HOME BABY
|
|
Turn_Right(30000,65)
|
|
}
|
|
|
|
;----------------------------------------------------------------------
|
|
; 08 // LOOKING FOR HAIRPIN -2-
|
|
;----------------------------------------------------------------------
|
|
|
|
ToolTip, 08.1 // Looking for hairpin -2-, 25, 250, Screen
|
|
loop
|
|
{
|
|
|
|
tc := BitGrab(hairpinX, hairpinY,2)
|
|
|
|
for i, c in tc
|
|
{
|
|
td := Distance(c, color_player)
|
|
if (td < 20 ){
|
|
hairpin_complete := true
|
|
hairpinCount += 1
|
|
ToolTip, 08.2 // Hairpin Found, 25, 250, Screen
|
|
break
|
|
}
|
|
}
|
|
|
|
;Turn_Left(300, 30)
|
|
if( hairpinCount = 2 )
|
|
break
|
|
Sleep(100)
|
|
}
|
|
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
hairpinCount := 0
|
|
|
|
;----------------------------------------------------------------------
|
|
; 09 // IF HAIRPIN -2- FOUND:
|
|
; 09 // START CHECK FOR LAPCOUNTER FOR PIT, IF TRUE START PIT ROUTINE
|
|
; 09 // ELSE SETUP FORCED PEN TRIGGER
|
|
;----------------------------------------------------------------------
|
|
|
|
Turn_Left(1000, 40)
|
|
;Turn_Right(300,65)
|
|
|
|
if (pitlap = lapcounter){
|
|
controller.Axes.LX.SetState(35)
|
|
|
|
ToolTip, [LAP: 02+][PITSTOPS: 0] 09.1 // Pitstop starting, 25, 250, Screen
|
|
Turn_Right(1000, 60)
|
|
controller.Axes.LX.SetState(40)
|
|
Sleep (5000)
|
|
controller.Axes.LX.SetState(0)
|
|
Sleep (20000)
|
|
Press_Up()
|
|
Sleep (100)
|
|
|
|
if (tires = 0) {
|
|
; // RACING HARD
|
|
ToolTip, 09.2 // CHANGING TO RACING HARD, 25, 250, Screen
|
|
loop, 5{
|
|
Press_Left()
|
|
}
|
|
}
|
|
|
|
if (tires = 1) {
|
|
; // INTERMEDIATES
|
|
ToolTip, 09.3 // CHANGING TO INTERMEDIATES, 25, 250, Screen
|
|
Press_Right()
|
|
}
|
|
|
|
Press_X()
|
|
|
|
|
|
; REFILL
|
|
;Press_Down()
|
|
;Press_X()
|
|
controller.Axes.LX.SetState(50)
|
|
|
|
Sleep, 18000
|
|
ToolTip, [LAP: 02+][PITSTOPS: 0] 09.4 // // LEAVING PIT - TRIGGER PEN & SHIFTING TO 7TH GEAR, 25, 250, Screen
|
|
Turn_Left(3000,0)
|
|
controller.Axes.LX.SetState(20)
|
|
loop 4 {
|
|
Press_X(delay:=200)
|
|
sleep, 200
|
|
}
|
|
|
|
pitstop := 1
|
|
outlap := 1
|
|
|
|
}
|
|
else {
|
|
controller.Axes.LX.SetState(65)
|
|
|
|
/*
|
|
; //NEW PEN TRIGGER LOGIC, NEEDS TESTING/TIMINGS
|
|
Turn_Left(2000,30)
|
|
controller.Axes.LX.SetState(0)
|
|
|
|
ToolTip, 09.4 // Triggering 5 sec. penalty, 25, 250, Screen
|
|
Sleep, 3000
|
|
controller.Axes.LX.SetState(59)
|
|
Sleep, 15000
|
|
|
|
*/
|
|
|
|
; // PEN TRIGGER LOGIC (UNSTABLE)
|
|
|
|
Sleep(5000)
|
|
Turn_Left(1000, 40)
|
|
Brake_on(100)
|
|
Accel_Off()
|
|
Sleep(3000)
|
|
|
|
ToolTip, 09.5 // Triggering 5 sec. penalty, 25, 250, Screen
|
|
controller.Axes.LX.SetState(70)
|
|
Brake_off()
|
|
Nitrous_On()
|
|
Accel_On(100)
|
|
Sleep(3000)
|
|
Turn_Right(2000, 90)
|
|
Turn_Right(11000, 65)
|
|
Sleep(3000)
|
|
Nitrous_Off()
|
|
|
|
|
|
|
|
}
|
|
;----------------------------------------------------------------------
|
|
; 55 // CLOSE LOOP LAP 1-12
|
|
;----------------------------------------------------------------------
|
|
|
|
lapcounter++
|
|
|
|
}
|
|
|
|
;----------------------------------------------------------------------
|
|
; 99 // CLOSE RACE SCRIPT
|
|
;----------------------------------------------------------------------
|
|
|
|
}
|
|
EndRace_Tokyo_Def:
|