Вроде понял, как сделать фантома. Но почему-то результат не сходится, за 7-минутный полет набегает ошибка метров 20.
Солюшен :D Заходим в ЛО, создаем сервер, летаем чего хотим, записываем трек.
Прописываем в modeltimer.lua
TraceOn = true
TraceCommandsDiscreteOn = true
TraceCommandsAnalogOn = true
Запускаем проигрывание трека только что записанного с сервера.
В Temp появляется файл TrackPlay.log
Обрабатываем скриптом типа такого
while (<>)
{
if (m/activity: 30.+ T:(.+?) C:(\d+?)\(.*\)/)
{
$t=$1; $c=$2;
if (m/V:(.+?)$/) {print "$t $c $1\n"} else {print "$t $c 100\n"};
}
}
на вход даем TrackPlay.log, выход направляем в mtrack в папке Temp.
Возвращаем modeltimer.lua в исходное состояние, а export.lua подменяем на такой
function LuaExportStart()
local file = io.open("./Temp/mtrack", "r")
if file then
io.input(file)
end
cmnd = 1
cvalue = 0
end
function LuaExportBeforeNextFrame()
end
function LuaExportAfterNextFrame()
end
function LuaExportStop()
io.close()
end
function LuaExportActivityNextEvent(t)
local tNext = t
local s = io.read()
if cvalue < 100 then
LoSetCommand(cmnd, cvalue)
else
LoSetCommand(cmnd)
end
_, _, mt, cmnd, cvalue = string.find(s, "(-*%d+.%d+) (%d+) (-*%d+.*%d+)")
mt = tonumber(mt)
cmnd = tonumber(cmnd)
cvalue = tonumber(cvalue)
tNext = mt
return tNext
end
Снова запускаем ЛО в режиме сервера и выбираем ту же миссию и тот же самолет.
Вопрос: Почему такой "трек" не сходится?
Сам долго не разбирался (пару часов), может быть упустил чего-нить.