Jump to content
Korean Random
wotunion

Кастомизируемые текстовые поля в окне боевого интерфейса

Опрос  

22 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

ну нет его ни в миникарте ни в ушах, нигде при работе с экстраполями...

 

Вот видите, можно и не использовать, если не хочется, но инструмент есть)

 

А если у вас будет десяток-другой полей и на всех по-умолчанию нужен шрифт "GF" 10 кегля?

 

 

Ну и для альфы тогда уж сразу.

Альфа для шрифта скорее всего нереализуема 

 

 

Более гибко через отдельный макрос для цвета.
 

Да нет проблем,

 

Поддерживается такая идея?

 

 

так он же по умолчанию таков
 

Тьфу, сори)

Edited by wotunion
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Вот видите, можно и не использовать, если не хочется, но инструмент есть) 

А если у вас будет десяток-другой полей и на всех по-умолчанию нужен шрифт "GF" 10 кегля?

возможно тогда и пригодится:)
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

нет проблем

с картинками как-то так получается:

'скрин'

вот с таким кодом (координаты и размер картинки идентичны)

post-24956-0-13481800-1460390498_thumb.png

 

видим это

post-24956-0-76750200-1460390498.png

 

что-то с отступами не так ))

обратите внимание на зазор между нижней частью экрана и картинкой - доступными параметрами форматирования он никак не убирается

Share this post


Link to post

Short link
Share on other sites

Это у лейера такой отступ от as2, ставьте отрицательную координату у для поля

с картинками как-то так получается:

'скрин'

вот с таким кодом (координаты и размер картинки идентичны)

attachicon.gif_shot_030.png

 

видим это

attachicon.gif_shot_031.png

 

что-то с отступами не так ))

обратите внимание на зазор между нижней частью экрана и картинкой - доступными параметрами форматирования он никак не убирается

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites
Кстати, плохо, что они цветное значение отдают. Более гибко через отдельный макрос для цвета.

А разве секция "winChance" в colors.xc не для этого? Зачем еще один макрос, если, по идее, пороги задаем там

 

Это у лейера такой отступ от as2, ставьте отрицательную координату у для поля

И, как я понимаю, размеры поля = размеры картинки + 2рх по кругу? 

 

upd. проверил, при размерах картинки 100х100 надо размер поля задавать 104х104 (+ 2рх с каждой стороны)

 

@wotunion, по корректным значениям для "updateEvent" есть информация?  Очень нужен макрос/значение на уничтожение своего танка...

Edited by Kapany3uk

Share this post


Link to post

Short link
Share on other sites

Кстати, надо добавить макросы в macros.txt и macros_ru.txt, и обновить ChangeLog.


И, как я понимаю, размеры поля = размеры картинки + 2рх по кругу? 

Вот дока: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextLineMetrics.html

2px - это gutter.

Share this post


Link to post

Short link
Share on other sites

А если у вас будет десяток-другой полей и на всех по-умолчанию нужен шрифт "GF" 10 кегля?

а если вынести такую фичу для всего конфига в целом? кое-кто любит везде в интерфейсе менять шрифты на свои

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Кстати, надо добавить макросы в macros.txt и macros_ru.txt, и обновить ChangeLog.

 

Я обновил уже, файлы готовы для отправки:

 

+ ChangeLog-en.txt

+ ChangeLog-ru.txt

+ macros.txt

+ macros_ru.txt

+ Описание переменных для полей в нормальном виде

 

 

Как @wotunion зальет следующее изменение я следом пулл кину.

Edited by night_dragon_on
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Вот дока:
 вот бы еще по "updateEvent" так же :))

 

а если вынести такую фичу для всего конфига в целом?

вот и мы уже приходим к стилям (чем не введение css). Хотя в нашем случае достаточно, наверное, одной секции с параметрами шрифта, которые будут подставляться при отсутствии форматирования (замена текущим $FieldFont, size='13', color='#FFFFFF' и т.п.)

Share this post


Link to post

Short link
Share on other sites

а если вынести такую фичу для всего конфига в целом? кое-кто любит везде в интерфейсе менять шрифты на свои

будет попоболь ужасная с переделкой конфига.

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

 

А разве секция "winChance" в colors.xc не для этого? Зачем еще один макрос, если, по идее, пороги задаем там

так и сделал у себя

"formats":"<font face='GF' size='10' color='{{c:winChance}}'>{{chancesLive}}</font>"

@wotunion, дефолтная альфа смущает.. //"alpha": 50,

нельзя ли сделать 100 ?

Edited by goodman

Share this post


Link to post

Short link
Share on other sites

дефолтная альфа смущает.. //"alpha": 50,

Это не дефолтная альфа, а лишь описание параметра (было).

 

Кстати, надо добавить макросы в macros.txt и macros_ru.txt, и обновить ChangeLog

 

 

+ Обновлены секции в конфиге (по аналогии с миникартой):

battleLabels.xc > battleLabelsTemplates.xc
battleLabelsList.xc > battleLabels.xc

+ Добавлена дефолтная секция "winChance" - отображение шанса на победу

+ Обновлена документация

+ Новое описание к параметрам в полях:

 

    // --------------------------------------------------------------------- //
    // Set of formats fields available for configuring:
    // Набор форматов полей доступных для настройки:
    // --------------------------------------------------------------------- //
    // "enabled" - enable field switch: true or false
    // "updateEvent" - event on which field updates, use with dynamic macros (to disable define null value; allowed events: "ON_VECHICLE_DESTROYED") 
    // "x" - x position (macros allowed)
    // "y" - y position (macros allowed)
    // "width" - width (macros allowed)
    // "height" - height (macros allowed)
    // "alpha" - transparency in percents (0..100) (macros allowed)
    // "rotation" - rotation in degrees (0..360) (macros allowed)
    // "scaleX", "scaleY" - scaling (use negative values for mirroring)
    // "autoSize" - controls automatic sizing and alignment of text fields, "none" (default), "left", "right", "center"
    // "align" - horizontal alignment ("left", "center", "right")
    // "valign" - vertical alignment ("top", "center", "bottom")
    // "antiAliasType" - anti aliasing mode ("advanced" or "normal")
    // "background" - background switch: true or false
    // "bgColor" - if set, draw background with specified color (macros allowed)
    // "border" - border switch: true or false
    // "borderColor" - if set, draw border with specified color (macros allowed)
    // "shadow": {
    //   "distance" (in pixels)
    //   "angle"    (0.0 .. 360.0)
    //   "color"    "0xXXXXXX"
    //   "alpha"    (0.0 .. 1.0)
    //   "blur"     (0.0 .. 255.0)
    //   "strength" (0.0 .. 255.0)
    //  }
    // --------------------------------------------------------------------- //
    // Field default styles. It applies global style to html in "formats".
    // Note, that defined font attributes in "formats" override those in "currentFieldDefaultStyle"
    // Стандартный стиль поля. Применяет глобальный стиль HTML в "formats".
    // Обратите внимание, что определенные атрибуты шрифта в "formats" переопределяют "currentFieldDefaultStyle"
    // --------------------------------------------------------------------- //
    // "currentFieldDefaultStyle": { "name": "$FieldFont", "color": "0xFFFFFF", "size": 15, "align": "left", "bold": false, "italic": false, "display": "block", "leading": -5, "marginLeft": 2, "marginRight": 2 },
    //
    // "name": "$FieldFont",  // font name
    // "color": "0xFFFFFF",   // font color
    // "size": 15,            // font size
    // "align": "left",       // text alignment (left, center, right)
    // "bold": false,         // true - bold
    // "italic": false,       // true - italic
    // "display": "block",    // required for align to work
    // "leading": -5,         // space between lines, similarly (<textformat leading='-5'>...</textformat>)
    // "marginLeft": 2,       // indent left, similarly (<textformat lefMargin='2'>...</textformat>)
    // "marginRight": 2       // indent left, similarly (<textformat rightMargin='2'>...</textformat>)
    // --------------------------------------------------------------------- //
    // "formats" - displayed text field data (HTML allowed, macros allowed)
    // --------------------------------------------------------------------- //

 

Edited by night_dragon_on
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Кстати, надо добавить макросы в macros.txt и macros_ru.txt, и обновить ChangeLog.

 

night_dragon_on сделал пулл

 

 

а если вынести такую фичу для всего конфига в целом? кое-кто любит везде в интерфейсе менять шрифты на свои

 

реф делать для currentFieldDefaultStyle

 

 

дефолтная альфа

 

должна быть нулевой

 

 

по корректным значениям для "updateEvent" есть информация?  Очень нужен макрос/значение на уничтожение своего танка...

 

Постепенно будут добавляться макросы и события

 

 

Кстати, надо добавить макросы в macros.txt и macros_ru.txt, и обновить ChangeLog.

 

 

Как Вы видите создание макросов {{totalHpAlly}} и {{totalHpEnemy}}, с использованием питона (адаптация FragCorrelation.py), или все таки в чистом AS2 тоже можно

 

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

 

По сути, FragCorrelation.py уже готовый код

Edited by wotunion
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Как Вы видите создание макросов {{totalHpAlly}} и {{totalHpEnemy}}, с использованием питона (адаптация FragCorrelation.py), или все таки в чистом AS2 тоже можно

Лучше по возможности использовать питон.

Share this post


Link to post

Short link
Share on other sites
Лучше по возможности использовать питон.

 

del

 

 

Лучше по возможности использовать питон.

 

 

Наверное, оптимальный вариант, получать нужные значения в xvm.py и отдавать в BattleState

 

Здесь

movie.xvm_onBattleStateChanged(
            targets,
            state['playerName'],
            state['clanAbbrev'],
            state['playerId'],
            state['vId'],
            state['team'],
            state['squad'],
            state['dead'],
            state['curHealth'],
            state['maxHealth'],
            state['marksOnGun'],
            state['spotted'],
        )

Так логично, и в общей концепции

 

Или нет?

 

Вот что осталось от FragCorrelationPanel.py (только вычисляет тоталхп двух команд):

#####################################################################
# globals
teams_vehicles = [{}, {}]
teams_totalhp = [0, 0]
#####################################################################
# handlers

# show quantity of alive instead of dead in frags panel
# original idea/code by yaotzinv: http://forum.worldoftanks.ru/index.php?/topic/1339762-

@registerEvent(xvm_class, '_onVehicleKilled')
def xvm_onVehicleKilled(self, vID, *args, **kwargs):
    try:
        update_hp(vID, 0)
    except Exception, ex:
        err(traceback.format_exc())

@registerEvent(PlayerAvatar, 'updateVehicleHealth')
def setVehicleNewHealth(self, vehicleID, health, *args, **kwargs):
    try:
        update_hp(vehicleID, health)
    except Exception, ex:
        err(traceback.format_exc())

@registerEvent(xvm_class, 'initBattleSwf')
def initBattleSwf(self, *args, **kwargs):
    try: 
        for vID, vData in BigWorld.player().arena.vehicles.iteritems():
            update_hp(vID, vData['vehicleType'].maxHealth)
    except Exception, ex:
        err(traceback.format_exc())

@registerEvent(MarkersManager, 'addVehicleMarker')
def addVehicleMarker(self, vProxy, *args, **kwargs):
    try:
        update_hp(vProxy.id, vProxy.health)
    except Exception, ex:
        err(traceback.format_exc())

def update_hp(vID, hp, *args, **kwargs):
   
        if BigWorld.player().team == BigWorld.player().arena.vehicles[vID]['team']:
            team = 0
        else:
            team = 1

        teams_vehicles[team][vID] = max(hp, 0)
        teams_totalhp[team] = sum(teams_vehicles[team].values())
        
        print str(teams_totalhp[0]) + ' / ' + str(teams_totalhp[1]) 

 

Лог:

INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 25410
INFO: 24600 / 23805
INFO: 24600 / 23805
INFO: 22100 / 23805
INFO: 22100 / 23805
INFO: 22100 / 23410
INFO: 22100 / 22725
INFO: 22100 / 21463

Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

Подожди, я питоновские макросы сделаю.

Только послезавтра, 2 дня буду занят.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Подожди, я питоновские макросы сделаю. Только послезавтра, 2 дня буду занят.

 

 

Хорошо, я тогда сделаю для battleLabels автосоздание GlobalEventDispatcher.addEventListener  в зависимости от настроек полей (updateEvent) и подобавляю поддержку событий

 

 

 

 

 

 

Для общего обсуждения: нужно ли чтобы отдаваемые макросами {{chancesStatic}} и {{chancesLive}} значения предварительно не форматировались путем добавления цвета шрифта и знака '%' ?
Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

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

если пофантазировать еще дальше, то можно добавить для поля какой-то параметр типа hotKey: true/false, чтобы выбирать какие из полей показывать постоянно, а какие по хоткею. вот такая идея.


 

 

Для общего обсуждения: нужно ли чтобы отдаваемые макросами {{chancesStatic}} и {{chancesLive}} значения предварительно не форматировались путем добавления цвета шрифта и знака '%' ?
как по мне- не нужно, пусть отдает как обычно, уже форматированные 

Share this post


Link to post

Short link
Share on other sites

 

 

нужно ли чтобы отдаваемые макросами {{chancesStatic}} и {{chancesLive}} значения предварительно не форматировались путем добавления цвета шрифта и знака '%' ?
я хочу форматировать сам 

Share this post


Link to post

Short link
Share on other sites
я тут подумал, а неплохо было бы сделать возможность подсаживать эти поля на задаваемый хоткей

 

 

Оно уже в to do в шапке, кто-то говорил об этом

Edited by wotunion

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