<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; SAMP: Взять данные с паспорта и вывести в чат]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12419&amp;type=atom" />
	<updated>2017-08-23T14:33:00Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12419</id>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118688#p118688" />
			<content type="html"><![CDATA[<p>Разве что избавиться от присвоения переменных функциям. Например: sendchat(&quot;&quot; . getplayeridbyname(name2) . &quot; &quot; . getplayerscorebyid(getplayeridbyname(name2)) . &quot; &quot; . name2 . &quot;&quot;).</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-23T14:33:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118688#p118688</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118684#p118684" />
			<content type="html"><![CDATA[<p>Все, теперь код рабочий, переменные можно вставлять в любые команды. А можно как-то уменьшить задержку? А то между нажатием кнопки и выводом в чат проходит секунды 4, если не больше<br /></p><div class="codebox"><pre><code>
#include SAMP.ahk

global path_log := A_MyDocuments &quot;\GTA San Andreas User Files\SAMP\chatlog.txt&quot;

Numpad1::
SendMessage, 0x50,, 0x4190419,, A
myid := getId()
SendChat(&quot;Здраствуйте, я адвокат. Покажите мне свой паспорт (( /showpass &quot; myid &quot; )) &quot; )
return

Numpad2::
SendMessage, 0x50,, 0x4190419,, A
log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []

        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;
            , name) and (log.find:=log.num + 1 - A_Index)
                break
		if (name2 != &quot;&quot;) {
			idplayer := getPlayerIdByName(name2)
                        lvlplayer := getPlayerScoreById(idplayer)
                        SendChat(name2 . idplayer . lvlplayer)
		} else {
			msgbox, Error
		}
return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ThisIsStart]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38728</uri>
			</author>
			<updated>2017-08-23T13:57:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118684#p118684</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118682#p118682" />
			<content type="html"><![CDATA[<p>У тебя ахк юникодовский, судя по sendmessage. Установи AHK ANSI 32 bit.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-23T13:43:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118682#p118682</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118680#p118680" />
			<content type="html"><![CDATA[<p>Теперь проблема с определением ID, бинд говорит и выводит то что нужно(хоть и с небольшой задержкой), только теперь вместо ID пишет &quot;-1&quot;. Поискав в SAMP.udf я изменил строки при ошибках, чтобы выдавало не только &quot;-1&quot;, но и &quot;-2&quot;, &quot;-3&quot;, и &quot;-4&quot;.<br />Вот код из SAMP.udf<br /></p><div class="codebox"><pre><code>
getPlayerIdByName(wName) {
    wName := &quot;&quot; wName
    if(StrLen(wName) &lt; 1 || StrLen(wName) &gt; 24)
        return -1
    
    if(iRefreshScoreboard+iUpdateTick &gt; A_TickCount)
    {
        For i, o in oScoreboardData
        {
            if(InStr(o.NAME,wName)==1)
                return i
        }
        return -2
    }
    
    if(!updateOScoreboardData())
        return -3
    
    For i, o in oScoreboardData
    {
        if(InStr(o.NAME,wName)==1)
            return i
    }
    return -4
}
</code></pre></div><p>Когда я представляюсь с этим кодом:<br /></p><div class="codebox"><pre><code>
SendChat(&quot;Здраствуйте, я адвокат. Покажите мне свой паспорт (( /showpass &quot; myid &quot; )) &quot; )
</code></pre></div><p>Вместо ID выводит &quot;-1&quot;.<br />А когда я показываю себе паспорт и пытаюсь вывести свое имя и ID. Вывод имени правильный, но вместо ID показывает &quot;-4&quot;.<br /></p><div class="codebox"><pre><code> Numpad2::
SendMessage, 0x50,, 0x4190419,, A
log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []

        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;
            , name) and (log.find:=log.num + 1 - A_Index)
                break
		if (name2 != &quot;&quot;) {
			idplayer := getPlayerIdByName(name2)
                        lvlplayer := getPlayerScoreById(idplayer)
                        SendChat(name2 . idplayer . lvlplayer)
		} else {
			msgbox, Error
		}
return </code></pre></div><p>Я не знаю в чем ошибка, так как даже заменив значение &quot;-x&quot;, я не понимаю. Возможно вы поймете?</p>]]></content>
			<author>
				<name><![CDATA[ThisIsStart]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38728</uri>
			</author>
			<updated>2017-08-23T13:24:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118680#p118680</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118679#p118679" />
			<content type="html"><![CDATA[<p>В функции переменные не обрамляются процентами: getplayeridbyname(name2). sendhchat(&quot;&quot; . name2 . &quot; &quot; . idplayer . &quot; &quot; . lvlplayer . &quot;).</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-23T12:35:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118679#p118679</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118676#p118676" />
			<content type="html"><![CDATA[<p>Так, имя выводит целое, теперь я попробовал вывести ник, ID и уровень игрока. Запуск прошел без ошибок, но при попытке активации выходит окно ошибки с кодом направленную на строчку</p><div class="codebox"><pre><code>lvlplayer := getPlayerScoreById(%idplayer%)</code></pre></div><p>Вот целый код:<br /></p><div class="codebox"><pre><code>#include SAMP.ahk

global path_log := A_MyDocuments &quot;\GTA San Andreas User Files\SAMP\chatlog.txt&quot;

!2::
SendMessage, 0x50,, 0x4190419,, A
log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []

        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;
            , name) and (log.find:=log.num + 1 - A_Index)
                break
		if (name2 != &quot;&quot;) {
			idplayer := getPlayerIdByName(%name2%)
                        lvlplayer := getPlayerScoreById(%idplayer%)
                        SendChat(&quot;%name2% , %idplayer% , %lvlplayer%&quot;)
		} else {
			msgbox, Error
		}
return</code></pre></div><p>И еще, я хотел добавить бинд приветствия и просьбы показать паспорт. Как правильно написать?<br /></p><div class="codebox"><pre><code>!1::
SendMessage, 0x50,, 0x4190419,, A
myid := getId()
SendChat(&quot;Здраствуйте, я адвокат. Покажите мне свой паспорт (( /showpass %myid% )) &quot;)
return</code></pre></div><p> <br />Это не правильно, и выводит он вместо ID %myid%, я пытался поставить кавычки чтобы было &quot;%myid%&quot;, но при запуске скрипта вылезает окно с ошибкой в этой строчке<br /></p><div class="codebox"><pre><code>
Line Text: &quot;)
Error: Missing close-quote
</code></pre></div><p>Что я делаю не так?</p>]]></content>
			<author>
				<name><![CDATA[ThisIsStart]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38728</uri>
			</author>
			<updated>2017-08-23T11:54:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118676#p118676</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118675#p118675" />
			<content type="html"><![CDATA[<p>Код верный, имя содержится в переменной name2, переработай тестовое сообщение под себя, а не используй это, сделанное для другого пользователя. Хотя все равно странно, что отправляется в чат вся строчка, вместо имени...</p><div class="codebox"><pre><code>sendinput {f6}%name2%{enter}</code></pre></div><p>работает?</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-23T11:44:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118675#p118675</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118674#p118674" />
			<content type="html"><![CDATA[<p>Хорошо, флуд я убрал. При активации вместо обычного ника в формате &quot;Nick_Name&quot; он берет все целиком и получается </p><div class="codebox"><pre><code>[16:08:28]  Имя: Nick_Name.</code></pre></div><p> А вот строчка с именем из паспорта<br /></p><div class="codebox"><pre><code>[16:05:35]  Имя: Nick_Name</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ThisIsStart]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38728</uri>
			</author>
			<updated>2017-08-23T11:07:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118674#p118674</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118671#p118671" />
			<content type="html"><![CDATA[<p>А, ну вот она причина <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />, неаккуратно отрезал второй поиск. Команда loop создает цикл, теперь челендж: найди причину флуда командой <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />. А насчёт имени: скопируй строчку из чатлога, где имя в паспорте.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-23T10:07:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118671#p118671</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118669#p118669" />
			<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>2017-08-23T09:51:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118669#p118669</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118668#p118668" />
			<content type="html"><![CDATA[<p>Ясно, значит можно считывать просто имя. Теперь у меня другие проблемы, при нажатии на Alt+2 тестовую фразу он пишет очень много раз, и сервер сразу меня кикает. И еще, как оставить _? То есть Никнейм может быть формата &quot;Nick&quot; или &quot;Nick_Name&quot;, сейчас код выводит мне его в виду &quot;Nick Name&quot;. Я сменил &quot;(.*)_(.*)&quot; из кода на &quot;(.*)&quot;, но не все так просто как мне показалось.<br />Нужно сделать какую-то задержку, чтобы я не флудил, и ник сделать одним целым</p><p>Вот код: </p><div class="codebox"><pre><code>#include SAMP.ahk

global path_log := A_MyDocuments &quot;\GTA San Andreas User Files\SAMP\chatlog.txt&quot;

!2::
SendMessage, 0x50,, 0x4190419,, A
log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []

        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;
            , name) and (log.find:=log.num + 1 - A_Index)
                break
		loop 30	
		if (name2 != &quot;&quot;) {
			sendinput, {F6}%lvl2% %name2% %name3%.{Enter}
		} else {
			msgbox, Error
		}
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ThisIsStart]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38728</uri>
			</author>
			<updated>2017-08-23T09:40:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118668#p118668</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118666#p118666" />
			<content type="html"><![CDATA[<p>Тогда можно вообще избавиться от проверки уровня по паспорту. Зачем использовать команду чтения текстового файла, если в памяти хранятся id и lvl игрока? Функции getplayeridbyname() и getplayerscorebyid() в UDF тебе помогут, имя узнаешь из паспорта, я так понял он у тебя нормально имя узнает.</p><p>Чтобы указать ошибки на конкретный код, нужна строчка с телефоном и возрастом из чатлога.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-08-23T08:48:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118666#p118666</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118661#p118661" />
			<content type="html"><![CDATA[<p>Всем привет. Нашел данную тему и хочу переделать код по адвоката. То есть вместо звания и имени, записывался уровень игрока в определенную переменную, и его id. Проблема в том, что после того как я начал редактировать и попутно тестировать, после уровня игрока (&quot;Возраст&quot;) у меня записывалось &quot;Телефон: xxxxxx&quot;. То есть я не знаю как &quot;отделить&quot; лвл и телефон. Не требую мне полностью готовый и рабочий код, лучше укажите ошибки, и способы их исправить.<br />Цель: Чтобы после того как человек показывал мне паспорт, я нажимал на определенную клавишу, и шла проверка его уровня, проигрывалось РП(/me, /do и тд.) и собственно говоря сама команда /free в которой и требуется его id. Уровень мне нужен для установки цены.<br /></p><div class="codebox"><pre><code> #include SAMP.ahk

global path_log := A_MyDocuments &quot;\GTA San Andreas User Files\SAMP\chatlog.txt&quot;

!2::
SendMessage, 0x50,, 0x4190419,, A
log := {str:&quot;&quot;,find:0,num:0}    ,    log.str := []

        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;
            , name) and (log.find:=log.num + 1 - A_Index)
                break
		loop 30	
	    if RegExMatch(     log.str[log.num + 1 - A_Index]
            ,&quot;\[(.*)\]  Возраст: (.*)&quot;
            , lvl) and (log.find:=log.num + 1 - A_Index)
                break
		if (name2 != &quot;&quot;) and (lvl2 != &quot;&quot;) {
			sendinput, {F6}%lvl2% %name2% %name3%.{Enter}
		} else {
			msgbox, Error
		}
return </code></pre></div>]]></content>
			<author>
				<name><![CDATA[ThisIsStart]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=38728</uri>
			</author>
			<updated>2017-08-22T20:42:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118661#p118661</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=112061#p112061" />
			<content type="html"><![CDATA[<p><strong>belyankin12</strong>, О да спасибо, отлично работает.</p>]]></content>
			<author>
				<name><![CDATA[ataks63rus]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34585</uri>
			</author>
			<updated>2017-02-09T18:04:32Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=112061#p112061</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SAMP: Взять данные с паспорта и вывести в чат]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=112060#p112060" />
			<content type="html"><![CDATA[<p><strong>ataks63rus</strong>, посмотри уже мой вариант &gt;_&lt;, у меня все работает.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-02-09T17:53:00Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=112060#p112060</id>
		</entry>
</feed>
