Jump to content
Korean Random
sirmax

Расширенный формат макросов.

Recommended Posts

 

 

критику
 

Много красивых оборотов, мало дельных предложений. Бесполезное нытьё узнать не трудно, на что бы оно ни было направлено.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Проблемы с форматированием текста.

 

ratio  nick                                                    vehicle         hp  frags

  8% Имя_имя_имя                      Модель_танка     2343      2

93% Имя_имя                Модель_второго_танка         98      3

  8% Имя_имя_имя                      Модель_танка                   4                                             // этот - мертвый, в третьей графе пусто

93% Имя_имя                      Модель_еще_танка       358      

 

 

То есть, на псевдокоде это будет

"nickFormatLeft": "<колонка1><влево (40 символов в этой колонке)>первый символ - пробел, два символа{{ratio}}, {{имя игрока(не более 30 символов)}}</влево> </колонка1>",
"vehicleFormatLeft": "<вправо><вправо, не более 20 символов>{{модель танка}}</вправо, не более 20 символов>пробел   
                      <вправо, шириной 5 символов, заменить "0" на пробел>{{жизни}}</вправо, шириной 5 символов, заменить "0" на пробел>пробел пробел
                        <вправо, шириной 2 символа, заменить "0" на пробел> {{фраги}}</вправо, шириной 2 символа, заменить "0" на пробел></вправо>",
"fragsFormatLeft":  ""

Макросы hp и hp-max (от стороннего производителя) работают. Форматирование разваливается.

(1) Все попытки вразумить выражениями {{vehicle%-10.10s}}, {{vehicle%10.10s}}, <format align='right'> оленемер игнорирует.

(2) Оленемер упорно выводит 0hp для мертвого игрока. Как заставить оленемер выводить пробелы вместо 0, если игрок мертв? Без возможности выводить

{{alive? {{hp}}|    }} (ибо макрос в макросе) задача кажется нерешаемой.

(3) Отсутствует поддержка простейшего "если да, то макрос1, если нет, то макрос 2"

(4) Использовать макрос "fragsFormatLeft" мешает то, что размер этого поля всего 3 символа, а расположение этого поля проконтролировать не удается.

(5) Если какой-то параметр может быть 'null' или число (например, фраги), то форматирование держится до первого фрага. А потом имеем

 

8% Имя_имя_имя                        Модель_танка         2343hp         2
93% Имя_имя                          Модель_второго_танка               98hp

 

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

 

Если вы считаете, что все проблемы на стороне производителя макроса {{hp}}, то замените hp на кило-бои, но если килобоев  меньше 1, то пусть выводятся пробелы вместо нуля.

Share this post


Link to post

Short link
Share on other sites
(2) Оленемер упорно выводит 0hp для мертвого игрока. Как заставить оленемер выводить пробелы вместо 0, если игрок мертв? Без возможности выводить {{alive? {{hp}}|    }} (ибо макрос в макросе) задача кажется нерешаемой.

разве нельзя использовать для этого прозрачность?

"alpha": "{{alive?100|0}}" 

Да и для создания того что вам нужно лучше использовать расширенные поля.

Edited by Hawk1983x

Share this post


Link to post

Short link
Share on other sites

Так, почему здесь двойные кавычки, а не одинарные? ведь для цвета используется, например,  <font color='{{c:rating}}'>

Почему нельзя? Ну, во-первых, хотелось бы узнать стандартный метод. Мне не нравится индусский код, а прозрачность вместо if - это и есть индусский код. Индусский код плох хотя бы несовместимостью. Я альфу занял под эту фичу, у моего друга конфиг использует альфу под другие задачи. В результате, просто объединить конфиги нельзя, надо сначала хорошо потрахаться. Во-вторых, прозрачность я настроить не смог. Цвет работает на ура  (см выше), а вот прозрачность (правда, с одинарными ковычками) игнорируется.

Фошистов я не люблю, но вот немецкое качество уважаю. СССР со своим "на коленке" выиграли войну (спасибо дедам за победу), но в мирное время хотелось бы действовать более стандартно.

 

Для использования расширенных полей нужны две вещи.

Во-первых, у меня не работает альфа в формате "bla_bla_bla_Format":

"bla_bla_bla_Format": "<font alpha='{{alive?100|0}}'>print something </font>",
"bla_bla_bla_Format": "<font alpha='{{alive?100|1}}'>print something </font>",

То есть, альфа тупо игнорируется.

Во-вторых, я не умею форматировать из:

"<font alpha='{{alive?100|0}}'>print something </font>",

В

bla_bla_bla : {
["alpha": "{{alive?100|0}}" ...] format (не помню)]
},

По каким правилам делается это преобразование?

 

 

ПС. Потратил несколько дней и заработал несколько лямов серебра (на ис-6), пытаясь научиться форматировать методом тыка. Грозит бат за "ботоводство", хотя ботоводство и дебаггинг - вещи разные. Это, естественно, меня беспокоит и ответы вроде "как-то так, попробуй, подбери - надеюсь, получится" мне сейчас не помогут. Комментарий вроде "попробуй вот эту строчку кода" будет намного более ценным.

Edited by stepan.wot

Share this post


Link to post

Short link
Share on other sites
ПС. Потратил несколько дней и заработал несколько лямов серебра (на ис-6), пытаясь научиться форматировать методом тыка. Грозит бат за "ботоводство", хотя ботоводство и дебаггинг - вещи разные. Это, естественно, меня беспокоит и ответы вроде "как-то так, попробуй, подбери - надеюсь, получится" мне сейчас не помогут. Комментарий вроде "попробуй вот эту строчку кода" будет намного более ценным.

ну поиск не помогает, дефолтный конфиг(+, + )не пробовали смотреть, конфиги других пользователей? 

 

Повторюсь еще раз, то что вы хотите сделать возможно с использованием расширенных полей, со стандартными полями слишком много возни(табстопы, моноширинные шрифты и т.д.). 

Вот пример для вывода хп:

{ "x": 35, "y": 0.3, "align": "center", "valign": "center", "format": "<b><font color='{{squad?#EAB300|#ffffff}}' face='a_RubricaCn' size='12'><b>{{hp%4.4s|----}}/{{hp-max%-4.4s|----}}</b></font>", "alpha": "{{alive?100|0}}", "shadow": { } },
Edited by Hawk1983x

Share this post


Link to post

Short link
Share on other sites

Во-вторых, я не умею форматировать из:

"<font alpha='{{alive?100|0}}'>print something </font>",

В

bla_bla_bla : {
["alpha": "{{alive?100|0}}" ...] format (не помню)]
},

По каким правилам делается это преобразование?

Это формат дополнительных полей. Откройте дефолтный playersPanel.xc и почитайте комменты

 

 и ответы вроде "как-то так, попробуй, подбери - надеюсь, получится" мне сейчас не помогут. Комментарий вроде "попробуй вот эту строчку кода" будет намного более ценным.

А хлебушек за Вас тоже кто-то жуёт?

Для такого подхода на форуме есть спец. тема: http://www.koreanrandom.com/forum/topic/1388-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BD%D0%B0-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D0%BE%D0%B2-%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8-%D0%BF%D0%BE/

Тут Вам уже на 2 страницы накомментировали

 

ПС. Потратил несколько дней и заработал несколько лямов серебра (на ис-6), пытаясь научиться форматировать методом тыка. Грозит бат за "ботоводство", хотя ботоводство и дебаггинг - вещи разные.

Зачем? Всё можно на реплее проверить

Edited by leecher88

Share this post


Link to post

Short link
Share on other sites
Проблема актуальна?

Последние ночники не проверял еще. Но в релизной версии все так же- нули появляются после смерти.

Edited by EXPROMT_MAX

Share this post


Link to post

Short link
Share on other sites

 

 

разве нельзя использовать для этого прозрачность?

Нельзя. Попробуйте. Будет отображаться серый нолик. Можно использовать <font size='1'>, но "так верстают только ..." как бы говорит нам Тема Лебедев. Вроде бы можно использовать прозрачнось=1  (со слов leecher88 в ветке "Синтаксис. Использование переменных"). Не знаю, не пробовал, но Лебедев опять плачет кровавыми слезами.

 

 

 

ну поиск не помогает, дефолтный конфиг(+, + )не пробовали смотреть, конфиги других пользователей?

Я начинал с дефолтного конфига и пытался "доработать напильником".  К сожалению, внесение минимальных изменений ломает форматирование напрочь. Конфиги других пользователей могли бы быть очень полезными. Только как вести направленный поиск нужного конфига? Методом проб и ошибок пересмотреть конфиги сотен игроков (большинство конфигов будут отличаться лишь тем, как называются слабый и сильный игрок) - метод очень медленный. А другого способа я не вижу.

 

extraFields оказались очень полезными. Прозрачность не работала в других полях, а в extraFields сработала, и это радует. Но где бы посмотреть примеры настройки этих extraFields?

Расскажите, например, пожалуйста, как сделать

 

"extraFieldsLeft": [
  {у по центру. Начиная с третьего пикселя по х, <шрифт выровнять направо>вывести здоровье танка (пусть у мертвого танка будет "0" - не до частностей) </шрифт>

  },

  {у по центру. Начиная с 50 пикселя по х, <шрифт выровнять налево>вывести название танка </шрифт>

   }

  ],

 

ПС,

получается, что я дареному коню в зубы смотрю... xvm - вещь очень полезная. Спасибо за разработку, бесплатность, техподдержку и помощь.  Просто непривычно, что ни html форматирование, ни переменные внутри макросов не работают. Причем, не ясно, связаны ли проблемы с xvm или с вг (я так понимаю, что те же extraFields пришлось вводить дабы обойти ВГшные косяки.

Share this post


Link to post

Short link
Share on other sites
Это формат дополнительных полей. Откройте дефолтный playersPanel.xc и почитайте комменты

 

Но где бы посмотреть примеры настройки этих extraFields?

не знаю поможет вам или нет,но вот мой пример ушей через экстраполя:playersPanel.xc

post-8744-0-91942800-1406358909_thumb.jpg
Edited by Hawk1983x

Share this post


Link to post

Short link
Share on other sites
вот мой пример ушей через экстраполя

Спасибо, посмотрел, интересно. Особенно то, что bg{{alive|dead}}.png срабатывает. Это уже практически полноценный if (под полноценным я подразумеваю "позволяет обходным путем получить макрос в макросе"). Странно, что у Вас выключен "enemySpottedMarker". Вы его выключили, потому что "почти чит" или потому что "бесполезен"?

 

Кстати, какой макрос использовать, чтобы открыть картинку .\{{уровень_моего_танчика}}_{{уровень_танчика_данного игрока}}.png?

Грубо говоря, я хочу создать пачку файлов формата 1_1.png, 1_2.png, 3_1.png, ...2_1.png, 2_2.png, ... 10_9.png, 10_10.png в которых будут пиктограммы, отображающие разность уровней, вместо абсолютного уровня. То есть, если мой танк 8 уровня, а его танк 6го уровня, то будет отображена картинка 8_6.png, содержащая изображение "-2", либо "младшекласник", а если и я и другой игрок оба на танках 9го уровня, то будет "=", "однокласник" или еще что-то в этом духе. Налепить таких картинок - дело 15 минут. Их всего-то 10*10=100 штук будет, а уникальных картинок - всего семь ("<-2", "-2", "-1", "=", "+1", "+2", ">2"). {{уровень_танчика_данного игрока}} это просто {{level}}. Как на счет \{{уровень_моего_танчика}} в поле ушей другого игрока?

Edited by stepan.wot

Share this post


Link to post

Short link
Share on other sites

 

 

Вы его выключили, потому что "почти чит" или потому что "бесполезен"?
возможно потому, что в поле "none" эта функция всё равно не работает, у этого поля неполный функционал ушей 

Share this post


Link to post

Short link
Share on other sites
возможно потому, что в поле "none" эта функция всё равно не работает, у этого поля неполный функционал ушей

ну и он действительно бесполезен=)

я чаще смотрю на миникарту чем в уши 
Edited by Hawk1983x

Share this post


Link to post

Short link
Share on other sites

ну и он действительно бесполезен=)

он чисто декоративен, впрочем, это отличное подспорье для творчества )

Share this post


Link to post

Short link
Share on other sites

ну и он действительно бесполезен=) 

ну это всё субъективно, кому как:) оффтоп впрочем:)

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

 

Действительно бесполезен

Каждому - свое. На мой взгляд, полезнейшая вещь. Если Вы вдвоем с напарником перестреливаетесь с тремя противниками с полминуты, а в засвете больше никого из противников не было, то это значит что Вы на самой передовой, остальные игроки заседают в кустах да на второй линии. Нужно быть осторожнее и отойти к своим. Заодно глянуть на миникарту, может, какой-то фланг оставили открытым. Можно, конечно, как тот внимательный мальчик, все запоминать (http://bash.im/quote/403610), но проще глянуть на маркеры. Повторюсь, имхо.

Share this post


Link to post

Short link
Share on other sites

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

 

"extraFieldsRight": [
        {img src='xvmres://icons/{{my_level}}_{{level}}.png' width='15' height='15'}
      ]

 

А в папку эконок накидать картинок с названиями вида 10_9.png, 10_8.png, 9_10.png, etc

Можно ли это сделать в нынешнем xvm?

Share this post


Link to post

Short link
Share on other sites

 

 

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

конкретно твоего нет
а так есть
{{level}}       - уровень танка арабскими цифрами
{{rlevel}}      - уровень танка римскими цифрами

Share this post


Link to post

Short link
Share on other sites

Есть какой-нибудь обходной путь? Кроме "создай 10 папок с картинками 10\10.png, 10\9.png,... 9\10.png, при заходе в игру перегружай оленемер с нужной тебе папкой."


И еще. А есть ли возможность прибить к оленемеру циклы и переменные? тогда это будет полноценный язык программирования. Глядишь, и пользователи что-нибудь полезное сделают. Проект открытый, делиться принято...

 

Или ца игры в которой первые 5 запросов выдают видеогайды (а не текст) не может быть умной и креативной по определению?..

 

ПС. Я в курсе, что можно собрать свой xvm c игрищами и блудницами, но тогда портирование своего конфига будет проблемой.

Edited by stepan.wot

Share this post


Link to post

Short link
Share on other sites

 

 

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

вот полный список маросов 

 

 

И еще. А есть ли возможность прибить к оленемеру циклы и переменные? тогда это будет полноценный язык программирования.

вы опять про изобретение велосипеда, как же вам это нравится =) 

 

 

Есть какой-нибудь обходной путь? Кроме "создай 10 папок с картинками 10\10.png, 10\9.png,... 9\10.png, при заходе в игру перегружай оленемер с нужной тебе папкой."

поясните по-подробнее о чем вы.. 

Share this post


Link to post

Short link
Share on other sites

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

 

Имеется:

battleLoading.xc

"formatLeftNick": "<font face='Lucida Console' size='13' color='{{c:avglvl}}'>{{avglvl
%d|-}} </font>{{name%.16s~..}}<font face='Lucida Console' size='13' color='#FFCC66'>{{clan}}</font>",

colors.xc

"def": {
    "al": "0x96FF00", // ally       / союзник
    "sq": "0xFFDD33", // squadman   / взводный
    "tk": "0x00EAFF", // teamKiller / тимкиллер
    "en": "0xF50800", // enemy      / противник
    "pl": "0xFFDD33", // player     / игрок
    "pro": "0x1dca00",// PROТанки  / Цвет урона совзводного

"colorRating": {
      "very_bad":     "0xffffff",   // very bad   / очень плохо  /Белый
      "bad":          "0xffe71a",   // bad        / плохо  /Желтый
      "normal":       "0x53da3f",   // normal     / средне  /Зеленый
      "good":         "0x00aed9",   // good       / хорошо  /Синий
      "very_good":    "0x7c5ccb",   // very good  / очень хорошо /Фиолетовый
      "unique":       "0xff256c"    // unique     / уникально  /Малиновый

"avglvl": [
      { "value": 3,  "color": ${"def.colorRating.very_bad" } },
      { "value": 5,  "color": ${"def.colorRating.bad"      } },
      { "value": 7,  "color": ${"def.colorRating.normal"   } },
      { "value": 8,  "color": ${"def.colorRating.good"     } },
      { "value": 9,  "color": ${"def.colorRating.very_good"} },
      { "value": 11, "color": ${"def.colorRating.unique"   } }
    ],

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

 

И ещё хотел узнать точное значение avglvl%d, что дает приставка "%d" в конце?

И в чем отличия "def.colorRating.unique" от "colorRating.unique"? Вижу просто в разных конфигах люди по разному пишут код, интересно как грамматически привильней и в чем отличия?

post-9447-0-83213000-1409735176_thumb.jpg

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