Kot083 Posted February 24, 2011 Posted February 24, 2011 Здравствуйте! Подскажите, если кто делал, как добавить пункты в настройки "Осевые команды". Хочу добавить "ИТ-23 яркость", "ИТ-23 контраст" и "НСЦ яркость". А то на джое (Logitech G940) три свободные оси (крутилки) остались, хочу их забить. Заранее спасибо!
BR55Sevas Posted February 24, 2011 Posted February 24, 2011 mkmax, т.е. можно ли в реал-тайме получать картинку из игры по аналогии с приборами? Как к картинке обратиться сторонней программой? Откуда функция OpenFileMapping взялась? По идее должно быть что-то вроде такого, но не уверен: export.lua function LuaExportAfterNextFrame() local name = "mfd0" --full SHKVAL screen local Image = LoSetSharedTexture(name) socket.try(c:send(Image)) как отправить картинку по сокету? МиГ-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
mkmax Posted February 24, 2011 Posted February 24, 2011 Здравствуйте! Подскажите, если кто делал, как добавить пункты в настройки "Осевые команды". Хочу добавить "ИТ-23 яркость", "ИТ-23 контраст" и "НСЦ яркость". А то на джое (Logitech G940) три свободные оси (крутилки) остались, хочу их забить. Заранее спасибо! Вообще, осевые команды джойстику можно добавить в D:\Games\ka50\Config\Input\Aircrafts\ka-50\joystick\default.lua (секция axisCommands, в самом низу). При правильном добавлении они появятся в интерфейсе. Конкретно для ИТ-23 и НСЦ осевых команд, насколько я знаю, не предусмотрено. mkmax, т.е. можно ли в реал-тайме получать картинку из игры по аналогии с приборами? Как к картинке обратиться сторонней программой? Откуда функция OpenFileMapping взялась? По идее должно быть что-то вроде такого, но не уверен: как отправить картинку по сокету? В реалтайме будет тормозить, получать лучше несколько раз в секунду. Или раз в несколько секунд. CreateFileMapping & Co - функции WinAPI для работы с памятью, существуют со времен Windows 2000. Как отправить картинку по сокету я не знаю, и смысла это делать не вижу. Пример программы на срр, читающей картинку со шквала и пишущей её в D:\Games\fc2\mfd0.bmp: #include <windows.h> #include <stdio.h> #include <conio.h> #include <tchar.h> #pragma comment(lib, "user32.lib") TCHAR szSharedName[]=TEXT("mfd0"); TCHAR szFileName[]=TEXT("D:\\Games\\fc2\\mfd0.bmp"); int _tmain() { HANDLE hMapFile; char* pBuf; //открываем нашу текстуру hMapFile = OpenFileMapping( FILE_MAP_ALL_ACCESS, // read/write access FALSE, // do not inherit the name szSharedName); // name of mapping object if (hMapFile == NULL) { _tprintf(TEXT("Could not open file mapping object (%d).\n"), GetLastError()); return 1; } //берем указатель на данные pBuf = (char*)MapViewOfFile(hMapFile, // handle to map object FILE_MAP_ALL_ACCESS, // read/write permission 0, 0, 0); if (pBuf == NULL) { _tprintf(TEXT("Could not map view of file (%d).\n"), GetLastError()); CloseHandle(hMapFile); return 1; } //в памяти лежит... кхм... не совсем стандартный битмап. Приводим к человеческому виду BITMAPFILEHEADER fh; BITMAPINFOHEADER* ih = (BITMAPINFOHEADER*)(pBuf+4); DWORD dataSize = ih->biHeight * ih->biWidth * ih->biBitCount / 8; DWORD bytesWritten = 0; fh.bfType = 0x4d42; fh.bfSize = dataSize + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); fh.bfOffBits = 0x40; fh.bfReserved1 = fh.bfReserved2 = 0; //поворачиваем вверх головой ih->biHeight = -ih->biHeight; //выгружаем в файл HANDLE hFile = CreateFile(szFileName, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_FLAG_WRITE_THROUGH, 0); if (hFile == NULL) { _tprintf(TEXT("Could not create file for writing (%d).\n"), GetLastError()); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 1; } //заголовок файла if (WriteFile(hFile, &fh, sizeof(BITMAPFILEHEADER), &bytesWritten, 0) == NULL) { _tprintf(TEXT("Error writing data file header (%d).\n"), GetLastError()); CloseHandle(hFile); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 1; } //заголовок данных if (WriteFile(hFile, ih, sizeof(BITMAPINFOHEADER), &bytesWritten, 0) == NULL) { _tprintf(TEXT("Error writing data info header (%d).\n"), GetLastError()); CloseHandle(hFile); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 1; } //данные if (WriteFile(hFile,pBuf + 4 + sizeof(BITMAPINFOHEADER), dataSize, &bytesWritten, 0) == NULL) { _tprintf(TEXT("Error writing data (%d).\n"), GetLastError()); CloseHandle(hFile); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 1; } //деинициализация CloseHandle(hFile); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 0; }
Sanjok Posted March 9, 2011 Posted March 9, 2011 Я в программировании не силён, но у меня такой вопрос: какой файл нужно изменить, чтобы на акулу повесить вихри на все узлы подвески. Можно ли прикрутить к ка 50 ракуту Х 25 МЛ?
Flаnker Posted March 9, 2011 Posted March 9, 2011 Я в программировании не силён, но у меня такой вопрос: какой файл нужно изменить, чтобы на акулу повесить вихри на все узлы подвески. Можно ли прикрутить к ка 50 ракуту Х 25 МЛ? Х-25МЛ и так может вешаться на крайние точки подвески Мои авиафото
Sanjok Posted March 9, 2011 Posted March 9, 2011 А вообще я щитаю, что если скрипты играют в игре такую большую роль, то нужно отдельный мануал, где было бы расписано подробно о назначении каждого из них.
димок Posted March 9, 2011 Posted March 9, 2011 Я в программировании не силён, но у меня такой вопрос: какой файл нужно изменить, чтобы на акулу повесить вихри на все узлы подвески. Можно ли прикрутить к ка 50 ракуту Х 25 МЛ? Можно всё , но вихри на внуренних полонах неподвижны , Х - 25 вешается в редакторе , если вешать ракеты с лазерным наведением Х - 25 , хелфайр , то они наводятся на цель твоего ведомого . По сети с измененными файлами не полетаешь . Будьте осторожнее в своих желаниях. Прошу все мои сообщения считать случайным набором букв , цифр , и прочих знаков орфографии, не несущих смысловой нагрузки.
aleks974 Posted March 17, 2011 Posted March 17, 2011 Одолел. Теперь, если вдруг соберусь строить железный кокпит - буду знать, откуда тянуть данные :music_whistling: поделись опытом как это сделал Intel Core 2 CPU 6300 @ 1.86GHz, 2,0GB RAM, ASUS EAH6850 DirectCU 1GB GDDR5 Saitek X 52 PRO
моделистvv Posted April 8, 2011 Posted April 8, 2011 (edited) Может не по теме, но всёже. Функцию индикации превышения перегрузки и угла атаки в ГС2 не подскажите? Edited April 8, 2011 by моделистvv
димок Posted May 13, 2011 Posted May 13, 2011 жаль что поздно заметили. значит так - механизм кастомных триггеров в симе есть и он работает. но в редакторе я его забыл прописать. поэтому: 1) в файле me_mission.lua в районе строки 1056 вставляем такую сентецию (это что бы кастомные триггеры сохранялись при сохранении миссии) um.customtrigfunc = mission.customtrigfunc or {} после чего заходим в редактор, сохраняем миссию и получаем новую таблицу customtrigfunc = { }, -- end of customtrigfunc 2) прописываем туда кастомные триггеры customtrigfunc = { [1] = "if c_time_after(\"20\") then a_out_text_delay(\"Работает\", \"10\"); end;", }, вроде все. попробуй Сергей и скажи что получится. Не получается нет секции customtrigfunc = { }, -- end of customtrigfunc Будьте осторожнее в своих желаниях. Прошу все мои сообщения считать случайным набором букв , цифр , и прочих знаков орфографии, не несущих смысловой нагрузки.
=Andre= Posted June 20, 2011 Posted June 20, 2011 (edited) Экспорт для построения диаграммы посадки Добрый день :) Предлагаю простой скрипт экспорта ЛОГС2, оптимизированный для построения диаграммы процесса посадки. В файл выгружаются основные параметры, некоторые из них в масштабе 1:10 или 1:100 для удобства чтения графика. Чтобы построить диаграмму, получившийся файл \Temp\Flight_data\Flight-(дата и время).txt импортируются в какой-либо редактор таблиц, например Google Docs или MS Office Excel, и после несложных манипуляций получаем на выходе примерно такую диаграмму(см.рисунок). Момент посадки легко определяется по данным из файла \Temp\debrief.log. Запись в файл производится каждые 0,5 сек при активном режиме Landing и автоматически начинается c момента, когда барометрическая высота станет меньше 100 м. Каталог \Temp\Flight_data\ надо создать заранее. Естественно нужно активировать функцию экспорта в файле \Config\Export\Config.lua, раскомментировав строку EnableExportScript = true, если это не было сделано ранее. В архиве Export_for _DCSW.zip версия для DCS World, пишет данные в каталог C:\dcsw_flight_data\ Каталог надо создать заранее. Экспорт в файл начинается с барометрической высоты 550 м при активном режиме Landing.Export.lua Edited January 24, 2014 by =Andre= небольшие уточнения 1 Gametrix JetSeats thread (in English) , SimShaker addon for bass-shakers thread (in English), Andre's blog, downloads, manuals (in English). [sIGPIC][/sIGPIC]
Бык Posted March 19, 2012 Posted March 19, 2012 (edited) Фигура пилота в кабине Сейчас негде проверить точно, но скорее всего вот так: Скрипт - ..\Scripts\Aircrafts\Ka-50\Cockpit\mainpanel_init.lua Строка: draw_pilot = false поменять на draw_pilot = true не помогает... в Warthog 1.1.1.1 вообще нет такой настройки "Фигура пилота в кабине", скорее всего и Ка-50 1.1.1.1 подогнали - убрали фигуру пилота в кабине, только забыли убрать строку "Фигура пилота в кабине" в настройках управления Edited March 19, 2012 by Бык
SV_huMMer Posted April 2, 2012 Posted April 2, 2012 (edited) Уважаемые форумчане! Пробовал ли кто-нибудь прикрутить к DCS ЧА2 или А10С приборные панели Saitek Instrument Panel? Обширное гуглирование навело вот на такую разработку, которая вроде как позволяет этим панелькам управляться через lua. Выглядит довольно заманчиво - прикрутить все это "наследие FSX" к Акуле. Втройне заманчиво, если удастся "вытянуть" функционал, заложенный по дефолту в этих панелях под FSX, а именно: 1) Возможность выводить разные шкалы, и 2) Возможность использовать энкодеры на панельке как ручки на приборах. Поиск по форуму не помог... UPDATE: Уважаемые разработчики! Благодаря разговорам с умными людьми (спасибо mkmax!), в моей неуемной голове родился вот такой вопрос: если в Акулу встроили в той или иной степени "нативную" поддержку Saitek X52Pro (вплоть до управления состоянием светодиодов и информации на MFD), означает ли это, что вы "осилили" сайтоковский API (ибо описанный функционал лежит за рамками MS DirectInput)? А если да, то можно ли как-то более детально изучить принципы взаимодействия Акулы именно с этими девайсами? Edited April 18, 2012 by SV_huMMer ================= "Если вы боитесь высоты, значит, вы просто еще не пугались ее отсутствия" "If you fear heights, you simply haven't yet feared the absence thereof" ================= Core i7 2600K, ASUS P8Z68 Deluxe/Gen3, 32GB DDR3 1600, Radeon HD 7950, 256Gb SSD Crucial M4, 2TB Samsung SATAIII, 1,5TB WD SATAIII, 650W Enermax Modu87+
BR55Sevas Posted May 9, 2012 Posted May 9, 2012 Как сделать обработчик ошибки внутри функции? есть экспорт который открывает несколько соединений: function LuaExportStart() package.path = package.path..";.\\LuaSocket\\?.lua" package.cpath = package.cpath..";.\\LuaSocket\\?.dll" socket = require("socket") RazClient = socket.udp() RazClient:setsockname("127.0.0.1", 8092) RazClient:setpeername("127.0.0.1", 8090) RazClient:settimeout(0) Panel_tcp = socket.try(socket.connect("127.0.0.1",20081)) Panel_tcp:setoption("tcp-nodelay",true) Panel_udp = socket.udp() Panel_udp:setpeername("127.0.0.1", 20083) Panel_udp:settimeout(0) PPI = socket.udp() PPI:setpeername("127.0.0.1", 20082) PPI:settimeout(0) end Как сделать так, чтобы в случае ошибки при создании TCP соединения экспорт всё равно бы работал? Я пробовал так: try { Panel_tcp = socket.try(socket.connect("127.0.0.1",20081)) Panel_tcp:setoption("tcp-nodelay",true) }.except(Exceptions.ValueError) {} Но экспорт выдаёт ошибку ./Config/Export/Export.lua:16: '}' expected (to close '{' at line 14) near 'Panel_tcp' Где эту скобку только не пытался вставлять, всё равно ошибка. Пробовал и так try Panel_tcp = socket.try(socket.connect("127.0.0.1",20081)) Panel_tcp:setoption("tcp-nodelay",true) end Dispatcher::Can't execute Lua file ./Config/Export/Export.lua - ./Config/Export/Export.lua:14: '=' expected near 'Panel_tcp' Насколько я понимаю обработчик работает только на всю фукцию, можно ли как-то обрабатывать часть кода внутри? МиГ-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
BJ Posted May 11, 2012 Posted May 11, 2012 Как сделать обработчик ошибки внутри функции? #!/usr/bin/env lua require "socket" foo = socket.protect(function() local c = socket.try(socket.connect("0.0.0.0", 10309)) local try = socket.newtry(function() c:close() end) try(c:send("hello there?!\r\n")) local answer = try(c:receive()) print(answer) try(c:send("good bye\r\n")) c:close() end) foo() вот пример, надеюсь поможет. Alpha team, JaZZ
X-Pilot Posted May 28, 2012 Posted May 28, 2012 Здравствуйте,у меня появилась проблемка,при редактировании файла sfm_aerod.lua а конкретно вот эти строки: 0.49, 0.0165, 0.0670, 0.1, 0.158, 0.178, 24., 1.5, 0.5, 0.0165, 0.070, 0.1, 0.170, 0.210, 24., 1.5, 0.51, 0.0165, 0.076, 0.094, 0.184, 0.255, 24., 1.5, если я ставлю запятую как и должно быть(обозначена красным) после значения М=0.5,игра выдаёт ошибку,убираю,работает,хотя после остальных значений запятая стоит,и всё работает,подскажите пожалуйста,что делать?за ранее спасибо.
BJ Posted September 7, 2012 Posted September 7, 2012 кто-то использовал функцию?? * void net.write_debriefing(str) Writes user-defined event to Temp/debrief.log file. The string "XXX" is written as: {t=[current mission time], XXX}, если да то поделитесь соображениями, т.к. судя по описанию аргументом служит простая строка, которая потмо уже впиливается в массив, т.е. net.write_debriefing("a1=1,a2=2,a3=3") на выходе получим {t=[current mission time], a1=1,a2=2,a3=3}, делаю так - ничего в лог не пишет... делаю так: net.write_debriefing("{t=[current mission time], a1=1,a2=2,a3=3}") опять ничего не пишет... может есть третий вариант? ибо ставлю строчкой выше * void net.log(string msg) и все в нетлог замечатльно пишется а в debrief.log не хочет... Alpha team, JaZZ
USSR_Nic Posted October 2, 2012 Posted October 2, 2012 Поднимаешь сокет на С# и отправляешь данные в него из export.lua Во вложении - класс, который я писал для связи с DCS. Там кое-где есть комментарии, думаю всё понятно. Ключевое событие - MessageRecieved. Кроме этого можешь глянуть на проект http://touchpal.googlecode.com/, там фактически готовое приложения для связи с DCS, см ветку. А можно еще красивее - запускать код на C# прям из скрипта: дока и библиотечка. Я дико извиняюсь, не программист я, Вы случайно не подскажете, а как воспользоваться этим классом? Я его и так и эдак.... Нифига не получается. Я наверно ща совсем обнаглею, но может быть Вы можете, для примера, выложить ПРОЕКТ какой-нить рабочий, типа вынуть данные из DCS и положить в файл. А? Ну пожалста...:cry: Выпитая водка не влияет на ТТХ истребителей!!! Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!
USSR_Nic Posted October 10, 2012 Posted October 10, 2012 разобрался. Выпитая водка не влияет на ТТХ истребителей!!! Слава ЕД!!! У меня есть АФМ к Су-33!!!!!!
JEKA-KRbIM Posted November 29, 2012 Posted November 29, 2012 уважаемые знатоки! как в ка 50 отключить тримирования педалей. а то с g940 летать, у меня не выходит. зарание спасибо. Maximus V Gene Z77. I5 2500K 4.5GHZ.gtx 780 ti windforce. SAMSUNG 55 1920-1080+SAMSUNG 23 2048-1152 ШКВАЛ АБРИС. LOGITECH G940- ПЕДАЛИ С МИ-8. G930. TrackIR 5.
GUMAR Posted March 4, 2013 Posted March 4, 2013 Подскажите, какие функции отвечают за наличие подвесок и типа подвесок? Вот тут кол-во выбранных подвесок, как я понял и какая-то таблица подвесок. LoGetPayloadInfo() -- return weapon stations result_of_LoGetPayloadInfo { CurrentStation = , -- number of current station (0 if no station selected) Stations = {},-- table of stations] } А это, типа контейнер - да/нет, например кмгу? Дальше, тип оружия и количество? station { container = true/false , -- is station container weapon = {level1,level2,level3,level4} , -- world database classification of weapon count = , } [sIGPIC][/sIGPIC] Реальные хотелки к ЛО3 по Су-25 в основном... ASRock PG9, i-5 9600KF, MSI 2080Ti, 32GB 3466
iceHUMMER Posted March 18, 2013 Posted March 18, 2013 Привет. Как обнулить таймер? или создать свой. Пробовал со счётчиком, но что-то не фурычит.
Katmandu Posted August 12, 2013 Posted August 12, 2013 не помогает... в Warthog 1.1.1.1 вообще нет такой настройки "Фигура пилота в кабине", скорее всего и Ка-50 1.1.1.1 подогнали - убрали фигуру пилота в кабине, только забыли убрать строку "Фигура пилота в кабине" в настройках управления DCS World\MODS\aircrafts\Ka-50\Cockpit\Scripts файл 'mainpanel_init.lua' 'draw_pilot' поменять false на true
Recommended Posts