altairalentus
17.02.2012, 19:57
Вот нечего делать было переписал свой скрипт под 2,7.
Скрипт использует свитки по окончанию эффекта а также селф бафы.
Доступные комманды:
.memc - Очистка списка бафов.
.memon - старт записи списка бафов ВАЖНО!!!перед использованием команды на вас не долшо быть ни каких бафов, после как пробафались пишем .memoff
Для работы скрипта в корне папки пакерхака надо создать файл baf.txt
Будьте внимательны когда например кончилась стопка с свитками и вы купили еще то перезапишите бафы (.memc-.memon-.memoff) так как ид итема сменился.
вот сам скрипт:
//by Alatair_Alentus
var
b,i,l,f:integer;
pak,name,filename,tp,p:string;
s,t:tstringlist;
fs: tfilestream;
capture,memc:byte;
procedure init ;
begin
s:=tstringlist.create;
t:=tstringlist.create;
s.loadfromfile('baf.txt');
capture:=1;
end;
procedure Free ;
begin
s.savetofile('baf.txt');
end;
procedure check;
begin
b:=0;
t.clear;
for i:= 1 to readc(14) do
begin
t.add(inttostr(readh(20+b)));
b:=b+12;
end;
for i:=1 to strtoint(s.values['size']) do
begin
if t.indexof(s.values['idf'+inttostr(i)])=-1 then rebaf(s.values['idsi'+inttostr(i)], s.values['type'+inttostr(i)]);
end;
end;
procedure rebaf(idn,idt:string);
begin
case idt of
'i':
begin
buf:=HStr('CC 00 57 6B FF');
writed(StrToInt(idn));
buf:=buf+HStr('00');
capture:=0;
SendToServer;
capture:=1;
buf:='';
idn:='';
end;
's':
begin
buf:=hstr('D0 00 57 6F FF');
writeh(StrToInt(idn));
buf:=buf+hstr('06 00 00 00 00 00 00 00 F9 2F 00 00 ');
capture:=0;
SendToServer;
capture:=1;
buf:='';
idn:='';
end;
end;
end;
procedure mem(write:byte);
begin
p:=IntToStr(Strtoint(s.values['size'])+1);
case pck[1] of
#$cc:
begin
s.add('idsi'+p+'='+inttostr(readd(6)));
s.add('type'+p+'=i');
end;
#$D0:
begin
s.add('idsi'+p+'='+inttostr(readh(6)));
s.add('type'+p+'=s');
end;
end;
if write=1 then
begin
s.add('idf'+p+'='+IntToStr(readh(readc(14)*12+8))) ;
s.values['size']:=p;
end;
end;
procedure cap(c:byte);
begin
capture:=c;
pck:='';
end;
procedure memclear ;
begin
s.clear;
s.add('size=0');
end;
procedure message(msg:string;chatID:byte);
begin
buf:=HStr('16 00 54 D5 FF 00 00 E3 10 37 00 ');
writec(chatID,6);
WriteS('PHX');
WriteS(msg);
SendToClient;
end;
begin
if FromClient and (pck[1]=HStr('b2')) then
begin
case reads(7) of
'.memon': cap(2);
'.memoff': cap(1);
'.memc': memclear;
end;
end;
case capture of
0: ;
1: if FromServer and (pck[1]=HStr('51')) then check;
2:
begin
if FromClient and (pck[1]=#$CC) then mem(0);
if FromClient and (pck[1]=#$D0) then mem(0);
if FromServer and (pck[1]=HStr('51')) then mem(1);
end;
end;
end.
Добавил видео с демонстрацией [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Если понравилось то жми спасибо!!
Скрипт использует свитки по окончанию эффекта а также селф бафы.
Доступные комманды:
.memc - Очистка списка бафов.
.memon - старт записи списка бафов ВАЖНО!!!перед использованием команды на вас не долшо быть ни каких бафов, после как пробафались пишем .memoff
Для работы скрипта в корне папки пакерхака надо создать файл baf.txt
Будьте внимательны когда например кончилась стопка с свитками и вы купили еще то перезапишите бафы (.memc-.memon-.memoff) так как ид итема сменился.
вот сам скрипт:
//by Alatair_Alentus
var
b,i,l,f:integer;
pak,name,filename,tp,p:string;
s,t:tstringlist;
fs: tfilestream;
capture,memc:byte;
procedure init ;
begin
s:=tstringlist.create;
t:=tstringlist.create;
s.loadfromfile('baf.txt');
capture:=1;
end;
procedure Free ;
begin
s.savetofile('baf.txt');
end;
procedure check;
begin
b:=0;
t.clear;
for i:= 1 to readc(14) do
begin
t.add(inttostr(readh(20+b)));
b:=b+12;
end;
for i:=1 to strtoint(s.values['size']) do
begin
if t.indexof(s.values['idf'+inttostr(i)])=-1 then rebaf(s.values['idsi'+inttostr(i)], s.values['type'+inttostr(i)]);
end;
end;
procedure rebaf(idn,idt:string);
begin
case idt of
'i':
begin
buf:=HStr('CC 00 57 6B FF');
writed(StrToInt(idn));
buf:=buf+HStr('00');
capture:=0;
SendToServer;
capture:=1;
buf:='';
idn:='';
end;
's':
begin
buf:=hstr('D0 00 57 6F FF');
writeh(StrToInt(idn));
buf:=buf+hstr('06 00 00 00 00 00 00 00 F9 2F 00 00 ');
capture:=0;
SendToServer;
capture:=1;
buf:='';
idn:='';
end;
end;
end;
procedure mem(write:byte);
begin
p:=IntToStr(Strtoint(s.values['size'])+1);
case pck[1] of
#$cc:
begin
s.add('idsi'+p+'='+inttostr(readd(6)));
s.add('type'+p+'=i');
end;
#$D0:
begin
s.add('idsi'+p+'='+inttostr(readh(6)));
s.add('type'+p+'=s');
end;
end;
if write=1 then
begin
s.add('idf'+p+'='+IntToStr(readh(readc(14)*12+8))) ;
s.values['size']:=p;
end;
end;
procedure cap(c:byte);
begin
capture:=c;
pck:='';
end;
procedure memclear ;
begin
s.clear;
s.add('size=0');
end;
procedure message(msg:string;chatID:byte);
begin
buf:=HStr('16 00 54 D5 FF 00 00 E3 10 37 00 ');
writec(chatID,6);
WriteS('PHX');
WriteS(msg);
SendToClient;
end;
begin
if FromClient and (pck[1]=HStr('b2')) then
begin
case reads(7) of
'.memon': cap(2);
'.memoff': cap(1);
'.memc': memclear;
end;
end;
case capture of
0: ;
1: if FromServer and (pck[1]=HStr('51')) then check;
2:
begin
if FromClient and (pck[1]=#$CC) then mem(0);
if FromClient and (pck[1]=#$D0) then mem(0);
if FromServer and (pck[1]=HStr('51')) then mem(1);
end;
end;
end.
Добавил видео с демонстрацией [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Если понравилось то жми спасибо!!