Цитата:
Сообщение от 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.
Всё вроде правильно поставил, что не так то?