Kot083 Posted February 24, 2011 Share Posted February 24, 2011 Здравствуйте! Подскажите, если кто делал, как добавить пункты в настройки "Осевые команды". Хочу добавить "ИТ-23 яркость", "ИТ-23 контраст" и "НСЦ яркость". А то на джое (Logitech G940) три свободные оси (крутилки) остались, хочу их забить. Заранее спасибо! Link to comment Share on other sites More sharing options...
BR55Sevas Posted February 24, 2011 Share 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 Link to comment Share on other sites More sharing options...
mkmax Posted February 24, 2011 Share 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; } Link to comment Share on other sites More sharing options...
Sanjok Posted March 9, 2011 Share Posted March 9, 2011 Я в программировании не силён, но у меня такой вопрос: какой файл нужно изменить, чтобы на акулу повесить вихри на все узлы подвески. Можно ли прикрутить к ка 50 ракуту Х 25 МЛ? Link to comment Share on other sites More sharing options...
Flаnker Posted March 9, 2011 Share Posted March 9, 2011 Я в программировании не силён, но у меня такой вопрос: какой файл нужно изменить, чтобы на акулу повесить вихри на все узлы подвески. Можно ли прикрутить к ка 50 ракуту Х 25 МЛ? Х-25МЛ и так может вешаться на крайние точки подвески Мои авиафото Link to comment Share on other sites More sharing options...
Sanjok Posted March 9, 2011 Share Posted March 9, 2011 А вообще я щитаю, что если скрипты играют в игре такую большую роль, то нужно отдельный мануал, где было бы расписано подробно о назначении каждого из них. Link to comment Share on other sites More sharing options...
димок Posted March 9, 2011 Share Posted March 9, 2011 Я в программировании не силён, но у меня такой вопрос: какой файл нужно изменить, чтобы на акулу повесить вихри на все узлы подвески. Можно ли прикрутить к ка 50 ракуту Х 25 МЛ? Можно всё , но вихри на внуренних полонах неподвижны , Х - 25 вешается в редакторе , если вешать ракеты с лазерным наведением Х - 25 , хелфайр , то они наводятся на цель твоего ведомого . По сети с измененными файлами не полетаешь . Будьте осторожнее в своих желаниях. Прошу все мои сообщения считать случайным набором букв , цифр , и прочих знаков орфографии, не несущих смысловой нагрузки. Link to comment Share on other sites More sharing options...
aleks974 Posted March 17, 2011 Share 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 Link to comment Share on other sites More sharing options...
моделистvv Posted April 8, 2011 Share Posted April 8, 2011 (edited) Может не по теме, но всёже. Функцию индикации превышения перегрузки и угла атаки в ГС2 не подскажите? Edited April 8, 2011 by моделистvv Link to comment Share on other sites More sharing options...
моделистvv Posted April 14, 2011 Share Posted April 14, 2011 Ветка умерла? Или просто все заняты? Link to comment Share on other sites More sharing options...
димок Posted May 13, 2011 Share 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 Будьте осторожнее в своих желаниях. Прошу все мои сообщения считать случайным набором букв , цифр , и прочих знаков орфографии, не несущих смысловой нагрузки. Link to comment Share on other sites More sharing options...
=Andre= Posted June 20, 2011 Share 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] Link to comment Share on other sites More sharing options...
213 Posted November 15, 2011 Share Posted November 15, 2011 Как установить Shift + J, чтобы умолчанию? Link to comment Share on other sites More sharing options...
Бык Posted March 19, 2012 Share 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 Бык Link to comment Share on other sites More sharing options...
SV_huMMer Posted April 2, 2012 Share 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+ Link to comment Share on other sites More sharing options...
BR55Sevas Posted May 9, 2012 Share 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 Link to comment Share on other sites More sharing options...
BJ Posted May 11, 2012 Share 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 Link to comment Share on other sites More sharing options...
X-Pilot Posted May 28, 2012 Share 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,игра выдаёт ошибку,убираю,работает,хотя после остальных значений запятая стоит,и всё работает,подскажите пожалуйста,что делать?за ранее спасибо. Link to comment Share on other sites More sharing options...
BJ Posted September 7, 2012 Share 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 Link to comment Share on other sites More sharing options...
USSR_Nic Posted October 2, 2012 Share Posted October 2, 2012 Поднимаешь сокет на С# и отправляешь данные в него из export.lua Во вложении - класс, который я писал для связи с DCS. Там кое-где есть комментарии, думаю всё понятно. Ключевое событие - MessageRecieved. Кроме этого можешь глянуть на проект http://touchpal.googlecode.com/, там фактически готовое приложения для связи с DCS, см ветку. А можно еще красивее - запускать код на C# прям из скрипта: дока и библиотечка. Я дико извиняюсь, не программист я, Вы случайно не подскажете, а как воспользоваться этим классом? Я его и так и эдак.... Нифига не получается. Я наверно ща совсем обнаглею, но может быть Вы можете, для примера, выложить ПРОЕКТ какой-нить рабочий, типа вынуть данные из DCS и положить в файл. А? Ну пожалста...:cry: Выпитая водка не влияет на ТТХ истребителей!!! Слава ЕД!!! У меня есть АФМ к Су-33!!!!!! Link to comment Share on other sites More sharing options...
USSR_Nic Posted October 10, 2012 Share Posted October 10, 2012 разобрался. Выпитая водка не влияет на ТТХ истребителей!!! Слава ЕД!!! У меня есть АФМ к Су-33!!!!!! Link to comment Share on other sites More sharing options...
JEKA-KRbIM Posted November 29, 2012 Share 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. Link to comment Share on other sites More sharing options...
GUMAR Posted March 4, 2013 Share 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 Link to comment Share on other sites More sharing options...
iceHUMMER Posted March 18, 2013 Share Posted March 18, 2013 Привет. Как обнулить таймер? или создать свой. Пробовал со счётчиком, но что-то не фурычит. Link to comment Share on other sites More sharing options...
Katmandu Posted August 12, 2013 Share 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 Link to comment Share on other sites More sharing options...
Recommended Posts