Jump to content
Korean Random

sirmax

XVM Team XVM Team
  • Posts

    14,403
  • Joined

  • Last visited

  • Days Won

    246

Everything posted by sirmax

  1. http://www.koreanrandom.com/forum/topic/14524-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%BE%D0%B2/?do=findComment&comment=172565
  2. давайте отдельными макросами, полные строки сложно уже будет наугад сделать. ники (выравнивание влево) {{name%-20.20s~..}} - "-" - выравнивание влево "20" - минимальная длина = 20 (дополняется пробелами) ".20" - максимальная длина = 20 (длиннее - обрезается) "~.." - если обрезается длинный ник, в конце ставится суффикс ".." ники (выравнивание вправо) {{name%20.20s~..}} Более простые варианты: {{name%-20s}} {{name%20s.}} только шрифт придется моноширинный использовать, все-таки это по символам выравнивается, а не по пикселям
  3. По началу, пишите что необходимо сделать, а я напишу как должен выглядеть макрос. Позже добавлю тестирование макросов в редактор.
  4. Закоммитил, можно тестить. Пока не оттестим и не обсудим, релиза не будет. ;-)
  5. Нажми на замок с крестиком возле адреса, перейди на вкладку "Соединение", сделай скриншот и пришли сюда.
  6. 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, всегда используется в виде %%. Не уверен что все поддерживается, но как-то так.
  7. Нормально, по умолчанию макросы остаются практически такие же как и были. Это только расширение для форматирования. Я думаю, можно будет сделать набор примеров, которые покроют 90% всех потребностей.
  8. Выделил в отдельную тему, продолжаем там. http://www.koreanrandom.com/forum/topic/14524-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%BE%D0%B2/
  9. xvm.xc переехал, посмотри в ChangeLog
  10. Продолжение темы из раздела предложений: 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|-.-}}" ]
  11. блин, надо чтобы Mixaill посмотрел
  12. Попробуй последний ночной билд (3381)
  13. длинные обрезаются, короткие расширяются, заполняется пробелами. опять же, это только пример. Из доки: ширина - это минимальная длина строки точность - максимальная длина строки
  14. для строки точность - это максимальная длина, а для дробного числа - количество отображаемых знаков после запятой, причем если стоит ведущий 0, то эти знаки всегда будут отображаться: 0.03f => 1.500 сделаю процент: <font color='{{c:kb}}'>{{kb%2d}}k</font>
  15. размер не используется, это чисто сишная фигня в общем, я так и сделаю, а вы потом разберетесь на примерах из дефолтного конфига вот только что делать с {{c:xxx}} и {{a:xxx}}? Менять на {{c-xxx}} и {{a-xxx}}? Это ж всем конфиги переделывать придется.
  16. сишные тонкости не читай. из этого всего нужно только "s — вывод строки разбираю на части: [флаги][ширина][.точность]тип -10.10s флаги - ширина 10 .точность .10 тип s там в доку выше раздела о типе описаны и остальные разделы думаю, можно нагуглить доку и по-понятней
  17. этот счетчик считает только запросы при заходе в бой и при просмотре реплея, достижения в нем не считаются
  18. А что делать, по-другому не получается. Да и от питона уже никуда не деться.
  19. не знаю пока, во-первых они тяжелые, во-вторых, родной поддержки в AS2 нет, надо какую-то либу искать. s - строка d - int f - float http://ru.wikipedia.org/wiki/Printf#.D0.A1.D0.BF.D0.B5.D1.86.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.82.D0.BE.D1.80_.D1.82.D0.B8.D0.BF.D0.B0 граница - двоеточие: {{имя:формат}}
  20. да там не сложно, чуток поиграться и понятно будет вот это главное помнить: %[флаги][ширина][.точность][размер]тип
  21. это примеры {{name:-10.10s}} - обрезать длинные имена до 10 символов, а короткие дополнить до 10 символов и выровнять влево {{kb:4.01f}} - дробное, ширина 4 символа, обязательно 1 символ после запятой, добивается пробелами слева до 4х символов
  22. зря зачеркнул, у меня было правильно - 5000 * 10**-3 = 5, добавляем суффикс k, выравниваем вправо и дополняем нулями до 3х символов. => 05k В общем, суффикс для чисел точно не нужен, он при необходимости выносится за пределы макроса. Для форматирования предлагаю использовать формат printf (кроме звездочки): %[флаги][ширина][.точность][размер]тип {{battles:6d}} 1000 => " 1000" {{battles:-6d}} 1000 => "1000 " {{battles:06d}} 1000 => "001000" {{kb:2f}} {{kb:.1f}} {{kb:0.1f}} {{kb:2.1f}} {{name:-10.10s}} "abcde" => "abcde " "abcdefghijklmno" => "abcdefghij" Суффикс не предусмотрен, но можно сделать что-то типа: {{name:-10.10s..}} то есть указывать после типа. Хотя я бы наверно без суффикса все-таки пока что делал.
  23. исправлено, будет в test3 возможно конфликтует с другими модами (PMOD, подозреваю, в нем тоже такая опция есть)
×
×
  • Create New...