Jump to content
Korean Random
ktulho

Сборник py_macro

Recommended Posts

6 минут назад, ktulho сказал:

Обновил в шапке скрипт timerEvents.py.

фух, работает :swt3:

Меня уже если честно говоря колотун брал, когда в ангар заходил для проверки :heh:

----

а для теста боевой части у меня уже терпенья осталось.

... осталось очень мало, если не сказать не осталось совсем.

Share this post


Link to post

Short link
Share on other sites

@ktulho если закрыть клиент после начала боя и снова зайти, событие для {{py:isBattle}} обновляет поле или без обновления поля возвращает battle?

Share this post


Link to post

Short link
Share on other sites

@HEKPOMAHT Мне кажется, что ты не совсем правильно понимаешь как это работает. 

Попробую разъяснить на примере {{py:isBattle}}  и PY(ON_BEGIN_BATTLE):

1) где-то в скрипте мы узнаем, что начался бой;

2) изменяем в этот момент значение, которое возвращает макрос  {{py:isBattle}}, но на экране после этого ничего не измениться, пока не обновиться extraFields, в котором используется данный макрос;

3) чтобы обновить extraFields, в котором используется данный макрос, посылаем в XVM событие ON_BEGIN_BATTLE;

4) XVM просматривает во всех extraFields параметр "updateEvent" на наличие PY(ON_BEGIN_BATTLE);

5) если в extraFields есть PY(ON_BEGIN_BATTLE), то обновляются все параметры данного поля (кроме "enabled"), то есть ВСЕ макросы данного поля возвращают свое текущее значение, в том числе и {{py:isBattle}}.

 

В момент в хода в бой (когда прорисовывается интерфейс) обновляются все поля.

 

Отсюда вывод:

14 часов назад, HEKPOMAHT сказал:

событие для {{py:isBattle}} обновляет поле

Да, событие PY(ON_BEGIN_BATTLE) обновляет поле, и неважно есть в нем макрос {{py:isBattle}} или нет.

 

14 часов назад, HEKPOMAHT сказал:

если закрыть клиент после начала боя и снова зайти, ... без обновления поля возвращает battle?

Да, потому что:

Цитата

В момент в хода в бой (когда прорисовывается интерфейс) обновляются все поля.

 

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites

@ktulho начало боя не обсуждаем - там всё ясно. Если после повторного входа в бой должны обновляться поля - не понятно почему не срабатывает анимация на картинку - висит статичная. Если просто начало боя - то работает как положено.

либо опять же, пробовать заменить метод.

----

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

----

у меня вчера была мысль, можно ли сделать, чтобы помимо самого момента начала боя событие PY(ON_BEGIN_BATTL) ещё один раз обновляло поле закрытия клиента и повторного захода в бой.

35 минут назад, HEKPOMAHT сказал:

не понятно почему не срабатывает

сам и отвечу - поле обновляется не по событию.

Share this post


Link to post

Short link
Share on other sites
2 часа назад, HEKPOMAHT сказал:

закрытия клиента и повторного захода в бой.

Кроме тебя, никто не закрывает и не открывает клиент во время боя.

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites
16 минут назад, ktulho сказал:

Кроме тебя, никто не закрывает и не открывает клиент во время боя.

кроме меня тут много кто вообще ничего не делает, даже не пытаются вникнуть в элементарные вещи :ohmy:

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

Share this post


Link to post

Short link
Share on other sites

@ktulho зайду с другой стороны: можно ли его изменить, чтобы оно посылалось во время входа в бой после закрытия клиента?

* и ещё посылалось

Share this post


Link to post

Short link
Share on other sites
Только что, HEKPOMAHT сказал:

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

Отвечу с другой стороны: Событие PY(ON_BEGIN_BATTL) посылается когда бы ты не зашел в бой.

Share this post


Link to post

Short link
Share on other sites

@ktulho если не срабатывает анимация после закрытия клиента и повторного захода в бой, значит что-то не то. Ладно, буду смотреть, может что другое придумаю, может использовать {{py:xvm.leftTime(x)}}. А так оставлять не вариант. Намеренно из боя ни кто не выходит, но если такое у кого приключится - будет висеть текст до конца боя... нужно переделывать.

Share this post


Link to post

Short link
Share on other sites
18 минут назад, HEKPOMAHT сказал:

Ладно, буду смотреть, может что другое придумаю, может использовать {{py:xvm.leftTime(x)}}.

Интересно, как этот макрос тебе поможет тебе?

18 минут назад, HEKPOMAHT сказал:

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

И не поспоришь, нужно переделывать.

 

Edited by ktulho

Share this post


Link to post

Short link
Share on other sites
41 минуту назад, ktulho сказал:

Интересно, как этот макрос тебе поможет тебе?

а я ещё прошлый раз (давно когда-то хотел испробовать) толку от него не добился. Думал возобновить попытку.

 

30 минут назад, ktulho сказал:

реплей, который начинается с середины боя

в середине боя.wotreplay

Share this post


Link to post

Short link
Share on other sites

@ktulho не знаю, имеет ли это значение, но сравнительно недавно заметил что у PreBattleTimer в бою нет 29, а щелчок на значение есть. Как я понял данные скрипт "начало боя" из него берёт.

Share this post


Link to post

Short link
Share on other sites
2 минуты назад, HEKPOMAHT сказал:

@ktulho не знаю, имеет ли это значение, но сравнительно недавно заметил что у PreBattleTimer в бою нет 29, а щелчок на значение есть. Как я понял данные скрипт "начало боя" из него берёт.

Ничего не понял. Но скорее всего это не имеет ни какого значения.

Если ты об этом:

4 часа назад, HEKPOMAHT сказал:

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

то проблема в том, что когда ты заходишь в бой, событие PY(ON_BEGIN_BATTLE) посылается гораздо раньше (у меня на 3 секунды раньше), чем отрисовываются  extraFields.

Share this post


Link to post

Short link
Share on other sites
2 минуты назад, ktulho сказал:

Ничего не понял. Но скорее всего это не имеет ни какого значения.

да, выходит что не имеет. Пусть тогда для информации будет: {{py:xvm.secondsBT}} в текущем патче после "ожидания игроков" начинает отсчёт не с 29, а с 28 (тест на ссд). Причём сравнение с 29 возвращает пусто. А на реплее норм.

7 минут назад, ktulho сказал:

проблема в том, что когда ты заходишь в бой, событие PY(ON_BEGIN_BATTLE) посылается гораздо раньше

вот вот, я про это изначально и спрашивал

Share this post


Link to post

Short link
Share on other sites

@HEKPOMAHT Вообще я надеялся, что сработает такая конструкция:

    "test1": {
        "updateEvent": "PY(ON_BEGIN_BATTLE)",
        "tweens": [
          [ "fromTo", 1, { "alpha": 1 }, { "alpha": 0 } ]
        ],
        "alpha": "{{py:isBattle?0|100}}",
        "format": "ЖДЁМ"
    },

Но видимо макросы "обновляют" параметры позже, чем tweens. Может @sirmax сможет что-то сделать, а может и это заодно заработает.

Share this post


Link to post

Short link
Share on other sites
18 минут назад, ktulho сказал:

Вообще я надеялся, что сработает такая конструкция

уже с год уже как работает: https://koreanrandom.com/forum/topic/36869-battletimer-средствами-xvm/?do=findComment&comment=449449 :blink:

----

я хотел сделал для "Начало боя" ролик 1-2 сек на затухание отдельным полем, как это было во флэше клиента. То есть не резко пропадает (как в том примере), а затухает.

"updateEvent": "PY(ON_BEGIN_BATTLE)",
"tweens": [ [ "delay", 1 ], [ "to", 2, { "alpha": 0 } ] ],
"format": "{{py:isBattle?{{l10n:Battle starts}}}}"

если сразу войти в бой то норм, если после закрытия, то текст висит. Как мы выяснили, потому что событие посылается раньше.

Я устроил эту чехарду именно из-за этого двух секундного хвостика. Да оно может и тог не стоит, но всё-таки :hmm:

----

вот вот - резко пропадает как прикреплённой gif анимации примера.

Share this post


Link to post

Short link
Share on other sites
1 минуту назад, HEKPOMAHT сказал:

уже с год уже как работает:

Что работает? Мы же про tweens говорим.

 

 

Share this post


Link to post

Short link
Share on other sites
2 минуты назад, ktulho сказал:

Что работает? Мы же про tweens говорим.

то что до начала боя всё работает. Если ты указал {{py:isBattle?0|100}} то после начала боя согласно макроса поле будет скрыто. 

а нужно наоборот  {{py:isBattle?100|0}} чтобы в начале боя было 100 в течении 2-3 сек по анимации.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...