Аэродромы аэропорты РП по алфавиту - ED Forums
 


Notices

Reply
 
Thread Tools Display Modes
Old 03-10-2019, 07:39 AM   #1
yary104
Junior Member
 
yary104's Avatar
 
Join Date: Mar 2016
Posts: 3
Default Аэродромы аэропорты РП по алфавиту

Решил поместить сюда. Ибо все это делал для мустанга с его фиксированными частотами.

Сразу скажу - это не мод, это костыль. Ограничения - можно будет общаться не более чем с 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() будет выглядеть так (нейтральные аэропорты я закомментировал)

Spoiler:
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 миль.
__________________
Кто ищет - тот найдет, кто ждет - тот, @#&, дождется...
yary104 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT. The time now is 05:05 PM. vBulletin Skin by ForumMonkeys. Powered by vBulletin®.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.