StarLey_Andrew Posted July 18, 2016 Share Posted July 18, 2016 Описание функций и данных для классов. Доброго всем времени суток. Решил выложить пару файлов в помощь разработчикам миссий с использованием SSE. В файле миссии скрипт, который после запуска записывает в лог все, что относится к следующему списку: [1] = env, [2] = trigger, [3] = coalition, [4] = Object, -- [5] = Group,-- [6] = Unit,-- [7] = MovingObject, [8] = SceneryObject,-- [9] = StaticObject,-- [10] = Weapon,-- [11] = Airbase,-- [12] = Controller,-- [13] = Spot, -- [14] = World на глубину на 3 уровня. Вообще рекомендовал бы выполнять этот скрипт после обновлений. В файле lua обработанный результат. Что это и как пользоваться? В исходном скрипте все что пришло в голову использовать как верхний уровень. Строка с (); в конце узнаваемо является функцией и выполняет какие либо действия. Подробнее о действиях как указано ниже, написано здесь, там же и другие данные, но скрипт позволил их актуализировать. в {} заключены свойства класса. Обратите внимание, что некоторые классы, могут быть подклассами для других классов. Так класс Object - подкласс Unit-a и StaticObject, т.е. у Unit-a и StaticObject есть особые свойства и общие между собой свойства равные свойствам Object. Опытный скриптер в целом безусловно и так поймет что в lua-файле и наверняка уже имеет у себя нечто подобное, но облегчить труды не помешает :)opisanie_classov.mizAll_class_1.5.4.lua [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted December 25, 2016 Share Posted December 25, 2016 Прошу помочь, может кто сталкивался и знает как победить следующую ситуацию. Создал скрипт, в котором использовал world.event.S_EVENT_ENGINE_STARTUP в оффлайне все работает как часы, можно получить инициатора и ID аэродрома (если есть), где это произошло. Но вот в онлайне начались чудеса!!! Во первых этот эвент срабатывает только для серверного ЛА, т.е. если на сервер заходит игрок и запускает ЛА, то скрипт этого не видит. Во вторых, даже для серверного ЛА невозможно получить ID аэродрома (но это уже вторично). Как это можно победить и в чем причина такого поведения. Испытывали на чистой версии сервера open beta без модов. P.S. скрипт, который пилю позволит деактивировать борт, превысивший скорость 50 км/ч на рулежках. Для его работы планировалось только подключить его в миссию. P.P.S Кто нибудь в курсе, в онлайне getGroup() теперь работает или нет? [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
Timujin Posted January 3, 2017 Share Posted January 3, 2017 Всех с Новым Годом господа.. скажите пожалуйста, если кто знает, как в lua получить табличные данные SSE? функция net.dostring_in() возвращает только строку. Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 3, 2017 Share Posted January 3, 2017 Всех с Новым Годом господа.. скажите пожалуйста, если кто знает, как в lua получить табличные данные SSE? функция net.dostring_in() возвращает только строку. Взаимно! net.dostring_in() Apiшняя же функция?! Таблицы луа (включая SSE) строку из себя и представляют. Посмотрите принцип формрования таблиц lua в описании языка. [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
Timujin Posted January 3, 2017 Share Posted January 3, 2017 (edited) Я ,скорее всего, неправильно объяснил, мне нужно в луа передать саму таблицу, допустим юнита, а не содержащиеся в них данные. Например, у нас есть Group.getUnits(..), мы получаем таблицу, так вот как ее передать в луа Edited January 3, 2017 by Timujin Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 3, 2017 Share Posted January 3, 2017 Я ,скорее всего, неправильно объяснил, мне нужно в луа передать саму таблицу, допустим юнита, а не содержащиеся в них данные. Например, у нас есть Group.getUnits(..), мы получаем таблицу, так вот как ее передать в луа Lua- это язык, на котором работает и SSE и DCSApi (о котором Вы и говорите). Луа хранит таблицу именно в строке, она не имеет вид таблицы в нашем обычном понимании. Local _perem = чегото там; - луа интерпретирует как строковую переменную. Local _perem = {чегото там, еще строка, {вообще подтаблица}} - луа интерпретирует как таблицу, но все это передается как строка. [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
Timujin Posted January 3, 2017 Share Posted January 3, 2017 Lua- это язык, на котором работает и SSE и DCSApi (о котором Вы и говорите). Вот об это я и говорю, как таблицу из SSE передать в DCSApi Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 4, 2017 Share Posted January 4, 2017 Вот об это я и говорю, как таблицу из SSE передать в DCSApi net.dostring_in() А потом работать со строковой переменной как с таблицей [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
Timujin Posted January 4, 2017 Share Posted January 4, 2017 К сожалению не подходит, может кто знает, в lua можно подгружать dll, но нужны, насколько я понимаю, точки входа что-то типа local func = require(scripting.dll) func.функция_в_dll(переменные,переменные) Link to comment Share on other sites More sharing options...
Timujin Posted January 12, 2017 Share Posted January 12, 2017 Доброго вечера господа такой вот вопрос, ф-ия coalition.addGroup() рождает на свет группу, а в какую таблицу он её "записывает"? поскольку не совсем понятно...Например, при исполнение ф-ии Group.getByName() возвращяется таблица с полем id_, числовое значение которого является id группы, но не сама таблица с группой, или например при исполнение ф-ии Unit.getSensors() возвращается таблица, хотя Unit.getByName() возвращяется что -же что и Group.getByName()..я пытался найти в окружение (0) но там есть DCS db Group Unit, а искомой группы нету..подскажите где копать, если кто знает? Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 12, 2017 Share Posted January 12, 2017 Group.getByName() возвращяется таблица с полем id_, числовое значение которого является id группы, но не сама таблица с группой, или например при исполнение ф-ии Unit.getSensors() возвращается таблица, хотя Unit.getByName() возвращяется что -же что и Group.getByName() Таблица _id по сути описание Группы(юнита) применительно к данной группе (юниту). Хорошо все описано здесь http://wiki.hoggit.us/view/DCS_func_getByName Вообще сам пользуюсь http://wiki.hoggit.us/view/Category:Scripting [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
Timujin Posted January 12, 2017 Share Posted January 12, 2017 Таблица _id по сути описание Группы(юнита) применительно к данной группе (юниту). Странно, вот кусок кода local value = Group.getByName(имя_группы) type(value.id_) возвращаяет тип "number" tonumber(value.id) = id группы Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 12, 2017 Share Posted January 12, 2017 Странно, вот кусок кода local value = Group.getByName(имя_группы) type(value.id_) возвращаяет тип "number" tonumber(value.id) = id группы Так правильно, второй строкой и запрашивают из всей таблицы свойств только id local _name = value:getName(); - имя группы вернет local _units = value:getUnits(); - таблицу юнитов вернет, где #_units вернет количество юнитов в группе и т.д. [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
Timujin Posted January 12, 2017 Share Posted January 12, 2017 Так правильно, второй строкой и запрашивают из всей таблицы свойств только id local _name = value:getName(); - имя группы вернет local _units = value:getUnits(); - таблицу юнитов вернет, где #_units вернет количество юнитов в группе и т.д. фишка в том что Group.getUnits() или как я понял что идентично Value:getUnits() возвращает вот такое { [1] = {id_=123456789}, [...] = {id_ = ....} } Link to comment Share on other sites More sharing options...
Timujin Posted January 12, 2017 Share Posted January 12, 2017 а функция getmetatable(value) возвращяет значения: activate embarking isExist className_ parentClass_ getCategory Category __index getInitialSize tonumber __tonumber __newindex __le __eq getCoalition - тип "функция" getController - тип "функция" __lt getSize - тип "функция" getID - тип "функция" destroy- тип "функция" getName - тип "функция" getUnits - тип "функция" getByName - тип "функция" getUnit - тип "функция" Link to comment Share on other sites More sharing options...
Timujin Posted January 19, 2017 Share Posted January 19, 2017 В продолжение предыдущего поста Если я выполню local a={} local i=1 for value in pairs(Export) do a = value i=i+1 end ,внутри SSE то я получу таблицу с длиной 58, если я тоже самое выполню в DCS Api, то я получу идентичную таблицу. но если добаялю еще одну позицию в Export, то на "противополножной" стороне она не добавляется. Получается у нас 2 таблицы Export? Вопрос такой , в какой файл мне добавить глобальную таблицу, чтобы я мог иметь доступ к ней и в DCS Api и в SSE? Link to comment Share on other sites More sharing options...
B3OP Posted January 25, 2017 Share Posted January 25, 2017 Помогите кто может. Мне нужно что бы юнит достигнув ППМ поднимал флаг или присваивал значение флагу. Можно-ли вот сюда написать короткий скриптик который бы флагу присваивал значение? Без разрыва шаблонов — нет прогресса. Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 25, 2017 Share Posted January 25, 2017 Помогите кто может. Мне нужно что бы юнит достигнув ППМ поднимал флаг или присваивал значение флагу. Можно-ли вот сюда написать короткий скриптик который бы флагу присваивал значение? trigger.action.setUsetFlag('имя флага', 'значение флага'); [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
B3OP Posted January 25, 2017 Share Posted January 25, 2017 trigger.action.setUsetFlag('имя флага', 'значение флага'); Проблем какой то ( Это может быть из за того что у меня версия 1.5.3? Без разрыва шаблонов — нет прогресса. Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 25, 2017 Share Posted January 25, 2017 С телефона писал, ошибочка, не 'UsetFlag', а 'UserFlag' 1 [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
B3OP Posted January 25, 2017 Share Posted January 25, 2017 С телефона писал, ошибочка, не 'UsetFlag', а 'UserFlag' Получилось, это просто спасенье! Теперь граничные триггеры в миссии мне почти не нужны, а самих строчек с триггерами станет в 2 раза меньше. Теперь очень просто проверить где юнит, где колонна прошла, чей населённый пункт... ООо это божественно! Без разрыва шаблонов — нет прогресса. Link to comment Share on other sites More sharing options...
StarLey_Andrew Posted January 25, 2017 Share Posted January 25, 2017 Прошу помощи. Доброго все! Есть проблема которая, надеюсь, привлечет внимание разработчиков. Суть проблемы заключается в следующем, в SSE есть возможность выполнять некоторые действия по событиям в ходе миссии через addEventHandler. В общем-то есть список этих самых событий. Как правило все эти события записываются в дебрифинг (см.файл). Но в текущем дебрифинге мы видим, что несмотря на то, что все стоят на холодном старте в онлайне событие старт и стоп двигателя выполняется ТОЛЬКО ДЛЯ БОТОВ (здесь Пилот#066), то-же самое подтверждается логами с тестовыми миссиями (при необходимости приложу. Т.о. у нас получается, что онлайне и оффлайне фиксация событий происходит по разному, а скрипты пишутся в одинаково (что и логично). В чем причина этого? Как это можно исправить?!!! По этой причине часть интересных функций пришлось просто похоронить! Теперь по другой теме, прошу помочь всех кто может! Ни как не могу разобраться с классом Spot, как его получить, откуда, в какой момент? Для примера приложил тестовую миссию, в миссии есть БРДМ, у которой по радиоменю нужно вызвать функцию получения точки падения луча. При выборе пункта "Указать цель" через 10 секунд теоретически скрипт попытается запросить эту точку (10 секунд дается для того, чтобы выйти в режим бинокля и включить лазер или ИК маркер). В скрипте место, где я пытаюсь получить этот луч и его точку помечен комментом. И конечно в разных интерпретациях и вариантах у меня ничего не получается, а очень хочется! Вопрос, как получить Spot?!! Заранее благодарен тем кто хоть как-то разъяснит работу с этим классом.artyllery.mizdebrief.zip [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic70217_5.gif[/sIGPIC] Актуальные скрипты от StarLey_Andrew Автоматизация процессов при создании миссий в обновляемом сообщении с набором миссий использования скриптов без навыка программирования Link to comment Share on other sites More sharing options...
29S Posted January 26, 2017 Share Posted January 26, 2017 Проблем какой то ( Это может быть из за того что у меня версия 1.5.3? ЕМНИП, цифры в кавычки брать не нужно. Link to comment Share on other sites More sharing options...
Timujin Posted July 2, 2017 Share Posted July 2, 2017 Здравствуйте сразу уточню, группы добваляются динамично, с помощью coalition.addGroup(). Так вот, если группа удаляется принудительно, с помощью Group.destroy(), то следуюущая группа добавляется с другим ID, но если группа, скажем, была уничтожена или упала и взорвалась, то добавленная группа появляется с тем же ID, что приводит к ошибкам или вылетам Link to comment Share on other sites More sharing options...
BKZerg Posted July 2, 2017 Share Posted July 2, 2017 Здравствуйте сразу уточню, группы добваляются динамично, с помощью coalition.addGroup(). Так вот, если группа удаляется принудительно, с помощью Group.destroy(), то следуюущая группа добавляется с другим ID, но если группа, скажем, была уничтожена или упала и взорвалась, то добавленная группа появляется с тем же ID, что приводит к ошибкам или вылетам Сам назначай ID при генерации группы. Начни, например, с 10000 и счетчиком по единице добавляй. Link to comment Share on other sites More sharing options...
Recommended Posts