Скрипт является аналогом функции AutoSleep в L2Walker для бафферов,
но этот авто сон более универсальный и менее паливный чем в Л2валкер
Если у перса 100% нр и 100% мр то перс продолжает сидеть а не встает как в л2 валкер, и не зависит от маны.
Кто незнает суть скрипта, он включается на вашего оконного баффера или хиллера и садит перса, если Л2Валкер захечет что то сделать(бафнуть или лекнуть) то скрипт подымает вашего чара на ноги, и главный беспаливный плюс, скрипт садит вашего чара с рандомной задержкой имитирующем реального игрока.
Код
//Автор ATMS_DIFKS
var
Tim01: TTimer;
name:string;
typ,mxmp,mp,tmp,x,y,z,sit,i,ii,sd,wait,im,mid2:integer;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(2); //тип сообщения 1 шаут 2 приват 10 аноним обьявление и тд
WriteS('AS'); //ник от кого
WriteS(msc);
SendToClientEX(name);
end;
procedure Init; //Вызывается при включении скрипта
begin
name:='****'; // ник перса
tmp:=5000; //садится если мр меньше
Tim01:=TTimer.Create(nil);
Tim01.OnTimer:=@OnTim011;
Tim01.interval:=1000;
Tim01.enabled:=true;
i:=0;
sit:=1; sd:=0; wait:=7; im:=0; ii:=0;
end;
function pl(t:integer):integer;
begin
buf:=#$6D;
WriteD(0);
WriteD(t); //время
WriteD(t); //время
SendToClient;
end;
procedure OnTim011;
begin
if sd = 1 then i:=i+1;
if i >= wait then begin i:=0; sd:=0; buf:=hstr('45 00 00 00 00 00 00 00 00 00'); SendToServerEX(name); end;
if ii > 0 then ii:=ii-1;
end;
procedure Free; //Вызывается при выключении скрипта
begin
Tim01.free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if fromserver and (pck[1]=#$2F) and (ConnectName=name) then
begin
sit := ReadD(6);
pck:='';
if sit = 0 then SendMsc('Сижу');
if sit = 1 then
begin
SendMsc('Стою');
sd:=0; i:=0;
end;
randomize;
wait := 5+round(random()*13);
end;
if fromserver and (pck[1]=#$0E) and (ConnectName=name) then
begin
typ:=ReadD(6);
if typ = 2 then
begin
mxmp:=ReadD(22);
mp:=ReadD(14);
if (mp < tmp) and (sit = 1)then
begin
sd:=1;
end;
end;
end;
if fromclient and (pck[1]=#$48) and (ConnectName=name) then
begin
x:=readD(2);
y:=readD(6);
z:=readD(10);
end;
If fromclient and (pck[1]=#$2F) and (ConnectName=name) then
begin
MID2:=ReadD(2);
if MID2 = 1069 then
begin
if ii <> 0 then pck:='';
if (ii = 0) and (im = 1) then begin ii:=20; im:=0; pl(20000) end;
if im = 0 then im:=1;
end;
end;
If fromserver and (pck=hstr('64 1F 00 00 00 00 00 00 00')) and (ConnectName=name) then
begin
// if (sit = 0) then
// begin
buf:=hstr('45 00 00 00 00 00 00 00 00 00');
SendToServerEX(name);
sd:=0; i:=0;
// end;
end;
if fromclient and (pck[1]=#$2F) and (ConnectName=name) then
begin
i:=0;
end;
end.