<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; SAMP-UDF: Странное поведение маркера.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12290</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12290&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «SAMP-UDF: Странное поведение маркера.».]]></description>
		<lastBuildDate>Sun, 08 Jan 2017 12:03:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[SAMP-UDF: Странное поведение маркера.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=110689#p110689</link>
			<description><![CDATA[<p>Доброго времени суток читатель. Прошу помощи, ибо не понимаю почему так происходит.<br />Функция позволяет создать маркер в игре:<br /></p><div class="codebox"><pre><code>setCheckpoint(fX, fY, fZ, fSize ) {
if(!checkHandles())
return false
dwFunc := dwSAMP + 0x9D340
dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
if(ErrorLevel || dwAddress==0) {
ErrorLevel := ERROR_READ_MEMORY
return false
}
VarSetCapacity(buf, 16, 0)
NumPut(fX, buf, 0, &quot;Float&quot;)
NumPut(fY, buf, 4, &quot;Float&quot;)
NumPut(fZ, buf, 8, &quot;Float&quot;)
NumPut(fSize, buf, 12, &quot;Float&quot;)
writeRaw(hGTA, pParam1, &amp;buf, 16)
dwLen := 31
VarSetCapacity(injectData, dwLen, 0)
NumPut(0xB9, injectData, 0, &quot;UChar&quot;)
NumPut(dwAddress, injectData, 1, &quot;UInt&quot;)
NumPut(0x68, injectData, 5, &quot;UChar&quot;)
NumPut(pParam1+12, injectData, 6, &quot;UInt&quot;)
NumPut(0x68, injectData, 10, &quot;UChar&quot;)
NumPut(pParam1, injectData, 11, &quot;UInt&quot;)
NumPut(0xE8, injectData, 15, &quot;UChar&quot;)
offset := dwFunc - (pInjectFunc + 20)
NumPut(offset, injectData, 16, &quot;Int&quot;)
NumPut(0x05C7, injectData, 20, &quot;UShort&quot;)
NumPut(dwAddress+0x24, injectData, 22, &quot;UInt&quot;)
NumPut(1, injectData, 26, &quot;UInt&quot;)
NumPut(0xC3, injectData, 30, &quot;UChar&quot;)
writeRaw(hGTA, pInjectFunc, &amp;injectData, dwLen)
if(ErrorLevel)
return false
hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
if(ErrorLevel)
return false
waitForSingleObject(hThread, 0xFFFFFFFF)
closeProcess(hThread)
ErrorLevel := ERROR_OK
return true
}</code></pre></div><p>(Без табуляции, уж простите, сам копировал так)<br />При запуске скрипта отлично работает, первое срабатываение как надо. А вот при попытке создать следующий маркер, он становится не видимым игроку, отмечается только на карте, а в виртуальном пространстве не видно.<br />Удаляется так:<br /></p><div class="codebox"><pre><code>disableCheckpoint()
{
if(!checkHandles())
return false
dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
if(ErrorLevel || dwAddress==0) {
ErrorLevel := ERROR_READ_MEMORY
return false
}
VarSetCapacity(enablecp, 4, 0)
NumPut(0,enablecp,0,&quot;Int&quot;)
writeRaw(hGTA, dwAddress+0x24, &amp;enablecp, 4)
ErrorLevel := ERROR_OK
return true
}</code></pre></div><p>Не совсем понимаю, но после перезапуска скрипта функция снова адекватно создает маркер, а при последующей попытке, опять баг. В чем проблема?</p>]]></description>
			<author><![CDATA[null@example.com (alekksss)]]></author>
			<pubDate>Sun, 08 Jan 2017 12:03:17 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=110689#p110689</guid>
		</item>
	</channel>
</rss>
