сделал чтение и составление пакетов в основной программе
а посылку в таймере
0F в Init
выполняется скрипт 1 раз (ну или еще пару раз, если в игре понажимать таб)
скорее всего я не понимаю механики phx'а
а именно - какой пакет обрабатывается сйчас? - который пришел последним к моменту начала скрипта или последний пришедший вообще и т.д.
как пропустить пакет? мне вообще нужно видеть только 1B от сервера
зачем нужен инвенториапдейт - он показывает только изменение адены
delphi Код:
//////////////////////////////////////////////////////////////////////
// Продавалка v 1.1 от Hworang ///////////////////////////////////////
// на основе скриптов от Qak /////////////////////////////////////////
// CoderX.ru /////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Настроена для сервера l2mw.ru /////////////////////////////////////
// создайте чара и почистите рюкзак //////////////////////////////////
// стартовые условия - 100kk и 1 голд бар и болше ничего (2/200) /////
// впишите свой ник в соотв. поле (в скрипте) ////////////////////////
// подойдите к ГМшопу и возьмите его в таргет ////////////////////////
// запускайте скрипт и радуйтесь, видя как адена льётся в рюкзак))) //
// все изменения - на свой страх и риск //////////////////////////////
// за последствия работы скрипта автор ответственности не несет :D ///
//////////////////////////////////////////////////////////////////////
var i,c,g:integer;
gg,incomeA,incomeG:integer = 0;
s,sendS,sendB,sendC,sendP:string;
Main : TForm;
Timer : TTimer;
Button : TButton;
Edit,Edit1,Edit2,Edit3,Edit4: TEdit;
Start,seS,seB,seC,seP: Boolean = False;
e : Boolean;
Pos_i : Integer;
myDate,work : TDateTime;
myHour, myMin, mySec, myMilli : Word;
const nik = 'LooksThatKill'; // Сюда вписать имя чара
it = 195; // скрипт покупает 195 итемов - можете править этот параметр [1..198]
x = 1680; // введите разрешение вашего монитора
y = 1050; // иначе окошко с информацией потеряется
tit = 300;// задержка // если поставить меньше - адена пойдет быстрее, но будет лагать
procedure Init;
begin
e:=true;
work:=Time;
g:=1;
buf:=HStr('0F ');
SendToServerEx(nik);
Pos_i:=1;
//формочка
Main := TForm.Create(nil);
Main.Caption := 'Продавалка v 1.1';
Main.BorderStyle := bsSizeable;
Main.Position := poDesigned;
Main.Left :=x-400;
Main.Top :=y-200;
Main.Width :=300;
Main.Height :=110;
Edit := TEdit.Create(Main);
Edit.Parent := Main;
Edit.Left := 90;
Edit.Top := 10;
Edit.Width := 114;
Edit1 := TEdit.Create(Main);
Edit1.Parent := Main;
Edit1.Left := 214;
Edit1.Top := 10;
Edit1.Width := 62;
Edit2 := TEdit.Create(Main);
Edit2.Parent := Main;
Edit2.Left := 214;
Edit2.Top := 40;
Edit2.Width := 62;
Edit3 := TEdit.Create(Main);
Edit3.Parent := Main;
Edit3.Left := 90;
Edit3.Top := 40;
Edit3.Width := 114;
Edit4 := TEdit.Create(Main);
Edit4.Parent := Main;
Edit4.Left := 10;
Edit4.Top := 40;
Edit4.Width := 74;
//таймер
Timer := TTimer.Create(Main);
Timer.Interval := tit;
Timer.Enabled := False;
Timer.onTimer := @TimerTimer;
Button := TButton.Create(Main);
Button.Parent := Main;
Button.Caption := 'Старт';
Button.Left := 10;
Button.Top := 10;
Button.onClick := @ButtonClick;
Main.Show;
end;
procedure Free;
begin
Edit.Free;
Edit1.Free;
Edit2.Free;
Edit3.Free;
Edit4.Free;
Timer.Free;
Button.Free;
Main.Free;
end;
//обработчик таймера
procedure TimerTimer(Sender : TTimer);
var i,a:integer;
begin
//inc(g);
//if (g mod 3 = 0) then // запрос на рюкзак - через раз, иначе спамим сервер и вылетает ошибка
//begin
// buf:=HStr('0F ');
// SendToServerEx(nik);
//end;
myDate := Time;
DecodeTime(myDate, myHour, myMin, mySec, myMilli);
Edit4.Text:='Time '+TimeToStr(myDate);
Edit3.Text:='Work '+(TimeToStr(myDate-work));
Edit2.Text:='Inc '+IntToStr(gg-incomeG);
if seb then
begin
buf:=sendb;
SendToServerEx(nik);
seb:=false;
end;
if ses then
begin
buf:=sends;
SendToServerEx(nik);
ses:=false;
end;
if sec then
begin
buf:=sendc;
SendToServerEx(nik);
sec:=false;
end;
if sep then
begin
buf:=sendp;
SendToServerEx(nik);
sep:=false;
end;
end;
//запуск
procedure ButtonClick(Sender : TButton);
begin
Start := Not (Start);
Timer.Enabled := Start;
If Start
then Button.Caption:='Стоп'
else Button.Caption:='Старт';
end;