<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; SA:MP: Оптимизация нагрузки или поиск другого решения.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12250</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12250&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «SA:MP: Оптимизация нагрузки или поиск другого решения.».]]></description>
		<lastBuildDate>Fri, 23 Dec 2016 09:18:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[SA:MP: Оптимизация нагрузки или поиск другого решения.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=110065#p110065</link>
			<description><![CDATA[<p>Приветствую дорогие кодеры. Цель моего скрипта - чтение чата по шаблону и замеца цвета сообщения. Проблема такая - запускаю .ahk файл, работает, но медленно и не сразу меняет цвет сообщения (архетиктура сампа не позволяет обновить чат сразу). Конвертирую в .exe файл, работает быстро но создает отгромные для такого скрипта нагрузки на процессор.<br />Помогите советом. Как реализовать это лучше.<br /></p><div class="codebox"><pre><code>#NoEnv
#SingleInstance force
#InstallKeybdHook
#MaxThreads, 20
#MaxThreadsPerHotkey, 255
#ifWinActive GTA:SA:MP
SetBatchLines, -1
#Include SAMP.ahk
SetKeyDelay, 0
SetWinDelay, 0
settimer, cLoop, 1
return
cLoop:
settimer, cLoop, off
	iLine := 0
	while iLine &lt; 99
	{
		tChat := GetChatLineEx(iLine)
		if(!RegExMatch(tChat, &quot;^(.*)\[(\d+)\] (.*)\[(\d+)\]&quot;, Res))
		{
			iLine++
			continue
		}
		plID := getPlayerIdByName(Res1)
		if(plID != Res2)
		{
			iLine++
			continue
		}
		Color := HexToDec(ColorToStr2(GetPlayerColor(plID)))
		tColor := GetChatLineColor(iLine)
		if(tColor != 4278557651 || tColor = Color || !RegExMatch(GetChatLineEx(iLine),&quot;^&quot; Res1 &quot;\[&quot; plID &quot;\]&quot;))
		{
			iLine++
			continue
		}
		setChatLineColor(iLine, Color)
;		WriteRaw(hGTA, readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR) + 0x226 + ( (99-iLine) * 0xFC), &amp;data, 4)
		iLine++
	}
settimer, cLoop, 1
return</code></pre></div><p>На while-loop не обращайте внимания, пробывал и с Loop, и с While. Нагрузки в скомпелированном файле воистину огромны.</p>]]></description>
			<author><![CDATA[null@example.com (alekksss)]]></author>
			<pubDate>Fri, 23 Dec 2016 09:18:24 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=110065#p110065</guid>
		</item>
	</channel>
</rss>
