Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Клиенты для игры

Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc...

Ответ
 
Опции темы Опции просмотра
Старый 13.06.2006, 01:58   #1
lexik
Админ форума
 
Регистрация: 05.03.2004
Сообщений: 635
По умолчанию Mmc - возвращаясь к часикам в мессагах.

Пришло мне тут письмо - может быть и интересное кому-нибудь...
*************************************
Код:
Странно! Обычно робот-регистратор форвардит запрос моментально! 
Мне-же ничего не падает:( Это похоже на неувязку между доменами. 
И высока вероятность того, что повторная регистрация и повторный запрос также могут не пройти. 
Абыдно! Хотелось задать интересный вопросик спецам от перла! 

Давайте я его размещу тут, и если модераторам не будет слишком сложно, перебросте его на форум! Правда я в таком случае ничего пискнуть уже не смогу. Но это уже не самое главное! 
Ответы важнее:)!

С уважением.
Всем здравия!
Столкнулся я с щепетильной проблемкой...
И очень надеюсь, что она кого-нибудь из пёрлистых гурманов заинтересует!
В общем, беда тут где-то в нюансах, которые я никак не догоняю
Затея вроде как банальная и обыденна. Прикрутка часиков к трасферящимся в другие окна мессагам. Но мне - нужна расспасировка цветов, чтоб сообщение подхваченное триггером кидалось в другое окно таким, каким оно и пришло от сервера!
Дело тут в том, что, зачастую теляющие имеют весьма характерно раскрашенные подписи, и вообще цветами крутят как хотят. Я и сам такой! И все это, порой несет полезную информацию, терять которую жалко И вот тут упс.. Затык!

Вот триггер, которй нормально кидает телы во 2-е окошко сохраняя цвета!
Код:
trig { wecho(1, CL::unparse_colors($;)); } 'говорит', '1111:msg';

Вот с ровно прикрученным временем и подсвеченный белым.
Ровность имется в виду - в основное окно идет текст прямой, во 2-е с ровным временем:
[01:15:15] Кто-то говорит что-то...
[12:05:99] Кто-то говорит что-то...
и unparse здесь уже увы - с боку(
Код:
use Timer;
...
trig { 
        $U::tmsg = $Timer::system_time; 
        $U::msg = "\003P[$U::tmsg] $1 говорит $2";
        wecho (1, ($U::msg)); 
$; } '^(.*?) говорит (.*?)$', '1111:msg';
И как-бы теперь все, что есть хорошего с часами и исходными колорами, совместить в одном флаконе-триггере? У меня что-то не получается, похоже ума не хватает
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси
lexik вне форума   Ответить с цитированием
Старый 13.06.2006, 15:59   #2
Переплут
mud.ru Teams
 
Регистрация: 01.01.1970
Сообщений: 210
По умолчанию

Цитата:
Сообщение от lexik
Код:
trig { wecho(1, CL::unparse_colors($;)); } 'говорит', '1111:msg';
Код:
use Timer;
...
trig { 
        $U::tmsg = $Timer::system_time; 
        $U::msg = "\003P[$U::tmsg] $1 говорит $2";
        wecho (1, ($U::msg)); 
$; } '^(.*?) говорит (.*?)$', '1111:msg';
Собственно легко заметить что в 1-ом коде юзается переменная $;, во 2-ом же данная переменная вообще никогда не используется, в чем здесь прикол? да в том, что когда ты ловишь переменные $1 и $2 то в них нет кодов цвета, а в переменной $; после unparse_colors телнет цвета преобразуются в цвета ммц.
Итого правильным решением будет:
а). решение когда юзеры любят изгаляться над входящим трафиком по своему вдовесок:
Код:
trig {
        my $income_line = CL::unparse_colors $;; # здесь цвета
        my $sender = $1; # здесь нет цветов
        $income_line =~ m/^(\w+?) сказал.? : \'(.*?)\'$/; # цвета сохраняются
        wecho 1, print_time."$sender \003Psend message \003J=> $2";
} '^(\w+?) сказал.? : \'.*?\'$', ":tells";
В реализованном выше коде, в окно номер 1 (оно-же alt + 2) будет отображена строка, где полностью сохранены цвета сообщения, + автор сообщение передается без цветов ммц.

б) в самом элементарном виде, данный триг выглядит так:
Код:
trig {
        wecho 1, print_time.CL::unparse_colors($;);
} '^\w+? сказал.? : \'.*?\'$', ":tells";
в) собственно print_time (который потом удобно присобачивать куда угодно в дальнейшем)
Код:
sub print_time {
        return sprintf "\003I[%02d:%02d]", (localtime)[2], (localtime)[1];
        #return sprintf "\003I[%02d:%02d:%02d]", (localtime)[2], (localtime)[1], (localtime)[0]; -- часы с секундами
}
возвращают стильные часики: вида: [12:02]

Последний раз редактировалось Переплут; 13.06.2006 в 16:07.
Переплут вне форума   Ответить с цитированием
Старый 13.06.2006, 16:31   #3
Шана[МЗ]
Гость
 
Регистрация: 29.09.2004
Адрес: МЗ
Сообщений: 674
По умолчанию

в конфиге килника это в telling.pm
Шана[МЗ] вне форума   Ответить с цитированием
Старый 14.06.2006, 17:23   #4
Переплут
mud.ru Teams
 
Регистрация: 01.01.1970
Сообщений: 210
По умолчанию

Чужой конфиг не всегда хорошее подспорье для создание собственного.
(МЗ: в данной фразе не наезд на ваш конфиг, который вы выложили в всеобщий доступ (чего я к примеру не делаю), а смысл: "башка у каждого по-своему варит" поэтому оно может оказаться не оптимальным решением поставленной задачи)
Переплут вне форума   Ответить с цитированием
Старый 14.06.2006, 20:34   #5
lexik
Админ форума
 
Регистрация: 05.03.2004
Сообщений: 635
По умолчанию

зная чужой код, видишь какие ошибки совершать не нужно и ищешь новые пути решения задачи... истина GPL так что тут переплут не прав... но это imho...
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси
lexik вне форума   Ответить с цитированием
Старый 14.06.2006, 21:36   #6
pif
Гость
 
Регистрация: 26.08.2005
Адрес: москва
Сообщений: 350
По умолчанию

Цитата:
Сообщение от Переплут
Чужой конфиг не всегда хорошее подспорье для создание собственного.
(МЗ: в данной фразе не наезд на ваш конфиг, который вы выложили в всеобщий доступ (чего я к примеру не делаю), а смысл: "башка у каждого по-своему варит" поэтому оно может оказаться не оптимальным решением поставленной задачи)
Конфиг килника почти панацея
А имея руки (мечты, мечты) можно сделать всё то немногое что лично тебе не хватает...
pif вне форума   Ответить с цитированием
Старый 17.06.2006, 09:57   #7
Переплут
mud.ru Teams
 
Регистрация: 01.01.1970
Сообщений: 210
По умолчанию

Мне приходилось свой конфиг 1 раз переписывать с нуля, т.к. за все то время что он у меня существовал, там накопилось много того, что собственным грузом несколько ограничивало мои возможности добавления других вещей.
После того как я переписал свой конфиг с нуля -- я слегкостью добавил все что мне было нужно.
Так, что может конечно смотреть на чужие ошибки полезно, но использовать чужой конфиг целиком в кач-ве базы для своего -- может быть не плохо, но в дальнейшем легко может стать ограничивающим фактором.
Переплут вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:02.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot