Сообщения без ответов | Активные темы Текущее время: Пн дек 10, 2018 6:31 pm



Ответить на тему  [ Сообщений: 3 ] 
Проверка на зону 
Автор Сообщение
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 54
Сообщение Проверка на зону
Подскажите пожалуйста, пишу скрипт прокачки в разных зонах в зависимости от уровня.
Подскажите как бы сделать более стабильно проверку находится персонаж в зоне или нет.

Щас покажу как реализовал я, но судя по принтам там что то не совсем верно.
Делал проверку с помощью
Код:
 if not User.InZone then begin

к примеру вот такая процедура
Код:
//Прокачка 40-55
procedure exp40_55;
begin
  //Одеть Оружие
    dressWeapon;
   //Проверка на смерть
    heroDead;
   if not User.InZone then
   begin
    if (User.Level >= 40) and (User.Level < 55) then
      begin
        print('Level = ' + User.Level.ToString);
        print('Крума 3 этаж');
        Engine.LoadZone('Крума 3 этаж');
        moveToExpSpot40_55;
        delay(5000);
      end;
    end else
      begin
        Engine.FaceControl(0, true);
      end;
end;


Мол если не в зоне потом проверка на лвл, (это на случай смены зон в промежутке данного лвла)
Если не в зоне то запускаем процедуру дойти до спота в моем случае следает такая

Код:
   //Бежать на Спот 40-55
procedure moveToExpSpot40_55;
begin
  if not User.InRange(тут координаты) then
  begin
    Engine.UseItem(ТП);
    delay(15000);
  end else
  begin
    Engine.SetTarget(НПЦ);
    Engine.DlgOpen;
    Engine.DlgSel(2);
    delay(5000);
  end;
  if User.InRange(тут координаты) then
  begin
    if not User.Buffs.ByID(ид баффа, buff) or (buff.EndTime<600000) then
    begin
      print('Бафф');
      heroBuff;
      delay(2000);
    end else
    begin
    print('Пару шагов до спота');
    Engine.MoveTo(тут координаты);
    Engine.MoveTo(тут координаты);
    Engine.MoveTo(тут координаты);
    end;
  end;
end;


так вот дело в том что иногда время от времени он запускает произвольно , я не выявил почему процедуру
Код:
procedure exp40_55;


Из зоны бот не выбегает.

вижу в чате принты
Код:
print('Level = ' + User.Level.ToString);
print('Крума 3 этаж');


Может кто подсказать в чем проблема, или как более умно сделать условия, т.к. я в боте недавно, но с программированием знаком.
Последнее время я зачастил с темами, извиняюсь.


Чт июн 28, 2018 4:49 pm
Профиль ICQ
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 54
Сообщение Re: Проверка на зону
от баффа не зависит, бафф находится в альт б, и тут бафф в пути написан для того что бы дойти до спота через мобов и что бы они тебя не убили, а как доходит он отбивается уже через интерфейс, и тп тут не просто сое а конкретно в определенную территорию. сама логика как дойти до спота считаю верна, а вот условия для procedure exp40_55; по моему сомнительные если работают не стабильно...

Хотелось бы узнать как эту задачу решают знатоки . Надеюсь вам моя мысль ясна.


Чт июн 28, 2018 5:01 pm
Профиль ICQ
Куда я попал

Зарегистрирован: Чт мар 29, 2018 8:12 am
Сообщений: 48
Сообщение Re: Проверка на зону
Знатоки добавляют логи, которые скажут, какое из условий привело к неправильной работе.

_________________
Оказываю помощь бесплатно только публично на форуме, цените свои и мое время.
AdrenalineScript.com - премиум плагины и скрипты


Чт июн 28, 2018 5:59 pm
Профиль WWW
Показать сообщения за:  Сортировать по:  
Ответить на тему   [ Сообщений: 3 ] 

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Разработано: g-yar.
Русская поддержка phpBB