Files
GT7-Scripts/bnowakow/old versions/3 GT7-AHK/GT7-AHKv1.00.12_test/Races/Tokyo.ahk
2022-04-18 17:10:10 +02:00

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: