IPB

Здравствуйте, гость ( Вход | Регистрация )

> antispam compression, много одинаковых строчек заменить одной
пусик
сообщение 26 Jan 2008, 13:43 (Сообщение отредактировал пусик - 26 Jan 2008, 14:59)
Сообщение #1

полный
Сообщений: 819
Спасибо сказали: 15 раз




Хочу чтобы вместо
Цитата
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут.

писалось бы
Цитата
[...............] [ 10] Гоблин работяга (goblin) почти уснувший стоит тут. (x15)


А вместо
Цитата
Твои волшебные ракеты -=> ЭЛЕКТРОНИЗИРУЮТ <=- деревенского мЕнТа. [553]
Твои волшебные ракеты -=> ЭЛЕКТРОНИЗИРУЮТ <=- деревенского мЕнТа. [553]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226]
Рассекающий удар начинающий маг ** СОКРУШАЕТ ** деревенского мЕнТа.
Рассекающий удар начинающий маг ** СОКРУШАЕТ ** деревенского мЕнТа.

писалось бы
Цитата
Твои волшебные ракеты -=> ЭЛЕКТРОНИЗИРУЮТ <=- деревенского мЕнТа. [553] (x 2)
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226] (x 6)
Рассекающий удар начинающий маг ** СОКРУШАЕТ ** деревенского мЕнТа. (x 2)


В sample.mmcrc есть пример с magic missiles, и чуть изменив его получается вот такой кусочек который делает почти что надо:
Код
# "Упаковка" серий одинаковых строк.
my ($last_mm, $mm_count, $last_mmcol);
trig {
       if(!$mm_count) {
               enable("MM_COUNT");
               $last_mm = $_;
               $last_mmcol = CL::unparse_colors($;);

               $mm_count = 1;
       } else {
               $mm_count ++;
       }
} '^.+$', "800ng:GAG";

trig {
       if($_ ne $last_mm) {
               disable("MM_COUNT");
               if ($mm_count > 1) {
                       echo($last_mmcol . "\003J (x $mm_count)");
               } else {
                       echo($last_mmcol);
               }
               $mm_count = 0;
       }
} '^.*$', "2500nf-:MM_COUNT";


--------------------------------------------------------------------------------------------------------------

Серии упаковываются, но есть ряд недостатков:
1. Ярко-красный цвет в конце, может лучше другой какой-то?

2. В этом подходе пустые строки удаляются вообще все, поэтому вывод при выключенном 'toggle compact' выглядит как при включённом 'toggle compact'.
А если включить 'toggle compact', то вообще плохо все выглядит - вывод задерживается.

3. Иногда строки слипаются с промптом, поэтому вот такой вывод:
Цитата
8446 <> [15,0,] # Твои волшебные ракеты == СТИРАЮТ В ПОРОШОК == деревенского мЕнТа. [188]
Твои волшебные ракеты == СТИРАЮТ В ПОРОШОК == деревенского мЕнТа. [188]

не собирается в одно строчку.

4. Когда используется псевдографика может что-то странное получиться, типа такого:
Код
+-----------+ Exits:
|           |    North - нет выхода
|           |     East - Место
|           |    South - нет выхода
|           |     West - нет выхода
|     X-D   |       Up - нет выхода
|           |     Down - нет выхода
|           | (x 3)
+-----------+

По-моему в приведённом примере сбор пустых строк это даже удобно, но кого-то может и не устраивает.

--------------------------------------------------------------------------------------------------------------


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

PS. Ещё Shaidar Haran предлагал добавить калькулятор - то есть триггер с ещё далее отложенным приоритетом, который вместо
Цитата
Твои волшебные ракеты -=> ЭЛЕКТРОНИЗИРУЮТ <=- деревенского мЕнТа. [553] (x 2)
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226] (x 6)
Рассекающий удар начинающий маг ** СОКРУШАЕТ ** деревенского мЕнТа. (x 2)

сделает
Цитата
Твои волшебные ракеты -=> ЭЛЕКТРОНИЗИРУЮТ <=- деревенского мЕнТа. [553 x 2 = 1106]
Твой укол == СТИРАЕТ В ПОРОШОК == деревенского мЕнТа. [226 x 6 = 1356]
Рассекающий удар начинающий маг ** СОКРУШАЕТ ** деревенского мЕнТа. (x 2)

Если у кого-то есть - тоже добавьте, пожалуйста.


UPD. В начальном сообщении был серьезный баг с цветами, в текущем его уже нету, остался несерьезный только.


--------------------
Код
act_say(game, "Я $n!", NULL);
act_say(player, "А по-моему, ты говно!", game);
crash(game);
Go to the top of the pageAdd Nick
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 9 September 2025 - 23:40
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика