diyk Posted May 11, 2014 Posted May 11, 2014 Бандит, или кто сведущий, есть небошая проблемка - вся пехота высаживается мордой лица только на север (или курсом 000) - как можно им задать направление смотреть туда, куда их носитель (вертолет или наземка) смотрит в момент высадки? Intel Core 2600K, GTX970_4gb, 12gb_1600MHz, W10x64
StarLey_Andrew Posted May 12, 2014 Posted May 12, 2014 Бандит, или кто сведущий, есть небошая проблемка - вся пехота высаживается мордой лица только на север (или курсом 000) - как можно им задать направление смотреть туда, куда их носитель (вертолет или наземка) смотрит в момент высадки? Описание шаблонов групп десанта происходит в файле init.lua и подгружается в самом начале миссии, в процессе миссии происходит "рождение" группы по ранее описанному шаблону в котором нет направления. Теоретически можно получить направление транспорта в момент высадки, только вот чему его присваивать? граждане отдыхающие...если кто знает что это за функция self:getDCSWorldUnit() ? Получение под управление юнита из движка игры в SSE [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования
BAntDit Posted May 20, 2014 Posted May 20, 2014 Получение под управление юнита из движка игры в SSE Немного поправлю, а то как-то двухсмысленно звучит. getDCSWorldUnit() - это метод отбрасывающий оболочку MSF с объектов класса Unit и возвращающий соответствующий объект SSE. Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
ALF7 Posted May 20, 2014 Posted May 20, 2014 Радиоскрипт(запуск) на ЛА находящийся в отключке ИИ,без всяких триггеров можно сделать? Онлайн-MG:joystick: "Страшнее Шилки зверя нет". "ПИСДРУНС СС ПП". "Носи ППК с молоду-любить будешь до старости". "СА-Танки решают все!" "- А мы, старшина, ни за первую и не за вторую… Мы – за третью. За эту… За как её?.. За Родину!" __|77|________:::::: =}- \~~~~~~~~~/~~~~~~~ NAVAL AVIATION FAN ~~~~~~~
StarLey_Andrew Posted May 20, 2014 Posted May 20, 2014 Дополнительные скрипты в первом сообщении темы http://forums.eagle.ru/showthread.php?p=2070935#post2070935 Тема полезна для миссиоделов [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования
Timujin Posted May 20, 2014 Posted May 20, 2014 (edited) to Bandit.... объясни пожалуйста логику построения системы ПВО в DCS..я вот не совсем понимаю..все элементы должны находится в одно группе?...что такое communication_unit в addAirDefenceUnit ?...вообщем взял я твой пример , пытался его переделать под себя и в ответ "нету связи с такой группой"..короче в air_defence_event_handler.lua if not sender:isOnline() then do local _radio_message, _text_message = {}, sender:getDisplayName() .. ' не выходит на связь'; вот на этом условие он не проходит...подсоби если не сложно...я всю группу EWR, COMM.POST, COMMUNICATION.POST и CONTROLLED_UNIT поместил в одну группу... Edited May 20, 2014 by Timujin
BAntDit Posted May 21, 2014 Posted May 21, 2014 все элементы должны находится в одно группе? Нет, наоборот лучше раскидывать по разным группам (по группам крайне важно раскидывать юниты с ролями EWR, LN, AMBUSH, USER_COTROLLED_UNIT, OBSERVATION_POST) - так как скрипт управляет включением \ выключением AI, а у наземных групп он общий. (Примечание: Я пишу именно о группах DCS World, а не о группировках ПВО). что такое communication_unit Это юнит, который отвечает за связь с остальной группировкой (внутри группировки). По моему в руководстве я делал описание (см. 38 страницу руководства - http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825). Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
Timujin Posted May 21, 2014 Posted May 21, 2014 Это юнит, который отвечает за связь с остальной группировкой (внутри группировки). А в чём эта связь выражается?...этот юнит должен просто существовать, или он должен быть реальным игроком...просто я создал 4 группы для каждой из ролей (EWR, COMM.POST, COMMUNACATION, CONTROLLED_UNIT)..внутри каждой группы свой COMM.POST, COMMUNACATION...в описание группировки , в раздел communication_unit, я указал соответсвующий юнит внутри каждой группы DCS.... и мне упорно сообщается что с такой группой нету связи..
BAntDit Posted May 21, 2014 Posted May 21, 2014 (edited) А в чём эта связь выражается?...этот юнит должен просто существовать, или он должен быть реальным игроком... 1. Он должен просто существовать и должен быть живым. 2. Юнит с ролью COMMUNACATION_POST и communication_unit, который передается в addAirDefenceUnit() - это разные объекты. Юнит с ролью COMMUNACATION_POST ((это объект класса msfAirDefenceUnit)) - это юнит, который обеспечивает связь всей группировки ПВО целиком, с другими группировками. Если его уничтожить без связи будет куковать вся группировка. А вот communication_unit (это объект класса msfUnit) - это юнит, который обеспечивает связь одного конкретного юнита airDefence внутри группировки. Если его уничтожить без связи останется один конкретный юнит группировки. 3. На работу юнитов группировки также влияет их здоровье. Например, если юнит не уничтожен, но поврежден, то появляется вероятность, что он не будет выполнять свои функции. Чем больше повреждение, тем больше вероятность, что-то откажет. ---- и мне упорно сообщается что с такой группой нету связи.. Это значит, что юнит с ролью COMMUNACATION_POST инициализирован не правильно или он вообще не был создан, или был уничтожен, или был поврежден. Убедись, что объекты которые ты используешь в скрипте, соответствуют реальным объектам созданным в редакторе (если конечно, ты не создаешь их динамически). ---- P.S.: Можешь просто скинуть свою миссию, может быть у меня будет время посмотреть, что там не так. Ну или скинь сюда кусок скрипта, создающего группировку ПВО, может я сразу увижу в чем ошибка. Edited May 22, 2014 by BAntDit Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
Timujin Posted May 21, 2014 Posted May 21, 2014 Ну или скинь сюда кусок скрипта, создающего группировку ПВО, может я сразу увижу в чем ошибка. mission.model:addAirDefenceGroupment('rgt643', '643-й зенитно-ракетный полк', true, false); -- ДРЛО mission.model.airDefenceGroupments.rgt643:addAirDefenceUnit(mission.model.units.rgt643_ewr,msfAirDefenceUnitRole.EWR,0, 0, mission.model.units.rgt643_ewr_comm, 'ДРЛО 643ого ЗРП', 12, false); -- Коммнандный пункт mission.model.airDefenceGroupments.rgt643:addAirDefenceUnit(mission.model.units.rgt643_hq_cp, msfAirDefenceUnitRole.COMMAND_POST,0, 0, mission.model.units.rgt643_hq_comm,'КП 643ого ЗРП' , 0, false); -- юнит,обеспечивающий связь с внешними подразделениями: mission.model.airDefenceGroupments.rgt643:addAirDefenceUnit(mission.model.units.rgt643_comm,msfAirDefenceUnitRole.COMMUNICATION_POST, 0, 0, mission.model.units.rgt643_comm,'Рота связи 643ого ЗРП' , 0, false); mission.model.airDefenceGroupments.rgt643:addAirDefenceUnit(mission.model.units.rgt643_ln_1,msfAirDefenceUnitRole.USER_CONTROLLED_UNIT, 11500, 12500, mission.model.units.rgt643_ln_1, 'Отдельный расчет ЗРК Тор 1-го зрдн (игрок)', 12, false); mission.model.groups.rgt643_ln:setRadioCommunicationsWithAirDefence(true);
BAntDit Posted May 22, 2014 Posted May 22, 2014 Тут ошибок вроде не вижу. Вот этот (rgt643_comm) юнит в msf добавлен и реально есть в миссии? ---- Лучше наверно мне миссию целиком скинуть. Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
Timujin Posted May 22, 2014 Posted May 22, 2014 Все заработало..надо было в onTargetDetectedEventHandler указать юнита с ролью COMMAND.POST (хотя я так до сих пор не понял почему имеено с этой ролью ,а не с ролью COMMUNICATION_UNIT)....спасибо за инфу...и помощь.. есть так сказать встречный вопрос...если в группе ПВО нет юнитов с ролью CONTROLLED_UNIT, игроки не смогут управлять пуском ракет ..они смогут получать только инфу о цели..если в группе есть роль CONTROLLED_UNIT..то без участия игрока, этот юнит фактически никак не управляем...получается либо только ИИ..либо только люди...можно ли скриптами сделать управление юнитами с ролью LN..к примеру сидит какой-нибудь чел в КП и в чате, например, пишит #rgt653 #unit_1 #Пуск
BAntDit Posted May 22, 2014 Posted May 22, 2014 есть так сказать встречный вопрос...если в группе ПВО нет юнитов с ролью CONTROLLED_UNIT, игроки не смогут управлять пуском ракет ..они смогут получать только инфу о цели..если в группе есть роль CONTROLLED_UNIT..то без участия игрока, этот юнит фактически никак не управляем...получается либо только ИИ..либо только люди... В группировку ПВО можно включить одновременно юнитов управляемых ИИ (LN или AMBUSH) и юнитов для управления игроками (CONTROLLED_UNIT) и они будут хорошо дополнять друг друга, но назначить на юнит одновременно две роли LN и CONTROLLED_UNIT нельзя они не совместимы. По идее было бы умно сделать автоматическое переключение ролей: включать роль CONTROLLED_UNIT, если игрок занял юнит ЗРК и включать роль LN, если игрок покинул юнит, но сейчас движок не позволяет этого реализовать - в событийной модели движка сейчас отсутствуют события занятия и покидания наземного юнита. можно ли скриптами сделать управление юнитами с ролью LN..к примеру сидит какой-нибудь чел в КП и в чате, например, пишит #rgt653 #unit_1 #Пуск Да, теоретически можно - вроде как все для этого есть, но писать в чате команды не удобно, лазить в radio menu за каждой командой тоже не удобно. Я когда-то писал хотелку по Action Menu как в Arma, но эта хотелка сгинула в массе других :) Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
Timujin Posted May 29, 2014 Posted May 29, 2014 кто подскажет, msfUnit:hasTransport() в каком файле и какую запись проверяет, а то в случае с Ми-8 работает, а с Ил-76 нет...хотя у обоих стоит задача "Транспорт"?
BAntDit Posted June 2, 2014 Posted June 2, 2014 (edited) кто подскажет, msfUnit:hasTransport() в каком файле и какую запись проверяет, а то в случае с Ми-8 работает, а с Ил-76 нет...хотя у обоих стоит задача "Транспорт"? Наверно, все таки ты имеешь ввиду функцию msfUnit:hasTransportTask() - эта функция проверяет свойство юнитов isTransport. Свойство isTransport для юнитов устанавливается в True автоматически, если в редакторе миссии им выставлена задача транспорт, но автоматическое выставление выполняется только для вертолетов (поскольку на момент написания этой функции других управляемых транспортников не было,а для наземки задачи вообще не указываются). Для решения проблемы ты можешь выставить свойство вручную в init-скрипте для тех юнитов, которые планируешь использовать как транспорт: mission.model.units.имя_твоего_юнита:setTransportTask(true); Edited June 2, 2014 by BAntDit Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
Timujin Posted June 11, 2014 Posted June 11, 2014 Bandit.. Объясни пожалуйста, как работает функция world.searchObjects, потомучто чето она как то странно работает..если в id = world.VolumeType.SPHERE задать радиус, при котором объект поиска уже находится в зоне, то ObjectSearchHandler вызывается, а если задать радиус ,при котором, объект еще не в зоне поиска, то ObjectSearchHandler не вызывается, хотя группа дошла аж до самой вышки ...прилагаю примерwatch_tower.miz
BAntDit Posted June 26, 2014 Posted June 26, 2014 как работает функция world.searchObjects Функция находит все объекты, которые в момент вызова попадают в объем поиска. ObjectSearchHandler вызывается по очереди для найденных объектов, до тех пор пока не будет вызвана для каждого найденного объекта или до тех пор пока не вернет false. а если задать радиус ,при котором, объект еще не в зоне поиска, то ObjectSearchHandler не вызывается Все правильно. Поиск происходит в момент вызова world.searchObjects, если в момент вызова объект не попадает в объем поиска, то и ObjectSearchHandler для него вызван не будет. Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
eekz Posted October 30, 2014 Posted October 30, 2014 (edited) Я понимаю, что это форум не по обучению lua, но если это не сильно напряжёт, объясните зачем часто в контексте DCS в скриптах используются переменные с названием начинающимся с нижнего подчёркивания. Всё что я нарыл, это то, что таким образом задаётся глобальная переменная (_G в документации по lua, или это не то?), но встречал код содержащий например "local _a". Как это работает и зачем? Edited October 31, 2014 by eekz VIRPIL Controls Servers
BAntDit Posted October 31, 2014 Posted October 31, 2014 но встречал код содержащий например "local _a". Как это работает и зачем? Никак - это ни на что не влияет. Это просто такой порядок нотации, чтобы глядя на переменную ты сразу понимал, что она локальная. Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
eekz Posted November 1, 2014 Posted November 1, 2014 Спасибо. А можно ли при помощи timer.scheduleFunction назначить функцию с двумя и более аргументами? Например если у меня функция myfunc(a) то я её назчаю timer.scheduleFunction(myfunc, a, time), а если у меня myfunc(a, b) и я её назначаю timer.scheduleFunction(myfunc, a, b, time), то не работает. VIRPIL Controls Servers
BAntDit Posted November 1, 2014 Posted November 1, 2014 (edited) Спасибо. А можно ли при помощи timer.scheduleFunction назначить функцию с двумя и более аргументами? Например если у меня функция myfunc(a) то я её назчаю timer.scheduleFunction(myfunc, a, time), а если у меня myfunc(a, b) и я её назначаю timer.scheduleFunction(myfunc, a, b, time), то не работает. В качестве аргумента можно использовать таблицу, поля которой будут содержать все необходимые аргументы. parameters = { param1 = a, param2 = b}; function myfunc(parameters) local a_, b_ = parameters.param1, parameters.param2; //... do something end; timer.scheduleFunction(myfunc, parameters, time); как-то так... Edited November 1, 2014 by BAntDit Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803 Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292 Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362 ---- Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825
BR55Sevas Posted November 4, 2014 Posted November 4, 2014 Как получить никнейм игрока скриптами SSE? Немного разобрался как получать нужные параметры юнита по его имени в группе, но хочу получать параметры объекта с заранее неизвестным ником в сетевой миссии. Возможно ли это? МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl
eekz Posted November 4, 2014 Posted November 4, 2014 (edited) function Unit.getPlayerName(Unit self) Например эту функцию можно запустить в eventHandler при событии birth или take off. Таким образом можно получать ники тех кто появился на полосе или взлетел. Edited November 5, 2014 by eekz VIRPIL Controls Servers
BR55Sevas Posted November 5, 2014 Posted November 5, 2014 Спасибо, всё работает. Странно, что в вики эта функция не описана, по крайней мере не нашел там. МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl
Recommended Posts