Jump to content

Помощь разработчику миссий


StarLey_Andrew

Recommended Posts

Подумалось, что при запросе по радио статуса неплохо было еще и себя выводить, чтобы можно было быстро сравнить. Ниже обновленная версия скрипта с соответствующей опцией. Было бы конечно неплохо еще в единицах массы научиться выводить топливо, а не только в процентах, но это как-нибудь потом.

MyMission = {}
MyMission.cmdReportFuelState = "Доложить статус топлива" --текст пункта меню F10
MyMission.groupName = "USN_Hornet" --имя группы, заменить на свое из миссии
MyMission.threshold = 0.4 -- остаток топлива, о котором докладывать без запроса
MyMission.msgSeconds = 20 -- время показа сообщений в секундах
MyMission.checkDelay = 10 -- время между проверками остатка топлива
MyMission.skipPlayerReport = false --Не выводить статус топлива игрока по F10 если true
MyMission.groupUnits = {} 

function MyMission:initRadioMenu()
    missionCommands.addCommand(self.cmdReportFuelState, nil,
                               self.reportFuelState, self)
end

function MyMission:initGroupUnits()
    for i, u in pairs(Group.getByName(self.groupName):getUnits()) do
        if u:getPlayerName() == nil then
            table.insert(self.groupUnits, u)
        end
    end
end

function MyMission.checkFuel(param)
    for i, u in ipairs(param.groupUnits) do      
        if u:getFuel() < param.threshold then
            param:outFuelReport(Group.getByName(param.groupName), u)
            table.remove(param.groupUnits, i)
        end
    end
    if #param.groupUnits == 0 then
        trigger.action.outText("All out of fuel", param.msgSeconds, false)
        return nil --all below threshold, end checks
    else
        return timer.getTime() + param.checkDelay
    end
end

function MyMission:outFuelReport(group, u)
    local name = u:getPlayerName()
    if name == nil then
        name = u:getName()
    end
    trigger.action.outTextForGroup(group:getID(),
                                   string.format("%s топлива %0.2f", name, u:getFuel()),
                                   self.msgSeconds, false)
end

function MyMission.reportFuelState(param)
    local group = Group.getByName(param.groupName)
    for i, u in pairs(group:getUnits()) do
        if u:getPlayerName() == nil or 
           (u:getPlayerName() ~=nil and param.skipPlayerReport == false) then
            param:outFuelReport(group, u)
        end
    end
end

timer.scheduleFunction(MyMission.checkFuel, MyMission, timer.getTime()+MyMission.checkDelay )
MyMission:initRadioMenu()
MyMission:initGroupUnits()

 

  • Like 1

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

Огромнейшее Вам спасибо, все работает!

 Было бы конечно неплохо еще в единицах массы научиться выводить топливо, а не только в процентах, но это как-нибудь потом. (с)

 

MyMission = {}
MyMission.cmdReportFuelState = "Доложить статус топлива" --текст пункта меню F10
MyMission.groupName = "USN_Hornet" --имя группы, заменить на свое из миссии
MyMission.threshold = 0.4 -- остаток топлива, о котором докладывать без запроса
MyMission.msgSeconds = 20 -- время показа сообщений в секундах
MyMission.checkDelay = 10 -- время между проверками остатка топлива
MyMission.skipPlayerReport = false --Не выводить статус топлива игрока по F10 если true
MyMission.groupUnits = {} 

function MyMission:initRadioMenu()
    missionCommands.addCommand(self.cmdReportFuelState, nil,
                               self.reportFuelState, self)
end

function MyMission:initGroupUnits()
    for i, u in pairs(Group.getByName(self.groupName):getUnits()) do
        if u:getPlayerName() == nil then
            table.insert(self.groupUnits, u)
        end
    end
end

function MyMission.checkFuel(param)
    for i, u in ipairs(param.groupUnits) do      
        if u:getFuel() < param.threshold then
            param:outFuelReport(Group.getByName(param.groupName), u)
            table.remove(param.groupUnits, i)
        end
    end
    if #param.groupUnits == 0 then
        trigger.action.outText("All out of fuel", param.msgSeconds, false)
        return nil --all below threshold, end checks
    else
        return timer.getTime() + param.checkDelay
    end
end

function MyMission:outFuelReport(group, u)
    local name = u:getPlayerName()
    if name == nil then
        name = u:getName()
    end
    trigger.action.outTextForGroup(group:getID(),
                                   string.format("%s топлива %0.1f", name, u:getFuel() * 980 * 11.07 / 1000),
                                   self.msgSeconds, false)
end

function MyMission.reportFuelState(param)
    local group = Group.getByName(param.groupName)
    for i, u in pairs(group:getUnits()) do
        if u:getPlayerName() == nil or 
           (u:getPlayerName() ~=nil and param.skipPlayerReport == false) then
            param:outFuelReport(group, u)
        end
    end
end

timer.scheduleFunction(MyMission.checkFuel, MyMission, timer.getTime()+MyMission.checkDelay )
MyMission:initRadioMenu()
MyMission:initGroupUnits()

 

 

ПРОШУ. Остаток топлива в фунтах. Это единственное, что я допер как сделать )  Если убрать === * 11.07 / 1000 ===== то будет в кг.  Ну... +/-


Edited by Redneck
Link to comment
Share on other sites

12 часов назад, Redneck сказал:

ПРОШУ. Остаток топлива в фунтах. Это единственное, что я допер как сделать )  Если убрать === * 11.07 / 1000 ===== то будет в кг.  Ну... +/-

Не люблю "магические числа", 980 в оригинальном примере, который один добрый человек давал - это максимальная масса топлива в L-39 в килограммах. А правильно и универсально для любого самолета будет вот так: unit:getDesc().fuelMassMax * unit:getFuel() в килограммах и соответственно если разделить на 0.45, то в фунтах.

Я решил чуть познакомиться с объектами в Lua и немного доработал скрипт, теперь его можно повесить на несколько групп, он умеет выводить и в килограммах и фунтах, а еще говорит, сколько ты забрал топлива из танкера, что мне для интереса надо было) Внизу создание объектов для нескольких групп, код под катом:

Скрытый текст
FlightFuel = {}

function getFuelRelative(unit)
    return unit:getFuel() --return as is
end

function getFuelKg(unit)
    local fuel = unit:getFuel()
    return math.floor(fuel * unit:getDesc().fuelMassMax), "kg", fuel
end

function getFuelLbs(unit)
    local fuel = unit:getFuel()
    return math.floor((fuel * unit:getDesc().fuelMassMax) / 0.45359237), "lbs", fuel
end

function FlightFuel:new(arg)
    local newObj = {}
    setmetatable(newObj, self)
    self.__index = self

    newObj.groupName          = arg.groupName  or "Aerial-1"
    newObj.threshold          = arg.threshold  or nil
    newObj.msgSeconds         = arg.msgSeconds or 20
    newObj.checkDelay         = arg.checkDelay or 30
    newObj.reportOnRefuel     = arg.reportOnRefuel or false
    newObj.getUnitFuel        = arg.getUnitFuel or getFuelLbs
    newObj.skipPlayerReport   = arg.skipPlayerReport or false
    newObj.cmdReportFuelState = arg.cmdReport or string.format("%s fuel status", newObj.groupName)
    newObj.groupUnits         = {}

    newObj:initRadioMenu()
    newObj:initGroupUnits()

    if threshold then
        timer.scheduleFunction(newObj.checkFuel, newObj, timer.getTime()+newObj.checkDelay )
    end

    if reportOnRefuel then
        world.addEventHandler(newObj)
    end

    return newObj
end

function FlightFuel:initRadioMenu()
    missionCommands.addCommand(self.cmdReportFuelState, nil,
                               self.reportFuelState, self)
end

function FlightFuel:initGroupUnits()
    for i, u in pairs(Group.getByName(self.groupName):getUnits()) do
        if u:getPlayerName() == nil then
            table.insert(self.groupUnits, u)
        end
    end
end

function FlightFuel.checkFuel(param)
    for i, u in ipairs(param.groupUnits) do      
        if u:getFuel() < param.threshold then
            param:outFuelReport(u)
            table.remove(param.groupUnits, i)
        end
    end
    if #param.groupUnits == 0 then
        trigger.action.outText("All out of fuel", param.msgSeconds, false)
        return nil --all below threshold, end checks
    else
        return timer.getTime() + param.checkDelay
    end
end

function FlightFuel:getUnitName(u)
    local name = u:getPlayerName()
    if name then
        return string.format("%s(%s)", u:getName(), name)
    else
        return u:getName()
    end
end

function FlightFuel:outFuelReport(u)
    trigger.action.outText(string.format("%s fuel %d %s / %0.2f", self:getUnitName(u), self.getUnitFuel(u)),
                                        self.msgSeconds, false)
end

function FlightFuel.reportFuelState(param)
    local group = Group.getByName(param.groupName)
    for i, u in pairs(group:getUnits()) do
        if u:getPlayerName() == nil or 
           (u:getPlayerName() ~=nil and param.skipPlayerReport == false) then
            param:outFuelReport(u)
        end
    end
end

function FlightFuel:onEvent(event)
    if event.id == world.event.S_EVENT_REFUELING then
        self.beforeRefuel = self.getUnitFuel(event.initiator)
    elseif event.id == world.event.S_EVENT_REFUELING_STOP then
        local fuelUnits = ""
        self.afterRefuel, fuelUnits = self.getUnitFuel(event.initiator)
        local gainedFuel = self.afterRefuel - self.beforeRefuel
        trigger.action.outTextForGroup(event.initiator:getGroup():getID(),
                                       string.format("%s got %d %s fuel",
                                       self:getUnitName(event.initiator),
                                       gainedFuel, fuelUnits), self.msgSeconds)
    end
end

groupUSNHornet = FlightFuel:new({ groupName        = "USN_Hornet",
                                  cmdReport        = nil,
                                  threshold        = 0.4,
                                  msgSeconds       = 10,
                                  checkInterval    = 30,
                                  reportOnRefuel   = true,
                                  getUnitFuel      = getFuelLbs,
                                  skipPlayerReport = false })

groupAlbatros = FlightFuel:new({ groupName      = "Albatros",
                                 cmdReport      = nil,
                                 threshold      = nil,
                                 msgSeconds     = 10,
                                 checkInterval  = 30,
                                 reportOnRefuel = true,
                                 getUnitFuel    = getFuelKg })

groupTanker = FlightFuel:new({groupName        = "USN_Tanker",
                              cmdReport        = nil,
                              threshold        = 0.4,
                              msgSeconds       = 10,
                              checkInterval    = 30,
                              reportOnRefuel   = true,
                              getUnitFuel      = getFuelLbs,
                              skipPlayerReport = false })

 

 


Edited by Blackfyre
  • Like 2

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

Огромное спасибо!

Все проверил. У меня почему то не работают доклады ни о критическом остатке топлива второго, ни то, сколько взял топлива с заправщика. Ваш метод определения топлива в единицах массы наверняка более точный, но почему то тоже дает погрешность порядка 200 фунтов. Может  какие то погрешности с показаниями топлива на Хорнете

fuel.lua LUAtest.miz


Edited by Redneck
Link to comment
Share on other sites

7 часов назад, Redneck сказал:

Огромное спасибо!

Все проверил. У меня почему то не работают доклады ни о критическом остатке топлива второго, ни то, сколько взял топлива с заправщика. Ваш метод определения топлива в единицах массы наверняка более точный, но почему то тоже дает погрешность порядка 200 фунтов. Может  какие то погрешности с показаниями топлива на Хорнете

fuel.lua 4 \u041a\u0431 · 2 скачивания LUAtest.miz 10 \u041a\u0431 · 1 скачивание

 

Это потому что я мудак (с).  Не надо никому показывать непротестированную версию, в которой вроде чуть-чуть что то подправил🙂

Там надо строки:

    if threshold then
        timer.scheduleFunction(newObj.checkFuel, newObj, timer.getTime()+newObj.checkInterval )
    end

    if reportOnRefuel then
        world.addEventHandler(newObj)
    end

Заменить на:

    if newObj.threshold then
        timer.scheduleFunction(newObj.checkFuel, newObj, timer.getTime()+newObj.checkInterval )
    end

    if newObj.reportOnRefuel then
        world.addEventHandler(newObj)
    end

Еще доклад о заправке от танкера будет сейчас для группы игрока работать. Можно сделать, чтобы для всех показывал, только он у меня сейчас три раза выводит сообщение почему-то(не разбирался почему так, может потому что я отходил почти сразу, то есть до "Transfer complete").

По поводу погрешности хз, если скрипт натравить на выключенный хорнет без баков и полной заправкой то возвращает 10802 фунта(в редакторе 10803, но это из-за грубого округления всегда в меньшую сторону). Почти сразу после запуска расхождение с IFEI будет уже в несколько десятков фунтов, не думаю, что это сильно критично, но с этим уже к разработчикам надо)

Поправленный скрипт во вложении.

checkFlightFuel.lua

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

Я тоже обожаю фильм «О чем говорят мужчины». ))) Ну и никогда не говори никогда. По хорошему это моя затея со скриптом, и моя святая обязанность протестировать сколько надо. 

Все проверил - все работает отлично. При дозаправке скрипт показывает количество топлива, взятого за конкретный сет «стыковки - расстыковки», что вообщем то логично. На эту тему остался только один вопрос - Что подправить в коде, чтобы топливо в фунтах он показывал в тысячах с одним знаком после запятой? ( 4850 = 4.8)?

Link to comment
Share on other sites

10 часов назад, Redneck сказал:

Я тоже обожаю фильм «О чем говорят мужчины». ))) Ну и никогда не говори никогда. По хорошему это моя затея со скриптом, и моя святая обязанность протестировать сколько надо. 

Пофиг чья там обязанность и ответственность, программист должен хоть раз запустить код, если говорит что сделал))

10 часов назад, Redneck сказал:

При дозаправке скрипт показывает количество топлива, взятого за конкретный сет «стыковки - расстыковки», что вообщем то логично.

Так и задумано, но у меня почему то вывел три сообщения на одну расстыковку(я прямо уверенно и специально отходил, а не случайно). Я это писал, чтобы себя проще контролировать было, хочу научиться заправлять 10к фунтов без дисконектов. (в прямом полете вроде даже получается). Жаль, что в событии танкер определить нельзя, было бы весьма полезно автоматически говорить сколько в нем топлива ДО дозаправки (в S3 мало топлива влазит например).

10 часов назад, Redneck сказал:

Что подправить в коде, чтобы топливо в фунтах он показывал в тысячах с одним знаком после запятой? ( 4850 = 4.8)?

Это все функции сверху, можно подправить имеющуюся getFuelLbs, можно написать новую и в параметр getUnitFuel передавать уже ее:

function getFuelLbs2(unit)
    local fuel = unit:getFuel()
    local lbs = (fuel * unit:getDesc().fuelMassMax) / 0.45359237
    return string.format("%.1f", lbs/1000 ), " ", fuel
end

Вот это по идее должно выводить как ты хочешь(не проверял), lbs при этом убрал если нужен, то вернуть в кавычки его. Тут после слова return через запятую три вещи возвращаются - число топлива в кг/фунтах, строка которая будет выведена после числа, т.е. и содержит "кг" или "фунты" и топливо в частях (0.7 например). В функции outFuelReport можно подправить, то что вообще выводится.


Edited by Blackfyre

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

Ну 10К фунтов можно взять только если ты совсем «сухой» и топливный бак у тебя подвешен. Хотя бы с 2 К фунтов уже надо быть у корзины. 

Лично у меня простые правила. Не смотреть на корзину, не делать резких движений, рука расслаблена, и корректировать полет лёгкими тычками держа в ориентирах. ( гондола корзины в правом верхнем углу ИЛС,  по длине - тут разное. Просто не делать резких движений.

Ты можешь посмотреть сколько в танкере топлива до заправки, при подходе используя твой же скрипт 🙂  Ну по крайней мере, в предыдущей версии его у меня показывал остаток топлива и танкера )  После окончания - опять запрос ) +\- будет понятно. 

S3 - у меня получалось дозаправить только один Хорнет на бинго без баков. Я думаю он, как и заправочные варианты хорнетов, не более чем дежурство где то в 50-100 пильной зоне до мамы, чтобы понемножку подкармливать тех, кто в горячке боя сильно много спалил, и отдавать им тысячи по три на нос, не более.

Link to comment
Share on other sites

10 часов назад, Redneck сказал:

Ну 10К фунтов можно взять только если ты совсем «сухой» и топливный бак у тебя подвешен. Хотя бы с 2 К фунтов уже надо быть у корзины. 

Лично у меня простые правила. Не смотреть на корзину, не делать резких движений, рука расслаблена, и корректировать полет лёгкими тычками держа в ориентирах. ( гондола корзины в правом верхнем углу ИЛС,  по длине - тут разное. Просто не делать резких движений.

Ты можешь посмотреть сколько в танкере топлива до заправки, при подходе используя твой же скрипт 🙂  Ну по крайней мере, в предыдущей версии его у меня показывал остаток топлива и танкера )  После окончания - опять запрос ) +\- будет понятно. 

S3 - у меня получалось дозаправить только один Хорнет на бинго без баков. Я думаю он, как и заправочные варианты хорнетов, не более чем дежурство где то в 50-100 пильной зоне до мамы, чтобы понемножку подкармливать тех, кто в горячке боя сильно много спалил, и отдавать им тысячи по три на нос, не более.

Тут дело не в количестве, которое нужно, а в самом скилле полета близким строем. Сначала у меня, как у всех не получалось даже подойти, потом отключил турбулентность и научился подходить и соединяться, потом не получалось долго удерживаться, потом стало получаться в том числе с турбулентностью, но все это в прямом полете, теперь надо научиться заправляться  в вираже и когда танкер "неожиданно" начинает поворачивать. А количество как средство объективного контроля).

Я там выше неправильную правку предложил, если из функции вернуть строку, то кажется будет ошибка, так как функция вывода ожидает там число. Вечером постараюсь сделать как правильно.

А с помощью этого скрипта я выяснил, что танкер отдает ровно то топливо, которое у него в баках, т.е. для S3 это примерно 17к фунтов, как и у хорнета с 3мя баками.

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

5 часов назад, Blackfyre сказал:

Тут дело не в количестве, которое нужно, а в самом скилле полета близким строем. Сначала у меня, как у всех не получалось даже подойти, потом отключил турбулентность и научился подходить и соединяться, потом не получалось долго удерживаться, потом стало получаться в том числе с турбулентностью, но все это в прямом полете, теперь надо научиться заправляться  в вираже и когда танкер "неожиданно" начинает поворачивать. А количество как средство объективного контроля).

Я там выше неправильную правку предложил, если из функции вернуть строку, то кажется будет ошибка, так как функция вывода ожидает там число. Вечером постараюсь сделать как правильно.

А с помощью этого скрипта я выяснил, что танкер отдает ровно то топливо, которое у него в баках, т.е. для S3 это примерно 17к фунтов, как и у хорнета с 3мя баками.

В вираже тоже нужно просто ориентир держать.

Вот может это поможет 

 

Link to comment
Share on other sites

@Redneck, починил ошибку при смерти юнитов и сделал дополнительную функцию вывода с форматом, как ты хотел. в тысячах фунтов.

 

checkFlightFuel.lua

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

24.12.2021 в 00:55, Blackfyre сказал:

@Redneck, починил ошибку при смерти юнитов и сделал дополнительную функцию вывода с форматом, как ты хотел. в тысячах фунтов.

 

checkFlightFuel.lua 5 \u041a\u0431 · 4 скачивания

Приветствую! Мне уже неудобно бухтеть, но я никак не пойму как включить функцию вывода с хотимым  форматом 🙂

Link to comment
Share on other sites

5 часов назад, Redneck сказал:

Приветствую! Мне уже неудобно бухтеть, но я никак не пойму как включить функцию вывода с хотимым  форматом 🙂

В файле пример для группы US_Transport, обрати внимание на строку getUnitFuel = getUnitLbsThousands. Может я не правильно поянл хотелку? Я вроде проверял, для, например 5434 фунтов должно вывести, "5.4".

groupTanker = FlightFuel:new({groupName        = "US_Transport",
                              cmdReport        = nil,
                              threshold        = 0.4,
                              msgSeconds       = 10,
                              checkInterval    = 30,
                              reportOnRefuel   = true,
                              getUnitFuel      = getFuelLbsThousands,
                              skipPlayerReport = false })

 

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

18 часов назад, Blackfyre сказал:

В файле пример для группы US_Transport, обрати внимание на строку getUnitFuel = getUnitLbsThousands. Может я не правильно поянл хотелку? Я вроде проверял, для, например 5434 фунтов должно вывести, "5.4".

groupTanker = FlightFuel:new({groupName        = "US_Transport",
                              cmdReport        = nil,
                              threshold        = 0.4,
                              msgSeconds       = 10,
                              checkInterval    = 30,
                              reportOnRefuel   = true,
                              getUnitFuel      = getFuelLbsThousands,
                              skipPlayerReport = false })

 

Огромное спасибо! Все получилось, все работает. В знак благодарности готов поделиться миссиями )

Link to comment
Share on other sites

Всех с Новым годом!!!

Народ подскажите (долго отсутствовал в DCS  и не в курсе что тут сейчас и как по багам в редакторе) У нас пехота в "наземку" (камаз там или БМП) средствами редактора садиться? Что то я и в бете и в релизной версии пробовал, ну никак  не хочет. Ни через команды в ППМ, ни через триггерные действия. И второе. Триггер "удаление объектов карты" в Бете не работает что ли?

Link to comment
Share on other sites

  • 4 weeks later...

Добрый день. Подскажите как сделать чтобы Ф-16 атаковал ПВО (Шилку) с помощью пушек? Он улетает и выпускает шасси. Спасибо.

i7-8700K@3,7GHz | Asus ROG MAXIMUS X FORMULA | Corsair Vengeance RGB DDR4-3600Mhz 32Gb | Asus ROG STRIX GeForce GTX 1080Ti 12Gb | SSD Samsung 970 PRO 512GB | HDD 4 GB | NZXT Kraken X72 | Corsair HX1000i | Corsair Graphite Series 780T | TM Hotas Warthog | TM Hotas Cougar | VPC WarBRD MT-50CM Flightstick | Stick Suncom F-15E Talon + BRD Base | BRD Mi-8 Pedals | TrackIR4

Link to comment
Share on other sites

  • ED Team
50 минут назад, oovaoosh сказал:

Добрый день. Подскажите как сделать чтобы Ф-16 атаковал ПВО (Шилку) с помощью пушек? Он улетает и выпускает шасси. Спасибо.

Жить хочет. Нужно ему в расширенных действиях ППМ установить реакцию не угрозу - "без реакции" или "уклонение там какое-нибудь".

Link to comment
Share on other sites

41 minutes ago, SL PAK said:

Жить хочет. Нужно ему в расширенных действиях ППМ установить реакцию не угрозу - "без реакции" или "уклонение там какое-нибудь".

Да, есть только нюанс что Уовень АС и Ветеран не начинают атаку (слишком умные). Воюют только Новичок и Опытный. 

i7-8700K@3,7GHz | Asus ROG MAXIMUS X FORMULA | Corsair Vengeance RGB DDR4-3600Mhz 32Gb | Asus ROG STRIX GeForce GTX 1080Ti 12Gb | SSD Samsung 970 PRO 512GB | HDD 4 GB | NZXT Kraken X72 | Corsair HX1000i | Corsair Graphite Series 780T | TM Hotas Warthog | TM Hotas Cougar | VPC WarBRD MT-50CM Flightstick | Stick Suncom F-15E Talon + BRD Base | BRD Mi-8 Pedals | TrackIR4

Link to comment
Share on other sites

14 минут назад, muffler сказал:

Ребята, кто может объяснить на пальцах, чем отличается триггерное действие AI TASK SET от AI TASK PUSH?

AI TASK SET заменяет все остальные задачи у бота, в том числе основную, на ту которую ставишь.

AI TASK PUSH добавляет новую задачу боту к уже имеющимся.

Применению первому я так и не нашел🙂.

  • Like 1

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

35 минут назад, Blackfyre сказал:

AI TASK SET заменяет все остальные задачи у бота, в том числе основную, на ту которую ставишь.

AI TASK PUSH добавляет новую задачу боту к уже имеющимся.

Применению первому я так и не нашел🙂.

То есть AI TASK SET отменяет все предыдущие активные задачи, а AI TASK PUSH просто добавляет задачу к текущим?

 

VR Pimax 8KX, i9-9900KF, RTX 2080Ti, RAM 32GB, SSD 970 EVO+ 1TB.

http://forum.aviaraf.ru

Link to comment
Share on other sites

1 минуту назад, muffler сказал:

То есть AI TASK SET отменяет все предыдущие активные задачи, а AI TASK PUSH просто добавляет задачу к текущим?

 

Да, с одной деталью, он ее добавляет в начало. Т.е. если у бота допустим задача "Уничтожить группу" и он ее не закончил, а ты ему допустим меняешь ППМ, то он уничтожение и пойдет на новый ППМ.

Верните короновирус в качестве главной проблемы, спать в маске буду, обещаю.

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

22 минуты назад, Blackfyre сказал:

Да, с одной деталью, он ее добавляет в начало. Т.е. если у бота допустим задача "Уничтожить группу" и он ее не закончил, а ты ему допустим меняешь ППМ, то он уничтожение и пойдет на новый ППМ.

Что такое "он", можно поконкретнее пожалуйста 🙂

VR Pimax 8KX, i9-9900KF, RTX 2080Ti, RAM 32GB, SSD 970 EVO+ 1TB.

http://forum.aviaraf.ru

Link to comment
Share on other sites

  • Recently Browsing   1 member

×
×
  • Create New...