yary104 Posted March 10, 2019 Share Posted March 10, 2019 Решил поместить сюда. Ибо все это делал для мустанга с его фиксированными частотами. Сразу скажу - это не мод, это костыль. Ограничения - можно будет общаться не более чем с 10ю аэродромами. 10ю или своими+нейтральными или только 10ю своими - как настроите в миссиях. Зато подобный костыль дает наконец возможность настроить голосовое (или скриптовое, с помощью биндинга) взаимодействие с РП по фиксированным последовательностям клавиш Существует мод для формирования списка РП по алфавиту, но он неработоспособен в версиях выше 1.5.8 (видимо, разработчики переделали функцию создания подменю и самостоятельно его поправить очень сложно, по крайней мере мне, не программисту) Однако покопавшись в нем, нашел полезное - можно приказать игре формировать список РП не по дальности, а по алфавиту Итак, игра выключена. Идем сюда: ..\(папка с игрой)\Scripts\UI\RadioCommandDialogPanel\Config\Common нужен файл ATC.lua. Сохраним его на всякий случай. Копию переименуем в ATC_old.lua, понадобится, если что-то пойдет не так В файле ищем функцию local function getATCs() закомментируем внутри нее (с помощью "--[[ " и "--]]" ) блоки строчек описывающих функции local neutralAirbases local enemyCoalition (вроде как уже закомментирована в последних версиях игры) блок local neutralAirbases можно не комментить, но тогда сумма своих и нейтральных аэропортов в миссии не должна превышать 10 если local neutralAirbases закомментировали - сумма своих аэропортов в миссии не должна превышать 10 дальше внутри local function getATCs() есть функция local function distanceSorter(lu, ru) после ее окончания вставим новую функцию - добавим строки local function callsignSorter(l, r) local lcallsign = l:getCallsign() local rcallsign = r:getCallsign() return lcallsign < rcallsign end далее ищем строчку table.sort(atcs, distanceSorter) и закомментируем ее (поставим два дефиса вначале) после этой строчки вставим свою table.sort(atcs, callsignSorter) В итоге в файле функция local function getATCs() будет выглядеть так (нейтральные аэропорты я закомментировал) local function getATCs() local atcs = {} --[[ local neutralAirbases = coalition.getServiceProviders(coalition.side.NEUTRAL, coalition.service.ATC) for i, airbase in pairs(neutralAirbases) do table.insert(atcs, airbase) end --]] local selfCoalition = data.pUnit:getCoalition() local ourAirbases = coalition.getServiceProviders(selfCoalition, coalition.service.ATC) for i, airbase in pairs(ourAirbases) do table.insert(atcs, airbase) end --[[ local enemyCoalition = selfCoalition == coalition.RED and coalition.BLUE or coalition.RED local ourAirbases = coalition.getServiceProviders(enemycoalition. coalition.service.ATC) --print("ourAirbases size = "..table.getn(ourAirbases)) for i, airbase in pairs(ourAirbases) do if filterAirbaseType(atc) then table.insert(atcs, airbase) end end --]] local selfPoint = data.pUnit:getPosition().p local function distanceSorter(lu, ru) local lpoint = lu:getPoint() local ldist2 = (lpoint.x - selfPoint.x) * (lpoint.x - selfPoint.x) + (lpoint.z - selfPoint.z) * (lpoint.z - selfPoint.z) local rpoint = ru:getPoint() local rdist2 = (rpoint.x - selfPoint.x) * (rpoint.x - selfPoint.x) + (rpoint.z - selfPoint.z) * (rpoint.z - selfPoint.z) return ldist2 < rdist2 end local function callsignSorter(l, r) local lcallsign = l:getCallsign() local rcallsign = r:getCallsign() return lcallsign < rcallsign end --table.sort(atcs, distanceSorter) table.sort(atcs, callsignSorter) return atcs end ================================= Больше ничего в файле править не нужно В редакторе миссий при создании/редактировании озаботимся "раскраской" аэродромов - выставим или не более 10 своих+нейтральных (блок функции local neutralAirbases не закомментирован) или не более 10 своих (закомментирован) Миссии быстрого старта придется переделывать отдельно. Ну, если вы хотите их оставить для себя и вы смирились с идеей не более 10и аэродромов для общения. В результате во всей игре список РП (он же по аглицки АТС) будет по алфавиту и либо только из аэропортов своей коалиции, либо из своих и нейтральных Конечно, это удобно далеко не всегда. Аэропортов то много. Вот удобно для мустанга - с его 4мя фиксированными частотами. У меня выставлены - связь с ведомым, аэродром прибытия, аэродром промежуточный (запасной), аэродром отправки. Остальные я вообще перевел в нейтральные и закомментил в файле получение их списка. Для возможности сортировки аэродромов по дальности придется дефолтный ATC.lua возвращать назад Интегрирование поправленного ATC.lua в миссию (со всеми путями) - к сожалению ЭФФЕКТА НЕ ДАЕТ (или я как-то неправильно старался). Обидно, да. ================================== Для мустанга (а, может, и для всех ЛА) и далеких аэродромов можно читернуть - увеличить мощность бортовой радиостанции в каталоге игры нам сюда (для мустанга, для других ЛА - по аналогии) ..\Mods\aircraft\P-51D\Cockpit\Scripts\VHF_Radio_SCR522A файл radio.lua правим первую и последнюю строчки в приведенном ниже блоке. В первой вместо 4Е-6 ставим 1Е-7, в последней вместо 10.0 ставим 99.0 innerNoise = getInnerNoise(1E-7, 10)--V/m (dB S+N/N) frequency_accuracy = 2000.0 --Hz band_width = 12E3 --Hz (6 dB selectivity) power = 99.0 --Wt Это сильно увеличит дальнобойность нашей радиостанции. Сможем брать прибои за 150 миль. Кто ищет - тот найдет, кто ждет - тот, @#&, дождется... Link to comment Share on other sites More sharing options...
Recommended Posts