Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Квест Collector's Dream (Мечта коллекционера)

SARCAZM

Это что за покемон?
Команда форума
Рег
5 Июн 2015
Сообщения
1,446
Реакции
1
Trovo
SARCAZM
Код:
function CheckItemCount (const itemID: Integer; const questItem: Boolean = False) : Integer;
var tempItem: TL2Item;
begin
   if questItem then Inventory.Quest.ByID(itemID, tempItem)
   else Inventory.User.ByID(itemID, tempItem);
   Result := tempItem.Count;
end;

function UserInTown : Boolean;
begin
   Result := User.InRange(45752, 49768, -3056, 3000, 300);
end;

function mobsAttacking : Boolean;
var i, n: Integer;
begin
   n := 0;
    for i := 0 to NpcList.Count - 1 do
      if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc(n);

   Result := n > 0;
end;

procedure MoveToSpot;
begin
   Engine.MoveTo(43784, 50248, -3056);
   Engine.MoveTo(42920, 51256, -2992);
   Engine.MoveTo(39688, 53496, -3408);
   Engine.MoveTo(37080, 53864, -3616);
   Engine.MoveTo(33512, 52728, -3712);
   Engine.MoveTo(30216, 51528, -3728);
   Engine.MoveTo(28296, 52616, -3568);
   Engine.MoveTo(26344, 53896, -3456);
   Engine.MoveTo(23816, 54184, -3616);
   Engine.MoveTo(20680, 54936, -3552);
   Engine.MoveTo(18232, 54984, -3680);
   
   Engine.FaceControl(1, True);
end;

procedure MoveToTown;
begin
   Engine.FaceControl(1, False);
   
   if User.Dead then begin
      Engine.GoHome;
      
      while not UserInTown do 
         delay(3000);
   end
   else begin
      Engine.MoveTo(20680, 54936, -3552);
      Engine.MoveTo(23816, 54184, -3616);
      Engine.MoveTo(26344, 53896, -3456);
      Engine.MoveTo(28296, 52616, -3568);
      Engine.MoveTo(30216, 51528, -3728);
      Engine.MoveTo(33512, 52728, -3712);
      Engine.MoveTo(37080, 53864, -3616);
      Engine.MoveTo(39688, 53496, -3408);
      Engine.MoveTo(42920, 51256, -2992);
      Engine.MoveTo(43784, 50248, -3056);
      Engine.MoveTo(45864, 50776, -3056);
   end;
   
   EndQuest;
   NewQuest;
end;

procedure EndQuest;
begin
   if Engine.QuestStatus(261, 2) then begin
      if not User.InRange(45864, 50776, -3056, 250, 150) then 
         Engine.MoveTo(45864, 50776, -3056);
      Engine.SetTarget(30222);
      Engine.DlgOpen();
      delay(1000);
      Engine.DlgSel(1);
      delay(1000);
   end;   
end;

procedure NewQuest;
begin
   if not Engine.QuestStatus(261, 1) then begin
      if not User.InRange(45864, 50776, -3056, 250, 150) then 
         Engine.MoveTo(45864, 50776, -3056);
      Engine.SetTarget(30222);
      Engine.DlgOpen();
      delay(1000);
      Engine.DlgSel(1);
      delay(1000);
      Engine.DlgSel(1);  
      delay(1000);
   end;
end;

begin

   if not Engine.LoadZone('QuestZone') then
      print('No Zone');
      
   Engine.FaceControl(1, False);
   Engine.FaceControl(0, True);
   
   while Engine.Status = lsOnline do begin                                                                     
   
      if UserInTown then begin
         EndQuest;
         NewQuest;
         MoveToSpot;
      end;
         
      while CheckItemCount(1087, True) < 8 do begin
         if User.Dead then begin
            delay(3000);
            MoveToTown;
            MoveToSpot;
         end;
         delay(2000);
      end;
      
      while not User.InRange(18232, 54984, -3680, 100, 100) do begin // пытаемся добежать до дороги

         if mobsAttacking then begin
            Engine.FaceControl(1, True);
         end
         else begin
            Engine.FaceControl(1, False);
            Engine.MoveTo(18232, 54984, -3680, 10);
         end;
         delay(500);
      end;
      
      MoveToTown;

   end;
   
end.



Желательно чтобы была зона охоты с названием QuestZone.
Сами настраиваете, кого и как убивать.
Ну и координаты можете поправить, я не знаю где там больше этих пауков.

Запускать в городе или в зоне охоты.

Недолго тестировал, так что может работать не совсем правильно.
 
дело такое 2 раза нажимает а 3 раз когда подтвердить взятие квеста не берёт :(
 
а если не берет квест это нужен байпасс?
 
попробуйте увеличить делей до 1500-2000 например
 
Назад
Сверху