PDA

Просмотр полной версии : сохранение цвета при сабсте


dut
19.12.2005, 13:04
Привет.
На одном мад-сервере есть возможность хранить пклист и делать подсветку на стороне сервера(т.е тебе автоматически приходят посвеченные имена врагов)

Сделал такой сабст в MMC:
#subst("^(.*) при(шел|летел|шла|летела|бежал|бежала|полз|ползла) ? (.*)." , "\$1 &M---=== при\$2 ===----&x \$3.");

Но у меня возникла проблема. Допустим Вася добавлен в сдр(т.е это имя всегда приходит зеленного цвета).
Но когда я делаю сабст, то слово Вася -- обесцвечивается. Т.е имя становится не зеленым, а обычным серым цветом.

Можно ли как-то сделать чтоб цвет сохранлся тот, который был до сабста?

d_blacky
19.12.2005, 13:46
Можно 3 способами.
1. колдовство с CL::unparse_colors, CL::strip_colors, CL::parse_colors
2. MUD::Add_trigger() -- там добавляешь сабст "имя чара" и "\&цвет<строка>" -- но это по уродски.
3. Посмотреть исходный код mmc и посмотреть по какому принципу делается 2-ой вариант и делать не по уродски.

В виду лени на 3ий пункт, сам пользуюсь 1ым способом.

judge
19.12.2005, 15:57
Так, вопросик созрел, как вообще делать сабсты в MMC не с помощью встроенного API, а на перле?

Ladon
19.12.2005, 17:01
trig {
my $who=$1;
my $how=$2;
my $from=$3;

if (defined($pkl{$who})) {echo ("!!!!!!!!!!!! ПК В ГОРОДЕ !!!!!!!!!!!!");$target=$who};

$: = "\-\-\-\-$who\-\-\-\- при$how $from\."
} '^(.*) при(.*?) (c юга|с севера|с запада|с востока|снизу|сверху)\.', "1000nf:noColor";

dut
19.12.2005, 18:05
и что, у тебя этот триггер работает с сохранением цвета? У меня почему-то нет.

Вот как я делал:
trig
{
$: = "$1 \3M---=== при$2 ===----\3x $3.";
} "^(.*) при(шел|летел|шла|летела|бежал|бежала|полз|ползла) ? (.*).", "1000nf:noColor";

У меня работает он аналогично тому примеру с subst(см первый мой пост)

Раххаль
19.12.2005, 23:35
Еще есть мысль обратить пристальное внимание на приоритеты триггеров, ими стоит пользоваться, вдумчиво.

dut
20.12.2005, 17:25
MMC -- это клиент в котором можно все! Но все это через жопу.

Шана[МЗ]
20.12.2005, 22:04
Если руки из жопы, тогда полюбому через неё родимую :D

Sir
21.12.2005, 19:42
trig {
$: = CL::unparse_colors(substr($;, 0, 2*length($1)))." \003M---=== при$2 ===----\003H $3";
} '^(\w+) при(шел|летел|шла|летела|бежал|бежала|полз|ползла) (.*)', "n:PK";

dut
25.12.2005, 23:37
ого! Ахтунг какой!
Спасибо большое!

Urik
26.12.2005, 02:27
песать!