Я попробовал Ваш код, он не звучит за исключением положения «0», когда он снова зацикливается , но идею я более или менее понял, взял её на вооружение, и вот, что получилось:
<Gauge Name="FuelSelector" Version="1.0">
<Element>
<Select>
<Value>(A:RECIP ENG FUEL TANK SELECTOR:1, enum) (>L:RECIP ENG FUEL TANK SELECTOR:1, enum)</Value>
<Value>(A:RECIP ENG FUEL TANK SELECTOR:1, enum) (L:RECIP ENG FUEL TANK SELECTOR:1, enum) ^ if{ 1
(>L:FUEL_SELECTOR_SOUND,bool) (A:RECIP ENG FUEL TANK SELECTOR:1, enum) (>L:RECIP ENG FUEL TANK SELECTOR:1, enum) }
els{ 0 (>L:FUEL_SELECTOR_SOUND,bool) }</Value>
</Select>
</Element>
</Gauge>
Оно работает!
Так что огромное Вам спасибо за свежую (для меня) идею, будете в Питере — с меня пиво 😀
Bor1
29.06.2010 в 13:06
ilya1502, здорово, я рад. Я то ХМЛ для МСФС «нехорошо знаю» :D.
А вот и я увидел свою ошибку, надо было не на равенство проверять, а на неравенство (не знаю как в ХМЛ не равно, так «!=» или так «<>»). А, ну да, посмотрел ваш код, не равно обозначается символом «^» ? Ну вот и разобрались.
И все таки, этот кусок кода кажется мне лишним:
els{ 0 (>L:FUEL_SELECTOR_SOUND,bool) }
, это то, что сбрасывается автоматом в 0 опцией Reset=true.
Edited by Bor
ilya15022583
29.06.2010 в 14:17
И все таки, этот кусок кода кажется мне лишним:
els{ 0 (>L:FUEL_SELECTOR_SOUND,bool) }
, это то, что сбрасывается автоматом в 0 опцией Reset=true.
А, ясно, попробую убрать.
Bor1
01.07.2010 в 04:35
В принципе, опция Reset лишняя, потому что зацикливание звука ядро сервера может определить (и определяет) автоматически по наличию в файле меток Sustaining Loop, и на основании этого принимать решение — один раз проигрывать звук или циклить его между метками, так что в следующей версии я уберу эту опцию.
Jaymz23
12.08.2010 в 17:30
Ребят, подскажите начинающему пожалуйста:
Есть простенький работающий xml код — мышиная зона на выпуск интерцепторов и движение рычага — меняет два *.bmp файла.
Вопрос: куда вставить (>L:spoil_switch_sound,bool) что бы рычаг спойлеров обрел звук. Сразу скажу, что прибор xss настроен. Не знаю синтаксис кода XML.
Игорь, большое спасибо за то что Вы так хорошо поддерживаете этот топик!
Сразу же видно что вы проффесионал-в этом деле! К сожалению я не нашел подходящего топика где данная проблема описывалась.
У меня к вам вопрос кассающиуся вот этой ветке,простите за офф!
storm200833
21.10.2010 в 10:56
Не подскажите, возможно-ли сделать такой код, чтобы при достижении определённой скорости прекращался(затухал) звук двигателей в кабине и при видах снаружи был слышен при виде сзади и сбоку. (Хочу эффект полёта на сверхзвуке)
Wishmaster715
22.10.2010 в 02:44
На сверхзвуке двигатели не выключаются
storm200833
22.10.2010 в 21:31
Не выключаются, но их не слышно с передней полусферы при виде снаружи. Это можно как-нибудь прописать, чтобы они отключались при повороте камеры?
Каким образом можно к сандартной переменной сима «прилепить» звук?
Тему прочитал, но не до конца все понял.
Edited by Bombaklat
ilya15022583
14.11.2010 в 20:20
Тему прочитал, но не до конца все понял.
А что «всё» и насколько «не до конца»? Вы задайте конкретные вопросы касаемо того, что именно не поняли, тогда можно будет помочь.
В целом, вот так. Надо скачать XML Sound Server по ссылке отсюда, затем написать свой прибор, который при нужном вам значении нужной вам переменной записывал бы 1 в другую переменную, обрабатываемую XML Sound Server.
Вот простейший пример. Когда значение переменной A:ANGLE OF ATTACK INDICATOR меньше 1.71, то в переменную L:STALL_WARNING_SOUND записывается 1, в противном случае записывается 0. Остальное описано в документации к XML Sound Server. Документация очень подробная и простая — не ленитесь :rolleyes:
т.е. прибору xss!process передается фактический параметр AircraftSCS An-12xssxss.cfg.
Прошу прощения, но не подскажите, как Вы его читаете. Я пошарился, но у меня ничего не получилось. Пробовал модифицировать GAUGE_HEADER_FS800, подставил parameters, он похоже в макросе пропущен, но что-то нифига в буфер не падает.
Как-то раньше не было особой надобности, а сейчас вот очень надо. Занялся исследование gau из Ил-18. Кое чего получилось. Нашел некоторые статические переменные и некоторые CallBack-и и сделал gateway для обмена с L:переменными, но хотелось бы, что бы gau использовалась и в il-18 и в il38. Собственно gau ПНК и систем БИ в Ил-18 и Ил-38 одинаковые, изменялись похоже ресурсы ресхаком, ну и имя. Вот имя то мне и надо передать в мою gau. Вернее два имени, одно имя — имя gau ПНК, а другое — имя gau систем БИ.
т.е. прибору xss!process передается фактический параметр AircraftSCS An-12xssxss.cfg.
Прошу прощения, но не подскажите, как Вы его читаете. Я пошарился, но у меня ничего не получилось. Пробовал модифицировать GAUGE_HEADER_FS800, подставил parameters, он похоже в макросе пропущен, но что-то нифига в буфер не падает.
Сергей, тебе узнать путь до папки(папок) загруженого самолёта или именно передать кусок пути? В первом случае могу помочь добраться до всех папок загруженого самолёта либо папок сима (сам использую это в тамагочи для конфигов, звуков и т.п.)
gosha-z32
18.11.2010 в 09:13
Сергей, тебе узнать путь до папки(папок) загруженого самолёта или именно передать кусок пути?
Ни то и ни другое. Он хочет вытащить шестой параметр gaugeXX
Edited by gosha-z
serg_p591
18.11.2010 в 13:44
Ага, именно так, Игорь.
Нужно просто получить строку из шестого параметра gaugeXX. В ней будут имена gau ПНК и БИ. Эти имена я буду передавать в GetModuleHandle, что получить базовые адреса загрузки этих gau (dll). Ну и уже прибавлять к ним, найденные относительные адреса Callback функций и статических переменных.
Сейчас все работает, только вот имена gau прошиты в приборе, который является шлюзом межу нужными gau (на данный момент пока одна) и L:переменными.
Edited by serg_p
icebear604
18.11.2010 в 14:23
Ага, именно так, Игорь.
Нужно просто получить строку из шестого параметра gaugeXX. В ней будут имена gau ПНК и БИ. Эти имена я буду передавать в GetModuleHandle, что получить базовые адреса загрузки этих gau (dll). Ну и уже прибавлять к ним, найденные относительные адреса Callback функций и статических переменных.
Сейчас все работает, только вот имена gau прошиты в приборе, который является шлюзом межу нужными gau (на данный момент пока одна) и L:переменными.
Вопрос, а зачем дёргать коллбэки одной гауги из другой? Сама цель интересна. По самому предмету твоего вопроса — вроде у Гриффитса было это. Разве так не идёт (типо полупсевдокод )
void FSAPI gau_update(PGAUGEHDR pgauge, SINT32 service_id, UINT extra_data){
PCHAR gauparams=NULL;
switch(service_id){
case PANEL_SERVICE_PRE_INSTALL:
gauparams = (PCHAR)pgauge->parameters; //это вся строка по сути
break;
}
}
serg_p591
18.11.2010 в 15:46
Ага. Большое спасибо. Похоже на правду. Попробую.
По поводу колбэков, ну и статических переменных других gau.
Bor
Игорь, большое спасибо за ответ.
Я попробовал Ваш код, он не звучит за исключением положения «0», когда он снова зацикливается
, но идею я более или менее понял, взял её на вооружение, и вот, что получилось:
<Gauge Name="FuelSelector" Version="1.0"> <Element> <Select> <Value>(A:RECIP ENG FUEL TANK SELECTOR:1, enum) (>L:RECIP ENG FUEL TANK SELECTOR:1, enum)</Value> <Value>(A:RECIP ENG FUEL TANK SELECTOR:1, enum) (L:RECIP ENG FUEL TANK SELECTOR:1, enum) ^ if{ 1 (>L:FUEL_SELECTOR_SOUND,bool) (A:RECIP ENG FUEL TANK SELECTOR:1, enum) (>L:RECIP ENG FUEL TANK SELECTOR:1, enum) } els{ 0 (>L:FUEL_SELECTOR_SOUND,bool) }</Value> </Select> </Element> </Gauge>Оно работает!
Так что огромное Вам спасибо за свежую (для меня) идею, будете в Питере — с меня пиво
😀
ilya1502, здорово, я рад. Я то ХМЛ для МСФС «нехорошо знаю» :D.
А вот и я увидел свою ошибку, надо было не на равенство проверять, а на неравенство (не знаю как в ХМЛ не равно, так «!=» или так «<>»). А, ну да, посмотрел ваш код, не равно обозначается символом «^» ? Ну вот и разобрались.
И все таки, этот кусок кода кажется мне лишним:
els{ 0 (>L:FUEL_SELECTOR_SOUND,bool) }, это то, что сбрасывается автоматом в 0 опцией Reset=true.
Edited by Bor
А, ясно, попробую убрать.
В принципе, опция Reset лишняя, потому что зацикливание звука ядро сервера может определить (и определяет) автоматически по наличию в файле меток Sustaining Loop, и на основании этого принимать решение — один раз проигрывать звук или циклить его между метками, так что в следующей версии я уберу эту опцию.
Ребят, подскажите начинающему пожалуйста:
Есть простенький работающий xml код — мышиная зона на выпуск интерцепторов и движение рычага — меняет два *.bmp файла.
Собственно вот:
<Gauge Name=»spoiler» Version=»1.0″>
<Element>
<Select>
<Value> (A:Spoilers handle position,percent) 50 > </Value>
<Case Value=»0″>
<Image Name=»spoilers_Up.bmp» ImageSizes=»0,0,64,123″/>
</Case>
<Case Value=»1″>
<Image Name=»spoilers_Dn.bmp» ImageSizes=»0,0,64,123″/>
</Case>
</Select>
</Element>
<Mouse>
<Area>
<Cursor Type=»hand»/>
<Click Event=»SPOILERS_TOGGLE»/>
</Area>
</Mouse>
</Gauge>
Вопрос: куда вставить (>L:spoil_switch_sound,bool) что бы рычаг спойлеров обрел звук. Сразу скажу, что прибор xss настроен. Не знаю синтаксис кода XML.
Вот так примерно
<Mouse>
<Cursor Type=»Hand»/>
<Click>
(K:ASPOILERS_TOGGLE) 1 (>L:poil_switch_sound,bool)
</Click>
</Mouse>
Bor
Игорь, большое спасибо за то что Вы так хорошо поддерживаете этот топик!
Сразу же видно что вы проффесионал-в этом деле! К сожалению я не нашел подходящего топика где данная проблема описывалась.
У меня к вам вопрос кассающиуся вот этой ветке,простите за офф!
Не подскажите, возможно-ли сделать такой код, чтобы при достижении определённой скорости прекращался(затухал) звук двигателей в кабине и при видах снаружи был слышен при виде сзади и сбоку. (Хочу эффект полёта на сверхзвуке)
На сверхзвуке двигатели не выключаются
Не выключаются, но их не слышно с передней полусферы при виде снаружи. Это можно как-нибудь прописать, чтобы они отключались при повороте камеры?
Кто сказал, что их не слышно ?
Уже поднималась тема: http://www.avsim.su/forum/topic/105801-sverhzvuk/
Помогите плз.
Каким образом можно к сандартной переменной сима «прилепить» звук?
Тему прочитал, но не до конца все понял.
Edited by Bombaklat
А что «всё» и насколько «не до конца»? Вы задайте конкретные вопросы касаемо того, что именно не поняли, тогда можно будет помочь.
В целом, вот так. Надо скачать XML Sound Server по ссылке отсюда, затем написать свой прибор, который при нужном вам значении нужной вам переменной записывал бы 1 в другую переменную, обрабатываемую XML Sound Server.
Вот простейший пример. Когда значение переменной A:ANGLE OF ATTACK INDICATOR меньше 1.71, то в переменную L:STALL_WARNING_SOUND записывается 1, в противном случае записывается 0. Остальное описано в документации к XML Sound Server. Документация очень подробная и простая — не ленитесь :rolleyes:
<Gauge Name="StallWarning" Version="1.0"> <Element> <Select> <Value>(A:ANGLE OF ATTACK INDICATOR,NUMBER) 1.71 < if{ 1 (>L:STALL_WARNING_SOUND,bool) } els{ 0 (>L:STALL_WARNING_SOUND,bool) }</Value> </Select> </Element> </Gauge>Эту гаугу я вчера еще скачал. Cfg настроил, застопорился на гауге xml. Если я правильно понимаю, то мне надо для звука авионики что-то вроде такого:
<Gauge Name="AvionicsSound" Version="1.0"> <Element> <Select> <Value>(A:"переменная master avionics switch",bool); if{ 1 (>L:AVIONICS_SOUND,bool) } els{ 0 (>L:AVIONICS_SOUND,bool) }</Value> </Select> </Element> </Gauge>Правильно я понял (Я в XML полный профан, прошу не пинать
)?
PS А какое название переменной master avionics switch???
Edited by Bombaklat
Да.
Названия переменных смотрите в Panels SDK. И вообще почитайте его.
Спасибо! Получилось. Буду ковырять дальше
Эх, был бы способ узнать переменные недефлотных самолетов.
Если их приборы написаны на XML, то нет ничего сложного. Если же на C++, то уже писали о том, что в простом «узнать» нет никакого смысла.
Bor
У Вас в ReadMe написано
gauge77=xss!process,0,0,1,1, AircraftSCS An-12xssxss.cfg
т.е. прибору xss!process передается фактический параметр AircraftSCS An-12xssxss.cfg.
Прошу прощения, но не подскажите, как Вы его читаете. Я пошарился, но у меня ничего не получилось. Пробовал модифицировать GAUGE_HEADER_FS800, подставил parameters, он похоже в макросе пропущен, но что-то нифига в буфер не падает.
Как-то раньше не было особой надобности, а сейчас вот очень надо. Занялся исследование gau из Ил-18. Кое чего получилось. Нашел некоторые статические переменные и некоторые CallBack-и и сделал gateway для обмена с L:переменными, но хотелось бы, что бы gau использовалась и в il-18 и в il38. Собственно gau ПНК и систем БИ в Ил-18 и Ил-38 одинаковые, изменялись похоже ресурсы ресхаком, ну и имя. Вот имя то мне и надо передать в мою gau. Вернее два имени, одно имя — имя gau ПНК, а другое — имя gau систем БИ.
Сергей, тебе узнать путь до папки(папок) загруженого самолёта или именно передать кусок пути? В первом случае могу помочь добраться до всех папок загруженого самолёта либо папок сима (сам использую это в тамагочи для конфигов, звуков и т.п.)
Ни то и ни другое. Он хочет вытащить шестой параметр gaugeXX
Edited by gosha-z
Ага, именно так, Игорь.
Нужно просто получить строку из шестого параметра gaugeXX. В ней будут имена gau ПНК и БИ. Эти имена я буду передавать в GetModuleHandle, что получить базовые адреса загрузки этих gau (dll). Ну и уже прибавлять к ним, найденные относительные адреса Callback функций и статических переменных.
Сейчас все работает, только вот имена gau прошиты в приборе, который является шлюзом межу нужными gau (на данный момент пока одна) и L:переменными.
Edited by serg_p
Вопрос, а зачем дёргать коллбэки одной гауги из другой? Сама цель интересна. По самому предмету твоего вопроса — вроде у Гриффитса было это. Разве так не идёт (типо полупсевдокод
)
void FSAPI gau_update(PGAUGEHDR pgauge, SINT32 service_id, UINT extra_data){ PCHAR gauparams=NULL; switch(service_id){ case PANEL_SERVICE_PRE_INSTALL: gauparams = (PCHAR)pgauge->parameters; //это вся строка по сути break; } }Ага. Большое спасибо. Похоже на правду. Попробую.
По поводу колбэков, ну и статических переменных других gau.
Вот тут почитай. Сообщение #1190
Edited by serg_p