Im WorldFlight habe ich bemerkt, dass die Simulator Variablen für ATC ID und ATC AIRLINE geleert werden, wenn der Simulator die Verbindung zur Microsoft Cloud verliert.
Das kann zu ärgerlichen Effekten führen, da ich diese beiden Variablen u.a. für mein DATALOADER Display verwende.
Daher habe ich ein kleines LUA Script geschrieben, welches die beiden Variablen wieder setzt, wenn sie aus irgendeinem Grund „leer“ sind.
Das Script kann man allein laufen lassen oder in eine bestehende LUA einbinden. Ich würde die RefreshRate nicht kleiner als 3 Sekunden setzen, da das füllen der Variablen ja kein wichtiger Prozess ist.
local logging = 1
local lastfltnbr = ""
local lastairline = ""
local airline = ""
local refreshRate = 5000
function log(message)
if (logging==1) then ipc.log(os.date("%Y-%m-%d %H:%M:%S")..": "..message) end
end
function fixAircraftData()
-- Read current values
fltnbr = ipc.readSTR(0x313C, 12):gsub("%z.*", "")
airline = ipc.readSTR(0x3148, 24):gsub("%z.*", "")
-- ATC ID
if (fltnbr~="") then
if (fltnbr~=lastfltnbr) then
lastfltnbr=fltnbr
log("Found new ATC-ID: "..lastfltnbr)
end
else
log("Empty ATC-ID detected.")
if (lastfltnbr~="") then
fltnbr = lastfltnbr
log("Set ATC-ID to: "..lastfltnbr)
else
fltnbr = "D-ALAM"
log("Set ATC-ID to < "..fltnbr.." > because no last ATC-ID found.")
end
ipc.writeSTR(0x313C,fltnbr)
end
-- Airline
if (airline~="") then
if (airline~=lastairline) then
lastairline=airline
log("Found new Airline: "..lastairline)
end
else
log("Empty Airline detected.")
if (lastairline~="") then
airline = lastairline
log("Set Airline to: "..lastairline)
else
airline = "LUFTHANSA"
log("Set Airline to < "..airline.." > because no last Airline found.")
end
ipc.writeSTR(0x3148,airline)
end
end
function ATtimer()
-- ipc.writeSTR(0x3148,"test")
fixAircraftData()
end
event.timer(refreshRate, "ATtimer")
log("peroAircraftFixer.lua running...")