<?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=14874&amp;type=atom" />
	<updated>2019-07-29T07:44:46Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=14874</id>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135117#p135117" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><div class="quotebox"><blockquote><p>вписал прибавление по +1 до значения =6 это не совсем в тему</p></blockquote></div><p>Сразу понятно, что не запускали. Вы запустите и расскажите чем это отличается от простыни в вашем первом сообщении. Тайминг там выставлен, кстати.</p></blockquote></div><p> Во многих случаях нужны совершенно разные значения sleep чтобы игра правильно считала и сбуферила всё это в комбо. Методом тыка я разобрался </p><div class="codebox"><pre><code>vkA0 &amp; vk44::                      ;низ 240 dm
send {vk20 up}
send {vk41 down}
Sleep, 19
send {vk64 down}
Sleep, 70
send {vk41 up}
Sleep, 10
send {vk64 up}
if !getkeystate(&quot;vk44&quot;, &quot;P&quot;) and !getkeystate(&quot;vk10&quot;, &quot;P&quot;)
Return
Sleep, 70
send {vk57 down}
Sleep, 15
send {vk65 down}
Sleep, 70
send {vk57 up}
Sleep, 20
send {vk65 up}
if !getkeystate(&quot;vk44&quot;, &quot;P&quot;) and !getkeystate(&quot;vk10&quot;, &quot;P&quot;)
Return
Sleep, 100
send {vk41 down}
Sleep, 70
send {vk41 up}
if !getkeystate(&quot;vk44&quot;, &quot;P&quot;) and !getkeystate(&quot;vk10&quot;, &quot;P&quot;)
Return
Sleep, 70
send {vk44 down}
Sleep, 19
send {vk68 down}
Sleep, 70
send {vk44 up}
Sleep, 10
send {vk68 up}
if !getkeystate(&quot;vk44&quot;, &quot;P&quot;) and !getkeystate(&quot;vk10&quot;, &quot;P&quot;)
Return
Sleep, 800
Return
</code></pre></div><p>Вот как-то в таком виде это работает как мне нужно. Всем спасибо. Помогли.</p>]]></content>
			<author>
				<name><![CDATA[wolf_107]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40276</uri>
			</author>
			<updated>2019-07-29T07:44:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135117#p135117</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135035#p135035" />
			<content type="html"><![CDATA[<p>Вам нужно поставить ещё один return. Ваши возвраты вложены в условия, а вот возврата от активации хоткеем нет, потому и скрипт запускает все подряд. Кстати может-быть так будет лучше:<br /></p><div class="codebox"><pre><code>vk10 &amp; vk53::
while (getkeystate(&quot;vk53&quot;, &quot;P&quot;) or getkeystate(&quot;vk10&quot;, &quot;P&quot;)) {
	send {vk31 down}
	Sleep, 100
	send {vk31 up}
	Sleep, 100
	send {vk32 down}
	Sleep, 100
	send {vk32 up}
	send {vk33 down}
	Sleep, 100
	send {vk33 up}
	Sleep, 100
}
return</code></pre></div><p>Если оставить or то для остановки подпрограммы нужно будет опустить обе клавиши. Если поставить and то нужно будет отпустить всего одну клавишу.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-07-26T06:32:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135035#p135035</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135010#p135010" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>vk10 &amp; vk53::
send {vk31 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk31 up}
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk32 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk32 up}
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return 
send {vk33 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk33 up}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return 
</code></pre></div><p>Вот так вроде работает как надо. Начинаю понимать. Спасибо.</p><p>Еще вопрос:<br />А как разделить алгоритмы для разных горячих клавиш в одном файле?<br /></p><div class="codebox"><pre><code>vk10 &amp; vk53::
send {vk31 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk31 up}
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk32 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk32 up}
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return 
send {vk33 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return
send {vk33 up}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk53&quot;, &quot;P&quot;)
Return 

vk10 &amp; vk52::
send {vk36 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return
send {vk36 up}
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return
send {vk37 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return
send {vk37 up}
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return 
send {vk38 down}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return
send {vk38 up}
Sleep, 100
if !getkeystate(&quot;vk10&quot;, &quot;P&quot;) and !getkeystate(&quot;vk52&quot;, &quot;P&quot;)
Return </code></pre></div><p>Если запустить верхний алгоритм с <em>vk10 &amp; vk53::</em> то следом воспроизводится второй с <em>vk10 &amp; vk52::</em> Как этого избежать.</p>]]></content>
			<author>
				<name><![CDATA[wolf_107]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40276</uri>
			</author>
			<updated>2019-07-24T10:15:20Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135010#p135010</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135009#p135009" />
			<content type="html"><![CDATA[<p>Спасибо за ответы. От belyankin12 методом тыка понял что в строке&nbsp; <em>if getkeystate</em> через кавычки можно указать клавишу которая будет отслеживаться. Stealzy вписал прибавление по +1 до значения =6 это не совсем в тему. Любопытно конечно, но я пытаюсь понять простейшие принципы скриптов запускаемых сочетанием клавиш.<br />Тема в разделе Games. Я пытаюсь написать команды для автоматического набора комбо в файтинге. Очень важны тайминги между нажатиями <em>(Sleep,)</em>. Мне нужен удобный функционал чтобы скрипт можно было прервать в любой момент и запуск скрипта сочетанием двух клавиш. Есть ли функция которая реагирует только на отпускание одной из кнопок которыми скрипт запускается? Чтобы запуск vk33 &amp; vk34:: и условие что-то вроде <em>&quot;if send {vk33 up} then return&quot;</em>.<br />Можно конечно сделать как в коде ниже. Любое нажатие <em>vk20</em> остановит скрипт. Но с отдельной кнопкой остановки не очень удобно.<br /></p><div class="codebox"><pre><code>vk10 &amp; vk53::
send {vk31 down}
Sleep, 100
if getkeystate(&quot;vk20&quot;, &quot;P&quot;)
Return
send {vk31 up}
if getkeystate(&quot;vk20&quot;, &quot;P&quot;)
Return
Sleep, 100
if getkeystate(&quot;vk20&quot;, &quot;P&quot;)
Return
send {vk32 down}
Sleep, 100
if getkeystate(&quot;vk20&quot;, &quot;P&quot;)
Return
send {vk32 up}
if getkeystate(&quot;vk20&quot;, &quot;P&quot;)
Return 
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[wolf_107]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40276</uri>
			</author>
			<updated>2019-07-24T08:57:06Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135009#p135009</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135008#p135008" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#MaxHotkeysPerInterval 300
s::
	buttn := 0
	SetKeyDelay,, 100
	While GetKeyState(&quot;s&quot;)
		send % &quot;{Blind}&quot; buttn:=Mod(buttn, 6)+1
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2019-07-23T15:37:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135008#p135008</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135006#p135006" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Loop {
	ToolTip, &quot;123&quot;
	if getkeystate(&quot;vk53&quot;, &quot;P&quot;) and getkeystate(&quot;vk44&quot;, &quot;P&quot;) {
		break
	}
}</code></pre></div><p>Справедливости ради стоит отметить что комбинация d + s так же остановит скрипт.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-07-23T09:57:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135006#p135006</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135005#p135005" />
			<content type="html"><![CDATA[<p><strong>wolf_107</strong><br /><span style="color: #008000">1. Выполните требования по исправлению ошибок в <a href="http://forum.script-coding.com/viewtopic.php?id=14868">этой теме</a>.<br />2. Код оформляется тегом code, а не прячется под спойлер. Исправьте ошибку.</span><br /><span style="color: #008000">Кроме того я рекомендую вам ознакомится с <a href="http://forum.script-coding.com/rules.html">полной версией правил форума</a>, либо с выпиской <a href="http://forum.script-coding.com/misc.php?action=rules">важнейших правил поведения на форуме</a> чтобы избежать подобных ошибок в будущем.</span></p><p>Если вы нашли решение своей проблемы, то это не значит, что можно не соблюдать обоснованные требования по исправлению недостатков в оформлении тем. Учтите, что наплевательское отношение к правилам форума не только не приветствуется со стороны местного комьюнити, но и может повлечь за собой более жесткие дисциплинарные меры, вплоть до полного ограничения доступа к форуму. Пожалуйста отнеситесь к соблюдению правил серьезно, от вас не требуют чего-то сверхъестественного.</p><p><span style="color: #FF0000">Обсуждение в теме временно прекращено.</span> <br />Пока оформление не будет приведено в порядок, ответы будут удаляться. Если в течение трех суток тема не будет оформлена должным образом, то будет удалена.</p><p>UPD: <span style="color: #008000">Обсуждение может быть продолжено.</span></p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-07-23T09:29:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135005#p135005</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[АНК: каким условием отслеживать нажатие комбинации клавиш?]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=135004#p135004" />
			<content type="html"><![CDATA[<p>В скрипте <br /></p><div class="codebox"><pre><code>vk53::
send {vk31 down}
Sleep, 100
send {vk31 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return
Sleep, 100
send {vk32 down}
Sleep, 100
send {vk32 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
send {vk33 down}
Sleep, 100
send {vk33 up}
Sleep, 100
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
send {vk34 down}
Sleep, 100
send {vk34 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
Sleep, 100
send {vk35 down}
Sleep, 100
send {vk35 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
send {vk36 down}
Sleep, 100
send {vk36 up}
Sleep, 100
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return</code></pre></div><p>If !GetKeyState(A_ThisHotkey, &quot;P&quot;) отслеживает нажата ли vk53. Если не нажата то скрипт прекращается.<br />Как сделать такое же условие если скрипт будет запускаться через vk53 &amp; vk44::&nbsp; ?<br />Как правильно переписать команду If !GetKeyState(A_ThisHotkey, &quot;P&quot;) чтобы отслеживалось нажата ли комбинация vk53 &amp; vk44 ?<br /></p><div class="codebox"><pre><code>vk53 &amp; vk44::
send {vk31 down}
Sleep, 100
send {vk31 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return
Sleep, 100
send {vk32 down}
Sleep, 100
send {vk32 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
send {vk33 down}
Sleep, 100
send {vk33 up}
Sleep, 100
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
send {vk34 down}
Sleep, 100
send {vk34 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
Sleep, 100
send {vk35 down}
Sleep, 100
send {vk35 up}
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return 
send {vk36 down}
Sleep, 100
send {vk36 up}
Sleep, 100
If !GetKeyState(A_ThisHotkey, &quot;P&quot;)
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[wolf_107]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40276</uri>
			</author>
			<updated>2019-07-23T09:01:42Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=135004#p135004</id>
		</entry>
</feed>
