Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок
  • Загляните на рынок

    Там вы можете продать или купить
    Всё что касается игровых серверов

Вопрос

как отследить отрыт ли конкретный диалог с помощью waitUntil ?

idc диалога известен, комбинация waitUntil {uiSleep 1;isNil '!dialog 9783'}; не работает как следует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

1. Нахрена следить за тем открыт ли диалог??? - Если необходимо срабатывание какой то процедуры, или функции при открытии диалога, так и добавь в функцию открытия данного диалога эту самую процедуру, или функцию.

 

2. Можно добавить EH на открытие, закрытие диалога.

 

3. По отслеживанию, типа античита(примитивные пример) -

 

My_openDialog_100500 = false;
while {true} do
 {
   if !( isNull (findDisplay 100500) ) then
     {My_openDialog_100500 = true;}
   else
    {My_openDialog_100500 = false;};
   uiSleep 1;
 };

Ну и где то в скрипте, для которого слежение идет -

if (My_openDialog_100500) exitWith {....};

или

if (My_openDialog_100500) then {....};
Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


  • 0

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

1) тупо ждем переменную, пользователь жмет esc / enter - диалог офф, скрипт висит. блокировать клавиши накладно.

2) ждем закрытия диалога, предварительно указав дефолтное значение переменной-у игрока буквально несколько секунд изменить переменную.

---

хотелось бы все таки 2 вариант доработать, чтобы скрипт таки дожидался закрытия конкретного диалога...

Изменено пользователем svalom (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

1) тупо ждем переменную, пользователь жмет esc / enter - диалог офф, скрипт висит. блокировать клавиши накладно.

2) ждем закрытия диалога, предварительно указав дефолтное значение переменной-у игрока буквально несколько секунд изменить переменную.

---

хотелось бы все таки 2 вариант доработать, чтобы скрипт таки дожидался закрытия конкретного диалога...

wtf ?

Ты велосипед какой то изобретаешь -

Если в диалоге при нажатии какого то элемента должна быть переменная, то при нажатии и запускай скрипт, который "работает дальше"

 

Ты скрипт покажи, ибо 99.9% у тебя неверный подход к реализации, вот ты и изобретаешь велик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
dayz_selectRegion = 9;
createDialog "RscDisplaySpawnSelecter";
waitUntil {!isNil '!dialog'};
---
RscDisplaySpawnSelecter:
 
action = "closeDialog 0;dayz_selectRegion = 1;";
onMouseEnter = "ctrlSetFocus (_this select 0)";

---

Изменено пользователем svalom (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

 

dayz_selectRegion = 9;
createDialog "RscDisplaySpawnSelecter";
waitUntil {!isNil '!dialog'};
---
RscDisplaySpawnSelecter:
 
action = "closeDialog 0;dayz_selectRegion = 1;";
onMouseEnter = "ctrlSetFocus (_this select 0)";

---

Ну и зачем ждать закрытия диалога? Кусок какой то привел и все.....

По куску совершенно не понятно, зачем ты ждешь его закрытия?

И зачем странный обработчик onMouseEnter который сработает при попадании курсора на компонент? Клик не обработать?

 

Ты цель опиши. - можно своими словами, но достаточно внятно.

 

Ото открыл диалог назначив 9 в качестве спавна(рандом если не ошибаюсь) и зачем то сидишь ждешь его закрытия.

Если у тебя какой то велик и диалог висит 2-3 секунды а потом автоматически захлопывается, и ты так отслеживаешь выбор региона спавна, то наверное проще добавить переменную дополняющую регион.

При инициализации ставить ее в false, а при автозакрытии, или закрытии при наведении(маус_ентер) ставить в true

и ждать в скрипте спавна пока переменная не будет true

if EndSpawnSelect then

.....

Но это гадание - ты чотко поясни, что ты хочешь сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

выносить RscDisplaySpawnSelecter из конфига эпохи в мисиию-крайний вариант.

я лишь показал коды активации кнопок в диалоге RscDisplaySpawnSelecter -это то с чем придется работать скрипту- который открывает диалог RscDisplaySpawnSelecter и ждет конкретно закрытия диалога RscDisplaySpawnSelecter, для продолжения работы скрипта.

сам скрипт предварительно назначает значение переменной dayz_selectRegion = 9; заранее, даже если игрок ничего не выбрал и случайно захлопнул диалог RscDisplaySpawnSelecter.

покуда RscDisplaySpawnSelecter открыт-скрипт не должен продолжать выполняться в принципе, что и не работает во 2 примере выше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

выносить RscDisplaySpawnSelecter из конфига эпохи в мисиию-крайний вариант.

я лишь показал коды активации кнопок в диалоге RscDisplaySpawnSelecter -это то с чем придется работать скрипту- который открывает диалог RscDisplaySpawnSelecter и ждет конкретно закрытия диалога RscDisplaySpawnSelecter, для продолжения работы скрипта.

сам скрипт предварительно назначает значение переменной dayz_selectRegion = 9; заранее, даже если игрок ничего не выбрал и случайно захлопнул диалог RscDisplaySpawnSelecter.

покуда RscDisplaySpawnSelecter открыт-скрипт не должен продолжать выполняться в принципе, что и не работает во 2 примере выше.

Не совсем понял, ну да ладно -

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

 

Все это из-за нежелания вносить изменения в исходный скрипт который в дейз_коде - чтоб не переносить его в миску?

 

Ну тогда п.3 в сообщении выше - ищи ежесекундно idd диалога который тебе нужен и дальше как хочешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
createDialog "RscDisplaySpawnSelecter";
waitUntil {uiSleep 1;isNull (findDisplay 6903)};
systemchat '6903';

отлично работает, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...