sirmax Posted April 19, 2014 Share Posted April 19, 2014 (edited) Продолжение темы из раздела предложений: http://www.koreanrandom.com/forum/topic/8044-настройка-ограничения-длины-ника-в-хит-логе/ См. также: Скрипт для автоматического обновления конфига и замены макросов под расширенный формат Хотелось бы настройку, ограничивающую длину ников поврежденных игроков в хит-логе, аналогично сделанной в мини карте.Сейчас, поскольку и названия танков и ники не ограничены по длине, использовать в логе и то и это не удобно, поскольку надо резервировать место и оставлять здоровый промежуток до колонки со следующими данными.Если бы было такое ограничение, можно было бы подобрать отступы уже точно, а то, у чего длина не ограничена (название танка)- писать в конце строки, чтобы ничему не мешало. Дока: Допускается форматирование макросов (используется формат, приближенный к printf): {{name[:norm][%[flag][width][.prec]type][~suf][?rep][|def]}} name - имя макроса :norm - нормализация значения, например {{hp-ratio:300}} вернет значения в диапазоне 0..300 flag - "-" для выравнивания влево, иначе выравнивание вправо "0" для дополнения чисел ведущими нулями до заданной длины "'" для разделения тысячных разрядов (только для целых чисел) width - минимальная ширина prec - в зависимости от типа: - максимальная ширина для строк - количество знаков после запятой для дробных чисел - смещение ASCII таблицы для чисел в ASCII (по умолчанию 129) type - тип: s - строка d - целое число f - число с плавающей запятой x — шестнадцатеричное число (abcdef) a - целое число в ASCII (для значений от 0 до 100) ... suf - суффикс, добавляемый в конце rep - подменное значение, возвращается вместо обычного значения если оно присутствует def - значение по умолчанию, которое подставляется при отсутствии значения: Например: {{name%-10.10s}} - обрезать длинные имена до 10 символов, а короткие дополнить до 10 символов и выровнять влево {{kb%4.01f~k|----}} - ширина 4 символа, обязательно 1 символ после запятой, выравнивание вправо если kb==null, будет отображаться "----" Подробнее: http://ru.wikipedia.org/wiki/Printf Например: <font color='{{c:avglvl|#666666}}'>{{avglvl|-}}</font> если значения нет, то на выходе будет: <font color='#666666'>-</font> если есть, то: <font color='#123456'>5</font> Или вот, например: {{t-hb%d~h|-}} выведет гектобои в виде "-" "0h" "1h" "5h" "10h" {{t-hb%0.1f~h|-.-h}} будет "-.-h" "0.0h" "0.5h" "1.0h" "1.5h" "10.5h"можно использовать онлайн-тестер для проверки http://printf.onlinephpfunctions.com/ Скрипт изменения старых макросов на новые: http://www.koreanrandom.com/forum/topic/14583-скрипт-для-автоматической-замены-макросов-под/ соответствие старых макросов новым [ "{{name}}", "{{name%.16s~..}}" ], [ "{{eff}}", "{{eff%d|----}}" ], [ "{{eff:4}}", "{{eff%4d|----}}" ], [ "{{teff}}", "{{teff%4d|----}}" ], [ "{{e}}", "{{e%d|-}}" ], [ "{{wn}}", "{{wn8%4d|----}}" ], [ "{{wn6}}", "{{wn6%4d|----}}" ], [ "{{wn8}}", "{{wn8%4d|----}}" ], [ "{{rating}}", "{{rating%d~%|--%}}" ], [ "{{rating:3}}", "{{rating%2d~%|--%}}" ], [ "{{kb}}", "{{kb%d~k|-k}}" ], [ "{{kb:3}}", "{{kb%2d~k|--k}}" ], [ "{{t-rating}}", "{{t-rating%d~%|--%}}" ], [ "{{t-rating:3}}", "{{t-rating%2d~%|--%}}" ], [ "{{t-battles:4}}", "{{t-battles%4d|----}}" ], [ "{{t-kb}}", "{{t-kb%.1f~k|.-k}}" ], [ "{{t-kb-0}}", "{{t-kb%0.1f~k|-.-k}}" ], [ "{{t-kb:4}}", "{{t-kb%3.01f~k|-.-k}}" ], [ "{{t-hb}}", "{{t-hb%d~h|-h}}" ], [ "{{t-hb:3}}", "{{t-hb%2d~h|--h}}" ], [ "{{tdb:4}}", "{{tdb%4d|----}}" ], [ "{{tdv}}", "{{tdv%.1f|-.-}}" ], [ "{{tfb}}", "{{tfb%.1f|-.-}}" ], [ "{{tsb}}", "{{tsb%.1f|-.-}}" ] Edited February 18, 2015 by sirmax 12 @ Quote Link to comment Short link Share on other sites More sharing options...
TurinDeNar Posted April 19, 2014 Share Posted April 19, 2014 (edited) {{t-hb%0.1f~h|-.-h}} Пздц... парни... здесь не все программисты... Мне как рядовому пользователю по первому взгляду кажется что это уже перебор:) Edited April 19, 2014 by TurinDeNar 5 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 19, 2014 Author Share Posted April 19, 2014 (edited) {{t-hb%0.1f~h|-.-h}}Пздц... парни... здесь не все программисты... Мне по первому взгляду кажется что это уже перебор:) Нормально, по умолчанию макросы остаются практически такие же как и были. Это только расширение для форматирования. Я думаю, можно будет сделать набор примеров, которые покроют 90% всех потребностей. Edited April 19, 2014 by sirmax 3 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted April 19, 2014 Share Posted April 19, 2014 отличная вещь получилась, позволит решить много деталей с ушами.примеры не помешают, действительно. В частности интересуют типы данных кроме троих из первого сообщения. У нас же вроде ничего не встречается больше, а там многоточие. @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 19, 2014 Author Share Posted April 19, 2014 В частности интересуют типы данных кроме троих из первого сообщения. У нас же вроде ничего не встречается больше, а там многоточие. http://ru.wikipedia.org/wiki/Printf Значения типов: d, i — десятичное знаковое число, размер по умолчанию, sizeof( int ). По умолчанию записывается с правым выравниванием, знак пишется только для отрицательных чисел. '%d' и '%i' ведут себя одинаково при выводе, но имеют разные значения при вводе с помощью функции scanf(); o — восьмеричное беззнаковое число, размер по умолчанию sizeof( int ); u — десятичное беззнаковое число, размер по умолчанию sizeof( int ); x и X — шестнадцатеричное число, x использует маленькие буквы (abcdef), X большие (ABCDEF), размер по умолчанию sizeof( int ); f и F — числа с плавающей запятой. По умолчанию выводятся с точностью 6, если число по модулю меньше единицы, перед десятичной точкой пишется 0. Величины ±∞ представляются в форме [-]inf или [-]infinity, Величина Nan представляется как [-]nan или [-]nan(любой текст далее). Использование F выводит указанные величины заглавными буквами (-INF, NAN). Аргумент по умолчанию имеет размер double. e и E — числа с плавающей запятой в экспоненциальной форме записи (вида 1.1e+44); e выводит символ «e» в нижнем регистре, E — в верхнем (3.14E+0); g и G — число с плавающей запятой; форма представления зависит от значения величины (f или e); a и A — число с плавающей запятой в шестнадцатеричном виде; c — вывод символа с кодом, соответствующим переданному аргументу; переданное число приводится к типу unsigned char (или wint t, если был указан модификатор длины l); s — вывод строки с нулевым завершающим байтом; если модификатор длины — l, выводится строка wchar_t*. В Windows значения типа s зависят от типа используемых функций. Если используется семейство printf функций, то s обозначает строку char*. Если используется семейство wprintf функций, то s обозначает строку wchar_t*. S — то же самое что и s с модификатором длины l; В Windows значения типа S зависит от типа используемых функций. Если используется семейство printf функций, то S обозначает строку wchar_t*. Если используется семейство wprintf функций, то S обозначает строку char*. p — вывод указателя, внешний вид может существенно различаться в зависимости от внутреннего представления в компиляторе и платформе (например, 16 битная платформа MS-DOS использует форму записи вида FFEC:1003, 32-битная платформа с плоской адресацией использует адрес вида 00FA0030); n — запись по указателю, переданному в качестве аргумента, количества символов, записанных на момент появления командной последовательности, содержащей n; % — символ для вывода знака процента (%), используется для возможности вывода символов процента в строке printf, всегда используется в виде %%. Не уверен что все поддерживается, но как-то так. @ Quote Link to comment Short link Share on other sites More sharing options...
IDEMENTORI Posted April 19, 2014 Share Posted April 19, 2014 сделать набор примеров, которые покроют 90% всех потребностей 1 @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 19, 2014 Author Share Posted April 19, 2014 Закоммитил, можно тестить. Пока не оттестим и не обсудим, релиза не будет. ;-) @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted April 19, 2014 Share Posted April 19, 2014 Пока не оттестим и не обсудим, релиза не будет. ;-) садизмом попахивает @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 19, 2014 Author Share Posted April 19, 2014 По началу, пишите что необходимо сделать, а я напишу как должен выглядеть макрос. Позже добавлю тестирование макросов в редактор. @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted April 19, 2014 Share Posted April 19, 2014 @sirmax, первое, что я неоднократно видел на форуме, и запомнилось - симметричные уши форматахэфф | ники (выравнивание влево) [весь экран] ники (выравнивание вправо) | хэфф вместо эффективности были разные варианты, но такое часто спрашивают. Там Серыч что-то с табстопами воротил на этот счёт. @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 19, 2014 Author Share Posted April 19, 2014 (edited) давайте отдельными макросами, полные строки сложно уже будет наугад сделать. ники (выравнивание влево) {{name%-20.20s~..}} - "-" - выравнивание влево "20" - минимальная длина = 20 (дополняется пробелами) ".20" - максимальная длина = 20 (длиннее - обрезается) "~.." - если обрезается длинный ник, в конце ставится суффикс ".." ники (выравнивание вправо){{name%20.20s~..}} Более простые варианты: {{name%-20s}} {{name%20s.}} только шрифт придется моноширинный использовать, все-таки это по символам выравнивается, а не по пикселям Edited April 19, 2014 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted April 19, 2014 Share Posted April 19, 2014 (edited) первое, что я неоднократно видел на форуме, и запомнилось - симметричные уши форматадак это надо чтобы пробелы по краям поля не съедались, от макросов это не зависит гексабои* гекто. гекса- 6. Edited April 19, 2014 by seriych @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted April 19, 2014 Share Posted April 19, 2014 шрифт придется моноширинный использовать это само собой @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted April 19, 2014 Author Share Posted April 19, 2014 * гекто. гекса- 6. ок @ Quote Link to comment Short link Share on other sites More sharing options...
NikolayHAOS Posted April 19, 2014 Share Posted April 19, 2014 (edited) Мда... перешел из http://www.koreanrandom.com/forum/topic/11630-%D1%81%D1%82%D1%80%D0%BE%D0%B3%D0%B0%D1%8F-%D0%BC%D0%BE%D0%B4%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BD%D0%BE%D1%87%D0%BD%D1%8B%D0%B5-%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8-xvm-nightly-builds/page-27?do=findComment&comment=173179 Данное введение влияет и на сниппеты, как минимум на размер шрифта, а может и на положение. Миникарту задевает. И что и где редактировать? без тщательного вникания и не разберешься, что и где править. Надеюсь все утрясется. И вы найдете какое либо решение с существующими конфигами, чтоб не редактировать все по новой, дописывая в строки параметры типа "flag" :-) (один и немногих чье значение понял не задумываясь, а вот с остальным синтаксисом, действительно будет сложновато.) Edited April 19, 2014 by NikolayHAOS @ Quote Link to comment Short link Share on other sites More sharing options...
sech_92 Posted April 19, 2014 Share Posted April 19, 2014 да, вопрос хороший: как с обратной совместимостью? @ Quote Link to comment Short link Share on other sites More sharing options...
demon2597 Posted April 20, 2014 Share Posted April 20, 2014 (edited) Крутая штука будет, мне нравится, только всё никак не дойду потестить:). Жирный + Edited April 20, 2014 by demon2597 @ Quote Link to comment Short link Share on other sites More sharing options...
Hawk1983x Posted April 20, 2014 Share Posted April 20, 2014 Жирный + Жирный - если не будет совместимости между старым и новым форматом... 1 @ Quote Link to comment Short link Share on other sites More sharing options...
demon2597 Posted April 20, 2014 Share Posted April 20, 2014 (edited) Жирный - если не будет совместимости между старым и новым форматом... с помощью этой штуки можно сотворить вообще как тебе нравится, какой старый формат, я про него забыл уже:) теперь всё перепилю Edited April 20, 2014 by demon2597 @ Quote Link to comment Short link Share on other sites More sharing options...
seriych Posted April 20, 2014 Share Posted April 20, 2014 Жирный - если не будет совместимости между старым и новым форматом...я сразу почуял, что очередной скрипт сбацать надо :-) 1 @ 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.