Jump to content
Korean Random
ktulho

Статистика техники в ангаре. (XVM)

Recommended Posts

@ktulho 

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

"updateEvent": "PY(обработчик)",
"mouseEvents": { "mouseOver": "оver" },
"alpha": "{{py:highlight?100|0}}"  // показывать/скрывать при наведении на поле

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

----

и вроде спрашивали уже, сделать возможность плавного появления/затухания поля (анимации короче).

типо такого:

// время в мс
"updateEvent": "PY(анимация)",
"появление": 200,
"затухание": 200

надеюсь не сильно озадачил icon_redface.gif 

Share this post


Link to post

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

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


"updateEvent": "PY(обработчик)",
"mouseEvents": { "mouseOver": "оver" },
"alpha": "{{py:highlight?100|0}}"  // показывать/скрывать при наведении на поле

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

Не понял, этот как-нибудь относится к скрипту этой темы? Ты хочешь отображать экстраполя в ушах при наведении на них курсора мыши?

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

вроде спрашивали уже, сделать возможность плавного появления/затухания поля (анимации короче).

Не придумал, как это сделать универсально.

Share this post


Link to post

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

Не понял, этот как-нибудь относится к скрипту этой темы? Ты хочешь отображать экстраполя в ушах при наведении на них курсора мыши?

к скрипту никак не относится. Хочу скрывать одно экстраполе при наведении. Написано обработчик нужно привязывать с помощью функции as_callback(event_name), подумал что нужен отдельный скрипт и событие к нему...

1 час назад, ktulho сказал:

Не придумал, как это сделать универсально.

ага, значит этот момент у тебя на заметке. Тогда отлично, будем ждать.

Share this post


Link to post

Short link
Share on other sites
В 12.10.2018 в 08:43, HEKPOMAHT сказал:

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


"updateEvent": "PY(обработчик)",
"mouseEvents": { "mouseOver": "оver" },
"alpha": "{{py:highlight?100|0}}"  // показывать/скрывать при наведении на поле

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

 

Скрипт должен выглядеть примерно так:

from xvm_main.python.logger import *
from xfw_actionscript.python import *


highlight = None


def fildOver(data):
    global highlight
    highlight = 'over'
    as_event('ON_HIGHLIGHT')


def fildOut(data):
    global highlight
    highlight = None
    as_event('ON_HIGHLIGHT')


as_callback('fild_Over', fildOver)
as_callback('fild_Out', fildOut)


@xvm.export('highlight', deterministic=False)
def highlight():
    return highlight

В конфиге:

      { 
        "enabled": true,
        "updateEvent": "PY(ON_HIGHLIGHT)",
        "alpha": "{{py:highlight?100|0}}",
        .
        .
        .
        "mouseEvents": {"mouseOver": "fild_Over", "mouseOut": "fild_Out"}
      },

 

Макрос {{py:highlight}} - возвращает 'over', если курсор мыши наведен на поле, иначе пусто.

 

Работу скрипта не проверял.

Share this post


Link to post

Short link
Share on other sites

не работает - постоянно 100%

"test": {
  "updateEvent": "PY(ON_HIGHLIGHT)",
  "alpha": "{{py:highlight?50|100}}",
  "mouseEvents": { "mouseOver": "fild_Over", "mouseOut": "fild_Out" }, 			
  "x": 7, "y": 2, "bgColor": "0x000000", "width": 500, "height": 50,
  "format": "ТЕСТ ТЕСТ ТЕСТ"
},

highLight.py

Share this post


Link to post

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

@HEKPOMAHT В логах ничего нет?

проверял на реплее - ошибок нет совсем. Может в бою проверить?

Стой, в xvm есть

xvm.log

2018-10-20 12:06:01: [ERROR] Traceback (most recent call last):
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 156, in process_python_macro
    (func, deterministic) = get_function(arg)
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 147, in get_function
    (func, deterministic) = _container.get(func_name)
TypeError: 'NoneType' object is not iterable
arg='highlight'

 

Share this post


Link to post

Short link
Share on other sites

переписал название, всё ровно не работает

2018-10-20 12:44:13: [ERROR] Traceback (most recent call last):
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 127, in load_macros_lib
    code = load(file_name)
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 101, in load
    return parse(source, file_name)
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 91, in parse
    node = ast.parse(source)
  File "scripts/common/Lib/ast.py", line 37, in parse
  File "<unknown>", line 4
    highlight = None
              ^
SyntaxError: invalid syntax
2018-10-20 12:44:21: [ERROR] Traceback (most recent call last):
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 156, in process_python_macro
    (func, deterministic) = get_function(arg)
  File "res_mods/mods/xfw_packages\xvm_main\python\python_macro.py", line 147, in get_function
    (func, deterministic) = _container.get(func_name)
TypeError: 'NoneType' object is not iterable
arg='highlight'

 

----

вот он где был:

1791363116_--(63).thumb.png.fd9cfb9c3bb863d797a4a32e8e333a7f.png

удалил в редакторе, скопировал код - всё, теперь работает. Блин, гемор с этим символом...

----

выявил такую особенность:

1) фриз при наведении на поле

2) макрос {{tdb}} у всех игроков в ушах, после наведения мыши показывает кпд игрока (только когда дописано событие "PY(ON_HIGHLIGHT" )

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

@ktulho глянь выше, написал пару строк

Share this post


Link to post

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

выявил такую особенность:

1) фриз при наведении на поле

2) макрос {{tdb}} у всех игроков в ушах, после наведения мыши показывает кпд игрока (только когда дописано событие "PY(ON_HIGHLIGHT" )

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

А что тут смотреть? Все предсказуемо.

Share this post


Link to post

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

А что тут смотреть? Все предсказуемо.

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

Share this post


Link to post

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

т.е два совершенно разных поля в разных местах на экране должны срабатывать при наведении на одно из них?

Да. Именно об этом я и писал:

В 12.10.2018 в 19:35, ktulho сказал:

Не придумал, как это сделать универсально.

Распишу как это происходит на примере выше:

1) Наводишь курсор на поле.

2) Вызывается событие "mouseOver": "fild_Over", описанное в секции "mouseEvents" этого поля.

3) В скрипте вызывается функция привязанная к этому событию, в данном случае fildOver:

as_callback('fild_Over', fildOver)

4) В функции fildOver присваивается значение переменной highlight = 'over' и вызывается событие ON_HIGHLIGHT,  по которому обновляются все поля, где оно прописано:

def fildOver(data):
    global highlight
    highlight = 'over'
    as_event('ON_HIGHLIGHT')

 

  • Upvote 1

Share this post


Link to post

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

Именно об этом я и писал:

нет, ты писал об плавном затухании.

а про обработчик только уточнил, что именно я хочу сделать.

ответ после цитаты относится именно к этой цитате, я правильно понимаю? Почему я собственно и про обработчик напомнил.

Share this post


Link to post

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

нет, ты писал об плавном затухании.

Там тоже самое.

Share this post


Link to post

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

Там тоже самое.

вот теперь стало на свои места 

тогда всё, ждём прихода светлых мыслей :hmm:

Share this post


Link to post

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

тогда всё, ждём прихода светлых мыслей

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

ON_HIGHLIGHT1, ON_HIGHLIGHT2 и т.д.

highlight1, highlight1 и т.д.

fild_Over1, fild_Over2 и т.д.

и т.д.

Share this post


Link to post

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

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

так я это заметил случайно и как бы для меня это проблемой не является, так как хотел применить только в одном месте. Важных в моём отчёте только первых два пункта: фриз и влияние события на макросы xvm (этот даже важнее). Почему у игроков обеих команд сбиваются данные (появляются мой кпд)?

Share this post


Link to post

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

фриз

Тебе же sirmax уже где-то писал, что обновление в ушах это тяжёлая операция. У тебя каждый раз обновляется по 15 строк в каждом ухе.

Share this post


Link to post

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

Тебе же sirmax уже где-то писал, что обновление в ушах это тяжёлая операция. У тебя каждый раз обновляется по 15 строк в каждом ухе.

да, я помню:

В 28.05.2018 в 22:26, sirmax сказал:

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

 

но это касалось макроса {{py:isBattle}}

выходит в ушах и не надо с событиями поля создавать.

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.
Note: Your post will require moderator approval before it will be visible.

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...