PDA

Просмотр полной версии : [Скрипт] Авто использование свитков и еды


altairalentus
07.12.2011, 18:26
Скрипт автоматизирует использование свитков и еды
для настойки скрипта необходимо снять все бафы и использовать команду .memon после того как все свитки банки будут использованы пишем .memoff
Для того чтоб очистить список используйте команду .memc
Все скрипт готов к использованию после окончания действия бафа свитки будут автоматически использоваться.
Возможные проблемы:
- Возможное изменение ид итема после сплита стопок с свитками в инвентаре после этого может не использоваться данный итем
Работает на 2,1-2,5 возможно скоро будет на 2,7
Для работы скрипта необходимо создать файл baf.txt в папке пакетхака

//by Alatair_Alentus
var
b,i,l,f:integer;
pak,np,name,filename,tp:string;
s,t:tstringlist;
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
//showmessage('check _stat');
b:=0;
t.clear;
for i:= 1 to readc(12) do
begin
t.add(inttostr(readh(18+b)));
b:=b+12;
end;
for i:=0 to s.count-1 do
begin
if t.indexof(s.names[i])=-1 then useitem(s.names[i]);
end;
end;

procedure useitem(idn:string);
begin
buf:=HStr('CB 57 68');
writed(StrToInt(s.values[idn]));
buf:=buf+HStr('00');
capture:=0;
SendToServer;
capture:=1;
buf:='';
idn:='';
//showmessage(capture);
end;

procedure mem(mems:string;write:byte);
var str:string;
begin
str:=mems+str;
if write=1 then
begin
s.add(str);
str:='';
end;
//showmessage(str);
end;

procedure cap(c:byte);
begin
capture:=c;
pck:='';
end;
begin
if FromClient and (pck[1]=HStr('b9')) then
begin
case reads(5) of
'.memon': cap(2);
'.memoff': cap(1);
'.memc': s.clear;
end;

end;

case capture of
0: ;
1: if FromServer and (pck[1]=HStr('4E')) then check;
2:
begin
if FromClient and (pck[1]=HStr('CB')) then mem('='+inttostr(readd(4)),0);
if FromServer and (pck[1]=HStr('4E')) then mem(IntToStr(readh(readc(12)*12+6)),1);
end;
end;
end.

Все спасибо за внимания

altairalentus
08.12.2011, 10:28
Расскажи на каком сервере тестилось.
mmo4free, aion.in.ua работало норм если обойдете лаунчеры и и переписать ид пакетов будет вам счастье
Планирую добавить в скрипт поддержку селф бафов и переписать под 2,7.

Nikci
30.03.2012, 07:58
Скрипт автоматизирует использование свитков и еды
для настойки скрипта необходимо снять все бафы и использовать команду .memon после того как все свитки банки будут использованы пишем .memoff
Для того чтоб очистить список используйте команду .memc
Все скрипт готов к использованию после окончания действия бафа свитки будут автоматически использоваться.
Возможные проблемы:
- Возможное изменение ид итема после сплита стопок с свитками в инвентаре после этого может не использоваться данный итем
Работает на 2,1-2,5 возможно скоро будет на 2,7
Для работы скрипта необходимо создать файл baf.txt в папке пакетхака

//by Alatair_Alentus
var
b,i,l,f:integer;
pak,np,name,filename,tp:string;
s,t:tstringlist;
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
//showmessage('check _stat');
b:=0;
t.clear;
for i:= 1 to readc(12) do
begin
t.add(inttostr(readh(18+b)));
b:=b+12;
end;
for i:=0 to s.count-1 do
begin
if t.indexof(s.names[i])=-1 then useitem(s.names[i]);
end;
end;

procedure useitem(idn:string);
begin
buf:=HStr('CB 57 68');
writed(StrToInt(s.values[idn]));
buf:=buf+HStr('00');
capture:=0;
SendToServer;
capture:=1;
buf:='';
idn:='';
//showmessage(capture);
end;

procedure mem(mems:string;write:byte);
var str:string;
begin
str:=mems+str;
if write=1 then
begin
s.add(str);
str:='';
end;
//showmessage(str);
end;

procedure cap(c:byte);
begin
capture:=c;
pck:='';
end;
begin
if FromClient and (pck[1]=HStr('b9')) then
begin
case reads(5) of
'.memon': cap(2);
'.memoff': cap(1);
'.memc': s.clear;
end;

end;

case capture of
0: ;
1: if FromServer and (pck[1]=HStr('4E')) then check;
2:
begin
if FromClient and (pck[1]=HStr('CB')) then mem('='+inttostr(readd(4)),0);
if FromServer and (pck[1]=HStr('4E')) then mem(IntToStr(readh(readc(12)*12+6)),1);
end;
end;
end.

Все спасибо за внимания

Увы, но скрипт не работает серв aion......t.ws

Список который создался по чатовым командам в файле baf.txt .

969
951
955
9918=278097318
9920=275677512
9919=279800203
9921=275090006
9958=275281238
9965=282095572
10021=280922191
10094=276747273

altairalentus
30.03.2012, 18:19
to Nikci вот моя новая тема под 2,7 перед использованием очистите список и наново запишите итемы.[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Nikci
31.03.2012, 08:35
to Nikci вот моя новая тема под 2,7 перед использованием очистите список и наново запишите итемы.[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Спасибо за ваш труд , но у нас версия клиента 2.5 , пыталась что то сама переписать значения из 2.5 скрипта в 2.7 скрипт , но увы в программировании я нубка :reddy: и многое мне не понятно . Если у вас найдется немного времени то не могли бы вы помочь мне с этой проблемой хоть чуть чуть разъяснить что к чему ??

Добавлено через 1 час 13 минут
Увы, но скрипт не работает серв aion......t.ws
Провела пару тестов , скрипт работает , просто мне самой нужно быть внимательней .

FrolPopov
30.09.2012, 12:01
На легенде, если свиток в откате, например заюзан на скорость, следующий, к примеру на каст атаки не юзается и вообще потом не включается.