<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Корректировка полета пуль]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8604</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8604&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Корректировка полета пуль».]]></description>
		<lastBuildDate>Thu, 22 Aug 2013 11:00:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Корректировка полета пуль]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74866#p74866</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>if A_TimeSinceThisHotkey &lt; 900 ; <strong><span class="bbu"><span style="color: red">что это?</span></span></strong></p></blockquote></div><p>Время в миллисекундах сколько нажат этот Hotkey. </p><p>Если нужно точное смещение на определённое кол-во пикселей, я бы как то так написал:<br /></p><div class="codebox"><pre><code>
MaxStep := 60 

~*LButton:: 
    While GetKeyState(&quot;LButton&quot;, &quot;P&quot;)   { 
        if (A_Index &lt;= MaxStep)
            MouseMove, 0, 1, 0, R 
        var := A_Index &gt;= MaxStep ? MaxStep : A_Index
    }
    MouseMove, 0, -var, 0, R  
    return    
</code></pre></div><div class="codebox"><pre><code>SetMouseDelay</code></pre></div><p>Лучше в этом случае установить в районе 15. Настройка с помощью SetMouseDelay более плавная чем использование Sleep, 10.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;тоже с DllCall</div><div class="fancy_spoiler"><div class="codebox"><pre><code>
MaxStep := 60  

~*LButton:: 
    While GetKeyState(&quot;LButton&quot;, &quot;P&quot;)   { 
        if (A_Index &lt;= MaxStep)
            DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, 1, uint, 0, int, 0) 
        var := A_Index &gt;= MaxStep ? MaxStep : A_Index
        Sleep, 10 
    }
    DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, -var, uint, 0, int, 0) 
    return    
</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 22 Aug 2013 11:00:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74866#p74866</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Корректировка полета пуль]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74858#p74858</link>
			<description><![CDATA[<p>Здравствуйте!<br />Я читал правила поэтому старался придумать название темы как можно ближе к вопросу. Так что если что извиняюсь.</p><p>Нашел я этот скрипт на просторах интернета. Протестировал его и он почти подходит, но моих знаний не хватает что бы до конца его понять. Если бы я понял его до конца то знал бы как подкорректировать скрипт.</p><p>Вот сам скрипт<br /></p><div class="codebox"><pre><code>#IfWinActive, Blablabla
SetBatchLines, -1
SetMouseDelay, -1
SetKeyDelay, -1
Suspend, On
return

CapsLock::
Suspend, Toggle
if A_IsSuspended
{
    SetCapsLockState, Off
    SoundBeep, 500, 150
}
else
{
    SetCapsLockState, On
    SoundBeep, 1500, 150
}
return

*LButton::
Click Down
Loop
{
    GetKeyState, state, LButton, P
    if A_TimeSinceThisHotkey &lt; 900
    {
        var1 := 1
        var2 := A_TimeSinceThisHotkey / 15
    }
    else
    {
        var1 := 0
        var2 := 60
    }
    if state = U
        break
    DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, var1, uint, 0, int, 0)
    Sleep, 10
}
Click Up
DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, -var2, uint, 0, int, 0)
return</code></pre></div><p>Помогите пожалуйста и объясните построчно этот кусочек кода:<br /></p><div class="codebox"><pre><code>*LButton::
Click Down 
Loop
{
    GetKeyState, state, LButton, P
    if A_TimeSinceThisHotkey &lt; 900               
    {
        var1 := 1                                              
        var2 := A_TimeSinceThisHotkey / 15  
    }
    else
    {
        var1 := 0
        var2 := 60
    }
    if state = U
        break
    DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, var1, uint, 0, int, 0)
    Sleep, 10
}
Click Up
DllCall(&quot;mouse_event&quot;, uint, 1, int, 0, int, -var2, uint, 0, int, 0)
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Thu, 22 Aug 2013 01:07:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74858#p74858</guid>
		</item>
	</channel>
</rss>
