-
Posts
983 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Events
Everything posted by BAntDit
-
На любое из событий можно повесить обработчик события, корректно разруливаюший ситуацию - именно обработчики событий должны быть основным инструментом миссиодела. Триггеры - это сильно упрощенная альтернатива.
-
Пробую это исправить, чтобы высаживаемый отряд всегда был скрыт. Я как-то внимания на это не обращал.
-
Все что легче танков, БМП там всякие, жгется с одного выстрела.. Иногда даже лучше, когда техника управляема игроком - игрок видит хуже чем бот. А что не так с нынешней реализацией десанта - высадил пехоту там где удобней, там где есть за что прятаться. Пехота разбегается по укрытиям и сидит ждет жертву.
-
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
Можно. Уже даже озвучивалась тут идея. --- Вообще хороших идей много, проблема только во времени - реально что-то делать получается только по выходным, в будни я как-то поздно до дому добираюсь сейчас. -
Если НП с хорошей застройкой, то 3 РПГ-шника могут дофига техники спалить. По мне так что сейчас не хватает пехоте - так это разнообразия - не понимаю почему бы не дать бойцам с АК ещё и поганки РПГ-7 за спину.
-
Перезаписать вчера ролик по нормальному так и не получилось :( - но раз обещал, то выложил пока не удачную версию записи на Yandex/Диск. Вообще-то видео ролик записан как учебный ролик по обработке событий, так что первая его половина там просто теория, а вот вторая половина практический пример, в котором и показана эта фича с пехотой прячущейся за домами :) Подробности в этой теме: http://forums.eagle.ru/showpost.php?p=1814649&postcount=138
-
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
Вчера я выложил новое обновление MSF betа (ссылку см. в подписи: Beta версия MSF). ------------ В обновление попало следующее: 1. Для класса msfGroup добавлен метод split: msfGroup function msfGroup.split(self, …) – метод динамического разделения группы. Метод позволяет отделить часть юнитов группы в новую отдельную группу. аргументы: • метод Split принимает в качестве параметров произвольное число номеров юнитов, которые будут выделены в отдельную группу. Пример: -- ground_group_1 – имя группы, определенной в ME, состоящая из 8 юнитов -- допустим необходимо последние два юнита отделить от группы ground_group_1 и -- выделить их в отдельную самостоятельную группу. -- с помощью метода Split это можно сделать так: mission.model:addGroup(‘ground_group_1’); local _new_group = mission.model.groups.ground_group_1:split(7, 8); 2. Для класса msfGroup добавлен метод merge: function msfGroup.merge(self, msfGroup groupToJoin) – метод динамического слияния двух групп в одну. аргументы: • groupToJoin – группа, которую нужно присоединить. Пример: -- в прошлом примере от ground_group_1 было отделено два последних юнита, в -- результате чего была образована новая группа _new_group. В данном примере эти -- группы объединяются обратно по средством метода Merge: mission.model.groups.ground_group_1:merge(_new_group); 3. Для класса msfGroup добавлен метод takeCover: function msfGroup.takeCover(self) - команда “В укрытие”. В результате выполнения этой команды группа будет разбита на подгруппы по два юнита, после чего каждая подгруппа находит ближайший по отношению к ней статический объект или объект сцены и занимает позицию рядом с ним, так чтобы быть закрытой от ближайшего по отношению к ней противнику. Примечание: 1) Каждая подгруппа – это отдельная самостоятельная группа, т.е. при выполнении команды takeCover происходит разбиение одной группы на несколько. 2) В версии 1.2.4. юниты пока умеют прятаться только за статические объекты, после выхода версии 1.2.5. юниты также смогут использовать объекты сцены для укрытия. -------------------------------- Вместе с этим обновлением хотел выложить ещё руководство по MSF, но капитально застрял с записью видеоролика учебного по обработке событий MSF :( - а обработка событий это одна из самых важных тем использования скриптов в миссиях впринципе... ----------- Вот тут я привожу ссылку на неудачно записанное видео по обработке событий: http://yadi.sk/d/qaHpEc5Q6sI-m (550 Мб - кому инет позволяет, можете глянуть) - первая половина видео там теория, вторая половина рабочий в пример. В примере показано использование метода takeCover - как его использовать и как он работает, т.е. как пехота прячется за домами - раз уж были просьбы показать как это выглядит, то не удаляю пока этот не удачный ролик. Пусть пока полежит, а я постараюсь записать учебный ролик заново по нормальному. (просьба не перетаскивать этот ролик в youtube). -
Я помню :) - просто пока не дошли руки.
-
Я вчера записал видео, но на Youtube залить не получилось (получилось 29 мин. (548 Мб)) - youtube упорно резал качество очень сильно. Сегодня буду пробовать перезаписывать и выкладывать заново. Если не получится, то скину видео куда нибудь на Yandex.Диск
-
Я вчера новую версию MSF beta выложил кстати, но пока не успел сделать описание новых возможностей, поэтому пока не писал. Если коротко, то новые возможности такие: 1. Научил пехоту прятаться за домами (и не только пехоту - танки тоже могут занимать укрытия, но когда пехота прячется смотрится прикольней :) ). 2. Сделал возможность динамической перегруппировки - т.е. можно на ходу в миссии делить группу как угодно, можно соединять обратно. Седне если найду время все подробно напишу в соответствующей ветке. ------ Ещё хотел сделать новые возможности по высадке десанта кое-какие, но во время увидел новость, что скоро высадка десанта будет реализована уже на движке так что не стал...
-
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
К ПВО я ещё вернусь, но пока не знаю когда: 1. во-первых, да, нужно дождаться выхода 1.2.5. (а возможно и 1.2.6.) т.к. там появится много полезных функции для этого. А сейчас если сделать то будет работать не эффективно с точки зрения производительности и все равно надо будет переделывать. 2. во-вторых, у меня сейчас как- то задачи копятся быстрее чем я успеваю их решать :) - у меня сейчас поездок много всяких не запланированных, а в дороге как-то не получается работать... -
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
Можно поменять условие высадки в init-е: mission.model.cargoPlaces[_cargo_place_number]:addCargoTemplate( 'Место подбора десанта', 'UH-1H', 10, _units_templates_1, 15, 15, { altitudeLessThen = 2, -- вот этот параметр определяет высоту высадки speedLessThen = 4, command = 1 }, country.id.RUSSIA, 'Группа разведки'); Т.е. у меня в примерах минимальная высота была задана 2 метра от уровня земли, а поскольку здания вероятнее всего выше 2 метров в высоту, высадка на крышу здания не происходит. Если в init файле переопределить этот параметр, например, указать не 2, а 10 метров, то высадка будет возможна и на крышу здании. т.е. указать значение параметра так: altitudeLessThen = 10 -
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
Если я правильно помню, то имя типа для бойца РПГ вот такое: Paratrooper RPG-16 ------ Кстати вот - Zart Arn тут полезное дело сделал, выложил файлик, который содержит имена типов почти всех юнитов, которые есть в DCS World: http://forums.eagle.ru/showpost.php?p=1777847&postcount=95 - т.е. имена типов можно брать от туда. -
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
cargo_place_2 и т.п. это названия объектов в редакторе и их имя можно задать какое угодно, главное чтобы в скрипте обращение к этим объектам было по тем же именам. Например, вертолетную вышку cargo_place_2 можно было бы назвать по другому - например вот так: cargo_place_blue_1, тогда в скрипте вместо строчки local _watch_tower = StaticObject.getByName('cargo_place_2'); будет вот такая строчка: local _watch_tower = StaticObject.getByName('cargo_place_blue_1'); тоже самое справедливо и для триггерных зон. Т.е. главное чтобы имя по которому мы получаем объект соответствовало бы имени в редакторе. --------------- Шаблоны групп для перевозки также задаются в init.lua. Например в приведенном примере шаблон перевозимой группы был определен так: (Группа из 4-ех бойцов) Шаблон можно менять как угодно - например можно добавить 5-ого бойца: -
Ещё небольшое пояснение: в тех. примерах, которые приводились мной по скриптам универсальным является только скрипт MSF.lua - тот который и реализует основные возможности: перевозку юнитов и прочие полезности. Т.е. MSF.lua можно запихивать в любую миссию вне зависимости от её содержимого и он будет работать. ----- А вот что касается скриптов init.lua - это скрипт в котором осуществляется настройка уже под конкретную миссию, эту настройку миссиодел уже делает сам на свое усмотрение (в видео примерах, которые я выкладывал объясняется как это сделать). -------- что касается этого конкретного случая, вот строчка из того скрипта: local _watch_tower = StaticObject.getByName('cargo_place_2'); Как можно видеть _watch_tower это ссылка на статический объект cargo_place_2 (просто объект с таким именем, который был добавлен в редакторе, чтобы привязать к нему погрузочную зону). Вот в этом видео, начиная с 25:30 как раз видно от куда он взялся: Чтобы исправить ошибку, которая возникает у вас можно либо удалить из скрипта init.lua код создания второй погрузочной зоны, либо просто в редакторе добавить стат. объект с именем cargo_place_2 - и погрузочная зона автоматически привяжется к нему.
-
Ошибка в 20 строке выполняемого в миссии скрипта в результате попытки обращения к не существующему объекту. Судя по названию идентификатора _watch_tower скрипт мой, а вот насчет миссии не знаю... - либо кто-то в редакторе поудалял объекты к которым обращался скрипт, либо скопировал скрипт в свою миссию, где собственно этих объектов и не было.
-
Техника, пехота и все что угодно перевозится скриптами: В этой ветке все описано: http://forums.eagle.ru/showthread.php?t=96572&page=12 Видео инструкции по использованию: 1. http://forums.eagle.ru/showpost.php?p=1764931&postcount=75 2. http://forums.eagle.ru/showpost.php?p=1782745&postcount=109 Скрипт MSF берите из моей подписи.
-
Помощь! (Миссии, Кампании, Шаблоны, Триггеры и т.д.
BAntDit replied to Инквезитор's topic in Треки, Миссии и Кампании
Есть. http://forums.eagle.ru/showthread.php?t=96572&page=6 - правда писался он ещё под 1.2.3. в текущей версии не проверял как работает. По идее работать должен, но под реалии 1.2.4. все равно переписывать буду - пока руки не доходят. -
Также как сейчас работает скрипт подсчета потерь для коалиций, т.е. в виде текстовых сообщений. Но конкретно для наземщиков это пока не реализуемо - игрока, управляющего юнитом пока что можно получить только для самолетов и вертолетов.
-
Нет. Нет никакой проблемы статистику показать только самим наземщикам. Собственно и проблема как раз в том, что сейчас нет возможности получить информацию кто конкретно управляет тем-то или тем-то юнитом.
-
Проверил. Неа.. скриптом статистику для наземщиков пока тоже не собрать.
-
Вроде как реализуется скриптом. Не проверял пока - будет время проверю.
-
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
Выложил новую версию MSF. В новой версии MSF исправлен ряд багов, о которых сообщалось выше и те, которые были выявлены в процессе эксплуатации. Исправления внесены следующие: 1. Исправлено. 2. Исправлен баг погрузки, когда два вертолета одновременно пытаются подобрать одну и ту же группу. Сейчас если один вертолет активировал меню подбора группы, в то время как эта самая группа уже добежала до другого вертолета, то для первого вертолета задача подбора группы будет прекращена. 3. Исправлен баг, который приводил к crash-у всех клиентов на сервере в тех случаях, когда в зоне подбора оказывалось одновременно несколько групп. Для исправления этого бага пришлось добавить небольшое ограничение, а именно - сейчас если на момент приземления вблизи транспортного вертолета оказывается несколько групп разом, в радио меню добавляется только одна - та которая находится ближе всех к вертолету (а не первые 5 найденных в радиусе 500 метров как было раньше). Это ограничение временное, как только выйдет обновление 1.2.5. я это ограничение уберу - будет все как раньше. Ссылка на новую версию MSF: http://forums.eagle.ru/attachment.php?attachmentid=83940&d=1371879042 -------------------------------------- Кроме новой версии MSF выложил также версию MSF beta - это ещё более новая версия. В MSF beta исправлен ещё один баг, а именно вот этот: Теперь точка посадки вычисляется так, чтобы быть со стороны ближайшей к группе двери вертолета - т.е. либо слева, либо справа. Исправление этого бага я реализовал только сегодня и не успел его протестировать, поэтому MSF c этим исправлением выкладываю как beta-версию. -
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
Можно. Сделаю. --------------------- У меня план работ был такой: Пункт 1 выполнен (хотя есть некоторые косяки пока) С учетом последних реалии у меня сейчас план работ такой: По срокам точнее сказать не могу - Сегодня у меня полностью будет день тестирования, а то у меня тестерских задач накопилось навалом. -------------- По пункту 4 нужно ещё будет подумать, как это сделать, чтобы выглядело реальней - может подвозить технику кораблями или транспортной авиацией, например, на Ми-26. -
Разработка миссии на основе Simulator Scripting Engine
BAntDit replied to BAntDit's topic in Треки, Миссии и Кампании
1. Вроде уже исправлял - на всякий случай проверю ещё раз. 2. Это я не предусматривал - т.е. при посадке юнитов все поставленные им ранее задачи затираются. После высадки задачи нужно устанавливать заново - я планировал, что это будет выполнятся в обработчике события высадки (т.е. повторное выставление нужных задач). На днях сделаю видео ролик учебный по обработке событий MSF и по нему сразу понятно будет как это сделать. 3. Можно не отползать, юниты сами обойдут вертолет как надо. 4. Для подбора не мобильных групп к ним нужно просто подлетать близко - нужно приземлится в радиусе 20 метров, тогда они не будут пытаться бежать к вертолету, а сразу начнется посадка.