Перейти к содержимому

Фотография
- - - - -

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



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1
SARCAZM

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.
Сами настраиваете, кого и как убивать.
Ну и координаты можете поправить, я не знаю где там больше этих пауков.

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

Недолго тестировал, так что может работать не совсем правильно.

 

 

 

  • 1

#2
geas

geas

дело такое 2 раза нажимает а 3 раз когда подтвердить взятие квеста не берёт  :(


  • 0

#3
SDL

SDL
  • 38
    4
    Не выбрано
    • Lvl 22
    • Пользователь

geas, +1, та же ошибочка


  • 0

#4
hten

hten
  • 19
    1
    Не выбрано
    • Lvl 13
    • Пользователь

а если не берет квест это нужен  байпасс?


  • 0

#5
TECHNO

TECHNO

hten, в скрипте нету байпассов. 


  • 0

#6
ane13

ane13
  • 56
    16
    Не выбрано
    • Lvl 28
    • Пользователь

попробуйте увеличить делей до 1500-2000 например


  • 0



Темы с аналогичным тегами готовый скрипт

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Rawr.su - Сделано с для игроков.