Показать сообщение отдельно
Старый 02.04.2008, 00:41   #333
Пользователь
 
Аватар для APXAHGEJI
 
Регистрация: 08.03.2008
Сообщений: 77
Сказал Спасибо: 31
Имеет 19 спасибок в 15 сообщенях
APXAHGEJI
По умолчанию

ХМ, так я про что говорю, pck это тупо кусок (1 байт пакета, условно, две циферки подряд в пакете) в 16 системе,
а вот ReadC это тот же кусок (1 байт пакета) тока в 10 системе.
ReadH - 2 байта,
ReadD - 4 байта, и тд.

Добавлено спустя 35 минут 53 секунды:
Уж извините за флуд :oops: , но вдруг кому сгодится :)
Скриптик, отправляет торг сообщения по времени и записывает все приват сообщения,
соответственно на которые можно будет ответить позже.
Еще я там в конце заблочил, ответ на собщения в пм, что типа меня нет, приду отвечу))
У на серве торг боты разрешены)) , а у вас?
Код:
//Скрипт торг сообщений by APXAHrEJI
//Всё активируется соц действиями
//Yes - выводит одно торг сообщение
//No - автоматически повторяет сообщение чере некоторый интервал врмени (по умолчанию 30 сек.)
//Unaware - если вам во время вашего отсутствия что-то написали в ПМ 
//то, по нажатию клавиши выводится те самые сообщения , одно нажатие одно сообщение.
//Applaud - удаляет все сообщения
Const
  Name = 'Ник Перса';
  Yahoo= ' Сюда торг сообщение                                        '+
             ' если не поместилось туда мона и сюда              ';
Var
  TimerToSay: TTimer;
  Flag: boolean;
  N, M: Integer;
  SaveMsg: array of String;
  SaveNick: array of String;

Procedure Init;
begin
  TimerToSay:=TTimer.Create(nil);
  TimerToSay.OnTimer:=@SayByTime;
  TimerToSay.Enabled:= False;
  TimerToSay.Interval:= 30000;//интервал повторения сообщения
  Flag:= False;
  N:= 0;
  M:= 0;
end;

procedure Free;
begin
  TimerToSay.Free;
  SetLength (SaveMsg, 0);
  SetLength (SaveNick, 0);
end;

procedure PrivatSay;
begin
  buf:=hstr('4A 00 00 00 00');
  WriteD(2);
  WriteS(SaveNick[M]);
  WriteS(SaveMsg[M]);
  SendToClientEx(Name);
end;

Procedure Say;
begin
  buf:= #$38;
  WriteS(Yahoo);
  WriteD(8);
  SendToServerEx (Name);
end;

Procedure Palevo;
begin
  buf:= #$38;
  WriteS('Меня нет. Отвечу позже.');
  WriteD(2);
  WriteS(SaveNick[N-1]);
  SendToServerEx(Name);
end;

Procedure SayByTime(Sender: TObject);
begin
  Say;
end;

Begin
  If pck='' then exit;

  if FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
    case ReadD(2) of
      6: Say;
      5: If Flag then begin
           Flag:= False;
           TimerToSay.enabled:=false;
         end
         else begin
           Say;
           Flag:= True;
           TimerToSay.enabled:=True;
         end;
      8: If (N <> 0) then begin
           PrivatSay;
           If (M<(N-1))then Inc(M) else M:=0;
         end;
      11: begin
            M:=0;
            N:=0;
            SetLength (SaveMsg, N);
            SetLength (SaveNick, N);
          end;
    end;
    pck:= '';
  end;

  If FromServer and (ConnectName=Name) then
    if (pck[1]= #$4A) and (pck[6]=#$02) then begin
      Inc(N);
      SetLength (SaveMsg, N);
      SetLength (SaveNick, N);
      SaveNick[N-1]:= ReadS(10);
      SaveMsg[N-1]:= ReadS(2*Length(SaveNick[N-1])+2 +10);
      //Palevo; //раскоментарив, бот будет отвечать на сообщения в ПМ  
    end;
End.
APXAHGEJI вне форума   Ответить с цитированием