<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Прожатие скилов с заданным для каждого интервалом времени]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12056&amp;type=atom" />
	<updated>2016-10-11T06:26:10Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12056</id>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108303#p108303" />
			<content type="html"><![CDATA[<p><strong>aaalberttt19</strong><br />Отвечу, позже, просто занят по работе.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2016-10-11T06:26:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108303#p108303</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108296#p108296" />
			<content type="html"><![CDATA[<p><strong>Indomito</strong> касаемо <strong>варианта от 09.10.016:</strong> не могу найти информацию по названию окон, чтобы прописать его в скрипт. В <strong>&quot;Общий обзор программы и краткое обучение&quot;</strong> AutoHotkey следующая справка:<br />&nbsp; &nbsp;<strong>Эмуляция нажатий клавиш и кликов мышью</strong><br />&quot;Клики мышью: для того, чтобы сообщить окну клик мышью, в первую очередь необходимо определить координаты X и Y, куда вы собираетесь делать клик. Это можно определить с помощью утилит AutoScriptWriter и Window Spy, которые поставляются вместе с AutoHotkey.<br />Вот как это делается с помощью Window Spy: запустите Window Spy. Активируйте интересующее Вас окно. Наведите курсор мыши на искомую точку и посмотрите в окне Window Spy её координаты. Используйте эти координаты для создания эмуляции клика мыши. Например:<br /> F7::MouseClick, Left, 112, 223<br />Примечание: координаты клика всегда считаются от левого верхнего угла активного окна. Окно при этом может находиться где угодно.<br />Для перемещения мыши без клика используйте команду MouseMove. Для перетаскивания или выделения мышью используйте команду MouseClickDrag.&quot;<br />&nbsp; &nbsp;Полагаю, это не совсем то, что требуется для того, чтобы <strong><span class="bbu">прописать активное окно.</span></strong><br />&nbsp; &nbsp;В <strong>варианте от 07.10.016</strong> менял задержку:<br /></p><div class="codebox"><pre><code>MButton::
  Loop
      {
         Send, {2} ; Запрыгиваем на ковер. Здесь менял на 3800
         Sleep, 30
         Send, {vk43 down} ; Зажимаем клавишу C
         Send, {1} ; Прожимаем дыхание небес
         Sleep, 30
         Send, {RButton} ; Удары по противнику
         Sleep, 30
         Send, {LButton} ; Тоже удары
         Sleep, 30
 
      if (A_TimeSincePriorHotkey&gt;3800 &amp;&amp;   A_ThisHotkey=A_PriorHotKey)
          tooltip, Send {2}
       Else
          tooltip

       Send, {vk43 up} ; Отжимаем клавишу C
         If GetKeyState(&quot;MButton&quot;, &quot;P&quot;) = 0
            Break
      }
Return</code></pre></div><p>К сожалению, безрезультатно.<br />&nbsp; &nbsp;Также пробовал разделить на 2 скрипта:<br /></p><div class="codebox"><pre><code>2::
  Loop
      {
         Send, {2} ; Запрыгиваем на ковер
         Sleep, 3950
         If GetKeyState(&quot;2&quot;, &quot;P&quot;) = 0
            Break
      }
  Return</code></pre></div><div class="codebox"><pre><code>MButton::
  Loop
      {
         Send, {vk43 down} ; Зажимаем клавишу C
         Send, {1} ; Прожимаем дыхание небес
         Sleep, 30
         Send, {RButton} ; Удары по противнику
         Sleep, 30
         Send, {LButton} ; Тоже удары
         Sleep, 30
         Send, {vk43 up} ; Отжимаем клавишу C
         If GetKeyState(&quot;MButton&quot;, &quot;P&quot;) = 0
            Break
      }
   Return</code></pre></div><p>Что также не принесло успеха: 1-й скрипт не работает, так как клавиша 2 <strong>не срабатывает ни автоматически, ни вручную.</strong></p>]]></content>
			<author>
				<name><![CDATA[aaalberttt19]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34242</uri>
			</author>
			<updated>2016-10-10T00:23:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108296#p108296</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108285#p108285" />
			<content type="html"><![CDATA[<p><strong>aaalberttt19</strong> Ты прописал активное окно, т.е. окно игры? <strong>Вариант от 09.10.2016</strong><br /></p><div class="quotebox"><cite>aaalberttt19 пишет:</cite><blockquote><p>вариант от 07.10.2016 работает прекрасно, в том числе и срабатывание скила клавиши 2 после ее &quot;отжимания&quot;. Единственная нестыковка: клавиша 2 прожимается каждые 30 мс, и, соответственно, умение не успевает откатиться.</p></blockquote></div><p> Требуется <em>&quot;урегулирование&quot;</em> задержек. Я же писал надо подгонять для игры их.... т.е. предупреждал. <br /><strong>C&#039;est La Vie</strong> - «Такова жизнь». <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><p>P.S. Скрипт для игры требует много, а не только нажатия клавиатуры. Как правило скрипт работает корректно в OS, а вот в игре - нет.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2016-10-08T21:41:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108285#p108285</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108284#p108284" />
			<content type="html"><![CDATA[<p><strong>Indomito</strong> вот досада, вариант от 07.10.2016 работает прекрасно, в том числе и срабатывание скила клавиши 2 после ее &quot;отжимания&quot;. Единственная нестыковка: клавиша 2 прожимается каждые 30 мс, и, соответственно, умение не успевает откатиться. Вариант от 09.10.2016, к сожалению, вообще не реагирует на нажатие/зажатие колеса мышки. Пробовал запускать несколько раз: макрос запускается, но персонаж не реагирует.</p>]]></content>
			<author>
				<name><![CDATA[aaalberttt19]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34242</uri>
			</author>
			<updated>2016-10-08T21:00:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108284#p108284</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108283#p108283" />
			<content type="html"><![CDATA[<p><strong>aaalberttt19</strong> В результате получаем 100% срабатывание.</p><div class="codebox"><pre><code>;Скрипт не выгружается до явного определения - что бы было.
#Persistent
;Запрет повторного запуска - поставить то что нужно или не использовать
;#SingleInstance  Force  ;Ignore
cWinTitle:=&quot;Имя окна&quot;
Return

SetTitleMatchMode, 2
#If WinActive(cWinTitle)
#UseHook, On
Thread, NoTimers
Critical

MButton::
  While(GetKeyState(&quot;MButton&quot;, &quot;P&quot;))
      {
         Sleep, 25 ; Первая задержка - ОБЯЗАТЕЛЬНО!!!
         Send, {2} ; Запрыгиваем на ковер
 ;Убрал за ненадобность - при реальном cWinTitle снять комментарии!
 /*        
         Sleep, 30
         Send, {vk43 down} ; Зажимаем клавишу C
         Send, {1} ; Прожимаем дыхание небес
         Sleep, 30
         Send, {RButton} ; Удары по противнику
         Sleep, 30
         Send, {LButton} ; Тоже удары
         Sleep, 30
         Send, {vk43 up} ; Отжимаем клавишу C 
*/
      }
Return

Critical , Off
Thread, NoTimers, false
#UseHook, Off
#IfWinActive</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2016-10-08T19:32:52Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108283#p108283</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108265#p108265" />
			<content type="html"><![CDATA[<p><strong>aaalberttt19</strong> По сути просто, т.е. я ответил.</p><p>Убираем код </p><div class="codebox"><pre><code>2::
   if (A_TimeSincePriorHotkey&gt;3950 and A_ThisHotkey=a_priorhotkey)
   tooltip, Send {2}</code></pre></div><p>Модифицируем код </p><div class="codebox"><pre><code>MButton::
  Loop
      {
         Send, {2} ; Запрыгиваем на ковер
         Sleep, 30
         Send, {vk43 down} ; Зажимаем клавишу C
         Send, {1} ; Прожимаем дыхание небес
         Sleep, 30
         Send, {RButton} ; Удары по противнику
         Sleep, 30
         Send, {LButton} ; Тоже удары
         Sleep, 30
 
      if (A_TimeSincePriorHotkey&gt;3800 &amp;&amp;   A_ThisHotkey=A_PriorHotKey)
          tooltip, Send {2}
       Else
          tooltip

       Send, {vk43 up} ; Отжимаем клавишу C
         If GetKeyState(&quot;MButton&quot;, &quot;P&quot;) = 0
            Break
      }
Return</code></pre></div><p> Это грубое решение, но работать будет, но на 2-3 нажатие клавиши 2.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2016-10-07T16:35:41Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108265#p108265</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108238#p108238" />
			<content type="html"><![CDATA[<p><strong>Indomito</strong> к сожалению, ни один из предложенных вариантов не работает так как надо. Скил, назначенный на клавишу 2, не срабатывает ни автоматически, ни вручную. Кроме этого, обнаружилась новая трудность: при отпускании колеса мышки клавиша С продолжала быть зажатой, и, как следствие, приходилось вручную нажимать на С, чтобы персонаж мог двигаться при нажатии на левую клавишу мышки. Добавив в скрипт &quot;отжатие&quot;, проблема разрешилась. Остается только вопрос со скилом клавиши 2. Надеюсь на Вашу помощь.<br /></p><div class="codebox"><pre><code>MButton::
  Loop
      {
         Send, {2} ; Запрыгиваем на ковер
         Sleep, 30
         Send, {vk43 down} ; Зажимаем клавишу C
         Send, {1} ; Прожимаем дыхание небес
         Sleep, 30
         Send, {RButton} ; Удары по противнику
         Sleep, 30
         Send, {LButton} ; Тоже удары
         Sleep, 30
         Send, {vk43 up} ; Отжимаем клавишу C
         If GetKeyState(&quot;MButton&quot;, &quot;P&quot;) = 0
            Break
      }
2::
   if (A_TimeSincePriorHotkey&gt;3950 and A_ThisHotkey=a_priorhotkey)
   tooltip, Send {2}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[aaalberttt19]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34242</uri>
			</author>
			<updated>2016-10-06T19:50:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108238#p108238</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108213#p108213" />
			<content type="html"><![CDATA[<p><strong>aaalberttt19</strong> Попробуй такой код </p><div class="codebox"><pre><code>2::
  if (A_TimeSincePriorHotkey&gt;3800)
      {
        tooltip, Send {2}
        Return
      }
    Else
      {
        tooltip
        Return
      }</code></pre></div><p>Срабатывание 100% с учётом <strong>if (A_TimeSincePriorHotkey&gt;3800)</strong>, если быстро нажать то сработает очистка. <br />А проблема в том, что <strong>A_PriorHotkey</strong> переменная пуста.</p><p>Читаем справку.<br /></p><div class="quotebox"><cite>A_PriorHotkey пишет:</cite><blockquote><p>Тоже самое, но относится к предыдущей горячей клавише. Изначально переменная пуста.</p></blockquote></div><div class="quotebox"><cite>A_TimeSincePriorHotkey пишет:</cite><blockquote><p>Число миллисекунд, прошедших с тех пор, как была нажата A_PriorHotkey. Имеет значение -1, пока A_PriorHotkey пуста</p></blockquote></div><p>И ещё...<br /></p><div class="quotebox"><cite>aaalberttt19 пишет:</cite><blockquote><p>При следующем варианте скрипта скил, назначенный на клавишу 2, не срабатывает ни автоматически, ни вручную.</p></blockquote></div><p> Ты сам переопределил клавишу 2 </p><div class="codebox"><pre><code>2::
  if (A_TimeSincePriorHotkey&gt;3950 and A_ThisHotkey=a_priorhotkey)
  tooltip, Send {2}
  Return</code></pre></div><p> Вот она и не срабатывает как положено, ибо <strong>tooltip, Send {2}</strong> это просто вывод на экран.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2016-10-04T16:43:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108213#p108213</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108212#p108212" />
			<content type="html"><![CDATA[<p><strong>aaalberttt19</strong> И так, начнем с конца.<br /></p><div class="codebox"><pre><code>2::
  if (A_TimeSincePriorHotkey&gt;3950 and A_ThisHotkey=a_priorhotkey)
  tooltip, Send {2}
  Sleep 500
  tooltip
  Return</code></pre></div><p> В такой версии от срабатывает на 3-5-7 нажатие.<br />Требуется переработать условия обнаружения, просто <strong>IF</strong> пропускает нажатие.<br />1. Все задержки сменить/заменить с 10ms на 25ms - как минимум, а лучше подбирать по игре.<br />2.&nbsp; Есть <strong>Send, {vk43 down} ; Зажимаем клавишу C</strong>, а где отпускание клавиши? Или оно не нужно?</p><p>Я не стал глобально переписывать весь скрипт, а то будет непонятно.<br />Лучше тебе и по шагам, у каждого свой стиль написания.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2016-10-04T15:51:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108212#p108212</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Прожатие скилов с заданным для каждого интервалом времени]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=108166#p108166" />
			<content type="html"><![CDATA[<p>Доброго дня всем!<br />&nbsp; &nbsp;Требуется задать в макросе одновременное прожатие 4-х скилов с зажатием буквенной клавиши. Предварительно запущенный макрос приводится в действие зажатием колеса мышки. Далее последовательность действий: прожатие клавиши 2 каждые 4 сек (3950 мс), зажатие клавиши С, прожатие клавиш 1, левой и правой кнопок мыши каждые 0,5 сек. При отпускании колеса мышки макрос прекращает активные действия, но остается запущенным. Важно при этом, чтобы в период прекращения активных действий была возможность срабатывания скила клавиши 2 при ручном нажатии.<br />&nbsp; &nbsp;При следующем варианте скрипта скил, назначенный на клавишу 2, не срабатывает ни автоматически, ни вручную.<br />&nbsp; &nbsp;</p><div class="codebox"><pre><code>MButton::
  Loop
      {
         Send, {2} ; Запрыгиваем на ковер
         Sleep, 10
         Send, {vk43 down} ; Зажимаем клавишу C
         Send, {1} ; Прожимаем дыхание небес
         Sleep, 10
         Send, {RButton} ; Удары по противнику
         Sleep, 10
         Send, {LButton} ; Тоже удары
         Sleep, 10
         If GetKeyState(&quot;MButton&quot;, &quot;P&quot;) = 0
            Break
      }
2::
  if (A_TimeSincePriorHotkey&gt;3950 and A_ThisHotkey=a_priorhotkey)
  tooltip, Send {2}
  Return</code></pre></div><p>&nbsp; &nbsp;Заранее благодарен за помощь в редактировании скрипта!</p>]]></content>
			<author>
				<name><![CDATA[aaalberttt19]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34242</uri>
			</author>
			<updated>2016-10-03T08:24:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=108166#p108166</id>
		</entry>
</feed>
