/**
* G27 H-SHIFTER for MaxAim DI.
*
* Bind the H-Shifter DI entries to:
* - Extra 1 (Rear)
* - Extra 2 (1st)
* - Extra 3 (2nd)
* - Extra 4 (3rd)
* - Extra 5 (4th)
* - Extra 6 (5th)
* - Extra 7 (6th)
*
* This script will press the LB or RB button x amount of times, based on the H-Shifter position.
*
* Make sure to have the shifter into 1st gear before the race starts.
*
**/
int prev_gear, loop_gear;
main {
// Reverse
if(event_press(CEMU_EXTRA1)) {
loop_gear = loop_gear + 1 - prev_gear;
} else if(event_release(CEMU_EXTRA1)) {
prev_gear = 1;
}
// 1st Gear
if(event_press(CEMU_EXTRA2)) {
loop_gear = loop_gear + 2 - prev_gear;
} else if(event_release(CEMU_EXTRA2)) {
prev_gear = 2;
}
// 2nd Gear
if(event_press(CEMU_EXTRA3)) {
loop_gear = loop_gear + 3 - prev_gear;
} else if(event_release(CEMU_EXTRA3)) {
prev_gear = 3;
}
// 3rd Gear
if(event_press(CEMU_EXTRA4)) {
loop_gear = loop_gear + 4 - prev_gear;
} else if(event_release(CEMU_EXTRA4)) {
prev_gear = 4;
}
// 4th Gear
if(event_press(CEMU_EXTRA5)) {
loop_gear = loop_gear + 5 - prev_gear;
} else if(event_release(CEMU_EXTRA5)) {
prev_gear = 5;
}
// 5th Gear
if(event_press(CEMU_EXTRA6)) {
loop_gear = loop_gear + 6 - prev_gear;
} else if(event_release(CEMU_EXTRA6)){
prev_gear = 6;
}
// 6th Gear
if(event_press(CEMU_EXTRA7)){
loop_gear = loop_gear + 7 - prev_gear;
} else if(event_release(CEMU_EXTRA7)) {
prev_gear = 7;
}
// Press the LB or RB button to change the gear based on H-Shifter
if(!combo_running(GearUP) && !combo_running(GearDOWN)) {
if(loop_gear > 0) {
loop_gear = loop_gear - 1;
combo_run(GearUP);
} else if(loop_gear < 0) {
loop_gear = loop_gear + 1;
combo_run(GearDOWN);
}
}
}
combo GearUP {
set_val(XB1_RB, 100);
wait(50);
set_val(XB1_RB, 0);
wait(40);
set_val(XB1_RB, 0);
}
combo GearDOWN {
set_val(XB1_LB, 100);
wait(50);
set_val(XB1_LB, 0);
wait(40);
set_val(XB1_LB, 0);
}