<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12715&amp;type=atom" />
	<updated>2017-05-30T15:46:34Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12715</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116249#p116249" />
			<content type="html"><![CDATA[<p><strong>svoboden</strong>, благодарю, именно то что я искал.<br />Хотя со Сталкером я по другому разобрался, но этот скрипт должен помочь в другом месте.</p><p>Не вижу возможности закрыть свою же тему, так что прошу модераторов закрыть). Вопрос решен.</p>]]></content>
			<author>
				<name><![CDATA[tdaa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33616</uri>
			</author>
			<updated>2017-05-30T15:46:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116249#p116249</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116248#p116248" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, можно с примерами? я прочитал про эту команду, она позволяет записать кнопку, но как именно ее использовать не разобрался.</p><p> Спасибо всем. Натолкнули на мысль что есть и другие решения.<br /> Решил проблему записыванием значения в файл. Теперь нет нужны вспоминать какой сэйв был последний, все запоминается в ini файл, и соответственно берется из него же, при следующей активации скрипта.</p><p> В итоге получился такой скрипт:</p><div class="codebox"><pre><code>#If (WinActive(&quot;ahk_exe xrEngine.exe&quot;) or WinActive(&quot;ahk_exe XR_3DA.exe&quot;))  ;проверка на версию игры(чистое небо или тени Чернобыля
nsave:=0 ;для первого запуска, если файл отсутствует
F5:: ;кнопка сохранения
   if WinActive(&quot;ahk_exe xrEngine.exe&quot;) 
    section:=&quot;S.T.A.L.K.E.R Clear Sky Saves&quot;  ;создает отдельные секции в ini файле для разных версий игры
   else if WinActive(&quot;ahk_exe XR_3DA.exe&quot;)
    section:=&quot;S.T.A.L.K.E.R Shadow of Chernobyl Saves&quot; ;создает отдельные секции в ini файле для разных версий игры

   IniRead, nsave,  d:\saves\saves.ini, %section%, nsave ;считываем последнее сохраненное значение из ini файла.
   If (nsave&gt;=0 and nsave&lt;49)
   {
    nsave:=nsave+1
     send {VKC0}save %nsave%{Enter}  ;сохраняемся через консоль
     sleep 2000 ;ожидаем сохранения, можно под себя подстроить
     send {VKC0} ;закрываем консоль
    IniWrite, %nsave%,  d:\saves\saves.ini, %section%, nsave ;после сохранения заменяем значение в ini файле
   }  
   Else
   {
    nsave:=0
     send {VKC0}save 50{Enter}
     sleep 2000
     send {VKC0}
    IniWrite, %nsave%,  d:\saves\saves.ini, %section%, nsave

   }
Return

f9:: ;кнопка загрузки
   if WinActive(&quot;ahk_exe xrEngine.exe&quot;) 
    section:=&quot;S.T.A.L.K.E.R Clear Sky Saves&quot;
   else if WinActive(&quot;ahk_exe XR_3DA.exe&quot;)
    section:=&quot;S.T.A.L.K.E.R Shadow of Chernobyl Saves&quot;

  IniRead, nsave,  d:\saves\saves.ini, %section%, nsave ;считываем последнее сохранение
   If (nsave&gt;0 and nsave&lt;=49)
     send {VKC0}load %nsave%{Enter}  ;загружаемся через консоль
   else 
     send {VKC0}load 50{Enter}
return
</code></pre></div><p> Думаю можно как и секцию путь сделать в папку игры(для каждой свой), но это уже детали, к функциональности дела не имеющие.</p>]]></content>
			<author>
				<name><![CDATA[tdaa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33616</uri>
			</author>
			<updated>2017-05-30T15:44:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116248#p116248</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116244#p116244" />
			<content type="html"><![CDATA[<p>Чтобы подтвердить ввод, надо нажать клавишу &quot;Enter&quot;.<br /></p><div class="codebox"><pre><code>    vkA4:: ; lalt
    Input ItemName, M,{Enter}
    a := ItemName
    return
    
   F5::
    MsgBox  %a%
    return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2017-05-30T13:33:33Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116244#p116244</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116228#p116228" />
			<content type="html"><![CDATA[<p><strong>svoboden</strong>, это просто значение. То же самое что в начале скрипта. Мне нужно получить значение переменной в зависимости от последовательности нажатых клавиш. Например: альт, нумпад4, нумпад1 должны задать переменную a:=41. <br />Как организовать последовательное нажатие клавиш я примерно представляю, но как получить из него значение?</p><p>Если сэйвов меньше 10 то проблем нет, просто назначить на каждую клавишу нумпада своё значение переменной. Так же есть возможность сделать сумму.<br /></p><div class="codebox"><pre><code>
!numpad0::
a:=0
Return

!numpad1::
a:=a+10
Return

!numpad2::
a:=a+20
Return

Numpad1::
a:=a+1
Rerurn

Numpad2::
a:=a+2
Return
;;ets
</code></pre></div><p>Сейчас на работе и не могу сделать код с последовательным нажатием, в принципе там можно сделать и 3х значное число. <br />Думаю это решение прокатиться для данной задачи. Но хотелось бы чего то более универсального.</p>]]></content>
			<author>
				<name><![CDATA[tdaa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33616</uri>
			</author>
			<updated>2017-05-30T05:47:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116228#p116228</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116223#p116223" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
      !2::
      a = 0
      return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[svoboden]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34280</uri>
			</author>
			<updated>2017-05-29T20:44:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116223#p116223</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK:Stalker Задать переменную последовательным нажатием цифр.]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=116220#p116220" />
			<content type="html"><![CDATA[<p>Добрый день. <br />Многие сталкивались данной игрой и одиночным квиксэйвом.<br />Поэтому решил с помощью консоли и AHK сделать себе несколько сэйвов, чтобы из игры их не писать ручками.<br />В итоге получился вот такой код.<br /></p><div class="codebox"><pre><code>
#If (WinActive(&quot;ahk_exe xrEngine.exe&quot;) or WinActive(&quot;ahk_exe XR_3DA.exe&quot;)) 
a:=0

F5::
   If (a&gt;=0 and a&lt;49)
   {
     a:=a+1
      send {VKC0}save %a%{Enter}
       sleep 2000
      send {VKC0}
     ; ...
   }
   Else If (a&gt;=49 or a&lt;0)
   {
     a:=0
      send {VKC0}save 50{Enter}
       sleep 2000
      send {VKC0}
   }
  
   Return
</code></pre></div><p> Теперь нужен скрипт, который присвоит переменной &quot;a&quot; нужное значение. <br /> Поясню, если я остановился на 5 сэйве и ушел спать, а наследующий день начал играть, то Сэйв опять пойдет с 1, и затрет последние вчерашние сэйвы.<br /> Поэтому мне надо используя последовательное нажатие клавиш на нумпаде после определенного действия(например нажатия клавиши альт) или вместе с зажатой клавишей, записать число в переменную &quot;a&quot;.</p>]]></content>
			<author>
				<name><![CDATA[tdaa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33616</uri>
			</author>
			<updated>2017-05-29T17:43:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=116220#p116220</id>
		</entry>
</feed>
