stepan.wot Posted July 8, 2014 Share Posted July 8, 2014 (edited) Скажите, пожалуйста, как использовать переменные в XVM Например, пытаюсь отформатировать текст, так чтобы если противник жив, то выводился его wn8, а если мертв, то 4 дэша "----". По идее, что нибудь в таком роде "nickFormatLeft": "{{alive?{{wm8}}|----}}", должно сработать. Но не срабатывает. Я пытался использовать a-hp "nickFormatLeft": "{{a:wm8}}", и вносил изменения в файл alpha.xc "wn8": [ { "value": -1, "alpha": "----" }, { "value": 0.6, "alpha": "wn8" }, { "value": 9999, "alpha": "wn8%-5.5s" } ], // "wn8": [ // { "value": -1, "alpha": " " }, // { "value": 0.6, "alpha": "%wn8%" }, // { "value": 500.6, "alpha": "%{{wn8}}%" }, // { "value": 950.5, "alpha": "{{%wn8%}}" }, // { "value": 9999, "alpha": '%wn8%' } // ], Опять ничего не получалось. Какой должен быть синтаксис в этом случае. ПС, я, вероятно, могу использовать "playersPanel": { "alive": { .... }, "dead": { .... } Но интересует более стандартный метод ППС. Через alive/dead тоже не получилось Edited July 8, 2014 by stepan.wot @ Quote Link to comment Short link Share on other sites More sharing options...
XSerzHX Posted July 8, 2014 Share Posted July 8, 2014 (edited) Какой должен быть синтаксис в этом случае. в этом случае, как и в третьем, у тебя ничего работать не будет, т.к. макрос внутри макроса. во втором случае ты неправильно макрос написал в alive нужно писать точные значения (число, слово, шестнадцатеричный код цвета) здесь определяется прозрачность от события прозрачность определяеться целым числом "wn8": [ { "value": -1, "alpha": "0" }, { "value": 0.6, "alpha": "50" }, { "value": 9999, "alpha": "100" } ], то что всё ты здесь написал абсолютно неверно Edited July 8, 2014 by XSerzHX @ Quote Link to comment Short link Share on other sites More sharing options...
vlad_cs_sr Posted July 8, 2014 Share Posted July 8, 2014 должно сработать. Но не срабатывает. Я пытался использовать a-hp "nickFormatLeft": "{{a:wm8}}", Если это копипаста из конфига, то макроса wm8 в хвм нет, есть wn8 @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 8, 2014 Author Share Posted July 8, 2014 "то что всё ты здесь написал абсолютно неверно" ОК. Теперь вопрос из первого поста - как сделать, чтобы работало. Замечу, что вариант "wn8": [ { "value": 0, "alpha": " " }, { "value": 1, "alpha": " 1" }, { "value": 2 "alpha": " 2" }, ....... { "value": 9999 "alpha": "9999" } ] НЕ рассматривается даже в качестве хохмы. ДА, я пытаюсь использовать макрос внутри макроса. Пользоваться фиксированными значениями я уже научился. Итак, Итак, использовать макрос внутри макроса.: (а) Невозможно. (б) Можно. Делается так:... @ Quote Link to comment Short link Share on other sites More sharing options...
vlad_cs_sr Posted July 8, 2014 Share Posted July 8, 2014 Итак, использовать макрос внутри макроса.: (а) Невозможно. @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 8, 2014 Author Share Posted July 8, 2014 (edited) Если это копипаста из конфига, то макроса wm8 в хвм нет, есть wn8 Нет, это не из моего конфига. Я просто не хочу уточнять мои переменные. Поэтому заменил их на foobar. Личер, серьезно?? То есть, единственный путь - это 9999 строк хеша? (Как вариант - пересобрать xvm из исходников?) Edited July 8, 2014 by stepan.wot @ Quote Link to comment Short link Share on other sites More sharing options...
vlad_cs_sr Posted July 8, 2014 Share Posted July 8, 2014 (edited) Например, пытаюсь отформатировать текст, так чтобы если противник жив, то выводился его wn8, а если мертв, то 4 дэша "----". Вариант для "extraFields...": { "valign": "center", "alpha": "{{alive?100|0}}", "format": "<font size='' face='Lucida Console'><font color='{{wn8}}'>{{wn8%4d|----}}</font>"}, { "valign": "center", "alpha": "{{alive?0|50}}", "format": "<font size='' face='Lucida Console'>----</font>"} Хм.. чё-то сам попробовал - не сработало. Подумаем альфа=0, по-ходу игнорится.. или глюк моего билда? Такой вариант у меня заработал: "formats": [ { "valign": "center", "alpha": "{{alive?100|1}}", "format": "<font size='' face='Lucida Console'><font color='{{c:wn8}}'>{{wn8%4d|----}}</font> "}, { "valign": "center", "alpha": "{{alive?1|50}}", "format": "<font size='' face='Lucida Console'>----</font> "}] Edited July 8, 2014 by leecher88 @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 8, 2014 Author Share Posted July 8, 2014 (edited) Спасибо, попробую. Уточню свой вопрос. Я пытаюсь отформатировать уши, чтобы они выглядели так: 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}} прописан (не мной, конечно) и работает. Тем не менее, мои попытки объяснить форматирование xvm‘у (см один из пример ниже) ни к чему не привели. То есть, да, оно выводит значения на экран, но формата не держит совершенно. "large": { "width": 60, "nickFormatLeft": "<font color='{{c:rating}}'>{{t-rating%2d% | }}</font> {{nick%.16s~..}}", "nickFormatRight": "{{nick%.16s~..}} <font color='{{c:rating}}'>{{t-rating%2d% | }}</font>", "vehicleFormatLeft": "<font align='right'>{{vehicle%24.24s}}<font face='Lucida Console' size='12'> <font color='{{c:hp-ratio}}' alpha='{{alive?100|0}}'>{{hp? | }} {{hp%-5.5s}}</font>{{frags?| }} {{frags%-2.2s}}</font></font>", "vehicleFormatRight": "<font align='left', face='Lucida Console' size='12' >{{frags}} <font color='{{c:hp-ratio}}' alpha='{{alive?100|0}}'>{{hp? | }}{{hp%5.5s}} a {{hp%-5.5s}}</font>{{vehicle%-24.24s}}</font>", "fragsFormatLeft": "", "fragsFormatRight": "" } Пожалуйста, помогите. Да, альфа=0 там не работает, попробую альфа=1. Как сделать, чтобы хотя бы форматирование держалось? Edited July 9, 2014 by stepan.wot @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted July 9, 2014 Share Posted July 9, 2014 font align='left' кажется, вот это не поддерживается. Пробуйте табстопы и лучше прилагайте скриншотов под спойлерами. @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 9, 2014 Author Share Posted July 9, 2014 (edited) font align='left' поддерживается, но имеет совершенно иное значение. Он упорядочивает вкладки, а не текст внутри вкладок. Какой смысл публиковать кривой нерабочий код? Ради веских комментариев сержа? то что всё ты здесь написал абсолютно неверно Так я и сам знаю, что не работает. Я перепробовал под сотню вариантов форматирования, но все они разваливаются, каждый на свой лад. Например, "large": { "width": 0, // Minimum width of the player's name column, 0-250. Default is 170. "nickFormatLeft": "<font color='{{c:rating}}'>{{t-rating%2d | }}</font>", "nickFormatRight": "<font color='{{c:rating}}'>{{t-rating%2d | }}</font>", "vehicleFormatLeft": "<font align='right'> <font face='Lucida Console' size='12' color='{{c:hp-ratio}}' alpha='{{alive?100|1}}'> {{hp?| }} {{hp%-5.5s}} </font>{{vehicle%-25.25s}} </font>", "vehicleFormatRight": "<font align='left'> {{vehicle%25.25s}} <font face='Lucida Console' size='12' color='{{c:hp-ratio}}' alpha='{{alive?100|1}}'> {{hp%-5.5s| }} </font> </font>", "fragsFormatLeft": "<font align='right'> {{frags}}</font>", "fragsFormatRight": "<font align='left'>{{frags}}</font>" } Стандартные проблемы - (1) выражение типа {{vehicle%-25.25s}} должно создавать строку в 25 символов из названия техники, дополненного пробелами слева. Но ничего подобного не происходит (форматируется по типу {{vehicle%.25s}}, а это совсем другой случай). (2) Пока фрагов нет - форматирование кое-как держится. Когда появляется фраг форматирование ломается, потому что у игрока с фрагом теперь появляется дополнительная колонка. Я думал, что форматирование в xvm использует формат printf, но, как оказалось, формат является лишь "похожим на printf". (Прямо-таки "человек, похожий на прокурора"). Мануаля по этому формату я не нашел. Если под табстопами понимаются выражения типа "neverSeen": "<textformat tabstops='[6]'><font face='$FieldFont' size='24' color='#DEDEDE'>\t*</font></textformat>", то я это пробовал, без особого успеха. Табстопы указывают, расстояние между последним символом перед \t. и пепвым символом после. Это относительные значения, а в моем случае нужны абсолютные значения (чтобы форматирование держалось). Edited July 9, 2014 by stepan.wot @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted July 9, 2014 Share Posted July 9, 2014 Мануаля по этому формату я не нашел. тут есть Если под табстопами понимаются выражения типа "formatHistory": "<textformat leading='-4' tabstops='[20,50,90,150]'><font size='12'>×{{n-player}}:</font><tab>{{dmg-player}}<tab>| <font color='{{c:dmg-kind}}'>{{dmg}}</font><tab>| <font color='{{c:dmg-kind}}'>{{dmg-kind}}</font><tab>| <font color='{{c:vtype}}'>{{vehicle}} {{dead}}</font></textformat>", вот это код от моего хитлога. В нём не \t, а <tab> почему-то. И, насколько я помню, Вы ошибаетесь в этом месте: расстояние между последним символом перед \t. и пепвым символом после Вроде же просто ширина столбца в пикселях. Если же значение будет больше ширины, то всё поплывёт. @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted July 9, 2014 Share Posted July 9, 2014 (edited) Вроде же просто ширина столбца в пикселях. Если же значение будет больше ширины, то всё поплывёт Абсолютно верно, заданная ширина столбца "растягивается" под значение, соответственно со сдвигом всех последующих столбцов... формат является лишь "похожим на printf" Тоже верно, некоторые варианты форматирования не поддерживаются... Edited July 9, 2014 by Duv21 @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted July 9, 2014 Share Posted July 9, 2014 заданная ширина столбца "растягивается" под значение если Вы задали столбец в 100 точек, а значение занимает в разных строках 50-70 точек, то всё стоит таблицей и никуда не растягивается же. А если Вы не можете подобрать ширину поля (под 25 строчных символов в примере Степана), то это лично Ваши проблемы же) @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 9, 2014 Author Share Posted July 9, 2014 Сеч, спасибо, конечно, за комментарии, но немогли бы Вы, плиз, написать две строчки кода, чтобы формат соответствовал формату из поста N8? Если Вам это так легко, то, помогите плиз. Если будет первый рабочий вариант, то дальше я сам методом тыка допилю. "В нём не \t, а <tab> почему-то. И, насколько я помню, Вы ошибаетесь в этом месте" Не ошибаюсь. Просто мы говорили о разных вещах. В Перле табуляцией называют именно \t. Про <tab> я не знал. И, кстати, что такое leading='-4' @ Quote Link to comment Short link Share on other sites More sharing options...
vlad_cs_sr Posted July 10, 2014 Share Posted July 10, 2014 leading - межстрочный интервал, отрицательные значения его уменьшают @ Quote Link to comment Short link Share on other sites More sharing options...
Kapany3uk Posted July 10, 2014 Share Posted July 10, 2014 А если Вы не можете подобрать ширину поля (под 25 строчных символов в примере Степана), то это лично Ваши проблемы же) Уважаемый, никоим образом не пытался Вас задеть! У меня, к счастью, проблем с расчетом нужной ширины столбца не возникает (метод тыка никто не отменял, в конце концов) а вот ваши инсинуации о наличии таких проблем как минимум непонятны, а как максимум оскорбительны. Постарайтесь впредь воздержаться от подобных высказываний! @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted July 10, 2014 Share Posted July 10, 2014 (edited) немогли бы Вы, плиз, написать две строчки кода, чтобы формат соответствовал формату из поста N8? мог бы, но дело в том, что табы надо подбирать методом тыка, как написано выше. Немного поигрался, но есть ряд замечаний по моей деятельности 'картинка' и код "width": 60, "nickFormatLeft": " <font color='{{c:rating}}'>{{t-rating%2d~%| }}</font> {{nick%.16s~..}}", "vehicleFormatLeft": "<textformat tabstops='[30,50]'><font face='Lucida Console' size='12'>{{vehicle%-24.24s}}<tab> <font color='{{c:hp-ratio}}' alpha='{{alive?100|0}}'>{{hp%-4.4d| }}</font><tab> {{frags%-2.2d| }}</font></textformat>", "nickFormatRight": "{{nick%.16s~..}} <font color='{{c:rating}}'>{{t-rating%2d~%| }} </font>", "vehicleFormatRight": "<textformat tabstops='[10,30]'><font face='Lucida Console' size='12' >{{frags%2.2d| }} <tab><font color='{{c:hp-ratio}}' alpha='{{alive?100|0}}'>{{hp%4.4d| }}</font> <tab>{{vehicle%24.24s}}</font></textformat>" БК делает ХП на один символ длинее (минус, который) В левых ушах при отсутствии плейсхолдера под фраги, они у меня куда-то ломают столбцы при их появлении В больших ушах есть колонка для фрагов, которая не зависит от форматов и не убирается. Поэтому логично было бы из vehicleFormat просто поубирать фраги, оставив только ХП И есть ряд вопросов: Где Вы видели ХП длинной в 5 значений? Почему в Вашем коде ХП и фраги форматировались как строчные данные? Они же целые числа. Зачем Вам 24 символа названия техники? Есть такие длинные названия? А то дополняющие пробелы заметно уширяют уши. А вообще, широкие уши в моём видении - бесполезная вещь со странным выравниванием для vehicleFormat P.S. Прозрачность таки не заработала у меня тоже Edited July 10, 2014 by sech_92 @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 10, 2014 Author Share Posted July 10, 2014 (edited) sech_92, Понты, конечно, кидать проще, но как на счет помощи? Для голых понтов существует официальный форум танчиков. Поскольку помощи от сеча ожидать бессмысленно, ув. тов. коллеги, помогите, плиз, подобрать "nickFormatLeft": "<font valign='center' align='left' size='16'><font color='{{c:rating}}'>{{t-rating%2d | }}</font> </font><font valign='center' align='left' size='12'>{{name%12.12s}}</font>", "vehicleFormatLeft": "<font valign='center' align='right' size='12'><textformat tabstops='[$x, $y, $z]'> {{vehicle%12s}}<tab> <font color='{{c:hp-ratio}}' alpha='{{alive?100|1}}'>{{hp%4d| }}<tab> </font> {{frags| }} </textformat></font>", Этот вариант почти работает, название техники форматируется всегда влево. Попытки использовать %-12.12s или <font align='right'> оленемер напрочь игнорирует. "nickFormatLeft": "<textformat tabstops='[120, 200, 235]'><font size='16'><font color='{{c:rating}}'>{{t-rating%2d | }}</font>{{name%12.12s}}<tab> {{vehicle%-12.12s}}<tab><font color='{{c:hp-ratio}}' alpha='{{alive?100|1}}' > {{hp%4d| }}<tab></font> {{frags}}</font></font></textformat>", Такое форматирование плывет при [$x, $y, $z] = [200, 300, 350], [100, 140, 200] и еще нескольких вариантах. От чего отсчитываются табы? О левого края экрана или от окончания предыдущего форматирования (в моем случае либо nickFormatLeft, либо frags)? Текст до первой табуляции начинается с нуля или с первого значения в списке табов? Какая ширина таба по умолчанию? То есть, если мой текст 20 пикселей шириной, а за ним следует таб, то какое минимальное значение должно быть? 20? 21? 25? Edited July 10, 2014 by stepan.wot 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted July 10, 2014 Share Posted July 10, 2014 От чего отсчитываются табы? от левого края поля, которое вы форматируете Текст до первой табуляции начинается с нуля или с первого значения в списке табов? с нуля То есть, если мой текст 20 пикселей шириной, а за ним следует таб, то какое минимальное значение должно быть? 20? 21? 25? 20 @ Quote Link to comment Short link Share on other sites More sharing options...
stepan.wot Posted July 10, 2014 Author Share Posted July 10, 2014 Сеч, это все, конечно, интересно. Но почему тогда форматирование не держится? "vehicleFormatLeft": "<font valign='center' align='right' size='12'><textformat tabstops='[90, 125]'>{{vehicle%12s}}<tab> <font color='{{c:hp-ratio}}' alpha='{{alive?100|1}}'>{{hp%4d| }}<tab> </font> {{frags| }} </textformat></font>", должно работать. 12 символов * 6 ширины (для 16 шрифта) = 72. А первый таб - 90. 5 символов * 6 ширины (для 16 шрифта) = 30. А второй таб 125-90=35. Твои теоретические познания в области оленемера - это хорошо. Но вот применить их на практике и подобрать форматирование ты, увы, не сможешь. @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.