Сообщения без ответов | Активные темы Текущее время: Ср ноя 21, 2018 3:18 pm



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

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 53
Сообщение Смена зоны
Подскажите пожалуйста какое сделать условие что бы персонаж ушел,
в саму процедуру входит, но невходит в
if not User.InZone and not Engine.LoadZone('Запретные Врата 60+')
т.к. мы уже находимся в загруженной зоне, но не в той которой надо, а из другой процедуры.

Код:
    //Прокачка 52-70
procedure exp52_70;
begin
   //Одеть Оружие
    dressWeapon;
   //Проверка на смерть
    heroDead;
   if not User.InZone and not Engine.LoadZone('Запретные Врата 60+') then
   begin
    if (User.Level >= 52) and (User.Level <= 70) then
      begin
        print('Level = ' + User.Level.ToString);
        print('Запретные Врата 60+');
        Engine.LoadZone('Запретные Врата 60+');
        moveToExpSpot52_70;
      end;
    end else
      begin
        Engine.FaceControl(0, true);
      end;
end;


Сб июн 30, 2018 8:11 am
Профиль ICQ
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 53
Сообщение Re: Смена зоны
вот самый короткий вопрос, как проверить загружена ли та или иная зона? для интерфейса


Сб июн 30, 2018 12:01 pm
Профиль ICQ
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 53
Сообщение Re: Смена зоны
по собственным тестам я понял что Engine.LoadZone не проверяется условием if а оно сразу срабатывает из тела условия что по сути бред, т.е. он у меня карту из условия подгружал. Кароче я не знаю как проверить подгружена ли та или иная зона . Ищу в информацию в скрипт мануале, пока ничего.


Сб июн 30, 2018 12:04 pm
Профиль ICQ
Куда я попал

Зарегистрирован: Чт мар 29, 2018 8:12 am
Сообщений: 48
Сообщение Re: Смена зоны
Цитата:
not Engine.LoadZone('Запретные Врата 60+')

Тут вернется false только если файл зоны не найден и т.п.

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


Сб июн 30, 2018 1:23 pm
Профиль WWW
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 53
Сообщение Re: Смена зоны
Krickt01 писал(а):
Цитата:
not Engine.LoadZone('Запретные Врата 60+')

Тут вернется false только если файл зоны не найден и т.п.

А каким путем можно мою задачу решить?


Сб июн 30, 2018 2:01 pm
Профиль ICQ
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 53
Сообщение Re: Смена зоны
Krickt01 писал(а):
Цитата:
not Engine.LoadZone('Запретные Врата 60+')

Тут вернется false только если файл зоны не найден и т.п.

Точнее я уже впринципе нашел решение но оно мне что то не нравится. Суть Решения это в процедуре постоянно подгружать зону по Уровню.


К примеру вот так, даже работает как надо, но незнаю насколько это верно и сильно ли грузит систему не понятно . т.к. постоянно подгрузка зоны идет
Код:
//Прокачка 52-60
procedure exp52_60;
begin
 
  print('Загрузка зоны - Поле Брани 52-60');
  Engine.LoadZone('Поле Брани 52-60');
  delay(1000);
 
  //Одеть Оружие
  dressWeapon;
  //Проверка на смерть
  heroDead;

   if not User.InZone then
   begin
    Engine.FaceControl(0, false);
    print('Level = ' + User.Level.ToString);
    if not User.InCombat then begin
      moveToExpSpot52_60;
      delay(5000);
    end else
    begin
      if (not User.Target.Dead) and (User.target <> nil) then
      begin
        Engine.Attack;
        delay(1000);
        print('Отбиваюсь');
      end;
      if (User.Target.Dead) and (User.target <> nil) then begin
        Engine.CancelTarget;
        delay(1000);
        print('Моб сдох сбросил Таргет');
      end; 
    end;
   end else
   begin
    Engine.FaceControl(0, true);
   end;
end;


Сб июн 30, 2018 2:04 pm
Профиль ICQ
Куда я попал

Зарегистрирован: Пт ноя 20, 2015 5:43 am
Сообщений: 53
Сообщение Re: Смена зоны
а эта процедура которую я скинул запускается в цикле

т.е. загрузка зоны получается каждые секунд 5 , ну в общем как в цикле срабатывает запуск данной процедуры в течении определенных лвлов.

Код:
//Запуск всех процедур.
begin
while (User.Level < 85) do
begin
    if (User.Level >= 40) and (User.Level < 52) then begin
      print('exp40_52');
      exp40_52;
      delay(5000);
    end;
    if (User.Level >= 52) and (User.Level < 60) then begin
      print('exp52_60');
      exp52_60;
      delay(5000);
    end;
    if (User.Level >= 60) and (User.Level < 70) then begin
      print('exp60_70');
      exp60_70;
      delay(5000);
    end;
end;
end.


Сб июн 30, 2018 2:11 pm
Профиль ICQ
Показать сообщения за:  Сортировать по:  
Ответить на тему   [ Сообщений: 7 ] 

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

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


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

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