diff options
Diffstat (limited to 'scripts/gear.lua')
-rw-r--r-- | scripts/gear.lua | 350 |
1 files changed, 175 insertions, 175 deletions
diff --git a/scripts/gear.lua b/scripts/gear.lua index 54649d6..bcf0361 100644 --- a/scripts/gear.lua +++ b/scripts/gear.lua @@ -1,176 +1,176 @@ --- SLIMax Mgr Lua Script v3.2.1
--- Copyright (c)2012-2013 by Zappadoc - All Rights Reserved.
--- gear event
--- last change by Zappadoc - 2013-09
-
-function Ignition(gear, isFanatec)
- -- ========================================================================================
- -- IGNITION
- -- patch led function damage for ignition
- -- check if sim is rFactor2
- if GetContextInfo("simulation") == "rFactor2.exe" then
- if GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then
- if GetCarInfo("ignition") == 0 then
- -- engine has been stopped
- -- engine has been stopped
- -- do nothing
-
-
- elseif GetCarInfo("ignition") == 1 then
- -- ignition ON after engine stop
- -- engine has been stopped, ignition ON
-
- SetDigitsAllowed(false)
- if isFanatec == true then
- SetFanatecDigits(" ")
- else
- SetLeftDigits (" ")
- SetRightDigits (" ")
- end
-
- SetGearDigit("_")
-
- -- init led
- toggleAllLed(0)
-
- -- blink damage led
- if mOLDIgnitionticks == nil or GetTicks() > mOLDIgnitionticks then
- mOLDIgnitionticks = GetTicks() + 1000
- initLedTable(mRPMLedTable, 1)
-
- SetWarnLed(GetLedIndex("damage"), 1)
-
- else
- initLedTable(mRPMLedTable, 0)
- SetWarnLed(GetLedIndex("damage"), 0)
- end
- SetRPMLed("mRPMLedTable")
- SLISendReport()
- return 1
-
- elseif GetCarInfo("ignition") == 2 and GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then
- -- ignition ON and starter ON
- -- engine has been stopped, ignition ON + Starter ON
-
- SetGearDigit("-")
- SetDigitsAllowed(true)
- -- stop blinking
- initLedTable(mRPMLedTable, 1)
- SetWarnLed(GetLedIndex("damage"), 1)
- SetRPMLed("mRPMLedTable")
- SLISendReport()
- return 1
- end
- end
- end
- return 2
-end
-
--- SIM RACE Deluxe, SIM RACE F1, SLI-M, SLI-PRO Gear Event
-function gearEvent(gear)
- -- get the rpm limit already computed by my OSP method
- -- using OSP Factor parameter
- -- value used in OSP, Shiftlights, car setup,... and can be overwritten
- gOSPLimit = 0
- gOSPLimit = GetContextInfo("osplimitrpm")
- if gOSPLimit == nil then gOSPLimit = 0 end
-
- -- get the red zone already computed by my SLIMax Mgr II
- -- value used in Shiftlights and can be overwritten
- gRedZone = 0
- gRedZone = GetCarInfo("redzone")
- if gRedZone == nil then gRedZone = 18000 end
-
- -- call custom script
- local result = custom_gearEvent(gear)
- if result <= 1 then return result end
-
- -- call global custom script
- result = global_custom_gearEvent(gear)
- if result <= 1 then return result end
-
- -- ignition
- if Ignition(gear, false) <= 1 then return 1 end
-
- local g = gear
- if oldGear == nil then oldGear = -1 end
-
- -- get neutral
- local n = GetContextInfo("neutral")
- -- get reverse char and convert to string
- local r = string.char(GetContextInfo("reverse"))
- -- get state of custom Optimal Shift Point (OSP) records
- local ospcustom_on = GetContextInfo("ospcustom")
-
- -- optimize display, call if changed
- if oldGear ~= g then
- -- backup gear state
- oldGear = g
- -- set neutral, reverse or current gear
- if g == 0 then
- -- if neutral and using custom OSP record then add a dot to gear digit
- if ospcustom_on then n = n + 128 end
- SetGearDigit(string.char(n))
- elseif g < 0 then
- SetGearDigit(r)
- else
- -- if gear = 'E' give the hand to SLIMax Manager
- if g == 69 then
- return 0
- end
- SetGearDigit(string.char(g))
- end
- end
-
- return 1
-end
-
-
--- Fanatec Gear Event
-function gearFanatecEvent(gear)
- -- get the rpm limit already computed by my OSP method
- -- using OSP Factor parameter
- -- value used in OSP, Shiftlights, car setup,... and can be overwritten
- gOSPLimit = 0
- gOSPLimit = GetContextInfo("osplimitrpm")
- if gOSPLimit == nil then gOSPLimit = 0 end
-
- -- get the red zone already computed by my SLIMax Mgr
- -- value used in Shiftlights and can be overwritten
- gRedZone = 0
- gRedZone = GetCarInfo("redzone")
- if gRedZone == nil then gRedZone = 18000 end
-
- -- call custom script
- local result = custom_gearFanatecEvent(gear)
- if result <= 1 then return result end
-
- -- call global custom script
- result = global_custom_gearFanatecEvent(gear)
- if result <= 1 then return result end
-
- -- ignition
- if Ignition(gear, true) <= 1 then return 1 end
-
- local g = gear
- if oldGear == nil then oldGear = -1 end
-
- if oldGear ~= g then
- local rumbbleGear = GetContextInfo("gearshock")
- local rumbbleGearDelay = GetContextInfo("gearshockdelay")
-
- -- gear schock effect restricted to 1 to 7
- if rumbbleGear and g > 0 then
- if g < oldGear then
- SetFanatecWheelMotor(0, 100, rumbbleGearDelay)
- elseif g > oldGear then
- SetFanatecWheelMotor(1, 100, rumbbleGearDelay)
- end
- end
-
- -- backup gear state
- oldGear = g
- end
-
- return 2
+-- SLIMax Mgr Lua Script v3.2.1 +-- Copyright (c)2012-2013 by Zappadoc - All Rights Reserved. +-- gear event +-- last change by Zappadoc - 2013-09 + +function Ignition(gear, isFanatec) + -- ======================================================================================== + -- IGNITION + -- patch led function damage for ignition + -- check if sim is rFactor2 + if GetContextInfo("simulation") == "rFactor2.exe" then + if GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then + if GetCarInfo("ignition") == 0 then + -- engine has been stopped + -- engine has been stopped + -- do nothing + + + elseif GetCarInfo("ignition") == 1 then + -- ignition ON after engine stop + -- engine has been stopped, ignition ON + + SetDigitsAllowed(false) + if isFanatec == true then + SetFanatecDigits(" ") + else + SetLeftDigits (" ") + SetRightDigits (" ") + end + + SetGearDigit("_") + + -- init led + toggleAllLed(0) + + -- blink damage led + if mOLDIgnitionticks == nil or GetTicks() > mOLDIgnitionticks then + mOLDIgnitionticks = GetTicks() + 1000 + initLedTable(mRPMLedTable, 1) + + SetWarnLed(GetLedIndex("damage"), 1) + + else + initLedTable(mRPMLedTable, 0) + SetWarnLed(GetLedIndex("damage"), 0) + end + SetRPMLed("mRPMLedTable") + SLISendReport() + return 1 + + elseif GetCarInfo("ignition") == 2 and GetCarInfo("rpm") == 0 and GetCarInfo("rawspeed") == 0 then + -- ignition ON and starter ON + -- engine has been stopped, ignition ON + Starter ON + + SetGearDigit("-") + SetDigitsAllowed(true) + -- stop blinking + initLedTable(mRPMLedTable, 1) + SetWarnLed(GetLedIndex("damage"), 1) + SetRPMLed("mRPMLedTable") + SLISendReport() + return 1 + end + end + end + return 2 +end + +-- SIM RACE Deluxe, SIM RACE F1, SLI-M, SLI-PRO Gear Event +function gearEvent(gear) + -- get the rpm limit already computed by my OSP method + -- using OSP Factor parameter + -- value used in OSP, Shiftlights, car setup,... and can be overwritten + gOSPLimit = 0 + gOSPLimit = GetContextInfo("osplimitrpm") + if gOSPLimit == nil then gOSPLimit = 0 end + + -- get the red zone already computed by my SLIMax Mgr II + -- value used in Shiftlights and can be overwritten + gRedZone = 0 + gRedZone = GetCarInfo("redzone") + if gRedZone == nil then gRedZone = 18000 end + + -- call custom script + local result = custom_gearEvent(gear) + if result <= 1 then return result end + + -- call global custom script + result = global_custom_gearEvent(gear) + if result <= 1 then return result end + + -- ignition + if Ignition(gear, false) <= 1 then return 1 end + + local g = gear + if oldGear == nil then oldGear = -1 end + + -- get neutral + local n = GetContextInfo("neutral") + -- get reverse char and convert to string + local r = string.char(GetContextInfo("reverse")) + -- get state of custom Optimal Shift Point (OSP) records + local ospcustom_on = GetContextInfo("ospcustom") + + -- optimize display, call if changed + if oldGear ~= g then + -- backup gear state + oldGear = g + -- set neutral, reverse or current gear + if g == 0 then + -- if neutral and using custom OSP record then add a dot to gear digit + if ospcustom_on then n = n + 128 end + SetGearDigit(string.char(n)) + elseif g < 0 then + SetGearDigit(r) + else + -- if gear = 'E' give the hand to SLIMax Manager + if g == 69 then + return 0 + end + SetGearDigit(string.char(g)) + end + end + + return 1 +end + + +-- Fanatec Gear Event +function gearFanatecEvent(gear) + -- get the rpm limit already computed by my OSP method + -- using OSP Factor parameter + -- value used in OSP, Shiftlights, car setup,... and can be overwritten + gOSPLimit = 0 + gOSPLimit = GetContextInfo("osplimitrpm") + if gOSPLimit == nil then gOSPLimit = 0 end + + -- get the red zone already computed by my SLIMax Mgr + -- value used in Shiftlights and can be overwritten + gRedZone = 0 + gRedZone = GetCarInfo("redzone") + if gRedZone == nil then gRedZone = 18000 end + + -- call custom script + local result = custom_gearFanatecEvent(gear) + if result <= 1 then return result end + + -- call global custom script + result = global_custom_gearFanatecEvent(gear) + if result <= 1 then return result end + + -- ignition + if Ignition(gear, true) <= 1 then return 1 end + + local g = gear + if oldGear == nil then oldGear = -1 end + + if oldGear ~= g then + local rumbbleGear = GetContextInfo("gearshock") + local rumbbleGearDelay = GetContextInfo("gearshockdelay") + + -- gear schock effect restricted to 1 to 7 + if rumbbleGear and g > 0 then + if g < oldGear then + SetFanatecWheelMotor(0, 100, rumbbleGearDelay) + elseif g > oldGear then + SetFanatecWheelMotor(1, 100, rumbbleGearDelay) + end + end + + -- backup gear state + oldGear = g + end + + return 2 end
\ No newline at end of file |