Назначение:
Симуляция простых отказов на самолетах малой авиации (с «большими и тяжелыми» скрипт тоже работает, но не тестировался и потому пока не обсуждается).
Целевая аудитория:
Опытные симмеры с прямыми руками, понимающие общее устройство симулятора (FSX), умеющие и готовые вручную править конфиги.
Технические требования:
- FSX SP2/Accel
- FSUIPC, зарегистрированный, версии не ниже 4.75 и не выше 4.80 (4.82 и выше глючные пока, баг будет исправлен в версии 4.86)
- LINDA или любая другая удобная для вас программа для просмотра логов FSUIPC (например, FAR). Notepad не подойдет, потому как не видно будет текущих обновлений файла.
Тестирование:
Обращаю внимание, что сейчас мы говорим о ТЕСТИРОВАНИИ, а не о реальном использовании. В данный момент настройки скрипта сделаны так, чтобы отказы наступали чаще и быстрее, поэтому не рекомендую пытаться использовать скрипт в «реальных» условиях. Тестируем, а не балуемся. В целях тестирования скрипт в явном виде оповещает обо ВСЕХ возникших неполадках. В логах fsuipc4.log также содержится информация о планируемом сценарии поломки и нарастании счетчиков износа/повреждения.
Установка:
- Скачать архив http://dl.dropbox.co…ubles-v0.1a.zip
- Распаковать в FSX/Modules
- Если у вас есть там файл ipcReady.lua, добавить в него строку ipc.runlua(«troubles») или заменить тем, что из архива
- Запустить FSX, выбрать дефолтную Цессну 172, загрузить полет и проверить содержание логов — там должен быть отчет о запуске FS-Troubles и никаких ошибок. Выглядит это примерно так:
FS-TROUBLES: ------------------------------------------ FS-TROUBLES: Initializing... FS-TROUBLES: ------------------------------------------ FS-TROUBLES: Wheels troubles finished... FS-TROUBLES: Aircraft: Cessna Skyhawk 172SP Paint3 FS-TROUBLES: Air file: \BAGHIRAHGamesFSXSimObjectsAirplanesC172Cessna172SP.AIR FS-TROUBLES: Aircraft module detected: Cessna 172 FS-TROUBLES: Loading libs... FS-TROUBLES: BlackBox library loaded... ENABLED FS-TROUBLES: FlightLog library loaded... ENABLED FS-TROUBLES: Icing library loaded... ENABLED FS-TROUBLES: Overstress library loaded... ENABLED FS-TROUBLES: Overstress >> Flaps damage scenario: 1 l/r=1 chance=0.47 FS-TROUBLES: Overstress >> Tires damage scenario: nose chance=0.31 main chance=0.55 main l/r=2 FS-TROUBLES: ------------------------ FS-TROUBLES: BlackBox data load >>>>> FS-TROUBLES: ------------------------ FS-TROUBLES: Flaps dmg=0 FS-TROUBLES: Gears nose dmg=0 FS-TROUBLES: Gears main dmg=0 FS-TROUBLES: Tires nose dmg=0 FS-TROUBLES: Tires main dmg=0 FS-TROUBLES: ------------------------ FS-TROUBLES: >>>>> Ready to go! <<<<<<
- Если в логах порядок, можно попробовать полетать.
Настройка:
Общие настройки находятся в файле FSX/Modules/troubles/aircrafts/FSX Default/config.lua — эти настройки применяются для любого неопознанного самолета (т.е. это и есть настройки по умолчанию). Поскольку самолеты бывают разные, по умолчанию некоторые модули в скрипте отключены и их нужно включать вручную для нужного вам самолета.
Расшифровка общих настроек:
-- initial payload stations weight payload_station[0] = 200 -- вес загрузки в фунтах на первых двух станциях, который будет payload_station[1] = 200 -- установлен после загрузки самолета, необходимый параметр ------------------------------------------------- -- BLACKBOX ------------------------------------------------- blackbox_enabled = false -- (true/false) модуль сохранения и накопления повреждений -- от полета к полету ------------------------------------------------- -- FLIGHTLOG ------------------------------------------------- flightlog_enabled = false -- журнал полетов - полеты, посадки, возникшие повреждения ------------------------------------------------- -- ICING SIMULATION ------------------------------------------------- icing_enabled = true -- модуль обледенения -- интенсивность обледенения (от 0 до бесконечности, 100 - это уже много) icing_strength = 100 -- нырок при выпуске или уборке закрылков icing_flaps_extend_dive = 1.5 -- множитель устанавливающий интенсивность клевка после выпуска закрылков, 0 - полное отключение icing_flaps_retract_dive = 1.5 -- интенсивность клевка после уборки закрылков icing_dive_recovery = 60 -- скорость выхода из клевка (эффект клевка постепенно уменьшается, чем больше это число, тем короче клевок во времени) ------------------------------------------------- -- OVERSPEED/OVER-G SIMULATION ------------------------------------------------- overstress_enabled = false -- модуль учета износа и перегрузки планера, шасси flaps_reliability = 40 -- надежность закрылков, чем больше число, тем дольше ломать -- сценарии повреждений - на некоторых самолетах в силу их устройства -- закрылки не может заклинить, на других - может и заклинить и сорвать в нулевое положение flaps_break_chance = 70 -- вероятность срыва в ноль (в процентах) flaps_lockup_chance = 70 -- вероятность заклинивания (в процентах) -- скорости на разых позициях закрылков, в узлах flaps_speed[0] = 150 -- чистое крыло flaps_speed[1] = 110 -- первая позиция flaps_speed[2] = 100 flaps_speed[3] = 90 -- надежность шасси - влияет на прочность стоек и колес -- больше число - дольше ломать gears_reliability = 40 -- направление ВЫПУСКА шасси - влияет на интенсивность повреждения на этапах выпуска-уборки -- 1 - выпуск в сторону носа -- 2 - выпуск в сторону хвоста -- 3 - выпуск в сторону gears_nose_dir = 2 gears_main_dir = 1 -- максимальные скорости для шасси gears_vlo = 120 -- безопасная скорость уборки/выпуска gears_vle = 180 -- безопасная скорость полета с выпущенными шасси gears_ground = 130 -- безопасная скорость по земле ------------------------------------------------- -- ACCUFEEL INTEGRATION ------------------------------------------------- accufeel_enabled = true -- интеграция с движком AccuFeel, у кого он установлен
Конфиги под отдельный конкретный самолет выглядят проще, поскольку большая часть параметров наследуется из дефолта. Например, так:
-- название папки, в которой находится модель - полное имя директории -- или уникальная подстрока из него, например - "337" simfolder="Carenado Skymaster 337" ------------------------------------------------- -- BLACKBOX ------------------------------------------------- blackbox_enabled = true -- включен черный ящик ------------------------------------------------- -- FLIGHTLOG ------------------------------------------------- flightlog_enabled = true -- включен журнал ------------------------------------------------- -- ICING SIMULATION ------------------------------------------------- icing_enabled = true -- включено обледенение ------------------------------------------------- -- OVERSPEED/OVER-G SIMULATION ------------------------------------------------- overstress_enabled = true -- включены "перегрузки" flaps_speed[0] = 200 -- установлены допустимые скорости для закрылков flaps_speed[1] = 140 flaps_speed[2] = 122 flaps_speed[3] = 109 -- gears type gears_nose_dir = 2 -- установлены направления выпуска стоек шасси gears_main_dir = 1 -- max speeds gears_vlo = 140 -- установлены предельные скорости для шасси gears_vle = 200 gears_ground = 130
… вот и весь конфиг — все просто.
Соответственно, чтобы настроить скрипт на работу с каким-то вашим самолетом нужно:
- Сдеалать копию директории _Template (FSX/Modules/troubles/aircrafts/_Template) со всем ее содержимым
- Внятно назвать новую папку — допустим, «Carenado C185»
- Отредактировать файл config.lua в новой папке на предмет настроек соответствующих данному самолету, ненужные настройки можно удалить
- Все, с этого момента скрипт будет распознавать загрузку этого самолета и устанавливать для него индивидуальные настройки.
———————————
Моделируемые отказы и видимые эффекты:
Обледенение:
- Определяется по погодным условиям, нарастает постепенно в зависимости от интенсивности обледенения
- Проявляется в виде тряски органов управления, всего самолета (если установлен AccuFeel), постепенного увода органов управления и клевков возникающих после уборки/выпуска закрылков.
- Эффект исчезает постепенно в случае выхода из зоны обледенения
- Эффект исчезает мгновенное, в случае включения системы ПОС поверхности крыла
Поломки закрылков:
- Определяются по скорости полета и установленным пределам в конфигах, так же учитывается текущая перегрузка
- Проявляется тряской и визуально наблюдаемым смещением позиций закрылков
- Возможные эффекты — блокировка или срыв в нулевое положение одного или обоих закрылков
- Исправляется «ремонтом»
Поломки шасси:
- Определяются по скорости полета и установленным пределам, с учетом стадии выпуска, направления выпуска и текущей перегрузки. Так же рассчитывается сила удара при посадке, что тоже может привести к отказу.
- Проявляется тряской при превышении скорости
- Возможные эффекты — блокировка отдельной стойки в промежуточном положении, невыход стойки на заходе, подлом стойки в момент посадки
- Исправляется «ремонтом»
Поломки колес:
- Определяются по степени износа резины и превышению разрешенной скорости или предельной массы самолета, так же учитываются дополнительные нагрузки при посадке
- Проявляется тряской при движении по земле и уводом в сторону лопнувшего колеса
- Лопнуть может любое колесо или все сразу — как повезет.
Прочие фичи:
- Эффективность тормозов зависит от состояния поверхности
- После посадки выдается сообщение о вертикальной скорости и перегрузке в момент касания
- После постановки самолета на парковку (двигатель выключен, электроника выключена, парковочный тормоз) происходит автоматическое сохранение полета — потом можно будет загрузить с этого же места
Ремонт:
- Полный ремонт по вызову функции FSX «REPAIR_AND_REFUEL» — можно установить на кнопку джойстика в настройках FSUIPC
- При постановке самолета на парковку (двигатель выключен, электроника выключена, парковочный тормоз) происходит автоматическое уменьшение всех счетчиков износа в два раза
————————————
Рекомендации по тестированию:
- На случай тестирования обледенения необходимо явно указывать уровень обледенения в конкретном слое облачности. Кроме того, скрипт учитывает температуру воздуха и имеющиеся осадки. Дождь при температуре от 0 до -5 создаст наиболее интенсивные условия обледенения
- На какую-нибудь кнопку джойстика имеет смысл повесить функцию «Lua Troubles» в настройках FSUIPC на закладке Buttons & Switches. Нажатие этой кнопки будет приводить к перезапуску скрипта (БЕЗ ОБНУЛЕНИЯ счетчиков износа или уровня обледенения)
- На какую-нибудь кнопку джойстика имеет смысл повесить функцию «Repair And Refuel» — она будет приводить к мгновенному сбросу всех счетчиков и сгенерированных повреждений
- Во время тестовых полетов рекомендуется открыть консоль в LINDA или любой другой просмотр логов FSUIPC (fsuipc4.log) — с обновлением в реальном времени. Там будет видно, что происходит с самолетом и как нарастают счетчики повреждений.
————————————
Имеющиеся баги и свойства (пополняемый список):
- При проигрывании полета в FS-Recorder скрипт считает, что происходит обычный полет и продолжает вести рассчет износа и повреждений. Будет исправлено с выходом следующей версии рекордера.
Сообщение отредактировано crum: 25 April 2012 — 16:14
Если кто читает невнимательно, еще раз обращаю внимание: в данный момент, скрипт находится на стадии первичного тестирования альфа версии, поэтому не ждите, что у вас все сразу заработает и залетает. Вероятнее всего придется столкнуться с теми или иными неполадками или нестыковками.
Если что-то будет не получаться, задавать вопросы и писать баг-репорты прямо в этой теме. К запросу обязательно прикладывать информацию об установленной версии FSUIPC, совершенных действиях, модели самолета и условиях полета, также обязательно предоставить содержимое fsuipc4.log (не забывайте засунуть его под спойлер).
Также рекомендую обратить внимание на соседнюю ветку: http://www.avsim.su/…nal-razrabotki/ — там обсуждается идеология проекта и вопросы дальнейшей разработки.
Сообщение отредактировано crum: 25 April 2012 — 14:33
Зажравшиесяутомленные простотой сима симмеры, а так жебестолочиначинающие,прущиесадящиеся наБоингсерьезные крафты безо всякой подготовки…Та пипец…Конечно!!!Сообщение отредактировано Enzzo: 25 April 2012 — 15:12
Не забудьте обновить FSUIPC до последней версии.
Сообщение отредактировано crum: 25 April 2012 — 16:59
Перекачать и распаковать с заменой всех файлов.
Ссылка та же: http://dl.dropbox.co…ubles-v0.1a.zip
Отловлены и прихлопнуты еще несколько багов.
Ссылка та же…
А то заинтересованных вроде много было, но тишина почему-то.
Продолжать дело-то?
Мне лично уже и в таком виде хватает.. так что дальнейшее развитие только по результатам тестирования.
Если что-то не получается, не запускается или просто не понятно — спрашивайте.
Заботы из серии — «мечта симмера»
Успехов в разруливании.
Спасибо.
Вот она — где реальность!
Пришлось добавить эти параметры, поскольку скрипт использует загрузку в качестве способа снизить подъемную силу в случае обледенения. Глючить с FSP оно будет в том случае, если загрузка установленная в FSP не будет соответствовать прописанной в скрипте. В будущем, если продолжать развивать скрипт, можно будет это как-то подправить, но пока оно так.
Подгонять под крафты надо для того, чтобы работал модуль перегрузки — там нужно выставить предельные скорости для разных позиций закрылков, скорости для шасси и направление выпуска/уборки шасси.
Илья, не надо пока. Мы пойдем другим путем…
Не приплюсуются — заменятся. Т.е. если FSP на вторую станцию пропишет 170 фунтов, а в скрипте указано 200, то скрипт заменит 170 на 200 (но может еще и глюканет что-то — не тестировал такую ситуацию).
Если позиций закрылков в крафте больше, в config.lua добавить можно?
Сообщение отредактировано Enzzo: 15 May 2012 — 19:17
Надо только учитывать, что например на NGX первая и вторая погрузочные точки — это не места пилотов, а первый и второй салоны, соответственно вес там надо устанавливать гораздо больший. Ну и на других самолетах имеет смысл глянуть, что у них на первых двух точках по умолчанию стоит.
Собственно, каренадовскую 172-ю настроил так:
P.S. Сделал полет, но не нашел лога и черного ящика. В папке с config.lua их не появилось.
Ага! Вот такая ошибка в логе фсупика:
1261954 LUA: beginning «E:Microsoft Flight Simulator XModulesipcReady.lua»
1261970 LUA: ended «E:Microsoft Flight Simulator XModulesipcReady.lua»
1261986 *** LUA Error: E:Microsoft Flight Simulator XModulestroubles.lua:1171: attempt to call field ‘terminate’ (a nil value)
Сообщение отредактировано Enzzo: 17 May 2012 — 09:08