Показать сообщение отдельно
Старый 17.06.2008, 22:23   #137
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 37
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Byrger пока неопределено
По умолчанию

Цитата:
Сообщение от NLObP Посмотреть сообщение
На работе кончился инет, поэтому не договорил, как лучше сделать.
Попробуй так:
delphi Код:
{ Социальное действие YES - включить Социальное действие NO - выключить } const packet1='CF 66 33 31 57 89 A1 3E 40 A0 86 01 00'; packet2='FF 35 57 A0 C1 7B CE 1B 40 A0 86 01 00'; var timer1 : TTimer; x : integer; procedure UseBuff(buffID:string; id:integer); begin   buf:=HStr(buffID);   SendToServerEX(ConnectNameByID(id)); //переходим от ID к Name end; procedure OnTimer; begin   case x of     0: begin      usebuff(packet1,1);      inc(x);     end;     1: begin      usebuff(packet2,0);      inc(x);     end;     2: begin      usebuff(packet1,1);      inc(x); //     timer1.interval:=300000; //5 минут      //откл.      timer1.enabled:=false;     end;   end; end; procedure Init; begin   timer1:=TTimer.Create(nil);   timer1.OnTimer:=@OnTimer;   timer1.enabled:=false;   timer1.interval:=200; //200 миллисекунд   x:=0; end; procedure Free; //Вызывается при выключении скрипта begin   timer1.free; end; begin   if pck='' then exit;   if FromClient then begin     case pck[1] of       #$1B: begin         case ReadD(2) of           //социальное действие Yes для начала           $06: begin             //не передаем серверу             pck:='';             x:=0;             //вкл.             timer1.enabled:=true;           end;           //социальное действие No для окончания           $05: begin             //не передаем серверу             pck:='';             //откл.             timer1.enabled:=false;           end;         end;       end;     end;   end; end.

Добавлено через 1 минуту


Потому что таймер выключен и нигде не включается.

Хм... А как убрать, что не запускалось по социальным действиям?
А то с этим шифрованием... Просто надо чтоб галочку поставил и всё...

Добавлено через 16 минут
Так попробовал... не работает похоже...
Переделал скрипт под "зашифрованные" действия
После выполнения действия YES ничего не происходит...

Добавлено через 14 минут
Социальное действие YES у меня DC 5D E8 09 CF
NO DC 5E E8 09 CF

Два пакета которые нужно отправлять..
1-0A 23 3A FB 40 76 12 DC 40 A0 86 01 00
2-D1 5A E8 09 CF 85 F4 AC 40 A0 86 01 00

Код:
{
Социальное действие YES - включить
Социальное действие NO - выключить
}
const
packet1='0A 23 3A FB 40 76 12 DC 40 A0 86 01 00';
packet2='D1 5A E8 09 CF 85 F4 AC 40 A0 86 01 00';

var
timer1 : TTimer;
x : integer;

procedure UseBuff(buffID:string; id:integer);
begin
  buf:=HStr(buffID);
  SendToServerEX(ConnectNameByID(id)); //переходим от ID к Name
end;

procedure OnTimer;
begin
  case x of
    0: begin
     usebuff(packet1,1);
     inc(x);
    end;
    1: begin
     usebuff(packet2,0);
     inc(x);
    end;
    2: begin
     usebuff(packet1,1);
     inc(x);
//     timer1.interval:=300000; //5 минут
     //откл.
     timer1.enabled:=false;
    end;
  end;
end;

procedure Init;
begin
  timer1:=TTimer.Create(nil);
  timer1.OnTimer:=@OnTimer;
  timer1.enabled:=false;
  timer1.interval:=200; //200 миллисекунд
  x:=0;
end;

procedure Free; //Вызывается при выключении скрипта
begin
  timer1.free;
end;

begin
  if pck='' then exit;
  if FromClient then begin
    case pck[1] of
      #$ВС: begin
        case ReadD(2) of
          //социальное действие Yes для начала
          $5D: begin
            //не передаем серверу
            pck:='';
            x:=0;
            //вкл.
            timer1.enabled:=true;
          end;
          //социальное действие No для окончания
          $5E: begin
            //не передаем серверу
            pck:='';
            //откл.
            timer1.enabled:=false;
          end;
        end;
      end;
    end;
  end;
end.

Всё вроде правильно поставил, что не так то?

Последний раз редактировалось Byrger, 17.06.2008 в 22:23. Причина: Добавлено сообщение
Byrger вне форума   Ответить с цитированием