Bublik Posted October 25, 2005 Posted October 25, 2005 Сделал простенького робота через экспорт данных. Пока что умеет делать "плавные" виражи с заданным креном. Изображает человека, летающего с сервера. Этого было бы достаточно для тренировки ведомых в ГП и разворотов (для живого ведущего задача неинтересная). Все бы хорошо, но export.lua передается с сервера всем клиентам, а это значит, что клиенты тоже будут летать по программе этого "робота", хотят они того или нет :D (управление идет через LoSetCommand) Возможно ли это как-нибудь обойти? Например, разрешить клиентам свои export.lua или управлять из этого скрипта только самолетом с определенным ID? WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
Dronas Posted October 25, 2005 Posted October 25, 2005 Сделал простенького робота через экспорт данных. Пока что умеет делать "плавные" виражи с заданным креном. Изображает человека, летающего с сервера. Этого было бы достаточно для тренировки ведомых в ГП и разворотов (для живого ведущего задача неинтересная). Все бы хорошо, но export.lua передается с сервера всем клиентам, а это значит, что клиенты тоже будут летать по программе этого "робота", хотят они того или нет :D (управление идет через LoSetCommand) Возможно ли это как-нибудь обойти? Например, разрешить клиентам свои export.lua или управлять из этого скрипта только самолетом с определенным ID? Прикольно, дай поглазеть то ;) DimAss Coljo Yappo
ED Team Valery Blazhnov Posted October 25, 2005 ED Team Posted October 25, 2005 Сделал простенького робота через экспорт данных. Пока что умеет делать "плавные" виражи с заданным креном. Изображает человека, летающего с сервера. Этого было бы достаточно для тренировки ведомых в ГП и разворотов (для живого ведущего задача неинтересная). Все бы хорошо, но export.lua передается с сервера всем клиентам, а это значит, что клиенты тоже будут летать по программе этого "робота", хотят они того или нет :D (управление идет через LoSetCommand) Возможно ли это как-нибудь обойти? Например, разрешить клиентам свои export.lua или управлять из этого скрипта только самолетом с определенным ID? Все в руках сервера. Если на нем исключить файл export.lua из списка навязываемых всем клиентам файлов, то каждый клиент будет использовать свой export.lua. Отредактируй на сервере таблицу serverFiles в файле Config/Network/Config.lua. Valery Blazhnov Eagle Dynamics Veteran
Ulrich Posted October 25, 2005 Posted October 25, 2005 Сделал простенького робота через экспорт данных. Пока что умеет делать "плавные" виражи с заданным креном. Изображает человека, летающего с сервера. Прикольно, мой пока научился только взлетать и удерживать высоту/скорость, а также использовать механизацию. :) Когда будет время - хочу попробовать объяснить ему, что такое "цель" и как с ней бороться. ;)
WR259Leonid Posted October 25, 2005 Posted October 25, 2005 Лучше попробуйте "заскриптовать" строй. ну и банальные "10 градусов по УА за 5-7 секунд" ;) 8831px.ru ну и vfat, конечно же)
Bublik Posted October 25, 2005 Author Posted October 25, 2005 Все в руках сервера. Если на нем исключить файл export.lua из списка навязываемых всем клиентам файлов, то каждый клиент будет использовать свой export.lua. Отредактируй на сервере таблицу serverFiles в файле Config/Network/Config.lua. О, спасибо :) Кстати, как корректнее удалять export.lua из списка, удалить строку с элементом таблицы совсем или присвоить пустое значение? Вот http://n210.nm.ru/files/export.rar трек (на качество пилотажа не обращайте внимания, записал по быстрому в окошке 800х600) http://n210.nm.ru/files/netbot.rar Ничего сложного там нет, умеет включать автоматы высоты и скорости и делать развороты. Взлетать и садиться не умеет :) WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
Bublik Posted October 25, 2005 Author Posted October 25, 2005 Лучше попробуйте "заскриптовать" строй. ну и банальные "10 градусов по УА за 5-7 секунд" ;) Нее, выполнять "10 градусов по УА за 5-7 секунд" точно так же, как живой ведущий, робота сложно научить. Да и незачем :D WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
Dmut Posted October 26, 2005 Posted October 26, 2005 О, спасибо :) Кстати, как корректнее удалять export.lua из списка, удалить строку с элементом таблицы совсем или присвоить пустое значение? лучше удалить строку и перенумеровать индексы, что бы по порядку шли. я не уверен, но скорее всего там идет чтение файлов до первого пустого значения. "There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu [sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]
NAEMNIK Posted October 26, 2005 Posted October 26, 2005 Кто может сделать так, чтобы все боты строго держали заданную скорость? И в режиме полета по маршруту «писали» плавные крены. Кто может сделайте PLZ. [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic3427_40.gif[/sIGPIC] Windows se7en | Intel™ C2D E6850 3.00GHz | 4GB RAM | ATi RADEON™ HD 4870 Sonic 512Mb DDR5 | Saitek X52 | TrackIR4 | VKB.
vitaliska Posted October 26, 2005 Posted October 26, 2005 А можно подробнее описать как включается бот. Не то, как пишется файл export.lua, а как после его замены в дир игры настроить все внутри lockona. WR=251=Vitaliska http://white-ravens.com/
Bublik Posted October 26, 2005 Author Posted October 26, 2005 А можно подробнее описать как включается бот. Не то, как пишется файл export.lua, а как после его замены в дир игры настроить все внутри lockona. Сделать сетевую миссию, в которой один из клиентских самолетов начинает в воздухе. Запустить сервер с этой миссией и занять этот самолет. Войти в миссию. Да, еще надо подредактировать Config/Network/Config.lua (убрать export.lua из serverfiles), как было написано выше. WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
vitaliska Posted October 26, 2005 Posted October 26, 2005 Запустить сервер с этой миссией и занять этот самолет. Войти в миссию. Я занял этот самолет, но я хотел бы полетать за ботом, а не смотреть, как самолет управляется без меня. Сегодня керосин подвезут к 22:00? WR=251=Vitaliska http://white-ravens.com/
KORD Posted October 26, 2005 Posted October 26, 2005 вопрос к знатокам 1) как в export.lua узнать высоту? 2) как в export.lua узнать высоту, на которой должен лететь самолет по маршруту? Я белый и пушистый :music_whistling:
ED Team Valery Blazhnov Posted October 27, 2005 ED Team Posted October 27, 2005 Кстати, как корректнее удалять export.lua из списка, удалить строку с элементом таблицы совсем или присвоить пустое значение? Удалить. Впрочем, и пустое значение сработает. Главное, чтобы сервер не знал, что export.lua нужно всем навязывать. Valery Blazhnov Eagle Dynamics Veteran
Bublik Posted November 28, 2005 Author Posted November 28, 2005 Научил выходить на заданный угол атаки (и удерживать). Через две недели может быть научу (если время будет) делать нормальную петлю :) Но на человека все равно не похоже. Трек http://n210.nm.ru/files/fbw_test.zip Бот пытается удержать угол 10. Я управляю с клавиатуры по крену и РУДами, а у (ро)бота управление по тангажу. WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
vitaliska Posted November 29, 2005 Posted November 29, 2005 to Bublik Ждем петли и бочки...8-) WR=251=Vitaliska http://white-ravens.com/
Bublik Posted December 1, 2005 Author Posted December 1, 2005 Update: Трек с испытаний новой САУ для модифицированного робота, стабилизирует скорость и высоту (ну не нравятся мне встроенные локоновские автоматы, особенно с кренами больше 30 :)) http://n210.nm.ru/files/acstest.zip В треке я управляю только по крену (с клавы), остальное робот. Высоту держит, наверно, слишком хорошо, надо подрезать, чтобы на человека был похож. До крена 60, при умеренной скрости ввода в вираж, РУДами тоже нормально работает. 2 vitaliska Постепенно может быть до более сложного доберусь. Почти как у людей, сначала ГП и виражи, потом простой и сложный пилотаж :D WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
Bublik Posted December 3, 2005 Author Posted December 3, 2005 Вроде понял, как сделать фантома. Но почему-то результат не сходится, за 7-минутный полет набегает ошибка метров 20. Солюшен :D Заходим в ЛО, создаем сервер, летаем чего хотим, записываем трек. Прописываем в modeltimer.lua TraceOn = true TraceCommandsDiscreteOn = true TraceCommandsAnalogOn = true Запускаем проигрывание трека только что записанного с сервера. В Temp появляется файл TrackPlay.log Обрабатываем скриптом типа такого while (<>) { if (m/activity: 30.+ T:(.+?) C:(\d+?)\(.*\)/) { $t=$1; $c=$2; if (m/V:(.+?)$/) {print "$t $c $1\n"} else {print "$t $c 100\n"}; } } на вход даем TrackPlay.log, выход направляем в mtrack в папке Temp. Возвращаем modeltimer.lua в исходное состояние, а export.lua подменяем на такой function LuaExportStart() local file = io.open("./Temp/mtrack", "r") if file then io.input(file) end cmnd = 1 cvalue = 0 end function LuaExportBeforeNextFrame() end function LuaExportAfterNextFrame() end function LuaExportStop() io.close() end function LuaExportActivityNextEvent(t) local tNext = t local s = io.read() if cvalue < 100 then LoSetCommand(cmnd, cvalue) else LoSetCommand(cmnd) end _, _, mt, cmnd, cvalue = string.find(s, "(-*%d+.%d+) (%d+) (-*%d+.*%d+)") mt = tonumber(mt) cmnd = tonumber(cmnd) cvalue = tonumber(cvalue) tNext = mt return tNext end Снова запускаем ЛО в режиме сервера и выбираем ту же миссию и тот же самолет. Вопрос: Почему такой "трек" не сходится? Сам долго не разбирался (пару часов), может быть упустил чего-нить. WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
Bublik Posted December 18, 2005 Author Posted December 18, 2005 В общем, так и не понял, почему не сходится. Если начинать с земли, то ошибка после выруливания на ВПП уже градуса 3. Если с воздуха и не пользоваться педалями, то получается по крайней мере похоже на оригинал. Но минут через 10 разница все равно очень заметная. Попытка пролететь ведомым за своим "фантомом-ведущим" http://lockon-vpg.nm.ru/files/phantom_test.zip (680 кб) Получилось хреново. Наверное, потому что за собой никогда не летал (ведущий из меня никакой) или непривычно, что нет голосовых команд. А может, потому что не тренировались давно :D Кто-нибудь знает как из луа-скрипта вызвать внешнюю программу? Тогда можно было бы прикрутить фантому голос. Почему-то execute не работает. WR=210=Vladimir http://lockon-vpg.nm.ru http://whiteravens.nm.ru http://white-ravens.com
Dmut Posted December 19, 2005 Posted December 19, 2005 os.execute (command) пробовал? "There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu [sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]
NAEMNIK Posted December 19, 2005 Posted December 19, 2005 Bublik, сделай пожалуйста просто чтобы все боты в ЛО держали постоянную скорость! Я тебя умоляю! PLZ Хотел через редактор треков полетать за твоим ботом, но не получилось… [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic3427_40.gif[/sIGPIC] Windows se7en | Intel™ C2D E6850 3.00GHz | 4GB RAM | ATi RADEON™ HD 4870 Sonic 512Mb DDR5 | Saitek X52 | TrackIR4 | VKB.
ED Team Laivynas Posted December 19, 2005 ED Team Posted December 19, 2005 NAEMNIK =RAF=, не флуди! 3.4 Best Regards, Dmitry. "Чтобы дойти до цели, надо прежде всего идти." © О. Бальзак
Mishel Posted December 19, 2005 Posted December 19, 2005 Кто-нибудь знает как из луа-скрипта вызвать внешнюю программу? Тогда можно было бы прикрутить фантому голос. Почему-то execute не работает. Это работает. Приведите строчку кода, которую используете.
NAEMNIK Posted December 19, 2005 Posted December 19, 2005 NAEMNIK =RAF=, не флуди! 3.4 Я разговариваю с человек и прошу у него пояснений или рекомендаций по теме, и не вижу в этом флуда. А пункт 3.4 относится к твоему посту, не обоснованному и бессмысленному. ======================= С пост скриптумом ознакомился, ответил в привате. (Если ты заметил, содержимое твоих постов на месте - слито в одно сообщение. ;) ) [sIGPIC]http://forums.eagle.ru/signaturepics/sigpic3427_40.gif[/sIGPIC] Windows se7en | Intel™ C2D E6850 3.00GHz | 4GB RAM | ATi RADEON™ HD 4870 Sonic 512Mb DDR5 | Saitek X52 | TrackIR4 | VKB.
ThomL Posted December 19, 2005 Posted December 19, 2005 лучше удалить строку и перенумеровать индексы, что бы по порядку шли. я не уверен, но скорее всего там идет чтение файлов до первого пустого значения. А почему было не сделать, изначально, сбор данных в массив, удаление пустых значений и сортировку по индексам, со сбросом существующих, т.е. из: array1( 1=>"first", 2=>null, 3=>"третий" ); превратить в array2( 1=>"first", 2=>"третий" ); unset(array1); Это же элементарно. Не подумали или еще какая-то причина. Вопрос из чистого любопытства.
Recommended Posts