Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
18.02.2009, 17:07
#1
Новичок
Регистрация: 04.02.2009
Сообщений: 2
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
У меня вот такая проблемма - использую скрипт на заточку для Камаэля, все работет вроде бы нормально но... скрипт точит только 1 вешь и когда я ставлю что ее надо заточить на 7 он продолжает точить дальше ( В чем может быть причина?
27.02.2009, 19:05
#2
Новичок
Регистрация: 12.01.2009
Сообщений: 19
Сказал Спасибо: 9
Имеет 0 спасибок в 0 сообщенях
NLObP, А как реализовать так, что бы он точил предмет сначала обычыми точками, а потом блезовсками ? ))
09.03.2009, 17:59
#3
Новичок
Регистрация: 09.03.2009
Сообщений: 10
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Пустой цикл заточки
Приветсвую всех тк мой первый пост, пользуясь возможностью хочу поблагодарить модеров и всех учавствующих в этом пректрасном проекте.
Ну а теперь собственно вопрос в основном к НЛОбу ну если кто прошарит буду тоже рад ответу:
Играю на Грации евро, пользуюсь пакетхаком версии 34183 и твоим скриптом от 6.01.2009 (см код снизу) его я чуть чуть подправил, те изменил пакеты UseItem, RequestItemList и ChooseInventory так как они у меня отличаются от тех что в скрипте были, и чуток с таймингом поэксперементировал. Скрипт заработал и даже точит ровно если не много айтемов инвентаре, сейчас пытаюсь заточить 175 пух до 20 лвл. Проблема в том что:
исходная ситуация: 170 пух по +2 и +3 лвл энчанта
Такая картина: скрипт открывает точку отсылает пакет RequestEnchantItem , в окошке пишет скрипта прибавляется колво сломанных айтемов, цикл повторяется снова и снова по 80 или 100 раз, потом вдруг какбы не взначай точит одну пуху, потом этот (пустой) цикл снова повторяется, иногда скрипт просто останавливается не обрываясь, нажимаю стоп потом старт все начинается снова...
может будет полезна еще последовательность пакетов при заточке без скрипта:
c>s UseItemn (19 03 22 6A 10 00 00 00 00 )
s>c SystemMessage Типо "Выбирите предмет для улучшения"(62 2F 01 00 00 00 00 00 00)
s>c ChooseInventory (7C B3 03 00 00)
c>s RequestEnchantItem(5F 05 2E 9D 10 )
s>c EnchantResult(87 00 00 00 00 00 00 00 00 00 00 00 00 )
s>c StatusUpdate(18 E0 93 84 10 01 00 00 00 0E 00 00 00 94 59 08 00)
s>c ItemList(11 00 ...... размер Pазмер: 13533+2)в просмотре пакетов страшно просматривать ПХ зависает на 2 3 секунды
s>c UserInfo(32 .... размер 702+2)
ето фсе не пойму где здесь
InventoryUpdate, поставил в скрипте по умолчанию 21, вообще он приходит когда пуха ломается, короче стоит 21!
ЗЫ Хотя (пустой) цикл был и когда я начал точить эти пухи с лвл енчанта 0, затем дойдя до значения поломок 100 слих..м начал вроде точить каждую подряд, но подтормаживая клиент, заточив на +2 +3 завис, кнрт альт дель рулят!)
Вот код:
Оффтоп
Код:
//Автоматизация заточки предметов до необходимого уровня by NLObP для Грации
//version 0.8 от 26.01.2009г.
program Enchant_gracia;
{********************************************************************************
Возможности скрипта:
--------------------
- Панель управления;
- Затачиваем по очереди все предметы с ItemID пока не переломаем
или не заточим, один предмет всегда остаётся;
====================================================================
Работа скрипта проверялась на локальном Грация сервере
====================================================================
1) Необходимо затариться оружием, заточками и валерьянкой.
2) Вписать в константу Name имя своего чара.
3) Поставить количество слотов в инвентаре чара в константу maxitems.
4) Сохранить и запустить скрипт установив напротив него галочку.
Внимание!
Из комбобокса обязательно надо выбрать вещь, чтобы скрипт узнал
ID и количество, только потом ставить напротив галочку.
Галочки снимать не надо, если кончились заточки/вещи - можно сразу идти
покупать и продолжать заточку.
В инвентаре должно быть не менее двух одинаковых затачиваемых вещей,
степень заточки значения не имеет.
Скрипт распространяется как есть, и я не несу ответственности за то,
что ВЫ натворили у себя, его используя.
MyICQ 402988808
********************************************************************************}
//............................................
//Список констант
const
Name='Щас Как Точну!'; //Вписать сюда имя чара
//установить константу в зависимости от типа игры (С4 или Интерлюд)
//-------------------------
maxitems=200; //количество слотов в инвентаре чара
debug=false; //если не хотим видеть отладочной информации
//............................................
//Список переменных
var
Item, scrl: integer;
ScrollID, ScrollOID: integer; //ScrollID скролла заточки
ItemID, ItemOID, ItemEnch: integer; //ItemID затачиваемого предмета
MaxEnchLvl: integer; //уровень заточки который требуется достичь
//ITEMs
BaseItems: array[1..maxitems, 1..12] of integer; //все предметы в инвентаре
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 v.0.8';
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; //время задержки
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 (i<=ListCount) then begin
BaseItems[i,1]:=ReadH(j); //ItemType1
BaseItems[i,2]:=ReadD(j); //ObjectID
BaseItems[i,3]:=ReadD(j); //ItemID
BaseItems[i,4]:=ReadD(j); //LocationSlot
BaseItems[i,5]:=ReadD(j); //Count
BaseItems[i,6]:=ReadH(j); //ItemType2
BaseItems[i,7]:=ReadH(j); //CustomType1
BaseItems[i,8]:=ReadH(j); //isEquipped
BaseItems[i,9]:=ReadD(j); //BodyPart
BaseItems[i,10]:=ReadH(j); //EnchantLevel
BaseItems[i,11]:=ReadH(j); //CustType2
BaseItems[i,12]:=ReadD(j); //AugmentationID
//debugmsg('OID='+inttostr(BaseItems[i,2])+' ID='+inttostr(BaseItems[i,3]));
inc(j,40);
end else for k:=1 to 12 do BaseItems[i,k]:=0; // забиваем нулями
//вносим изменения в чекбоксы
StringList.Clear;
try
for i:=1 to ListCount do begin
try
//StringList.Add(ItemsName[ItemBase[2,i]-1]); //записываем название вещей из инвентаря
StringList.Add(ItemsName.Values[IntToStr(BaseItems[i,3])]); //записываем название вещей из инвентаря
except;
//msg.Lines.Add('Пропускаем! Нет ItemID='+inttostr(BaseItems[i,3])+' в itemsid.ini');
end
end;
except;
//msg.Lines.Add('ошибка в CreateItemBase->StringList.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);
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 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)<=1) then begin
// if (sumitem(ItemID)<=0) then begin //если надо точить одну вещь
msg.Lines.Add('Предметов для улучшения должно быть больше двух! Прервано!');
timer.enabled:=false;
exit;
end;
if ready then exit;
ScrollOID:=GetItem(ScrollID,3,2);//найдем OID скролла
if ScrollOID=-1 then begin
msg.Lines.Add('Кончились свитки! Прервано!');
timer.enabled:=false;
exit;
end;
UseItem(ScrollOID);
msg.Lines.Add('Задействовали свиток ScrollID='+IntToStr(scrollID)+' ScrollOID='+IntToStr(ScrollOID));
ready:=true; //готовы затачивать
end;
//******************************************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
begin
//****************************************************************************
//не обрабатываем пустые пакеты
if pck='' then exit;
//****************************************************************************
if FromServer then
case pck[1] of
//......................................
#$11: begin
//debugmsg('S>C Пакет ItemListPacket #$11');
ItemList;
end;
//......................................
#$21: begin
//debugmsg('S>C Пакет InventoryUpdate #$21');
InventoryUpdate;
end;
//......................................
//Пакет ChooseInventory
#$7C: begin
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));
RequestEnchantItem(ItemOID);
ready:=false;
timer.enabled:=true;
end;
end;
end;
#$87: begin
if readd(2)=0 then begin
msg.Lines.Add('Улучшили ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(good);
end else begin
msg.Lines.Add('Сломали ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(broken);
end;
// CurEnchLvl:=0; //начнем с начала. Расскоментировать для блессет скроллов
end;
end;
end.
10.03.2009, 03:02
#4
Пользователь
Регистрация: 11.06.2008
Сообщений: 34
Сказал Спасибо: 32
Имеет 6 спасибок в 6 сообщенях
скрипт прикрутил.. все работает Спасибо! но вот проблема...
на сервере стоит мин заточка +10 и ниже этого не скидывается! когда скриптом точим то мин значение поднимается... а итемы все заканчиваются(точим блесами, только они в ГМ шопе), скрипт зависает вместе с l2phx... поделитесь мыслями как это исправить?
слотов 280, заточки блесы
15.03.2009, 01:07
#5
Новичок
Регистрация: 14.03.2009
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
15.03.2009, 16:01
#6
Новичок
Регистрация: 25.09.2008
Сообщений: 6
Сказал Спасибо: 5
Имеет 1 спасибку в 1 сообщении
Проблема такая: с утра все было норм скрипт работал... часика через 2 что случилось и больше скрипт не работал... пишет:
Автоматизация заточки by NLObP!
Команда Старт!!!
Прервано!
в чем может быть проблема, помогите плз!
менял чаров, переустонавливал пнх, в скрипте ник написан норм...
Последний раз редактировалось NLObP, 03.04.2009 в 13:00 .
15.03.2009, 19:37
#7
Новичок
Регистрация: 09.03.2009
Сообщений: 10
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
Цитата:
Про
Name='Щас Как Точну!'; //Вписать сюда имя чара?
не забыл?
Имя стоит(другое
), иначе бы сразу ошибка выскакивала
Цитата:
Именно эти пакеты и используются в скрипте - 19, 7C, 5F, 87 (использую, но может быть не правильно? 0 - прошла точка, иначе - не прошла), 11, (21 как вспомогательный, в скрипте не нужен)
да, так и есть. У меня вначале запарка с чем то была, я думал в пакетах, начал исправлять оказывается наисправлялся, что пришел к тем же что у тебя и стояли(недавано только с твоим оригинальным скриптом сверил)
.
Цитата:
Лог скинь, который скрипт в окошке выводит. Что за сервер, хроники?
Играю на сервере с 12 протоколом, Грация часть вторая со всеми фишками. Вот ип сервака (8/5.14.219.81) называется (Des.pe.rion)
вот лог
Оффтоп
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938463 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938463 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938463 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938463 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Улучшили ItemID=10449 ItemOID=279938463 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Улучшили ItemID=10449 ItemOID=279938465 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938466 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938466 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938466 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938466 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938466 ItemEnchLvl=5
Задействовали свиток ScrollID=959 ScrollOID=279450213
Сломали ItemID=10449 ItemOID=279938466 ItemEnchLvl=5
Когда точил это оружие с нуля все в целом было нормально, потом остановил скрипт на пяти(макс. безопасный энчант) поставил задержку вместо 500 на 1500. В итоге начало проскакивать пишет будто сломалось , а на самом деле просто проскакивает оружие не точа не ломая, в общем как я писал сверху. Зтем поменял тайминг снова на 500, затем начало точить нормально. С чем это может быть связано?
Изменял я задержку здесь
Оффтоп
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=500; //âðåìÿ çàäåðæêè
Еще вопрос, между чем изменяется задержка в этом месте и есть ли еще возможность изменить задержку в скрипте, например между заточкой оружия или открытием точки и подтверждением заточки?
Спасибо заранее!
Забыл напомнить, последний скрипт который ты здесь выклал от 30.01.09
Последний раз редактировалось NLObP, 03.04.2009 в 12:59 .
16.03.2009, 03:33
#8
Пользователь
Регистрация: 11.06.2008
Сообщений: 34
Сказал Спасибо: 32
Имеет 6 спасибок в 6 сообщенях
Сообщение от RinZo
на сервере стоит мин заточка +10 и ниже этого не скидывается
Попробуйте эту строчку
Код:
// CurEnchLvl:=0; //начнем с начала. Расскоментировать для блессет скроллов
заменить на
CurEnchLvl:=10; //начнем с начала. Расскоментировать для блессет скроллов
поэксперементировал со всеми 3мя строчками. результатов не дало. всеравно зависание идет и приходится закрывать пакетхак.
результат незначительный получился в строчке
ready:=false;
timer.enabled:=true; //пока в тесте отключаем
при значение
ready:=false;
timer.enabled:=
false ; //пока в тесте отключаем
скрипт после каждой воткнутой заточки останавливается и нажимаю еще раз Start и втыкается следующая заточка, добился этим только точения 1 кнопкой... а хотелось бы полной автоматизации процесса =)
сервер Chaos-world.ru x1200 вот там я эксперементирую со скриптом.
зарание спасибо за помощь
28.03.2009, 18:55
#9
Новичок
Регистрация: 28.03.2009
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Небольшое(мб) изменение скрипта
Нельзя ли сделать чтоб скрипт не точил все по +1, потом всё по +2, и т.д, а брал 1 предмет, точил его пока не сломается(или до макс точки) и потом брался за следующий. А то когда точит с 5 на 6 25 раз подряд и всё в сейф, сразу немножко раздражаешся)
Может вы можете обосновать свою точку зрения про то что так шанс выше, но лично мне кажется что к рандому 1 к 3, плюсуется ещё и "рандом" скрипта.
02.04.2009, 18:22
#10
Новичок
Регистрация: 02.04.2009
Сообщений: 5
Сказал Спасибо: 1
Имеет 5 спасибок в 3 сообщенях
Меня вот что интереусет:
Когда заточка удачна то оно идет дальше затачиватся до тех пор пока не выполнятся условия...
А когда заточка неудачна - то куда идет дальше процес, на какую строку кода?
И какой код нужно ввести, чтоб перед началом заточки (после того как заточка прошла неудачно) - оно проверяло текущий уровень заточки?
Т.к. там где сбрасывается до 10, это очень важно...
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 03:33 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!