Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.01.2009, 23:36   #1
Новичок
 
Регистрация: 14.01.2009
Сообщений: 3
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
GANsss пока неопределено
По умолчанию Помогите разобраться со скриптом

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

//............................................
//Список переменных
var
  
Itemscrl:integer;
  
ScrollIDScrollOID:integer;  //ScrollID скролла заточки
  
ItemID,ItemOID:integer;      //ItemID затачиваемого предмета
  
MaxEnchLvl:integer;         //уровень заточки который требуется достичь
  
ItemBase:  array[1..4,1..maxof integer//ItemOID, ItemID, Kol-vo, ItemLvl
  
readyadd boolean;
  
timer TTimer;
  
ItemCountCurEnchLvlinteger;
  
SocialID integer// вспомогательная
  
ItemsNameStringList 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(SenderTCheckBox);
//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(SenderTComboBox);
//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(SenderTCheckBox);
//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(SenderTComboBox);
//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(SenderTButton);
//Event : OnClick
begin
  CurEnchLvl
:=0;
  
Edit2.text:=inttostr(CurEnchLvl);
  
msg.Lines.Add('Команда Старт!!!');
  
timer.enabled:=true;
end;
//......................................
//......................................
//ButtonStopEnchant
procedure ButtonStopEnchant_Click(SenderTButton);
//Event : OnClick
begin
  msg
.Lines.Add('Команда Стоп!!!');
  
timer.enabled:=false;
  
ready:=false;
end;
//......................................
//......................................
procedure Edit1_Exit(SenderTEdit);
//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.6';
    
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:=5000//время задержки
  
ready:=false;
  
add:=false;
  
//Пакет RequestItemList
  
buf:=hstr('14');
  
SendToServer;
  
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);
  
SendToClient;
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
  
ijListCountinteger;
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
//-------Изменен формат пакета в камаеле
   
ReadD(j);
//---------------------------------
  
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 
interlude then inc(j,44) else inc(j,8); // так же изменены смещения в связи с добавлением новых свойств итемов
    
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
  
iiijItemOIDItemIDItemCountListCountUpdTypeItemlvlinteger;
  
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
    
Readd(j);
    
itemCount:=ReadD(j); //кол-во
    
inc(j,10);
    
Itemlvl:=ReadH(j);
    case 
UpdType of
      
//добавлен
      
1begin
         
for i:=1 to max do begin
           
if (ItemBase[1,i]=0) and (add=falsethen 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;
      
//изменен
      
2begin
         
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;
      
//удален
      
3begin
         
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 
interlude then inc(j,10) else inc(j,2);   //для С4 неправильно?
    //msg.Lines.Add('j='+inttostr(j));
  
end;
end;
//......................................
//******************************************************************************
//находим в инвентаре предмет с ItemID и возвращаем его ObjectID
function GetItem(item:integerlvl:integer) : integer;
var
  
integer;
begin
  
for i:=1 to max do begin
    
//находим подходящий предмет по ItemID
    
if (ItemBase[2,i]=item) and (ItemBase[4,i]=lvlthen 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(ObjectIDinteger);  //#$19 kamael
begin
  buf
:=#$19;
  
WriteD(ObjectID);
  
WriteD(0);
  
SendToServer;
end;
//......................................
//******************************************************************************
function SumItem(Iteminteger):integer;
var
  
suminteger;
begin
  result
:=0;
  
//находим подходящий предмет по ItemID
  
for i:=1 to max do begin
    
if (ItemBase[2,i]=itemthen 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(ObjectIDinteger); //5F kamael
begin
  buf
:=#$5F;
  
WriteD(ObjectID);
  
SendToServer;
  
//*********** использовать чит с петом ************************
{  buf:=#$8B;
  
WriteD(ObjectID);
  
writed(1);
  
SendToServerEx(Name);
}  
//***********
end;
//......................................
{//***************************************************************
function ExtractIDValues(sDatastring): integer;
var
  
sstring;
  
i,jinteger;
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(SenderTObject);
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)<=1then 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;
//......................................
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
  
//****************************************************************************
  //не обрабатываем пустые пакеты
  
if pck='' then exit;
  
//****************************************************************************
  
if FromServer then
  
case pck[1of
     
//......................................
    //Пакет ItemList
    #$11: CreateItemBase; //создание базы предметов
     //......................................
    //если удалили предметы, стираем в базе предметов пары ObjectID - ItemID
    #$21: InventoryUpdate; //Обновление базы
     //......................................
    //Пакет ChooseInventory
    #$7C: 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;
    
#$87: if readd(2)=0 then begin
          
CurEnchLvl:=0//начнем с начала
    
end;
  
end;
end
Кто нить помогите разобраться скрип точит на камаэеле норм только есть несколько ньюансов
1. когда точиш обычными точками он не точит до определеного уровня веши, когда ломает вешь он не может выбрать вешь для заточки
2. если точить блесами он не останавливается точит до последней точки
GANsss вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!