Перейти к содержанию

Скрипт для варки Moon Dust/Lunargent/итд.


Рекомендуемые сообщения

Работу скрипта необходимо начинать непосредственно рядом с урной варки. Alchemist Stone, который дает NPC Wesley при взятии квеста, должен быть засунут в урну. Все значения для скрипта перечисляются в секции const.

Amount - количество циклов варки. К примеру, если необходимо сварить 50 Moon Dust, значение Amount будет 50.

Ingredient - Здесь необходимо указать значение ByPass конкретного ингредиента. Оно определяется исходя из положения необходимой кнопки в диалоге с НПЦ, начиная с '00' - верхняя кнопка, все последующие - по порядку '01', '02', и так далее 

 

Catalyst - Здесь необходимо указать значение ByPass конкретного катализатора. Аналогично ингредиенту

Temperature - Здесь ByPass температуры. '00' - 1 Salamander, '01' - 2 Ifrit, '03' - 3 Phoenix. В приципе, все варится на первой температуре, но мало ли кто хочет сделать побольше :)

Например, (для вложенного скрина), если хотим сварить Moon Dust, необходимо выбрать Ingredient = '01', Catalyst = '02' (10 Moonstone Shard + 1 Volcanic Ash = 1 Moon Dust). А если хотим лунаргент, то необходимо выбрать Ingredient = '07' и Catalyst = '04' (10 Moon Dust + 1 Quicksilver = 1 Lunargent).

Совет: Берите с собой на 1 ингредиент и катализатор больше, либо делайте количество циклов Amount на 1 меньше нужного, связано это с тем, что если взять ровное количество ингредиентов, то на последнем цикле при выборе катализатора все ByPass сдвинутся, и ингредиенты соответственно не сварятся.

=====================================================

const Amount:integer = 60;        //Количество циклов варения
      Ingredient:String = '01';   //ByPass ингредиента
      Catalyst:String = '02';     //ByPass катализатора
      Temperature:String = '00';  //Температура
var   Current:integer;

procedure Step(Dlg1,Dlg2:integer; Dlg3:string);
begin
    Engine.DlgOpen;
    Delay(500);
    Engine.DlgSel(Dlg1);
    Delay(500);
    Engine.DlgSel(Dlg2);
    Delay(500);
    Engine.ByPassToServer(Dlg3);
    Delay(500);
end;

      
begin
    Engine.SetTarget(31149);
    Delay(500);
    for Current:=1 to Amount do begin
      Step(2,2,Ingredient);
      Step(2,3,Catalyst);
      Step(2,4,Temperature);
      Step(2,5,'');
    end;
end.

Ссылка на сообщение
Поделиться на другие сайты

Варианты байпасов для вставки ингридиентов:
Moonstone Shard x1 = Quest _373_SupplierOfReagents x_1_I_6013
Moonstone Shard x10 = Quest _373_SupplierOfReagents x_2_I_6013
Rotten Bone Piece x1 = Quest _373_SupplierOfReagents x_1_I_6014
Rotten Bone Piece x10 = Quest _373_SupplierOfReagents x_2_I_6014
Demon's Blood x1 = Quest _373_SupplierOfReagents x_1_I_6015
Demon's Blood x10 = Quest _373_SupplierOfReagents x_2_I_6015
Infernium Ore x1 = Quest _373_SupplierOfReagents x_1_I_6016
Infernium Ore x10 = Quest _373_SupplierOfReagents x_2_I_6016
Blood Root x1 = Quest _373_SupplierOfReagents x_1_I_6017
Blood Root x10 = Quest _373_SupplierOfReagents x_2_I_6017
Volcanic Ash x1 = Quest _373_SupplierOfReagents x_1_I_6018
Volcanic Ash x10 = Quest _373_SupplierOfReagents x_2_I_6018
Quicksilver x1 = Quest _373_SupplierOfReagents x_1_I_6019
Quicksilver x10 = Quest _373_SupplierOfReagents x_2_I_6019
Sulfur x1 = Quest _373_SupplierOfReagents x_1_I_6020
Sulfur x10 = Quest _373_SupplierOfReagents x_2_I_6020
Moon Dust x1 = Quest _373_SupplierOfReagents x_1_I_6023
Moon Dust x10 = Quest _373_SupplierOfReagents x_2_I_6023

Варианты байпасов для вставки катализатора:
Moonstone Shard x1 = Quest _373_SupplierOfReagents x_1_C_6013
Moonstone Shard x10 = Quest _373_SupplierOfReagents x_2_C_6013
Rotten Bone Piece x1 = Quest _373_SupplierOfReagents x_1_C_6014
Rotten Bone Piece x10 = Quest _373_SupplierOfReagents x_2_C_6014
Demon's Blood x1 = Quest _373_SupplierOfReagents x_1_C_6015
Demon's Blood x10 = Quest _373_SupplierOfReagents x_2_C_6015
Infernium Ore x1 = Quest _373_SupplierOfReagents x_1_C_6016
Infernium Ore x10 = Quest _373_SupplierOfReagents x_2_C_6016
Blood Root x1 = Quest _373_SupplierOfReagents x_1_C_6017
Blood Root x10 = Quest _373_SupplierOfReagents x_2_C_6017
Volcanic Ash x1 = Quest _373_SupplierOfReagents x_1_C_6018
Volcanic Ash x10 = Quest _373_SupplierOfReagents x_2_C_6018
Quicksilver x1 = Quest _373_SupplierOfReagents x_1_C_6019
Quicksilver x10 = Quest _373_SupplierOfReagents x_2_C_6019
Sulfur x1 = Quest _373_SupplierOfReagents x_1_C_6020
Sulfur x10 = Quest _373_SupplierOfReagents x_2_C_6020
Moon Dust x1 = Quest _373_SupplierOfReagents x_1_C_6023
Moon Dust x10 = Quest _373_SupplierOfReagents x_2_C_6023

  • Thanks 1
Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...
5 hours ago, KillBot said:

Объясните пожалуйста как полностью вписать bypass ингредиенты 

вместо 01 пишешь ингредиент списка первого блока (ковычки оставляешь) , вместо 02 бейпас катализатор из второго блока. Всё просто. Специально разделили абзацем, чтобы было понятнее

  • Like 1
  • Thanks 1
Ссылка на сообщение
Поделиться на другие сайты
12 hours ago, Deuces said:

On this line i get an error.

Line -       Step (2.5, '');
Error - Not enough actual parameters

Did I miss something or am I doing it wrong?

This is a procedure which expects 3 parameters with this syntax:  Step(number,number,text). So obvious error is you have a dot instead of comma and probably " is not a valid string. There's should be a final dialog ("mix ingredients" of something like that)

  • Like 1
Ссылка на сообщение
Поделиться на другие сайты
7 hours ago, Deuces said:

However,  i doesn't select the temperature.  Any Ideas?

 

Salamander     Quest _373_SupplierOfReagents tmp_1

Ifrit          Quest _373_SupplierOfReagents tmp_2

Phoenix       Quest _373_SupplierOfReagents tmp_3

 

Like so..  

 

  • Thanks 1
  • Haha 1
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Вроде, тут снова пропустили некоторые бейпасы. Дополню

Бейпас на вставку ингредиента

Magma Dust       x1   Quest _373_SupplierOfReagents x_1_I_6022

Magma Dust       x10   Quest _373_SupplierOfReagents x_2_I_6022

Wyrm's Blood    x1  Quest _373_SupplierOfReagents x_1_I_6011

Wyrm's Blood    x10  Quest _373_SupplierOfReagents x_2_I_6011

Demonplasm     х1     Quest _373_SupplierOfReagents x_1_I_6025

Demonplasm     х10     Quest _373_SupplierOfReagents x_2_I_6025

Fire Essense       x1     Quest _373_SupplierOfReagents x_1_I_6028

Demonic Essence     x1    Quest _373_SupplierOfReagents x_1_I_6031

Lava Stone  х1         Quest _373_SupplierOfReagents x_1_I_6012

Lava Stone  х10      Quest _373_SupplierOfReagents x_2_I_6012

Катализаторы:

Magma Dust       x1   Quest _373_SupplierOfReagents x_1_C_6022

Magma Dust       x10   Quest _373_SupplierOfReagents x_2_C_6022

Wyrm's Blood    x1  Quest _373_SupplierOfReagents x_1_C_6011

Wyrm's Blood    x10  Quest _373_SupplierOfReagents x_2_C_6011

Demonplasm     х1     Quest _373_SupplierOfReagents x_1_C_6025

Demonplasm     х10     Quest _373_SupplierOfReagents x_2_C_6025

Fire Essense       x1     Quest _373_SupplierOfReagents x_1_C_6028

Demonic Essence     x1    Quest _373_SupplierOfReagents x_1_C_6031

Lava Stone  х1         Quest _373_SupplierOfReagents x_1_C_6012

Lava Stone  х10      Quest _373_SupplierOfReagents x_2_C_6012

 

 

Пишу сонная, могут быть косяки

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

begin

end.          const Amount:integer = 60;        //Количество циклов варения
      Ingredient:String = 'Moonstone Shard x10 = Quest _373_SupplierOfReagents x_2_I_6013';   //ByPass ингредиента
      Catalyst:String = 'Volcanic Ash x1 = Quest _373_SupplierOfReagents x_1_I_6018';     //ByPass катализатора
      Temperature:String = 'Quest _373_SupplierOfReagents tmp_1';  //Температура
var   Current:integer;

procedure Step(Dlg1,Dlg2:integer; Dlg3:string);
begin
    Engine.DlgOpen;
    Delay(500);
    Engine.DlgSel(Dlg1);
    Delay(500);
    Engine.DlgSel(Dlg2);
    Delay(500);
    Engine.ByPassToServer(Dlg3);
    Delay(500);
end;

                    begin
    Engine.SetTarget(31149);
    Delay(500);
    for Current:=1 to Amount do begin
      Step(2,2,Ingredient);
      Step(2,3,Catalyst);
      Step(2,4,Temperature);
      Step(2,5,'');
    end;
end.

 

что не так в скрипте ? не хочет работать (

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...
On 12.03.2021 at 04:13, Admin said:

Работу скрипта необходимо начинать непосредственно рядом с урной варки. Alchemist Stone, который дает NPC Wesley при взятии квеста, должен быть засунут в урну. Все значения для скрипта перечисляются в секции const.

о фак зачем такие сложности 
Варим все нужные для нубла ингридиенты пока они в принципе есть в инвентаре, на кой болт указывать количество циклов варки, если варить один хрен все что есть.
Принцип :

while CheckItemCount(6013) > 10 do begin // проверяем что в инвентаре более 10 шардов
либо выбором строчек, либо байпассами варим мун дасты

Затем проверка снова что пока мун дастов > 10 - варим лунреагент

Дальше проверяем, например, что в инвентаре больше 10 магма дастов и варим фаер эссенс пока они не закончатся

while CheckItemCount(6022) > 10 do begin

 

Ну и так далее, сколько хотите варить реагентов - столько проверок на их количество, в более сложном варианте можно проверять наличие обоих реагентов для варки:

//Hellfire Oil (масло огня ада)
while (CheckItemCount(6028) and CheckItemCount(6031)) > 1 do begin
Delay(250);
Engine.DlgSel(1);
Delay(250);
Engine.DlgSel(13);
Delay(250);
Engine.DlgSel(1);
Delay(250);
Engine.DlgSel(5);
Delay(250);
Engine.DlgSel(1);
Delay(250);
Engine.DlgSel(1);
Delay(250);
Engine.DlgSel(1);
Delay(250);
end;

 

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

const Amount:integer = 90;        //Количество циклов варения
      Ingredient:String = 'Quest _373_SupplierOfReagents x_2_I_6015';   //ByPass ингредиента
      Catalyst:String = 'Quest _373_SupplierOfReagents x_1_I_6017';     //ByPass катализатора
      Temperature:String = 'Quest _373_SupplierOfReagents tmp_1';  //Температура
var   Current:integer;

procedure Step(Dlg1,Dlg2:integer; Dlg3:string);
begin
    Engine.DlgOpen;
    Delay(500);
    Engine.DlgSel(Dlg1);
    Delay(500);
    Engine.DlgSel(Dlg2);
    Delay(500);
    Engine.ByPassToServer(Dlg3);
    Delay(500);
end;

      
begin
    Engine.SetTarget(31149);
    Delay(500);
    for Current:=1 to Amount do begin
      Step(2,2,Ingredient);
      Step(2,3,Catalyst);
      Step(2,4,Temperature);
      Step(2,5,'');
    end;
end.

 

не работает второй ингредиент. скрипт его просто не ставит. 

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...