Цитата:
	
	
		
			
				
					Сообщение от  mira
					 
				 
				Пакеты кладет в буффер пакеты (их копию) сам клиент в хуке. 
Сервисный поток разбирает буфер и обрабатывает пакеты занося данные в бд, онже обрабатывает события и состояния программы. Он резидентный. 
Другой поток крутит скрипт оперируя инфой из бд, его можно завершать и запускать снова (что и происходит при запуске другова скрипта или паузе). Краш в этой нити максимум останавливает скрипт. 
 
форм никаких нет. Нелюблю лишние окна. У програмы свой графический оконный движок внутри клиента. 
			
		 | 
	
	
    Я почти также хотел, только чуть по другому, поскольку у меня есть форма (до своего графического движка я еще не дорос) она оперирует данными с бд и тд. В отдельном потоке запустить ф-ю хука которая кладет в буффер пакеты, и еще 1 поток который будет тикать и доставать с буфера пакеты и заносить данные в бд (ф-ю тика засунуть в таймер). Вот но я не догоню как запустить таймер в отдельном потоке, ему вроде как нужна родительская форма.
   Ну и тут у меня еще куча вопросов, как таймер загружает систему, вот у меня в режиме радара работает 7 таймеров и когда я их включаю куллер заметно начинает шуметь( может это параноя 

 ), может не стоит так много таймеров использовать?
   И еще как себя поведет например программа если в буфер данные одновременно будут ложится одним потоком и извлекаться другим?
   И как вообще лучше организовать буфер? Я думал, например, array[50] of 
	DELPHI Код:
	TFixPck = packed record case Integer of
    0:(ch: array[Word] of Char); 1:(bt: array[Word] of Byte); 
    2:(size: Word; id: Byte; dbt: array[0..65532] of Byte);
  end;
  (спер у xkorа) или вместо массива как в клиенте указатель, но блин я не силен в выделении/освобождении памяти под указатели 100% где-то напартачу.
  Звиняйте, что так много вопросов, просто говнокодствую, а потом по 20 раз переписываю. Думаю лучше все точно узнать, и сделать сразу нормально. Спасибо за помощь.
Добавлено через 8 минут
	Цитата:
	
	
		
			
				
					Сообщение от  ziher
					 
				 
				У меня такой вопрос: как читать из памяти клиента НПЦ и игроков? ХП МП И СР разобрался, а это ума не приложу. буду благодарен за любой ответ. 
			
		 | 
	
	
 Ну смотря как ты узнаешь хп мп и цп, если по фиксированым смещениям в памяти от этого приема лучше уйти сразу. Можно перехватывать пакеты как л2пх или уже расшифрованые хукая UNetworkHandler::AddNetworkQueue(NetworkPacket *)  или UNetworkHandler:

ispatchNetworkQueue(NetworkPacke t * *) или хукая ф-и которые эти пакеты вызывают UNetworkHandler::OnЧего-то там ну на этом мои познания заканчиваются 

 , а вообще здесь вот  
http://coderx.ru/showthread.php?t=1077 и еще в этой ветке очень много полезной инфы по этому поводу. По 20 раз перечитывая одно и тоже на 21й обычно доходит (так делал я) 
