Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
svalom

Отследить открытый диалог

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

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

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 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 {....};
Edited by NoNameUltima (see edit history)

Share this post


Link to post
Share on other sites



  • 0

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

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

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

---

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

Edited by svalom (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

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

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

---

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

wtf ?

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

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

 

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

Share this post


Link to post
Share on other sites
  • 0
dayz_selectRegion = 9;
createDialog "RscDisplaySpawnSelecter";
waitUntil {!isNil '!dialog'};
---
RscDisplaySpawnSelecter:
 
action = "closeDialog 0;dayz_selectRegion = 1;";
onMouseEnter = "ctrlSetFocus (_this select 0)";

---

Edited by svalom (see edit history)

Share this post


Link to post
Share on other sites
  • 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

.....

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

Share this post


Link to post
Share on other sites
  • 0

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

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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

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

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

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

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

 

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

 

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

Share this post


Link to post
Share on other sites
  • 0
createDialog "RscDisplaySpawnSelecter";
waitUntil {uiSleep 1;isNull (findDisplay 6903)};
systemchat '6903';

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.