Jump to content

Скрипт на сдачу квест итемов


Antiput

Recommended Posts

Попытался следуя гайду по написанию скриптов создать простенький скрипт что бы создавать скелеты по квесту грим коллектор (лоу квест в глудио)

Но ничего не работает. Посмотрите пожалуйста где я мог ошибиться.

Вот один вариант:

procedure Qw;
begin
    Engine.SetTarget(30342);
    Engine.DlgOpen();
    delay(1500);
    Engine.BypassToServer('npc_268471337_Quest');
    delay(1500);
    Engine.BypassToServer('Quest _325_GrimCollector varsak_q0325_03.htm');
    delay(1500);
end;

Вот второй вариант:

             procedure Qw;
begin
  Engine.SetTarget(30342);
  Engine.MoveToTarget(-20);
  delay(1500);
  Engine.DlgOpen;
  delay(1500);
  Engine.DlgSel(1);
  delay(1500);
  Engine.DlgSel(1);
  delay(1500);
end;

 

Link to comment
Share on other sites

Второй вариант можно без процедуры сделать.

Если без, то выглядеть будет примерно так:

begin
  Engine.SetTarget(30342); 
  delay(1500);
  Engine.DlgOpen;
  delay(1500);
  Engine.DlgSel(1);
  delay(1500);
  Engine.DlgSel(1);
  delay(1500);
end;

если с процедурой, то вот так:

procedure quest();
begin
  Engine.SetTarget(30342);
  delay(1500);
  Engine.DlgOpen;
  delay(1500);
  Engine.DlgSel(1);
  delay(1500);
  Engine.DlgSel(1);
  delay(1500);
end;

begin
  Script.NewThread(@quest);
end.

 

Edited by hanador2249
Link to comment
Share on other sites

Благодарствую за помощ!

Методом научного тыка получилось сделать рабочий скрипт:

 procedure quest();
begin
  Engine.SetTarget(30342);
  delay(1000);
  Engine.MoveToTarget(-20);
  delay(1000);
  Engine.DlgOpen;
  delay(1000);
  Engine.DlgSel(1);
  delay(1000);
  Engine.BypassToServer('Quest _325_GrimCollector varsak_q0325_03.htm');
  delay(1000);
end;

begin
  Script.NewThread(@quest);
end.

Сейчас пойду читать как его запустить по кругу с помощью цикла

Вот как вы советовали обернул квест через while:

 procedure quest();
while delay(1000) do begin;
  begin
    Engine.SetTarget(30342);
    delay(1000);
    Engine.MoveToTarget(-20);
    delay(1000);
    Engine.DlgOpen;
    delay(1000);
    Engine.DlgSel(1);
    delay(1000);
    Engine.BypassToServer('Quest _325_GrimCollector varsak_q0325_03.htm');
    delay(1000);
  end;

  begin
    Script.NewThread(@quest);
  end;
end.  

но такой вариант не работает. выдает ошибку прям на строчке с while

Link to comment
Share on other sites

On 02.12.2023 at 01:41, Antiput said:

Благодарствую за помощ!

Методом научного тыка получилось сделать рабочий скрипт:


 procedure quest();
begin
  Engine.SetTarget(30342);
  delay(1000);
  Engine.MoveToTarget(-20);
  delay(1000);
  Engine.DlgOpen;
  delay(1000);
  Engine.DlgSel(1);
  delay(1000);
  Engine.BypassToServer('Quest _325_GrimCollector varsak_q0325_03.htm');
  delay(1000);
end;

begin
  Script.NewThread(@quest);
end.

Сейчас пойду читать как его запустить по кругу с помощью цикла

Вот как вы советовали обернул квест через while:


 procedure quest();
while delay(1000) do begin;
  begin
    Engine.SetTarget(30342);
    delay(1000);
    Engine.MoveToTarget(-20);
    delay(1000);
    Engine.DlgOpen;
    delay(1000);
    Engine.DlgSel(1);
    delay(1000);
    Engine.BypassToServer('Quest _325_GrimCollector varsak_q0325_03.htm');
    delay(1000);
  end;

  begin
    Script.NewThread(@quest);
  end;
end.  

но такой вариант не работает. выдает ошибку прям на строчке с while

while delay(1000) do
  begin
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...