Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Link

Pages: [1]
1
VoxCommando Basics and Core Features / Re: Checking pressing
« on: February 06, 2019, 09:50:00 AM »
Unfortunately VC.SetEventTimer uses seconds as the smallest unit of time.

To get a half second you would need another method such as VC.Pause, which uses milliseconds.

Спасибо за ответ! :)

2
VoxCommando Basics and Core Features / Re: Checking pressing
« on: February 06, 2019, 02:57:49 AM »
You do not need a separate folder for each command, unless it helps you to find commands in your command tree.

Each unique command must use its own variable. Otherwise, the two commands interfere with one another.

In the XML that you posted, you were using the same variable ({var.mode}) to control two separate functions ("flaps" and "radiators").

I have now deleted all{var.mode} references and replaced it with two unique variables: {var.flaps} and {var.radiators}.

The following commands function. I do not know if they accomplish what you need, but they work. :)

Спасибо Вам огромное! Работает!!!
Это именно то, что я хотел сделать, но у меня не получалось! :bonk
:)

И еще один вопрос - можно ли задать время нажатия клавиши меньше 1 секунды, к примеру 0,5 секунды?
 

3
VoxCommando Basics and Core Features / Re: Checking pressing
« on: February 06, 2019, 02:39:59 AM »
Спасибо большое за ответ, теперь я вижу что начал искать ошибку совсем не там. :)
Вот пример того что делал я на основе вашей команды из из поста #47:
Code: [Select]
<?xml version="1.0" encoding="utf-8" ?>
- <VoiceCommands version="2.2.1.6" space="preserve" date="2/6/2019 12:00:00 AM">
  <groupCollection open="False" name="Flysim" />
- <commandGroup open="True" name="Закрылки" enabled="True" prefix="" priority="0" requiredProcess="" description="">
- <command id="211" name="Закрылки" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)==(B)</ifType>
  <ifParams>{var.eventFLAPS}&&True</ifParams>
- <then>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Выполняется предыдущая команда закрылки.</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.StopMacro</cmdType>
  <params />
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
  <else />
  </if>
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)==(B)</ifType>
  <ifParams>{var.flaps}&&</ifParams>
- <then>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>flaps</param>
  <param>0</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.StopMacro</cmdType>
  <params />
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
  <else />
  </if>
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)==(B)</ifType>
  <ifParams>{var.flaps}&&{1}</ifParams>
- <then>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Закрылки в выбраной позиции.</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.StopMacro</cmdType>
  <params />
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
  <else />
  </if>
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)<(B)</ifType>
  <ifParams>{var.flaps}&&{1}</ifParams>
- <then>
- <action>
  <cmdType>PY.ExecString</cmdType>
- <params>
  <param>result = abs({1} - {var.flaps})</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Выпуск закрылок через {LastResult} секунд</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>DxInput.KeyDown</cmdType>
- <params>
  <param>F</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.SetEventTimer</cmdType>
- <params>
  <param>{LastResult}s</param>
  <param>releaseKey</param>
  <param>F</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>eventFLAPS</param>
  <param>True</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>flaps</param>
  <param>{1}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
- <else>
- <action>
  <cmdType>PY.ExecString</cmdType>
- <params>
  <param>result = abs({var.flaps} - {1})</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Уборка закрылок через {LastResult} секунд</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>DxInput.KeyDown</cmdType>
- <params>
  <param>K</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.SetEventTimer</cmdType>
- <params>
  <param>{LastResult}s</param>
  <param>releaseKey</param>
  <param>K</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>eventFLAPS</param>
  <param>True</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>flaps</param>
  <param>{1}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
  </else>
  </if>
  <phrase>Закрылки</phrase>
  <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\flaps.xml</payloadFromXML>
  <event>vc.loaded</event>
  </command>
- <command id="307" name="release key" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
- <action>
  <cmdType>DxInput.KeyUp</cmdType>
- <params>
  <param>{1}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>DxInput.KeyUp</cmdType>
- <params>
  <param>{2}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>eventFLAPS</param>
  <param>False</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Есть!</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
  <event>releaseKey</event>
  </command>
  </commandGroup>
- <commandGroup open="True" name="Радиаторы" enabled="True" prefix="" priority="0" requiredProcess="" description="">
- <command id="193" name="Радиаторы" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)==(B)</ifType>
  <ifParams>{var.eventRADS}&&True</ifParams>
- <then>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Выполняется предыдущая команда радиаторы.</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.StopMacro</cmdType>
  <params />
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
  <else />
  </if>
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)==(B)</ifType>
  <ifParams>{var.rads}&&</ifParams>
- <then>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>rads</param>
  <param>0</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.StopMacro</cmdType>
  <params />
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
  <else />
  </if>
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)==(B)</ifType>
  <ifParams>{var.rads}&&{3}</ifParams>
- <then>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Створки выбраной позиции.</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.StopMacro</cmdType>
  <params />
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
  <else />
  </if>
- <if ifBlockDisabled="False" ifNot="False">
  <ifType>(A)<(B)</ifType>
  <ifParams>{var.rads}&&{3}</ifParams>
- <then>
- <action>
  <cmdType>PY.ExecString</cmdType>
- <params>
  <param>result = abs({3} - {var.rads})</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Открою через {LastResult} секунд</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>DxInput.KeyDown</cmdType>
- <params>
  <param>z</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.SetEventTimer</cmdType>
- <params>
  <param>{LastResult}s</param>
  <param>releaseKey</param>
  <param>z</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>eventRADS</param>
  <param>True</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>rads</param>
  <param>{3}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
  </then>
- <else>
- <action>
  <cmdType>PY.ExecString</cmdType>
- <params>
  <param>result = abs({var.rads} - {3})</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Закрою через {LastResult} секунд</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>DxInput.KeyDown</cmdType>
- <params>
  <param>x</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>VC.SetEventTimer</cmdType>
- <params>
  <param>{LastResult}s</param>
  <param>releaseKey</param>
  <param>x</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>eventRADS</param>
  <param>True</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>rads</param>
  <param>{3}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
  </else>
  </if>
  <phrase>Радиаторы</phrase>
  <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\radiators.xml</payloadFromXML>
  <event>vc.loaded</event>
  </command>
- <command id="288" name="release key" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
- <action>
  <cmdType>DxInput.KeyUp</cmdType>
- <params>
  <param>{3}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>DxInput.KeyUp</cmdType>
- <params>
  <param>{4}</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>Results.SetVar</cmdType>
- <params>
  <param>eventRADS</param>
  <param>False</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
- <action>
  <cmdType>TTS.Speak</cmdType>
- <params>
  <param>Есть!</param>
  </params>
  <cmdRepeat>1</cmdRepeat>
  </action>
  <event>releaseKey</event>
  </command>
  </commandGroup>
  </VoiceCommands>

4
VoxCommando Basics and Core Features / Re: Checking pressing
« on: January 31, 2019, 08:50:04 AM »
Да, моя ошибка. Прошу прощения, поторопился. В плагине DxInput теперь всё сохраняется. Спасибо! :)

5
VoxCommando Basics and Core Features / Re: Checking pressing
« on: January 31, 2019, 04:43:58 AM »
Попробую объяснить что я делаю. Например, я создаю новую Group Collection - "Flightsim", затем в ней новую группу "Закрылки". В  неё помещаю код из поста #47  и прикрепленный файл в папку payloads. Переназначаю на нужные мне клавиши. Запускаю авиасимулятор, проверяю - всё работает. Затем делаю такую же группу, но уже для управления радиаторами двигателя. Создаю новый payload файл для этой группы, с другим названием и временем срабатывания. Радиаторы полностью открываются за 4 секунды. Сохраняю, делаю перезапуск Voxcommdo и на этом всё перестаёт работать. Voxcommdo без команды самостоятельно пытается что то открыть, на другие команды реагирует только сообщением - "Выполняется предыдущая команда". Я понимаю что из меня программист как из слона балерина, но хотелось бы понять что я делаю не так::confused
Code: [Select]
<?xml version="1.0" encoding="utf-8"?>
<VoiceCommands version="2.2.1.6" space="preserve" date="1/31/2019 12:00:00 AM">
    <groupCollection open="True" name="Flysim">
        <commandGroup open="True" name="Закрылки" enabled="True" prefix="" priority="0" requiredProcess="" description="">
            <command id="178" name="Закрылки" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)==(B)</ifType>
                    <ifParams>{var.eventSet}&amp;&amp;True</ifParams>
                    <then>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Выполняется предыдущая команда.</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.StopMacro</cmdType>
                            <params />
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else />
                </if>
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)==(B)</ifType>
                    <ifParams>{var.mode}&amp;&amp;</ifParams>
                    <then>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>mode</param>
                                <param>0</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.StopMacro</cmdType>
                            <params />
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else />
                </if>
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)==(B)</ifType>
                    <ifParams>{var.mode}&amp;&amp;{1}</ifParams>
                    <then>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Закрылки в выбраной позиции.</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.StopMacro</cmdType>
                            <params />
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else />
                </if>
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)&lt;(B)</ifType>
                    <ifParams>{var.mode}&amp;&amp;{1}</ifParams>
                    <then>
                        <action>
                            <cmdType>PY.ExecString</cmdType>
                            <params>
                                <param>result = abs({1} - {var.mode})</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Выпуск закрылок через {LastResult} секунд</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>DxInput.KeyDown</cmdType>
                            <params>
                                <param>F</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.SetEventTimer</cmdType>
                            <params>
                                <param>{LastResult}s</param>
                                <param>releaseKey</param>
                                <param>F</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>eventSet</param>
                                <param>True</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>mode</param>
                                <param>{1}</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else>
                        <action>
                            <cmdType>PY.ExecString</cmdType>
                            <params>
                                <param>result = abs({var.mode} - {1})</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Уборка закрылок через {LastResult} секунд</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>DxInput.KeyDown</cmdType>
                            <params>
                                <param>K</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.SetEventTimer</cmdType>
                            <params>
                                <param>{LastResult}s</param>
                                <param>releaseKey</param>
                                <param>K</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>eventSet</param>
                                <param>True</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>mode</param>
                                <param>{1}</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </else>
                </if>
                <phrase>Закрылки</phrase>
                <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\flaps.xml</payloadFromXML>
                <event>vc.loaded</event>
            </command>
            <command id="274" name="release key" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
                <action>
                    <cmdType>DxInput.KeyUp</cmdType>
                    <params>
                        <param>{1}</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <action>
                    <cmdType>DxInput.KeyUp</cmdType>
                    <params>
                        <param>{2}</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <action>
                    <cmdType>Results.SetVar</cmdType>
                    <params>
                        <param>eventSet</param>
                        <param>False</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <action>
                    <cmdType>TTS.Speak</cmdType>
                    <params>
                        <param>Есть!</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <event>releaseKey</event>
            </command>
        </commandGroup>
        <commandGroup open="True" name="Радиаторы" enabled="True" prefix="" priority="0" requiredProcess="" description="">
            <command id="180" name="Радиторы" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)==(B)</ifType>
                    <ifParams>{var.eventSet}&amp;&amp;True</ifParams>
                    <then>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Выполняется предыдущая команда.</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.StopMacro</cmdType>
                            <params />
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else />
                </if>
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)==(B)</ifType>
                    <ifParams>{var.mode}&amp;&amp;</ifParams>
                    <then>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>mode</param>
                                <param>0</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.StopMacro</cmdType>
                            <params />
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else />
                </if>
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)==(B)</ifType>
                    <ifParams>{var.mode}&amp;&amp;{1}</ifParams>
                    <then>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Створки в выбраной позиции.</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.StopMacro</cmdType>
                            <params />
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else />
                </if>
                <if ifBlockDisabled="False" ifNot="False">
                    <ifType>(A)&lt;(B)</ifType>
                    <ifParams>{var.mode}&amp;&amp;{1}</ifParams>
                    <then>
                        <action>
                            <cmdType>PY.ExecString</cmdType>
                            <params>
                                <param>result = abs({1} - {var.mode})</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Открытие створок через {LastResult} секунд</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>DxInput.KeyDown</cmdType>
                            <params>
                                <param>Z</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.SetEventTimer</cmdType>
                            <params>
                                <param>{LastResult}s</param>
                                <param>releaseKey</param>
                                <param>Z</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>eventSet</param>
                                <param>True</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>mode</param>
                                <param>{1}</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </then>
                    <else>
                        <action>
                            <cmdType>PY.ExecString</cmdType>
                            <params>
                                <param>result = abs({var.mode} - {1})</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>TTS.Speak</cmdType>
                            <params>
                                <param>Закрытие створок через {LastResult} секунд</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>DxInput.KeyDown</cmdType>
                            <params>
                                <param>X</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>VC.SetEventTimer</cmdType>
                            <params>
                                <param>{LastResult}s</param>
                                <param>releaseKey</param>
                                <param>X</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>eventSet</param>
                                <param>True</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                        <action>
                            <cmdType>Results.SetVar</cmdType>
                            <params>
                                <param>mode</param>
                                <param>{1}</param>
                            </params>
                            <cmdRepeat>1</cmdRepeat>
                        </action>
                    </else>
                </if>
                <phrase>Радиаторы</phrase>
                <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\radiators.xml</payloadFromXML>
                <event>vc.loaded</event>
            </command>
            <command id="276" name="release key" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
                <action>
                    <cmdType>DxInput.KeyUp</cmdType>
                    <params>
                        <param>{1}</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <action>
                    <cmdType>DxInput.KeyUp</cmdType>
                    <params>
                        <param>{2}</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <action>
                    <cmdType>Results.SetVar</cmdType>
                    <params>
                        <param>eventSet</param>
                        <param>False</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <action>
                    <cmdType>TTS.Speak</cmdType>
                    <params>
                        <param>Есть!</param>
                    </params>
                    <cmdRepeat>1</cmdRepeat>
                </action>
                <event>releaseKey</event>
            </command>
        </commandGroup>
    </groupCollection>
</VoiceCommands>

PS Попробовал заменить DxInput.dll на тот что вы прикрепили в предыдущем посту, после этого плагин DxInput у меня вообще исчез из списка установленных плагинов.

6
VoxCommando Basics and Core Features / Re: Checking pressing
« on: January 30, 2019, 05:20:03 PM »
Здравствуйте! Я как и автор темы тоже увлекаюсь авиасимуляторами, и мне очень помогла эта ветка форума. Но у меня возникла пара вопросов.

1. В посте #45 nime5ter показал пример, как можно изменять положения закрылков отслеживая время нажатия клавиш.
Теперь сам вопрос - сколько может быть таких команд в пределах одной Group Collection?
Если, например, я хочу в этой же группе сделать подобное управление не только для закрылков, но и для радиаторов двигателей(открытие/закрытие), управление шагом винта и топливновоздушной смесью? Простое копирование приводит к конфликту этих двух команд, не говоря о трех или четырех. Как их можно разделить или сделать так чтобы они друг другу не мешали?

2.Плагин DxInput. В настройках плагина есть возможность изменить продолжительность нажатия комбинации клавиш. Его можно изменить и сохранить изменения. Но они сохраняются только до перезапуска программы. После закрытия и повторного открытия VoxCommando - значения сбрасываются. По умолчанию стоит 5 миллисекунд, но некоторым играм требуется несколько большее время в пределах 8-10 миллисекунд, иначе они не видят нажатия сочетаний клавиш.
Это так задумано, или это баг у меня?

Заранее спасибо за ответ, но если даже не ответите - тоже не обижусь :)))

Pages: [1]