среда, 12 ноября 2014 г.

[обсуждение] как пользоваться скриптами - zhyk.ru forums

Скрипт для meepo dota2








//Автоматизация заточки предметов до необходимого уровня by NLObP для Грации + v0ltag3's fix for GF(alpha) //version 0.8beta от 19.07.2009г. program Enchant_gracia; {******************************************************************************** Возможности скрипта: -------------------- - Панель управления; - Затачиваем по очереди все предметы с ItemID пока не переломаем или не заточим, один предмет всегда остаётся;


==================================================================== Работа скрипта проверялась на локальном Грация сервере ====================================================================


1) Необходимо затариться оружием, заточками и валерьянкой. 2) Вписать в константу Name имя своего чара. 3) Поставить количество слотов в инвентаре чара в константу maxitems. 4) Сохранить и запустить скрипт установив напротив него галочку.


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


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


//............................................ //Список констант const Name='Nick'; //Вписать сюда имя чара //установить константу в зависимости от типа игры (С4 или Интерлюд) //------------------------- maxitems=80; //количество слотов в инвентаре чара debug=false; //если не хотим видеть отладочной информации


//............................................ //Список переменных var flag7C,flagFE,flag87,useitems:boolean; Item, scrl: integer; ScrollID, ScrollOID: integer; //ScrollID скролла заточки ItemID, ItemOID, ItemEnch: integer; //ItemID затачиваемого предмета MaxEnchLvl: integer; //уровень заточки который требуется достичь //ITEMs BaseItems: array[1..maxitems, 1..12] of longint; //все предметы в инвентаре


StartTime, EndTime: TDateTime; good, broken: integer; ready: boolean; timer, showinf : TTimer; ItemCount, CurEnchLvl: integer; ItemsName, StringList : TStringList; //названия предметов, имена продавцов FormMain : TForm; //Создаваемая форма Splitter1, Splitter2 : TSplitter; Stats, Msg : TMemo; Panel1 : TPanel; GroupBox2 : TGroupBox; Label1, Label2, Label3, Label4, Label12, Label13 : TLabel; ComboBoxItem, ComboBoxScroll : TComboBox; CheckBoxItem, CheckBoxScroll : TCheckBox; ButtonStartEnchant, ButtonStopEnchant : TButton; EditItemVal, EditScrollVal, EditScrollOID, EditItemOID, Edit1, Edit2 : TEdit; //............................................ //************************************* //Обработчики событий для элементов управления на форме //...................................... //CheckBoxItem procedure CheckBoxItem_Click(Sender: TCheckBox); //Event : OnClick begin if CheckBoxItem.Checked then begin ItemOID:=BaseItems[ComboBoxItem.ItemIndex+1,2]; ItemID:=BaseItems[ComboBoxItem.ItemIndex+1,3]; //проверка // EditItemOID.Text:=Inttostr(ItemID); // EditItemVal.text:=inttostr(ItemOID);


ComboBoxItem.Enabled:=false; //выключаем end else begin ItemID:=0; //отмена ItemOID:=0; ComboBoxItem.Enabled:=true; //включаем //RequestItemList вызываем инвентарь buf:=hstr('14'); SendToServerEx(Name); end; end; //...................................... //...................................... //ComboBoxItem procedure ComboBoxItem_Click(Sender: TComboBox); //Event : OnClick begin ItemOID:=BaseItems[ComboBoxItem.ItemIndex+1,2]; ItemID:=BaseItems[ComboBoxItem.ItemIndex+1,3]; // 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:=BaseItems[ComboBoxScroll.ItemIndex+1,2]; ScrollID:=BaseItems[ComboBoxScroll.ItemIndex+1,3]; //проверка // EditScrollOID.Text:=Inttostr(ScrollID); // EditScrollVal.text:=inttostr(ScrollOID); ComboBoxScroll.Enabled:=false; //выключаем end else begin ScrollID:=0; //отмена ScrollOID:=0; ComboBoxScroll.Enabled:=true; //включаем //RequestItemList вызываем инвентарь buf:=hstr('14'); SendToServerEx(Name); end; end; //...................................... //...................................... //ComboBoxScroll procedure ComboBoxScroll_Click(Sender: TComboBox); //Event : OnClick begin ScrollOID:=BaseItems[ComboBoxScroll.ItemIndex+1,2]; ScrollID:=BaseItems[ComboBoxScroll.ItemIndex+1,3]; // 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+v0ltag3s fix for GF v.0.8b'; 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 для Грации+v0ltag3s fix for GF!'); 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:=500; //время задержки


ShowInf:=TTimer.Create(nil); ShowInf.OnTimer:=@OnShowInfo; ShowInf.enabled:=true; ShowInf.interval:=1000; //время задержки


StartTime:=time; good:=0; broken:=0; ready:=false; //RequestItemList вызываем инвентарь buf:=hstr('14'); 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 BaseItems:=nil; //нельзя так делать с массивом ShowInf.Enabled:=false; ShowInf.Interval:=0; ShowInf.Free; ShowInf.OnTimer:=nil; timer.Enabled:=false; timer.Interval:=0; timer.Free; timer.OnTimer:=nil;


StringList.Clear; ItemsName.Clear; //достаточно освободить форму Free_FormMain; end; //.............................................................................. procedure ShowInfo; var i: integer; begin stats.Lines.Clear; stats.Lines.Add('Имя чара :'+Name); stats.Lines.Add('Время старта :'+TimeToStr(starttime)); stats.Lines.Add('Время ловли :'+TimeToStr(time-starttime)); stats.Lines.Add('Улучшили: '+IntToStr(good)); stats.Lines.Add('Сломали: '+IntToStr(broken)); end; //...................................... //*************************************************************** procedure OnShowInfo(Sender: TObject); //выводим в форму begin ShowInfo; end; //.............................................................................. //послать сообщение в чат //use: SendMessage(msg); procedure SendMessage(msg:string); //отправка системных сообщений клиенту begin buf:=#$4A; WriteD(0); WriteD(10); WriteS(''); WriteS(msg); SendToClientEx(Name); end; //.............................................................................. procedure debugMsg(msg: string); begin if debug then begin sendMSG(msg); SendMessage(msg); end; end; //.............................................................................. procedure ItemList; {Создаем базу Items} //11=ItemList:h(ShowWindow)h(ListSize:Loop.01.0021)h(ItemType1)d(ObjectID) // d(ItemID:Get.Func01)d(LocationSlot)d(Count)h(ItemType2)h(CustomType1) // h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2)d(AugmentationID) // d(Mana)d(AttackAttrElement)d(AttackAttrElementVal)d(DefAttrFire) // d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefAttrHoly)d(DefAttrUnholy) var i, j, k: integer; ListCount: integer; begin j:=4; //смещение для ListCount ListCount:=ReadH(j); //количество итемов не должно превышать max! for i:=1 to maxitems do if (iStringList.Add()'); //msg.Lines.Add(inttostr(BaseItems[i,3])); 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; //.............................................................................. procedure InventoryUpdate; //пакет 27, Создает базу ObjectID по ItemID var i, ii, j, k, ListCount, UpdType : integer; ItemType1, ObjectID, ItemID, LocationSlot, Count, ItemType2, CustomType1, isEquipped, BodyPart, EnchantLevel, CustType2, AugmentationID :integer; additem : boolean; begin additem:=true; ListCount:=ReadH(2); //количество итемов // debugmsg('ListCount='+inttostr(ListCount)); j:=4; //смещение для действия с предметом 1-добавлен 2-изменен 3-удален for i:=1 to ListCount do begin UpdType:=ReadH(j); ItemType1:=ReadH(j); ObjectID:=ReadD(j); ItemID:=ReadD(j); LocationSlot:=ReadD(j); Count:=ReadD(j); inc(j,4); ItemType2:=ReadH(j); CustomType1:=ReadH(j); isEquipped:=ReadH(j); BodyPart:=ReadD(j); EnchantLevel:=ReadH(j); CustType2:=ReadH(j); AugmentationID:=ReadD(j); case UpdType of 1: k:=0; //добавлен новый предмет 2: k:=ObjectID; //изменен предмет в инвентаре 3: begin //удален for ii:=1 to maxitems do if (BaseItems[ii,2]=ObjectID) then begin //debugmsg('удаляем OID='+inttostr(BaseItems[ii,2])+' ID='+inttostr(BaseItems[ii,3])); for k:=1 to 12 do BaseItems[ii,k]:=0; break; end; end; end; for ii:=1 to maxitems do begin if (BaseItems[ii,2]=k) then begin BaseItems[ii,1]:=ItemType1; //BaseItems[ii,2]:=ObjectID; BaseItems[ii,3]:=ItemID; BaseItems[ii,4]:=LocationSlot; BaseItems[ii,5]:=Count; BaseItems[ii,6]:=ItemType2; BaseItems[ii,7]:=CustomType1; BaseItems[ii,8]:=isEquipped; BaseItems[ii,9]:=BodyPart; BaseItems[ii,10]:=EnchantLevel; BaseItems[ii,11]:=CustType2; BaseItems[ii,12]:=AugmentationID; //debugmsg('доб/изм OID='+inttostr(BaseItems[ii,2])+' ID='+inttostr(BaseItems[ii,3])); break; end; end; inc(j,38); end; end; //.............................................................................. function GetItem(ID, FieldIn, FieldOut : integer): integer; {GetInv(по чему будем искать, номер того по чему будем искать, номер того что надо найти) где: ID - искомый код; FieldIn - по какому полю ищем; FieldOut - какое поле возвращаем; 1=ItemType1; 2=ObjectID;3=ItemID;4=LocationSlot;5=Count;6=ItemType2;7=CustomType1; 8=isEquipped;9=BodyPart;10=EnchantLevel;11=CustType2;12=AugmentationID; ex1: GetInv(6408,2,1) - вернет ObjectID свадебного платья, если онное лежит в инвентаре, иначе вернет -1 ex2: GetInv(6408,2,8) - вернет уровень заточки первого попавшегося в инвентаре свадебного платья, если свадебного платья нет, то вернет -1 } var i: integer; begin for i:=1 to maxitems do if (BaseItems[i,FieldIn]=ID) then begin Result:=BaseItems[i,FieldOut]; //debugmsg('Нашли='+inttostr(result)); exit; end; Result:=-1; end; //.............................................................................. //****************************************************************************** //находим в инвентаре предмет с ItemID и возвращаем его ObjectID function GetItemEnchant(item,lvl:integer) : integer; var i : integer; begin //ничего не нашли result:=0; for i:=1 to maxitems do if (BaseItems[i,3]=item) and (BaseItems[i,10]=lvl) then begin ItemEnch:=BaseItems[i,10]; Result:=BaseItems[i,2]; //debugmsg('Нашли='+inttostr(result)); exit; end; // Result:=-1; end; //****************************************************************************** function SumItem(Item: integer):integer; var sum, i : integer; begin result:=0; //находим подходящий предмет по ItemID for i:=1 to maxitems do begin if (BaseItems[i,3]=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+BaseItems[i,5]; //count //inc(result); end; end; end; //****************************************************************************** procedure UseItem(ObjectID: integer); begin buf:=#$19; WriteD(ObjectID); WriteD(0); SendToServerEx(Name); end; //****************************************************************************** procedure ChooseItem(ObjectID: integer); begin buf:=#$D0#$4C#$00; WriteD(ObjectID); SendToServerEx(Name); end; procedure RequestEnchantItem(ObjectID: integer); begin buf:=#$5F; WriteD(ObjectID); SendToServerEx(Name); end; //****************************************************************************** procedure OnTimer(Sender: TObject); begin EditItemVal.text:=inttostr(sumitem(ItemID)); EditScrollVal.text:=inttostr(sumitem(ScrollID)); if (strtoint(Edit2.text)>=strtoint(Edit1.Text)) then begin msg.Lines.Add('Нет подходящих предметов для улучшения! Прервано!'); timer.enabled:=false; exit; end; if (sumitem(ItemID)C Пакет ItemListPacket #$11'); ItemList; end; //...................................... #$21: begin //debugmsg('S>C Пакет InventoryUpdate #$21'); InventoryUpdate; end; //...................................... //Пакет ChooseInventory #$7C: begin flag7C:=false; if ready then begin //and (readd(2)=itemid) //ищем подходящий предмет для заточки timer.enabled:=false; //отключаем пока не найдем предмет для заточки repeat ItemOID:=GetItemEnchant(ItemID, CurEnchLvl); if ItemOID=0 then begin inc(CurEnchLvl); Edit2.text:=inttostr(CurEnchLvl); end; until ItemOID<>0; //************************************************ if (CurEnchLvl>=strtoint(Edit1.Text)) then begin msg.Lines.Add('Нет подходящих предметов для улучшения! Прервано!'); msg.Lines.Add('Достигли MaxEnchLvl!'); timer.enabled:=false; ready:=false; delay(500); RequestEnchantItem(-1); exit; end else begin msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch)); flag7c:=true; ready:=false; timer.enabled:=true; delay (500); exit; end; end; end; #$FE: begin if pck[2]=#$81 then begin flagFE:=true; delay (2000); exit; end; end; #$87: begin if readd(2)=0 then begin msg.Lines.Add('Улучшили ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch)); inc(good); flag87:=true; delay (500); exit; end else begin msg.Lines.Add('Сломали ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch)); inc(broken); flag87:=true; delay (500); exit; end; end; end; CurEnchLvl:=0;


if flag7C=true then begin ChooseItem(ItemOID); flag7C:=false; end; if flagFE=true then begin RequestEnchantItem(ItemOID); flagFE:=false; end; if flag87=true then begin flag87:=false; useitems:=false; end; end.

Совет в фото с интернета

[обсуждение] как пользоваться скриптами - zhyk.ru forums