<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: автоматизация для врача (SAMP)]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=14799&amp;type=atom" />
	<updated>2019-05-28T19:56:32Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=14799</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134475#p134475" />
			<content type="html"><![CDATA[<p>Тут уже встает вопрос не в методе, а в его применении. То есть я запускаю чтение файла только тогда, когда ожидаю появление нужной мне строки (мне заранее известны сценарии появления тех или иных сообщений в игровом чате). То есть я сначала провоцирую сервер на отправку нужного мне сообщения в чат, а лишь потом запускаю поиск. Если есть вероятность поймать одну и ту же строку несколько раз (такое у меня встречалось, когда я давно-давно читал чат постоянно в цикле, выискивая один из нескольких шаблонов), то я сохраняй md5 всей строки в временный массив. Опять же, я не спорю, что существуют методы понадежней, но ведь и я не претендую на истину в последней инстанции. Мне ещё многому предстоит научиться, но пока что имеем что имеем.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-05-28T19:56:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134475#p134475</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134473#p134473" />
			<content type="html"><![CDATA[<p>Ну что ж, объясните как оно надёжно работает.<br />Насколько я понимаю, оно заносит весь файл в массив, и после ищет с конца в последних 30 строках. Но непонятно как при очередном чтении должно быть ясно что это не те же строки что до этого, но если я таковое просто не вижу, то как быть если между чтениями добавлено более 30 строк.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2019-05-28T18:59:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134473#p134473</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134472#p134472" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, я имел ввиду, что в отличии от других методов, этот метод я знаю, а потому могу разъяснить как что работает. Я убежден в том, что лучше говорить о том, что знаешь наверняка, чем о том, о чем ты лишь только слышал.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-05-28T18:37:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134472#p134472</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134471#p134471" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>belyankin12 пишет:</cite><blockquote><p>Может быть с точки зрения потребления памяти этот метод нельзя назвать оптимизированным, однако в отличии от других методов, этот я использовал постоянно, потому могу, так сказать, гарантировать его работоспособность. У меня ещё не возникала необходимость в более совершенных подходах, потому я и не искал способа оптимизировать данный метод.</p></blockquote></div><p>Так любой способ <span class="bbu">будет работать</span>, Вам говорят что есть более оптимальный, который тоже будет работать, но не так варварски кушать ресурсы. <br />Если переименовать - то это работает также, но лучше.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2019-05-28T18:02:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134471#p134471</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134460#p134460" />
			<content type="html"><![CDATA[<p>Тогда в чем проблема? Читаете переменную, куда вы вводили свое слово и умножаете стоимость если она = &quot;up&quot;. Даже если чтение происходит хорошо, все же советую присмотреться к предоставленному мной методу - он не удаляет чатлог каждый раз.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-05-27T13:35:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134460#p134460</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134457#p134457" />
			<content type="html"><![CDATA[<p>Мне нужно, чтобы скрипт просто умел умножать переменную dollars на 2, если ввести up. В чтении строк скрипт работает без ошибок</p>]]></content>
			<author>
				<name><![CDATA[arsytenky]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40164</uri>
			</author>
			<updated>2019-05-27T10:50:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134457#p134457</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134456#p134456" />
			<content type="html"><![CDATA[<p>Может быть с точки зрения потребления памяти этот метод нельзя назвать оптимизированным, однако в отличии от других методов, этот я использовал постоянно, потому могу, так сказать, гарантировать его работоспособность. У меня ещё не возникала необходимость в более совершенных подходах, потому я и не искал способа оптимизировать данный метод.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-05-27T10:27:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134456#p134456</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134455#p134455" />
			<content type="html"><![CDATA[<p><strong>belyankin12</strong>, проще же читать только последнии строки, с последнего вызова. Зачем каждый раз перелопачивать чат лог?</p>]]></content>
			<author>
				<name><![CDATA[Phoenixxx_Czar]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34426</uri>
			</author>
			<updated>2019-05-27T09:46:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134455#p134455</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134452#p134452" />
			<content type="html"><![CDATA[<p>Проводите чтение чатлога следующим методом - он не требует удалять чатлог каждый раз после чтения и читает чатлог снизу-вверх (таким образом будет найдено именно самое последнее совпадение).</p><div class="codebox"><pre><code>
global path_log := A_MyDocuments &quot;\GTA San Andreas User Files\SAMP\chatlog.txt&quot;

		log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []
		FileEncoding, CP0
		Loop, read, %path_log%
		log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
		loop 30
			if RegExMatch(log.str[log.num + 1 - A_Index],&quot;\[(.*)\] \[(.*)\] (.*)\_(.*) \| Уровень\: (.*)&quot;, end_str) and (log.find:=log.num + 1 - A_Index)
				break
		if (end_str != &quot;&quot;) {
			msgbox, Уровень игрока: %end_str5%, ID: %end_str2%
		} else {
			msgbox, Строка не найдена
		}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-05-26T19:12:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134452#p134452</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134448#p134448" />
			<content type="html"><![CDATA[<p><strong>belyankin12</strong><br />Когда вводим /id (айди игрока), показывает следущее...<br />[14:11:05] [855] Cristopher_Jonson | Уровень: 10 <br />из этой строчки мы извлекаем айди и определяем уровень, а по уровню определяем цену медкарты. Но я хочу, чтобы скрипт мог определять обновить ли медкарту(x2 цена)&nbsp; или новую (обычная цена). А samp UDF не умею пользоваться.</p>]]></content>
			<author>
				<name><![CDATA[arsytenky]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40164</uri>
			</author>
			<updated>2019-05-26T11:17:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134448#p134448</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134447#p134447" />
			<content type="html"><![CDATA[<p>Вы строчку из чатлога где уровень игрока прописан предоставьте ещё. А лучше давайте мы решим вашу задачу более грамотным методом? Удалять чатлог каждый раз только для того чтобы избавиться от повторений очень плохая идея. А если вы ещё захотите воспользоваться SAMP UDF то вашу задачу будет достичь гораздо проще.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2019-05-26T10:46:22Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134447#p134447</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: автоматизация для врача (SAMP)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=134445#p134445" />
			<content type="html"><![CDATA[<p>Проблема в том, что скрипт не видит переменную и условие в RegExMatch<br /></p><div class="codebox"><pre><code>F1::
{
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}^{sc1E}Здравствуйте, меня зовут Cristopher Jonson, я ваш специалист по выдаче медицинских карт.{Enter}
Sleep, 1500
Send, {F6}Вам обновить или сделать новую медицинскую карту?{Enter}

Send, {F6}Введи up или new  -{Space}
Input , idv, V, {enter}
Send, {F6}^{sc1E}
Sleep, 100


SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}^{sc1E}Отлично, не могли бы вы мне показать ваш паспорт.{Enter}
Sleep, 500
Send, {F6}/b /showpass ID передавать строго по Role Play{Enter}

Send, {F6}Введи айди игрока -{Space}
Input , id, V, {enter}
SendInput, {F6}^{sc1E}
Sleep, 1000
ChatLog = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; Путь к ЧатЛогу
FileDelete, %ChatLog%  ; Удаляем ЧатЛог
SendInput, {F6}/id %id%{Enter} ; Пишем в чат
Loop
{
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Chatlog.txt
RegExMatch(Chatlog, &quot;\Q| Уровень:\E (.*)&quot;, out)
RegExMatch(out1, &quot;[0-9]+&quot;, out2)
if (out2 &gt; 0 and out2 &lt;= 2){
dollars = 5000
FileDelete, ChatLog  ; Удаляем ЧатЛог
goto, MyLabel1
}
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Chatlog.txt
RegExMatch(Chatlog, &quot;\Q| Уровень:\E (.*)&quot;, out) ; ищем в чат логе слово &quot;Уровень&quot;
RegExMatch(out1, &quot;[0-9]+&quot;, out2) ; извлекаем число
if (out2 &gt;= 3 and out2 &lt;= 5){
dollars = 10000
FileDelete, ChatLog  ; Удаляем ЧатЛог
Goto, MyLabel1
}
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Chatlog.txt
RegExMatch(Chatlog, &quot;\Q| Уровень:\E (.*)&quot;, out) ; ищем в чат логе слово &quot;Уровень&quot;
RegExMatch(out1, &quot;[0-9]+&quot;, out2)
if (out2 &gt;= 6 and out2 &lt;= 10){
dollars = 15000
Send, {F6} %dollars%{Enter}
FileDelete, ChatLog  ; Удаляем ЧатЛог
Sleep, 1000
Send, {F6} %dollars%{Enter}

}
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Chatlog.txt
RegExMatch(Chatlog, &quot;\Q| Уровень:\E (.*)&quot;, out) ; ищем в чат логе слово &quot;Уровень&quot;
RegExMatch(out1, &quot;[0-9]+&quot;, out2) ; извлекаем число
if (out2 &gt;= 11 and out2 &lt;= 15){
dollars = 25000
FileDelete, ChatLog  ; Удаляем ЧатЛог
Goto, MyLabel1
}
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Chatlog.txt
RegExMatch(Chatlog, &quot;\Q| Уровень:\E (.*)&quot;, out)
RegExMatch(out1, &quot;[0-9]+&quot;, out2) ; извлекаем число
if (out2 &gt;= 16 and out2 &lt;= 20){
dollars = 35000
FileDelete, ChatLog  ; Удаляем ЧатЛог
Goto, MyLabel1
}
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\Chatlog.txt
RegExMatch(Chatlog, &quot;\Q| Уровень:\E (.*)&quot;, out) ; ищем в чат логе слово &quot;Уровень&quot;
RegExMatch(out1, &quot;[0-9]+&quot;, out2) ; извлекаем число
if (out2 &gt; 20){
    dollars = 50000
FileDelete, ChatLog  ; Удаляем ЧатЛог
Goto, MyLabel1
}

MyLabel1:</code></pre></div><p>Когда я ввожу new или up в переменную в этой части скрипта,<br /></p><div class="codebox"><pre><code>Send, {F6}Введи up или new  -{Space}
Input , idv, V, {enter}
Send, {F6}^{sc1E}
Sleep, 100</code></pre></div><p>то должно быть так, если ввести up, тогда для игроков 1-2 уровня (и для остальных уровней : 3-5, 6-10, 11-15, 16-20 и больше 20 переменная dollars умножается на 2 и выводится в метку MyLabel1.<br /></p><div class="codebox"><pre><code>
MyLabel1:
Send, {F6}Медкарта вам обойдется в %dollars%</code></pre></div><p>Если ввести new, переменная dollars не умножается, просто остаётся указанным значением в функции RegExMath.</p>]]></content>
			<author>
				<name><![CDATA[arsytenky]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40164</uri>
			</author>
			<updated>2019-05-26T09:01:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=134445#p134445</id>
		</entry>
</feed>
