а в чем проблемато ? создаем масив стринговый состоящий из перехваченых пакетов исходящих.. все пакеты сохраняет и килем.. не пропускаем их.. при нажатии на чета- запускаем таймер с маленьким интервалом- который из сохранненного масива всё серверу отдаст.. разве так нельзя?
Добавлено спустя 25 минут 37 секунд:
Re:
	Цитата:
	
	
		| 
			
				 
					Сообщение от mazx
					
				 
				Есть пакет npcinfo начинающийся на 16 потом идет обж ид (как я понял pck[2-5])а за ним номер НПС (как я понял pck[6-9])... 
я делаю так 
var 
a:string 
 if  (FromServer) and (pck[1]=#$16) then begin 
 дальше нужно получить из шестнадцатиричного  десятичное число - номер нпc и присвоить строке, как это сделать? 
есть идея ...но не знаю верна ли  - a:=inttostr(ReadD(6)); 
 
и еще вопрос - подскажите код  чтобы при target  присвоить переменной номер нпc (не обжект,а npcid вроде) 
			
		 | 
	
	
 я перевожу из 16 в 10 так:
пример рабочий из самописнаго скрипта.. применяю для мониторинга ХП и МП..:
/*************************СЛЕДИМ ЗА ХП******************************************
//следим за ХП
  if FromServer and (pck[1]=#$0e) and (ConnectName = NameKom)  then
  if (pck[2] + pck[3] + pck[4] + pck[5] = IDKomandos) and (pck[6]=#$04) then
  begin
//СОБСТВЕННО ЕТО И ЕСТЬ КОЛ-ВО ХП В ФОРМАТЕ ИНИГЕР ПЕРЕВОД в 10 из 16
    CurHPKom:=(ord(pck[15]) * 256 + ord(pck[14]));
//если ХП меньше 70% от шкалы то ХП ЛЬЁТ БАФЕР
     if (CurHPKom < round(MaxHPKom*0.7)) then
     if (tick1 = 1) then
     begin
      buf:=hstr('04') + IDKomandos + Bot1X + Bot1Y + Bot1Z + hstr('00');
      SendToServerEX(NameBot1);
      buf:=hstr('2F C1 04 00 00 00 00 00 00 00');
      SendToServerEX(NameBot1);
      delay(500);
      buf:=hstr('04') + IDKomandos + Bot1X + Bot1Y + Bot1Z + hstr('00');
      SendToServerEX(NameBot1);
     end;
Добавлено спустя 10 минут 34 секунды:
а вот если 4-х байтный стринг содержащий закодированое число может принимать отрицателььное значение то немного сложней.. яделаю так:
     CentrKachXex:= ord(CentrKachX[3])*256*256  + ord(CentrKachX[2]) * 256 + ord(CentrKachX[1]);
     CentrKachYex:= ord(CentrKachY[3])*256*256  + ord(CentrKachY[2]) * 256 + ord(CentrKachY[1]);
     if (CentrKachX[4] = #$FF) then CentrKachXex:=16777215-CentrKachXex;
     if (CentrKachY[4] = #$FF) then CentrKachYex:=16777215-CentrKachYex;
4-й байт указатель на минус..
хранить такие числа надо в формате ЕКСЕНДИТ- ето 8-ми байтный интегер учитывающий минус. с ним можно выполнять все функции придуманные для ИНТЕГЕРА.. + - / * 
жэлаю удачи
функцию INTTOSTR(xx) применять собственно тут нельзя.. для понимания надо понимать-) о как загнул.. стринговый пакет - что ето??  ето не 16-тиричные числа а набор символов.. ето для простоты визуализации он в 16 системе мониторится.. а  так как он имеет формат стринг- значит он в памяти хранится в виде "G@KKK(*&%#45GJKhdмсадвыр7:%;%:@" что то типа таково.. поетому  работать с ним с использованием INTTOSTR- нельзя..
жэлаю удачи