Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

Подскажите где что не так !

-

Общение и обсуждение, архив Lineage 2

- Cобытия, информация, вопросы и ответы по Lineage 2

Ответ
 
Опции темы
Старый 15.01.2012, 12:23   #1
 Разведчик
Аватар для svyxw19
 
svyxw19 никому не известный тип
Регистрация: 08.01.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Подскажите где что не так !

Доброго времени суток уважаемые форумчане !
У меня есть такая проблема писать скрипты не умею нашел готовый авторства NLObP
Код:
//Автоматизация заточки предметов до необходимого уровня by NLObP
//version 0.7 от 20.07.2008г.
program Enchant;
{********************************************************************************
Возможности скрипта:
--------------------
0.1
+ Панель управления;
+ Затачиваем по очереди все предметы с ItemID пока не переломаем
  или не заточим, один предмет всегда остаётся;
0.2
+ исправлен выбор названий предметов из инвентаря;
+ небольшая правка кода;
0.3
+ Проверено на theAbyss (все предметы инвентаря чара видит);
+ исправлена ошибка кода выбора скроллов;
+ исправлена ошибка подсчета суммы предметов;
0.4
+ специально для Miler проверено на La2Titan (затачивал Mantikore Skin Shirt до +7);
+ исправлена процедура InventoryUpdate;
+ изменена логика затачивания;
+ заготовка покупки заточек/вещей;
0.5
+ проверено на L2Fantasy;
+ добавлена проверка, если заточка сбрасывается в 0 без поломки вещи;
+ добавлен код, если надо точить одну вещь (опционально);
0.6
+ изменил выборку ItemId;
0.7
+ исправлено смещение в CreateItemBase для С4, спасибо Mulder

====================================================================
Работа скрипта проверялась на локальном Интерлюда сервере,
для С4 не проверялась и поддерживаться далее не будет.
====================================================================

Необходимо затариться оружием, заточками и валерьянкой.
Name='BafOff'; //Вписать сюда имя чара
//установить константу в зависимости от типа игры (С4 или Интерлюд)
C4=true; //Interlude - true, C4 - true

Внимание!
Из комбобокса обязательно надо выбрать вещь, чтобы скрипт узнал
ID и количество, только потом ставить напротив галочку.
Галочки снимать не надо, если кончились заточки/вещи - можно сразу идти
покупать и продолжать заточку.

Скрипт распространяется как есть, и я не несу ответственности за то, что
ВЫ натворили у себя, его используя.

MyICQ 402988808
********************************************************************************}

//............................................
//Список констант
const
  Name='BafOff'; //Вписать сюда имя чара
  //установить константу в зависимости от типа игры (С4 или Интерлюд)
  C4=true; //Interlude - true, C4 - true
  //-------------------------
  max=116;     //количество слотов в инвентаре чара

//............................................
//Список переменных
var
  Item, scrl:integer;
  ScrollID, ScrollOID:integer;  //ScrollID скролла заточки
  ItemID,ItemOID:integer;      //ItemID затачиваемого предмета
  MaxEnchLvl:integer;         //уровень заточки который требуется достичь
  ItemBase:  array[1..4,1..max] of integer; //ItemOID, ItemID, Kol-vo, ItemLvl
  ready, add : boolean;
  timer : TTimer;
  ItemCount, CurEnchLvl: integer;
  SocialID : integer; // вспомогательная
  ItemsName, StringList : TStringList;  //названия предметов, имена продавцов
  FormMain : TForm; //Создаваемая форма
  Splitter1 : TSplitter;
  Splitter2 : TSplitter;
  Stats : TMemo;
  Msg : TMemo;
  Panel1 : TPanel;
  GroupBox2 : TGroupBox;
  Label2 : TLabel;
  Label4 : TLabel;
  Label12 : TLabel;
  Label13 : TLabel;
  CheckBoxItem : TCheckBox;
  ComboBoxItem : TComboBox;
  ButtonStartEnchant : TButton;
  ButtonStopEnchant : TButton;
  CheckBoxScroll : TCheckBox;
  ComboBoxScroll : TComboBox;
  EditItemVal : TEdit;
  EditScrollVal : TEdit;
  EditScrollOID : TEdit;
  EditItemOID : TEdit;
  Label1 : TLabel;
  Label3 : TLabel;
  Edit1 : TEdit;
  Edit2 : TEdit;
//............................................
//*************************************
//Обработчики событий для элементов управления на форме
//......................................
//CheckBoxItem
procedure CheckBoxItem_Click(Sender: TCheckBox);
//Event : OnClick
begin
  if CheckBoxItem.Checked
  then begin
    ItemOID:=ItemBase[1,ComboBoxItem.ItemIndex+1];
    ItemID:=ItemBase[2,ComboBoxItem.ItemIndex+1];
    //проверка
//    EditItemOID.Text:=Inttostr(ItemID);
//    EditItemVal.text:=inttostr(ItemOID);

    ComboBoxItem.Enabled:=false; //выключаем
  end else begin
    ItemID:=0;               //отмена
    ItemOID:=0;
    ComboBoxItem.Enabled:=true;  //включаем
    //Пакет RequestItemList
    buf:=hstr('0F');
    SendToServerEx(Name);
  end;
end;
//......................................
//......................................
//ComboBoxItem
procedure ComboBoxItem_Click(Sender: TComboBox);
//Event : OnClick
begin
    ItemOID:=ItemBase[1,ComboBoxItem.ItemIndex+1];
    ItemID:=ItemBase[2,ComboBoxItem.ItemIndex+1];
//    ItemID:=ExtractIDValues(ComboBoxItem.Items.Strings[ComboBoxItem.ItemIndex]);
    EditItemOID.Text:=Inttostr(ItemID);
    EditItemVal.text:=inttostr(sumitem(ItemID));
end;
//......................................
//......................................
//CheckBoxScroll
procedure CheckBoxScroll_Click(Sender: TCheckBox);
//Event : OnClick
begin
  if CheckBoxScroll.Checked
  then begin
    ScrollOID:=ItemBase[1,ComboBoxScroll.ItemIndex+1];
    ScrollID:=ItemBase[2,ComboBoxScroll.ItemIndex+1];
    //проверка
//    EditScrollOID.Text:=Inttostr(ScrollID);
//    EditScrollVal.text:=inttostr(ScrollOID);
    ComboBoxScroll.Enabled:=false; //выключаем
  end else begin
    ScrollID:=0;               //отмена
    ScrollOID:=0;
    ComboBoxScroll.Enabled:=true;  //включаем
    //Пакет RequestItemList
    buf:=hstr('0F');
    SendToServerEx(Name);
  end;
end;
//......................................
//......................................
//ComboBoxScroll
procedure ComboBoxScroll_Click(Sender: TComboBox);
//Event : OnClick
begin
    ScrollOID:=ItemBase[1,ComboBoxScroll.ItemIndex+1];
    ScrollID:=ItemBase[2,ComboBoxScroll.ItemIndex+1];
//    ScrollID:=ExtractIDValues(ComboBoxScroll.Items.Strings[ComboBoxScroll.ItemIndex]);
    EditScrollOID.Text:=Inttostr(ScrollID);
    EditScrollVal.text:=inttostr(sumitem(ScrollID));
end;
//......................................
//......................................
//ButtonStartEnchant
procedure ButtonStartEnchant_Click(Sender: TButton);
//Event : OnClick
begin
  CurEnchLvl:=0;
  Edit2.text:=inttostr(CurEnchLvl);
  msg.Lines.Add('Команда Старт!!!');
  timer.enabled:=true;
end;
//......................................
//......................................
//ButtonStopEnchant
procedure ButtonStopEnchant_Click(Sender: TButton);
//Event : OnClick
begin
  msg.Lines.Add('Команда Стоп!!!');
  timer.enabled:=false;
  ready:=false;
end;
//......................................
//......................................
procedure Edit1_Exit(Sender: TEdit);
//Event : OnExit
begin
//  MyHPID:=ExtractIDValues(ComboBoxHPotion.Items.Strings[ComboBoxHPotion.ItemIndex]);
//  EditHPotionVal.Text:=Inttostr(FindItem(MyHPID));
//  EditHPotionOID.text:=inttostr(ItemBase2[1,1]);
end;
//......................................
//*************************************
procedure Free_FormMain;
//Освобождаем ресурсы ...
begin
  TRY
    if FormMain<>NIL then begin
       FormMain.Free;
       FormMain:=NIL;
    end;
  FINALLY
  END;
end; //Free_FormMain
//========================
//========================
function Create_FormMain : TForm;
//Создаем форму и соотв. компоненты на ней ...
Var
  Yes : boolean;
begin
  Yes := FALSE;
  Result := TForm.Create(nil);

  TRY
    //------------------------
    //Свойства формы
    Result.Caption     := 'Enchant by NLObP v.0.7';
    Result.Left        := 397;
    Result.Top         := 233;
    Result.Width       := 581;
    Result.Height      := 205;
    Result.FormStyle   := fsNormal;
    Result.Position    := poDesigned;
    Result.BorderStyle := bsSizeable;
    Result.BorderWidth := 0;
    Result.WindowState := wsNormal;
    Result.Color       := clBtnFace;
    Result.Font.Name   := 'Tahoma';
    Result.Font.Size   := 8;
    Result.Font.Color  := clWindowText;
    Result.Font.CharSet:= 1;
    //------------------------
    //......................................
    //Splitter1
    Splitter1 := TSplitter.Create(Result);
    Splitter1.Parent := Result;
    Splitter1.Align := alBottom;
    Splitter1.Color := clBtnFace;
    Splitter1.Left    := 0;
    Splitter1.Top     := 103;
    Splitter1.Width   := 573;
    Splitter1.Height  := 3;
    Splitter1.Visible := TRUE;
    Splitter1.Tag     := 0;
    //......................................
    //......................................
    //Splitter2
    Splitter2 := TSplitter.Create(Result);
    Splitter2.Parent := Result;
    Splitter2.Align := alRight;
    Splitter2.Color := clBtnFace;
    Splitter2.Left    := 442;
    Splitter2.Top     := 0;
    Splitter2.Width   := 1;
    Splitter2.Height  := 103;
    Splitter2.Visible := TRUE;
    Splitter2.Tag     := 0;
    //......................................
    //......................................
    //Stats
    Stats := TMemo.Create(Result);
    Stats.Parent := Result;
    Stats.Left    := 443;
    Stats.Top     := 0;
    Stats.Width   := 130;
    Stats.Height  := 103;
    Stats.Visible := TRUE;
    Stats.Tag     := 0;
    Stats.Enabled  := TRUE;
    Stats.Hint     := '';
    Stats.ShowHint := FALSE;
    Stats.Font.Name  := 'Tahoma';
    Stats.Font.Size  := 8;
    Stats.Font.Color := clWindowText;
    Stats.Color         := clWindow;
    Stats.TabOrder      := 0;
    Stats.TabStop       := TRUE;
    Stats.Align         := alRight;
    Stats.WordWrap      := TRUE;
    Stats.Alignment     := taLeftJustify;
    Stats.WantTabs      := FALSE;
    Stats.WantReturns   := TRUE;
    Stats.HideSelection := TRUE;
    Stats.MaxLength     := 0;
    Stats.OEMConvert    := FALSE;
    Stats.ReadOnly      := FALSE;
    Stats.ScrollBars    := ssNone;
    //......................................
    //......................................
    //Msg
    Msg := TMemo.Create(Result);
    Msg.Parent := Result;
    Msg.Left    := 0;
    Msg.Top     := 106;
    Msg.Width   := 573;
    Msg.Height  := 65;
    Msg.Visible := TRUE;
    Msg.Tag     := 0;
    Msg.Enabled  := TRUE;
    Msg.Hint     := '';
    Msg.ShowHint := FALSE;
    Msg.Font.Name  := 'Tahoma';
    Msg.Font.Size  := 8;
    Msg.Font.Color := clWindowText;
    Msg.Color         := clWindow;
    Msg.TabOrder      := 1;
    Msg.TabStop       := TRUE;
    Msg.Align         := alBottom;
    Msg.WordWrap      := TRUE;
    Msg.Alignment     := taLeftJustify;
    Msg.WantTabs      := FALSE;
    Msg.WantReturns   := TRUE;
    Msg.HideSelection := TRUE;
    Msg.MaxLength     := 0;
    Msg.OEMConvert    := FALSE;
    Msg.ReadOnly      := FALSE;
    Msg.ScrollBars    := ssNone;
    //......................................
    //......................................
    //Panel1
    Panel1 := TPanel.Create(Result);
    Panel1.Parent := Result;
    Panel1.Left    := 0;
    Panel1.Top     := 0;
    Panel1.Width   := 442;
    Panel1.Height  := 103;
    Panel1.Visible := TRUE;
    Panel1.Tag     := 0;
    Panel1.Enabled  := TRUE;
    Panel1.Hint     := '';
    Panel1.ShowHint := FALSE;
    Panel1.Caption    := '';
    Panel1.Align      := alClient;
    Panel1.Color      := clBtnFace;
    Panel1.Font.Name  := 'Tahoma';
    Panel1.Font.Size  := 8;
    Panel1.Font.Color := clWindowText;
    Panel1.Font.CharSet := 1;
    Panel1.BevelWidth   := 1;
    Panel1.BorderWidth  := 0;
    Panel1.BevelInner   := bvNone;
    Panel1.BevelOuter   := bvRaised;
    Panel1.TabOrder     := 2;
    Panel1.TabStop      := FALSE;
    Panel1.AutoSize     := FALSE;
    //......................................
    //......................................
    //GroupBox2
    GroupBox2 := TGroupBox.Create(Result);
    GroupBox2.Parent := Panel1;
    GroupBox2.Left    := 1;
    GroupBox2.Top     := 1;
    GroupBox2.Width   := 440;
    GroupBox2.Height  := 101;
    GroupBox2.Visible := TRUE;
    GroupBox2.Tag     := 0;
    GroupBox2.Enabled  := TRUE;
    GroupBox2.Hint     := '';
    GroupBox2.ShowHint := FALSE;
    GroupBox2.Caption    := 'Настройки';
    GroupBox2.Align      := alClient;
    GroupBox2.Color      := clBtnFace;
    GroupBox2.Font.Name  := 'Tahoma';
    GroupBox2.Font.Size  := 8;
    GroupBox2.Font.Color := clWindowText;
    GroupBox2.Font.CharSet := 1;
    GroupBox2.TabOrder     := 0;
    GroupBox2.TabStop      := FALSE;
    //......................................
    //......................................
    //Label1
    Label1 := TLabel.Create(Result);
    Label1.Parent := GroupBox2;
    Label1.Left    := 10;
    Label1.Top     := 70;
    Label1.Width   := 58;
    Label1.Height  := 13;
    Label1.Visible := TRUE;
    Label1.Tag     := 0;
    Label1.Enabled  := TRUE;
    Label1.Hint     := '';
    Label1.ShowHint := FALSE;
    Label1.Caption     := 'Уровень Макс.:';
    Label1.Transparent := TRUE;
    Label1.WordWrap    := FALSE;
    Label1.Alignment   := taLeftJustify;
    Label1.Layout      := tlTop;
    Label1.AutoSize    := TRUE;
    Label1.Align       := alNone;
    Label1.Font.Name   := 'Tahoma';
    Label1.Font.Size   := 8;
    Label1.Font.Color  := clWindowText;
    Label1.Color       := clBtnFace;
    //......................................
    //......................................
    //Label1
    Label3 := TLabel.Create(Result);
    Label3.Parent := GroupBox2;
    Label3.Left    := 170;
    Label3.Top     := 70;
    Label3.Width   := 58;
    Label3.Height  := 13;
    Label3.Visible := TRUE;
    Label3.Tag     := 0;
    Label3.Enabled  := TRUE;
    Label3.Hint     := '';
    Label3.ShowHint := FALSE;
    Label3.Caption     := 'Мин.:';
    Label3.Transparent := TRUE;
    Label3.WordWrap    := FALSE;
    Label3.Alignment   := taLeftJustify;
    Label3.Layout      := tlTop;
    Label3.AutoSize    := TRUE;
    Label3.Align       := alNone;
    Label3.Font.Name   := 'Tahoma';
    Label3.Font.Size   := 8;
    Label3.Font.Color  := clWindowText;
    Label3.Color       := clBtnFace;
    //......................................
    //......................................
    //Edit1
    Edit1 := TEdit.Create(Result);
    Edit1.Parent := GroupBox2;
    Edit1.Left    := 90;
    Edit1.Top     := 67;
    Edit1.Width   := 60;
    Edit1.Height  := 21;
    Edit1.Visible := TRUE;
    Edit1.Tag     := 0;
    Edit1.Enabled  := TRUE;
    Edit1.Hint     := 'Введи желаемый уровень заточки';
    Edit1.ShowHint := TRUE;
    Edit1.Text       := '65535';
    Edit1.Font.Name  := 'Tahoma';
    Edit1.Font.Size  := 8;
    Edit1.Font.Color := clWindowText;
    Edit1.Color        := clWindow;
    Edit1.TabOrder     := 5;
    Edit1.TabStop      := TRUE;
    Edit1.ReadOnly     := FALSE;
    Edit1.MaxLength    := 0;
    Edit1.AutoSize     := TRUE;
    Edit1.OnExit     := @Edit1_Exit;
    //......................................
    //......................................
    //Edit2
    Edit2 := TEdit.Create(Result);
    Edit2.Parent := GroupBox2;
    Edit2.Left    := 199;
    Edit2.Top     := 67;
    Edit2.Width   := 60;
    Edit2.Height  := 21;
    Edit2.Visible := TRUE;
    Edit2.Tag     := 0;
    Edit2.Enabled  := TRUE;
    Edit2.Hint     := 'Какого уровня смогли достичь';
    Edit2.ShowHint := TRUE;
    Edit2.Text       := '0';
    Edit2.Font.Name  := 'Tahoma';
    Edit2.Font.Size  := 8;
    Edit2.Font.Color := clWindowText;
    Edit2.Color        := clWindow;
    Edit2.TabOrder     := 5;
    Edit2.TabStop      := FALSE;
    Edit2.ReadOnly     := TRUE;
    Edit2.MaxLength    := 0;
    Edit2.AutoSize     := TRUE;
    //......................................
    //......................................
    //Label2
    Label2 := TLabel.Create(Result);
    Label2.Parent := GroupBox2;
    Label2.Left    := 416;
    Label2.Top     := 19;
    Label2.Width   := 18;
    Label2.Height  := 13;
    Label2.Visible := TRUE;
    Label2.Tag     := 0;
    Label2.Enabled  := TRUE;
    Label2.Hint     := '';
    Label2.ShowHint := FALSE;
    Label2.Caption     := 'шт.';
    Label2.Transparent := TRUE;
    Label2.WordWrap    := FALSE;
    Label2.Alignment   := taLeftJustify;
    Label2.Layout      := tlTop;
    Label2.AutoSize    := TRUE;
    Label2.Align       := alNone;
    Label2.Font.Name   := 'Tahoma';
    Label2.Font.Size   := 8;
    Label2.Font.Color  := clWindowText;
    Label2.Color       := clBtnFace;
    //......................................
    //......................................
    //Label4
    Label4 := TLabel.Create(Result);
    Label4.Parent := GroupBox2;
    Label4.Left    := 416;
    Label4.Top     := 43;
    Label4.Width   := 18;
    Label4.Height  := 13;
    Label4.Visible := TRUE;
    Label4.Tag     := 0;
    Label4.Enabled  := TRUE;
    Label4.Hint     := '';
    Label4.ShowHint := FALSE;
    Label4.Caption     := 'шт.';
    Label4.Transparent := TRUE;
    Label4.WordWrap    := FALSE;
    Label4.Alignment   := taLeftJustify;
    Label4.Layout      := tlTop;
    Label4.AutoSize    := TRUE;
    Label4.Align       := alNone;
    Label4.Font.Name   := 'Tahoma';
    Label4.Font.Size   := 8;
    Label4.Font.Color  := clWindowText;
    Label4.Color       := clBtnFace;
    //......................................
    //......................................
    //Label12
    Label12 := TLabel.Create(Result);
    Label12.Parent := GroupBox2;
    Label12.Left    := 273;
    Label12.Top     := 3;
    Label12.Width   := 33;
    Label12.Height  := 13;
    Label12.Visible := TRUE;
    Label12.Tag     := 0;
    Label12.Enabled  := TRUE;
    Label12.Hint     := '';
    Label12.ShowHint := FALSE;
    Label12.Caption     := 'ItemID';
    Label12.Transparent := TRUE;
    Label12.WordWrap    := FALSE;
    Label12.Alignment   := taLeftJustify;
    Label12.Layout      := tlTop;
    Label12.AutoSize    := TRUE;
    Label12.Align       := alNone;
    Label12.Font.Name   := 'Tahoma';
    Label12.Font.Size   := 8;
    Label12.Font.Color  := clWindowText;
    Label12.Color       := clBtnFace;
    //......................................
    //......................................
    //Label13
    Label13 := TLabel.Create(Result);
    Label13.Parent := GroupBox2;
    Label13.Left    := 349;
    Label13.Top     := 3;
    Label13.Width   := 35;
    Label13.Height  := 13;
    Label13.Visible := TRUE;
    Label13.Tag     := 0;
    Label13.Enabled  := TRUE;
    Label13.Hint     := '';
    Label13.ShowHint := FALSE;
    Label13.Caption     := 'Кол-во';
    Label13.Transparent := TRUE;
    Label13.WordWrap    := FALSE;
    Label13.Alignment   := taLeftJustify;
    Label13.Layout      := tlTop;
    Label13.AutoSize    := TRUE;
    Label13.Align       := alNone;
    Label13.Font.Name   := 'Tahoma';
    Label13.Font.Size   := 8;
    Label13.Font.Color  := clWindowText;
    Label13.Color       := clBtnFace;
    //......................................
    //......................................
    //CheckBoxItem
    CheckBoxItem := TCheckBox.Create(Result);
    CheckBoxItem.Parent := GroupBox2;
    CheckBoxItem.Left    := 18;
    CheckBoxItem.Top     := 18;
    CheckBoxItem.Width   := 66;
    CheckBoxItem.Height  := 17;
    CheckBoxItem.Visible := TRUE;
    CheckBoxItem.Tag     := 0;
    CheckBoxItem.Enabled  := TRUE;
    CheckBoxItem.Hint     := 'Поставить галочку если выбрали предмет';
    CheckBoxItem.ShowHint := TRUE;
    CheckBoxItem.Caption    := 'Предмет';
    CheckBoxItem.Font.Name  := 'Tahoma';
    CheckBoxItem.Font.Size  := 8;
    CheckBoxItem.Font.Color := clWindowText;
    CheckBoxItem.Color       := clBtnFace;
    CheckBoxItem.TabOrder    := 0;
    CheckBoxItem.TabStop     := TRUE;
    CheckBoxItem.Checked     := FALSE;
    CheckBoxItem.AllowGrayed := FALSE;
    CheckBoxItem.State       := cbUnchecked;
    CheckBoxItem.OnClick     := @CheckBoxItem_Click;
    //......................................
    //......................................
    //ComboBoxItem
    ComboBoxItem := TComboBox.Create(Result);
    ComboBoxItem.Parent := GroupBox2;
    ComboBoxItem.Left    := 90;
    ComboBoxItem.Top     := 16;
    ComboBoxItem.Width   := 169;
    ComboBoxItem.Height  := 21;
    ComboBoxItem.Visible := TRUE;
    ComboBoxItem.Tag     := 0;
    ComboBoxItem.Enabled  := TRUE;
    ComboBoxItem.Hint     := 'Выбери из списка затачиваемый предмет';
    ComboBoxItem.ShowHint := TRUE;
    ComboBoxItem.Text       := 'ComboBoxItem';
    ComboBoxItem.Font.Name  := 'Tahoma';
    ComboBoxItem.Font.Size  := 8;
    ComboBoxItem.Font.Color := clWindowText;
    ComboBoxItem.Color          := clWindow;
    ComboBoxItem.TabOrder       := 1;
    ComboBoxItem.TabStop        := TRUE;
    ComboBoxItem.ItemIndex          := -1;
    ComboBoxItem.Sorted         := FALSE;
    ComboBoxItem.ItemHeight     := 13;
    ComboBoxItem.OnClick     := @ComboBoxItem_Click;
    //......................................
    //......................................
    //ButtonStartEnchant
    ButtonStartEnchant := TButton.Create(Result);
    ButtonStartEnchant.Parent := GroupBox2;
    ButtonStartEnchant.Left    := 265;
    ButtonStartEnchant.Top     := 67;
    ButtonStartEnchant.Width   := 75;
    ButtonStartEnchant.Height  := 25;
    ButtonStartEnchant.Visible := TRUE;
    ButtonStartEnchant.Tag     := 0;
    ButtonStartEnchant.Enabled  := TRUE;
    ButtonStartEnchant.Hint     := '';
    ButtonStartEnchant.ShowHint := FALSE;
    ButtonStartEnchant.Caption    := 'Start';
    ButtonStartEnchant.Font.Name  := 'Tahoma';
    ButtonStartEnchant.Font.Size  := 8;
    ButtonStartEnchant.Font.Color := clWindowText;
    ButtonStartEnchant.Font.CharSet := 1;
    ButtonStartEnchant.TabOrder     := 2;
    ButtonStartEnchant.TabStop      := TRUE;
    ButtonStartEnchant.Cancel       := FALSE;
    ButtonStartEnchant.ModalResult  := 0;
    ButtonStartEnchant.OnClick     := @ButtonStartEnchant_Click;
    //......................................
    //......................................
    //ButtonStopEnchant
    ButtonStopEnchant := TButton.Create(Result);
    ButtonStopEnchant.Parent := GroupBox2;
    ButtonStopEnchant.Left    := 341;
    ButtonStopEnchant.Top     := 67;
    ButtonStopEnchant.Width   := 75;
    ButtonStopEnchant.Height  := 25;
    ButtonStopEnchant.Visible := TRUE;
    ButtonStopEnchant.Tag     := 0;
    ButtonStopEnchant.Enabled  := TRUE;
    ButtonStopEnchant.Hint     := '';
    ButtonStopEnchant.ShowHint := FALSE;
    ButtonStopEnchant.Caption    := 'Stop';
    ButtonStopEnchant.Font.Name  := 'Tahoma';
    ButtonStopEnchant.Font.Size  := 8;
    ButtonStopEnchant.Font.Color := clWindowText;
    ButtonStopEnchant.Font.CharSet := 1;
    ButtonStopEnchant.TabOrder     := 3;
    ButtonStopEnchant.TabStop      := TRUE;
    ButtonStopEnchant.Cancel       := FALSE;
    ButtonStopEnchant.ModalResult  := 0;
    ButtonStopEnchant.OnClick     := @ButtonStopEnchant_Click;
    //......................................
    //......................................
    //CheckBoxScroll
    CheckBoxScroll := TCheckBox.Create(Result);
    CheckBoxScroll.Parent := GroupBox2;
    CheckBoxScroll.Left    := 18;
    CheckBoxScroll.Top     := 41;
    CheckBoxScroll.Width   := 66;
    CheckBoxScroll.Height  := 23;
    CheckBoxScroll.Visible := TRUE;
    CheckBoxScroll.Tag     := 0;
    CheckBoxScroll.Enabled  := TRUE;
    CheckBoxScroll.Hint     := 'Поставить галочку если выбрали скролл заточки';
    CheckBoxScroll.ShowHint := TRUE;
    CheckBoxScroll.Caption    := 'Заточка';
    CheckBoxScroll.Font.Name  := 'Tahoma';
    CheckBoxScroll.Font.Size  := 8;
    CheckBoxScroll.Font.Color := clWindowText;
    CheckBoxScroll.Color       := clBtnFace;
    CheckBoxScroll.TabOrder    := 4;
    CheckBoxScroll.TabStop     := TRUE;
    CheckBoxScroll.Checked     := FALSE;
    CheckBoxScroll.AllowGrayed := FALSE;
    CheckBoxScroll.State       := cbUnchecked;
    CheckBoxScroll.OnClick     := @CheckBoxScroll_Click;
    //......................................
    //......................................
    //ComboBoxScroll
    ComboBoxScroll := TComboBox.Create(Result);
    ComboBoxScroll.Parent := GroupBox2;
    ComboBoxScroll.Left    := 90;
    ComboBoxScroll.Top     := 40;
    ComboBoxScroll.Width   := 169;
    ComboBoxScroll.Height  := 21;
    ComboBoxScroll.Visible := TRUE;
    ComboBoxScroll.Tag     := 0;
    ComboBoxScroll.Enabled  := TRUE;
    ComboBoxScroll.Hint     := 'Выбери из списка скролл заточки';
    ComboBoxScroll.ShowHint := TRUE;
    ComboBoxScroll.Text       := 'ComboBoxScroll';
    ComboBoxScroll.Font.Name  := 'Tahoma';
    ComboBoxScroll.Font.Size  := 8;
    ComboBoxScroll.Font.Color := clWindowText;
    ComboBoxScroll.Color          := clWindow;
    ComboBoxScroll.TabOrder       := 5;
    ComboBoxScroll.TabStop        := TRUE;
    ComboBoxScroll.ItemIndex          := -1;
    ComboBoxScroll.Sorted         := FALSE;
    ComboBoxScroll.ItemHeight     := 13;
    ComboBoxScroll.OnClick     := @ComboBoxScroll_Click;
    //......................................
    //......................................
    //EditItemVal
    EditItemVal := TEdit.Create(Result);
    EditItemVal.Parent := GroupBox2;
    EditItemVal.Left    := 341;
    EditItemVal.Top     := 16;
    EditItemVal.Width   := 72;
    EditItemVal.Height  := 21;
    EditItemVal.Visible := TRUE;
    EditItemVal.Tag     := 0;
    EditItemVal.Enabled  := TRUE;
    EditItemVal.Hint     := '';
    EditItemVal.ShowHint := FALSE;
    EditItemVal.Text       := '0';
    EditItemVal.Font.Name  := 'Tahoma';
    EditItemVal.Font.Size  := 8;
    EditItemVal.Font.Color := clWindowText;
    EditItemVal.Color        := clWindow;
    EditItemVal.TabOrder     := 6;
    EditItemVal.TabStop      := TRUE;
    EditItemVal.ReadOnly     := TRUE;
    EditItemVal.MaxLength    := 0;
    EditItemVal.AutoSize     := TRUE;
    //......................................
    //......................................
    //EditScrollVal
    EditScrollVal := TEdit.Create(Result);
    EditScrollVal.Parent := GroupBox2;
    EditScrollVal.Left    := 341;
    EditScrollVal.Top     := 40;
    EditScrollVal.Width   := 72;
    EditScrollVal.Height  := 21;
    EditScrollVal.Visible := TRUE;
    EditScrollVal.Tag     := 0;
    EditScrollVal.Enabled  := TRUE;
    EditScrollVal.Hint     := '';
    EditScrollVal.ShowHint := FALSE;
    EditScrollVal.Text       := '0';
    EditScrollVal.Font.Name  := 'Tahoma';
    EditScrollVal.Font.Size  := 8;
    EditScrollVal.Font.Color := clWindowText;
    EditScrollVal.Color        := clWindow;
    EditScrollVal.TabOrder     := 7;
    EditScrollVal.TabStop      := TRUE;
    EditScrollVal.ReadOnly     := TRUE;
    EditScrollVal.MaxLength    := 0;
    EditScrollVal.AutoSize     := TRUE;
    //......................................
    //......................................
    //EditScrollOID
    EditScrollOID := TEdit.Create(Result);
    EditScrollOID.Parent := GroupBox2;
    EditScrollOID.Left    := 263;
    EditScrollOID.Top     := 40;
    EditScrollOID.Width   := 72;
    EditScrollOID.Height  := 21;
    EditScrollOID.Visible := TRUE;
    EditScrollOID.Tag     := 0;
    EditScrollOID.Enabled  := TRUE;
    EditScrollOID.Hint     := '';
    EditScrollOID.ShowHint := FALSE;
    EditScrollOID.Text       := '0';
    EditScrollOID.Font.Name  := 'Tahoma';
    EditScrollOID.Font.Size  := 8;
    EditScrollOID.Font.Color := clWindowText;
    EditScrollOID.Color        := clWindow;
    EditScrollOID.TabOrder     := 8;
    EditScrollOID.TabStop      := TRUE;
    EditScrollOID.ReadOnly     := TRUE;
    EditScrollOID.MaxLength    := 0;
    EditScrollOID.AutoSize     := TRUE;
    //......................................
    //......................................
    //EditItemOID
    EditItemOID := TEdit.Create(Result);
    EditItemOID.Parent := GroupBox2;
    EditItemOID.Left    := 264;
    EditItemOID.Top     := 16;
    EditItemOID.Width   := 72;
    EditItemOID.Height  := 21;
    EditItemOID.Visible := TRUE;
    EditItemOID.Tag     := 0;
    EditItemOID.Enabled  := TRUE;
    EditItemOID.Hint     := '';
    EditItemOID.ShowHint := FALSE;
    EditItemOID.Text       := '0';
    EditItemOID.Font.Name  := 'Tahoma';
    EditItemOID.Font.Size  := 8;
    EditItemOID.Font.Color := clWindowText;
    EditItemOID.Color        := clWindow;
    EditItemOID.TabOrder     := 9;
    EditItemOID.TabStop      := TRUE;
    EditItemOID.ReadOnly     := TRUE;
    EditItemOID.MaxLength    := 0;
    EditItemOID.AutoSize     := TRUE;
    //......................................
    Yes := TRUE;
  FINALLY
    if not Yes then begin
       //Освобождаем ресурсы, если неудачно ...
       if Result<>NIL then begin
          Result.Free;
          Result:=NIL;
       end;
    end;
  END;
  msg.Lines.Add('Автоматизация заточки by NLObP!');
  Result.Show;
end; //Create_FormMain
//========================
//========================
procedure Init; //Вызывается при включении скрипта
var
  i:integer;
begin
  FormMain:=Create_FormMain;
  //Enchant:=false;
  CurEnchLvl:=0;
  timer:=TTimer.Create(nil);
  timer.OnTimer:=@OnTimer;
  timer.enabled:=false;
  timer.interval:=1000; //время задержки
  ready:=false;
  add:=false;
  //Пакет RequestItemList
  buf:=hstr('0F');
  SendToServerEx(Name);
  StringList:=TStringList.Create;
  ItemsName:=TStringList.Create;
  try
    ItemsName.LoadFromFile('itemsid.ini');
  except
    msg.Lines.Add('itemsid.ini не найден!');
    exit;
  end;
end;
//......................................
//******************************************************************************
procedure Free; //Вызывается при выключении скрипта
begin
//  ItemBase:=nil; //нельзя так делать с массивом
  timer.Free;
  StringList.Clear;
  ItemsName.Clear;
  //достаточно освободить форму
  Free_FormMain;
end;
//......................................
//******************************************************************************
procedure Say(msg:string);
begin
  buf:=hstr('4A 00 00 00 00');
  WriteD(2);
  WriteS(Name);
  WriteS(msg);
  SendToClientEx(Name);
end;
//......................................
//***************************************************************
procedure CreateItemBase; //пакет 1B, Создает базу ObjectID по ItemID
//1B=ItemListPacket:w(window)w(ListCount)w(itemType1)h(ObjectID)i(ItemID)d(count)w(itemType2)w(CustType1)w(isEquipped)d(BodyPart)w(EnchantLevel)w(CustType2)d(Augment)d(--)
var
  i, j, ListCount: integer;
begin
  for i:=1 to max do begin
    //очищаем масив
    ItemBase[1,i]:=0;     //OID
    ItemBase[2,i]:=0;    //ID
    ItemBase[3,i]:=0;   //kol-vo
    ItemBase[4,i]:=0;  //lvl
  end;
  j:=4; //смещение для ListCount
  ListCount:=ReadH(j); //количество итемов не должно превышать max!
  //if ListCount>maxitems then msg.Lines.Add('Внимание! Не все вещи влезли в массив. ListCount>Max='+IntToStr(ListCount)+'/'+IntToStr(maxitems));
  j:=8; //смещение для ObjectID
  //Пробегаем по Инвентарю и сохраняем ObjectID соответствующие необходимым ItemID
  for i:=1 to ListCount do begin
    itemBase[1,i]:=ReadD(j);    //OID
    itemBase[2,i]:=ReadD(j);   //ItemID
    itemBase[3,i]:=ReadD(j);  //кол-во
    inc(j,10);
    itemBase[4,i]:=ReadH(j);//EnchantLevel
//    msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
    if C4 then inc(j,12) else inc(j,4);
    //msg.Lines.Add('j='+inttostr(j));
  end;
  //вносим изменения в чекбоксы
  StringList.Clear;
  try
    for i:=1 to ListCount do begin
      try
        //StringList.Add(ItemsName[ItemBase[2,i]-1]); //записываем название вещей из инвентаря
        StringList.Add(ItemsName.Values[IntToStr(ItemBase[2,i])]); //записываем название вещей из инвентаря
      except;
        msg.Lines.Add('Пропускаем! Нет ItemID='+inttostr(ItemBase[2,i])+' в itemsid.ini');
      end
    end;
  except;
    msg.Lines.Add('ошибка в CreateItemBase->StringList.Add()');
    msg.Lines.Add(inttostr(ItemBase[2,i]));
    exit;
  end;
  if not CheckBoxItem.Checked then begin //наполняем комбобокс
    with ComboBoxItem do
    begin
      Items.Clear;
      Items.Assign(StringList);
      ItemIndex:=0;
    end;
  end;
  if not CheckBoxScroll.Checked then begin //наполняем комбобокс
    with ComboBoxScroll do
    begin
      Items.Clear;
      Items.Assign(StringList);
      ItemIndex:=0;
    end;
  end;
end;
//......................................
//******************************************************************************
//27=InventoryUpdate:w(count)w(1add2mod3remove)w(itemType1)d(ObjectID)i(ItemId)d(Count)w(itemType2)w(cusType1)w(isEquipped)d(BodyPart)w(EnchantLevel)w(cusType2)-(8)
procedure InventoryUpdate; //пакет 27, обновляет базу ObjectID по ItemID
var
  i, ii, j, ItemOID, ItemID, ItemCount, ListCount, UpdType, Itemlvl: integer;
  add : boolean;
begin
  add:=false;
  ListCount:=ReadH(2); //количество итемов
  //Пробегаем по Инвентарю и сохраняем пары ObjectID - lvl
  j:=4; //смещение для действия с предметом 1-добавлен 2-изменен 3-удален
  for ii:=1 to ListCount do begin
    UpdType:=ReadH(j);
    //inc(j,2);
    ReadH(j);               //ItemType1
    ItemOID:=ReadD(j);     //ObjectID
    ItemID:=ReadD(j);     //ItemID
    itemCount:=ReadD(j); //кол-во
    inc(j,10);
    Itemlvl:=ReadH(j);
    case UpdType of
      //добавлен
      1: begin
         for i:=1 to max do begin
           if (ItemBase[1,i]=0) and (add=false) then begin
             ItemBase[1,i]:=ItemOID;
             ItemBase[2,i]:=ItemID;
             ItemBase[3,i]:=ItemCount;
             ItemBase[4,i]:=Itemlvl;
             msg.Lines.Add('Добавили предмет!');
             msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
             add:=true;
           end;
         end;
      end;
      //изменен
      2: begin
         for i:=1 to max do begin
           if ItemBase[1,i]=ItemOID then begin
             ItemBase[3,i]:=ItemCount;
             ItemBase[4,i]:=Itemlvl;
             msg.Lines.Add('Изменяем параметры предмета!');
             msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
           end;
         end;
      end;
      //удален
      3: begin
         for i:=1 to max do begin
           if ItemBase[1,i]=ItemOID then begin
             msg.Lines.Add('Удаляем предмет!');
             msg.Lines.Add('i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
             ItemBase[1,i]:=0;
             ItemBase[2,i]:=0;
             ItemBase[3,i]:=0;
             ItemBase[4,i]:=0;
           end;
         end;
      end;
    end;
    if C4 then inc(j,10) else inc(j,2);
    //msg.Lines.Add('j='+inttostr(j));
  end;
end;
//......................................
//******************************************************************************
//находим в инвентаре предмет с ItemID и возвращаем его ObjectID
function GetItem(item:integer; lvl:integer) : integer;
var
  i : integer;
begin
  for i:=1 to max do begin
    //находим подходящий предмет по ItemID
    if (ItemBase[2,i]=item) and (ItemBase[4,i]=lvl) then begin
      //если нашли, то возвращаем ObjectID предмета
      result:=ItemBase[1,i]; // itemOID
      ItemCount:=ItemBase[3,i];
      //Itemlvl:=ItemBase[4,i];
      //msg.Lines.Add('<item='+inttostr(item)+' lvl='+inttostr(lvl)+'> i='+inttostr(i)+' ItemOID='+IntToStr(ItemBase[1,i])+' ItemID='+IntToStr(ItemBase[2,i])+' ItemKol='+IntToStr(ItemBase[3,i])+' ItemLVL='+IntToStr(ItemBase[4,i]));
      exit;
    end;
  end;
  //ничего не нашли
  result:=0;
end;
//......................................
//******************************************************************************
procedure UseItem(ObjectID: integer);
begin
  buf:=#$14;
  WriteD(ObjectID);
  WriteD(0);
  SendToServerEx(Name);
end;
//......................................
//******************************************************************************
function SumItem(Item: integer):integer;
var
  sum, i : integer;
begin
  result:=0;
  //находим подходящий предмет по ItemID
  for i:=1 to max do begin
    if (ItemBase[2,i]=item) then begin
//      msg.Lines.Add('Нашли предмет ItemOID='+inttostr(ItemBase[1,i])+' ItemID='+inttostr(ItemBase[2,i])+' ItemCol='+inttostr(ItemBase[3,i])+' EnchantLvl='+inttostr(ItemBase[4,i]));
//      msg.Lines.Add('i='+inttostr(i));
      result:=result+ItemBase[3,i];
      //inc(result);
    end;
  end;
end;
//......................................
//******************************************************************************
procedure RequestEnchantItem(ObjectID: integer);
begin
  buf:=#$58;
  WriteD(ObjectID);
  SendToServerEx(Name);
  //*********** использовать чит с петом ************************
{  buf:=#$8B;
  WriteD(ObjectID);
  writed(1);
  SendToServerEx(Name);
}  //***********
end;
//......................................
{//***************************************************************
function ExtractIDValues(sData: string): integer;
var
  s: string;
  i,j: integer;
begin
  i:=0;
  s:=sData;
  i:=pos('=',s);
  if i>=0 then
    s:=copy(s,1,i-1);
  try
    result:=strtoint(s);
  except
    result:=0;
  end;
end;
//............................................}
//******************************************************************************
procedure OnTimer(Sender: TObject);
begin
  EditItemVal.text:=inttostr(sumitem(ItemID));
  EditScrollVal.text:=inttostr(sumitem(ScrollID));
  if (CurEnchLvl>=strtoint(Edit1.Text)) then begin
    msg.Lines.Add('Нечего точить! Прервано!');
    timer.enabled:=false;
    exit;
  end;
  if (sumitem(ItemID)<=1) then begin
//  if (sumitem(ItemID)<=0) then begin //если надо точить одну вещь
    msg.Lines.Add('Прервано!');
    timer.enabled:=false;
    exit;
  end;
  ScrollOID:=GetItem(ScrollID,0);
  if ScrollOID=0 then begin
    msg.Lines.Add('Нет заточки! Прервано!');
    timer.enabled:=false;
    exit;
  end;
  UseItem(ScrollOID);
  msg.Lines.Add('Задействовали скролл ScrollID='+IntToStr(scrollID)+' ScrollOID='+IntToStr(ScrollOID));
  ready:=true; //готовы затачивать
//    delay(1000);
//    RequestEnchantItem(Item);
//    delay(1000);
    //************************************************
//    msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(Item));
//  end;
end;
//......................................
//***************************************************************
// Вся торговля здесь!!!
//***************************************************************
{procedure OnTrade1(Sender: TObject);
begin
  case trade of
    //-------------------------------------------------
    //покупаем у Misc Trader  из массива TradeBuyItem1
    //-------------------------------------------------
    100: begin
      if ReadyToBuy then exit; //если еще купили предыдущую вещь, то выходим сразу
      //мы у фишермана, покупаем крючки
      if FishermanOID=0 then begin
        Trade1.enabled:=false; //останавливаем торговлю
        msg.Lines.Add('Не готовы к торговле, нет OID фишермана! Требуется отбежать подальше и вернуться.');
        exit; //выходим
      end;
      if TradeCount=TradeBuyItemCount then begin //проверка на выход из массива
        trade:=400;
        msg.Lines.Add('Всё купили!');
        msg.Lines.Add('Переход к обмену...');
        TradeCount:=0; //начнем сначала массива
      end else begin
        if FindItem(TradeBuyItem[TradeCount])<strtoint(EditLure.text) then begin
          TargetAttacker(FishermanOID); //фишермана в таргет
          msg.Lines.Add('Готовы купить:'+inttostr(TradeBuyItem[TradeCount]));
          ReadyToBuy:=true; //готовы продавать
          NeedBuy:=strtoint(EditLure.text)-colvoitm2; //докупаем до 50
          msg.Lines.Add('Требуется докупит крючков:'+inttostr(NeedBuy));
        end else msg.Lines.Add('Не надо покупать, уже есть:'+inttostr(colvoitm2));
        Trd:=TradeCount;
        inc(TradeCount);
        msg.Lines.Add('TradeCount/TradeBuyItemCount:'+inttostr(TradeCount)+'/'+inttostr(TradeBuyItemCount-1));
      end;
    //-------------------------------------------------
    //покупаем у Armor Trader  из массива TradeBuyItem2
    //-------------------------------------------------
    200: begin
      if ReadyToBuy then exit; //если еще купили предыдущую вещь, то выходим сразу
      //мы у фишермана, покупаем крючки
      if FishermanOID=0 then begin
        Trade1.enabled:=false; //останавливаем торговлю
        msg.Lines.Add('Не готовы к торговле, нет OID фишермана! Требуется отбежать подальше и вернуться.');
        exit; //выходим
      end;
      if TradeCount=TradeBuyItemCount then begin //проверка на выход из массива
        trade:=400;
        msg.Lines.Add('Всё купили!');
        msg.Lines.Add('Переход к обмену...');
        TradeCount:=0; //начнем сначала массива
      end else begin
        if FindItem(TradeBuyItem[TradeCount])<strtoint(EditLure.text) then begin
          TargetAttacker(FishermanOID); //фишермана в таргет
          msg.Lines.Add('Готовы купить:'+inttostr(TradeBuyItem[TradeCount]));
          ReadyToBuy:=true; //готовы продавать
          NeedBuy:=strtoint(EditLure.text)-colvoitm2; //докупаем до 50
          msg.Lines.Add('Требуется докупит крючков:'+inttostr(NeedBuy));
        end else msg.Lines.Add('Не надо покупать, уже есть:'+inttostr(colvoitm2));
        Trd:=TradeCount;
        inc(TradeCount);
        msg.Lines.Add('TradeCount/TradeBuyItemCount:'+inttostr(TradeCount)+'/'+inttostr(TradeBuyItemCount-1));
      end;
    end;
  end;
end;
}//......................................
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
  //****************************************************************************
  //не обрабатываем пустые пакеты
  if pck='' then exit;
  //****************************************************************************
  //покупка состоит из следующих шагов:
  //1. таргет  на продавце, пауза, снова таргет c04=Action, c04=Action
  //2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
  //3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)
  //4. приходит s11=BuyList:d(Money)h(ListID)w(ListCount)w(ItemType1)h(ObjectID)i(ItemID)d(maxcnt)w(ItemType2)w(h)d(ItemBodyPart)
  //5. FindItem(ID) найдем OID, Count нужной вещи по ID
  //6. шлем c1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d(Count)
  //****************************************************************************
{  if ReadyToBuy and (FishermanOID<>0) then begin
    if (ConnectName=Name) and FromServer then begin
      case pck[1] of
        //после того как мы взяли в таргет продавца приходит этот пакет
        //s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)
        #$0F: begin
          msg.Lines.Add('S>Пакет NpcHtmlMessage #$0F');
          if ReadD(2)=FishermanOID then begin
            //шлем запрос выбора пункта - продажа
            //c21=RequestBypassToServer:s(Cmd)
            delay(1000);
            RequestByPassToServer(getbuylist);
            msg.Lines.Add('C>Пакет RequestBypassToServer #$21 (sell)');
          end;
        end;
        //после выбора пункта - продажа, приходит этот пакет
        //s11=BuyList:d(Money)h(ListID)w(ListCount)w(ItemType1)h(ObjectID)i(ItemID)d(maxcnt)w(ItemType2)w(h)d(ItemBodyPart)
        #$11: begin
          msg.Lines.Add('S>Пакет BuyList #$11');
          ListID:=ReadD(6); //запоминаем, он все время разный
          msg.Lines.Add('ListID='+inttostr(ListID));
          //шлем запрос на продажу
          //1F=RequestBuyItem:h(ListID)d(BuyCount)i(ItemID)d(Count)
          msg.Lines.Add('C>Пакет RequestBuyItem #$1F');
          //продадим первый из списка
          msg.Lines.Add('Item: ID:'+IntToStr(TradeBuyItem[Trd])+' Count:'+IntToStr(NeedBuy));
          delay(1000);
          RequestBuyItem(TradeBuyItem[Trd],NeedBuy);
          ReadyToBuy:=false;
        end;
      end;
    end;
  end;
}  //......................................
  //****************************************************************************
  if FromServer then
  case pck[1] of
     //......................................
    //Пакет ItemList
    #$1B: CreateItemBase; //создание базы предметов
     //......................................
    //если удалили предметы, стираем в базе предметов пары ObjectID - ItemID
    #$27: InventoryUpdate; //Обновление базы
     //......................................
    //Пакет ChooseInventory
    #$6F: if ready then begin //and (readd(2)=itemid)
      //ищем подходящий предмет для заточки
      timer.enabled:=false; //отключаем пока не найдем предмет для заточки
      repeat
        ItemOID:=GetItem(ItemID,CurEnchLvl);
        if ItemOID=0 then begin
          inc(CurEnchLvl);
          Edit2.text:=inttostr(CurEnchLvl);
        end;
      until ItemOID<>0;
      //************************************************
      msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID));
      RequestEnchantItem(ItemOID);
      ready:=false;
      timer.enabled:=true; //пока в тесте отключаем (вкл. после заточки предмета)
    end;
    #$81: if readd(2)=0 then begin
          CurEnchLvl:=0; //начнем с начала
    end;
  end;
end.
Всё что выделенно красным изменялось мной, но есть такая проблема при включении скрипта ошибок не выдает, открывается комбо бокс и тут начинается то что и исправить не могу так как не умею, шб он не видит, драконик лук он видит но либо кол-во 2 шту либо 1, с точками так же либо видит 10 либо 6 либо 4.
Прошу Вас помочь мне с этой проблемой, или подскажите где и то поменять. Сервер hellsing-world.ru ; хроники С4 если это Вам понадобится.
Заранее Всем огромное спасибо !

Последний раз редактировалось svyxw19; 15.01.2012 в 12:27.
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Подсказка] Подскажите.... oD!No4k@ Общение и обсуждение Perfect World 12 17.08.2011 20:00
подскажите. БровЪ Общение и обсуждение Aion 4 25.01.2011 18:25
[Помогите!] подскажите spiker93 Вопросы и ответы: RF Online 0 21.01.2011 18:28

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 17:35.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net