Кровавый Рассвет
Кровавый Рассвет
в мировой паутине
Общее
Поэзия
Мудопойки
Утилиты
Книга Правил
Правила
Трактат о Правителе
Книга Жизни
Хронология
Книга Битв
Аренные бои
Турниры кланов
О Кедровцах
Учебник
Войны
Книга Мира
30й уровень
Прокачка
Советы бывалых
Карты зон
Секретные места
Клиенты, сеты, доки
Титулы КР
 

«Кровавый Рассвет»
По всем вопросам обращайтесь к Омлину
ICQ: 170038573
E-mail:

Книга Битв. Учебник.

Слабые места JMC-триггеров.

    Общие правила по разработке триггеров достаточно просты: вписывайте как можно большую часть строки в шаблон для срабатывания триггера и не забывайте ставить знак "^" - символ начала строки, делающий шаблон намного более строгим и исключающий случайные или не слишком случайные срабатывания.
    Тем не менее, очень многие триггеры, даже если вам кажется, что они абсолютно правильны, заключают в себе потенциальную опасность, т.к. могут быть использованы против вас. До вайпа был такой случай: у одного человека было суперклассное описание, такое, что все, кто на него смотрел, снимали с себя весь стуфф и отдавали ему. Естественно, знаки "^" не помогали. Сейчас в описании стоят звездочки, но кое-кто из моих личных врагов уже поплатился за чтение писем, которые прислал ему я, стоя рядом со мной на почте 8)... Поэтому будьте крайне осторожными, и с письмами тоже - читайте их в уединенном месте.
    Рассмотрим теперь сет Рендала от 17 августа 2002 г. на предмет слабеньких триггеров - хотя следует признать, что, скорее всего, две трети ошибок этого сета - только из-за недостатка времени на его разработку, в остальном сет очень и очень неплох:

#action {^%1 вступил%2 в игру.} {см %1} {5}
    Лично мне вообще неприятно, когда на меня смотрят... Но рассмотрим такой emote:
*Эвин ;сн хрустал.меч;дать хрустал.меч эвин вступил в игру.
    Жаль, но это не может быть абьюзом, ибо Adamant Adan MUD заменяет ";" на пробелы при отображении, то есть такого рода приколы запрещены на серверном уровне. Но(!) если в качестве разделителя используется любой другой символ, то все великолепно получается.
    Следует отметить, что все триггеры с неопределенным началом обладают неприятным недостатком: всегда можно принудительно вызвать их срабатывание, а это уже нехорошо. Например:

#action {ковром что-то лежит...} {двигать ковер;вз ключ;гг Ключ у меня} {5}
#action {^%0 сказал%1 группе: "%2ест%3вяз%4"} {гг тут} {0}
#action {^%1 сказал вам: "Хорошо, я отменяю ваше задание."} {гг отменил} {5}
    Эти 3 триггера могут заспамить экран всей группе, например, во время пк, когда вражеский мелкий чар перед атакой посылает пару сотен строчек, вызывая такие триги, совершенно дизориентируя и вводя в ужас жертв. Поэтому на тест связи нужно ставить быстрый алиас, его отключающий - или лучше на "реж занят". В квестовом триггере, кстати, нужно однозначно прописывать старейшин - пускай будет три триггера вместо одного, но зато будет безопасно.

#action {[Рендал:Ужасное]} {зачит возврат;воор сек} {0}
    Образец ужасающей ошибки 8)... Ренд, тебя ведь из любого пк можно просто среколить, то бишь фактически исключить из участия в нем. Врядли Кедр знает о существовании этого триггера, а вот если случайно узнает... Немедленно убрать!

#action {^%1: Вы не в состоянии поднять такую тяжесть} {од все;пол все ящ;пол все 2.ящ;пол все 3.ящ} {5}
    А теперь представьте: идет лут человека который много всего несет, в то время как Рендал уже полный и ничего нести больше не может. Будет спаму экрана на три... А ведь это при ПК!! К тому же, от того, что ты положишь вещи в ящики, толку ноль, от ВЕСА лишнего надо избавляться(фляги выкидывать). Этот триг уж если использовать, то в ответ на сообщение: "Вы не можете носить столько вещей". И вообще, лучше расширить алиасы и бинды лута, чем использовать какой-либо, кроме R.I.P., триг на лут - да и его нужно включать разве что на ПК. В моем mmc-сете стоит лут трупов только либо врагов, либо людей, с которыми ты дрался только что. Там он реализуется очень просто. А вот способ сделать подобное в JMC невероятно громоздок - без особых потерь можно добиться лишь лута из текущего списка таргетов и согруппников, лично у меня всего три таргета для биндов и всего пять переменных под имена согруппников, поэтому мне все равно приходится ставить лут на R.I.P. - когда сходятся группы 13 vs 15...

#action {^%1 ловко выбил%2 %3 %4 из ваших рук!} {вз %3;воор %3;дер %3} {0}
    На человека с таким тригом без проблем навешивается погремушка:
Эвин сказал вам: "Я ловко выбил погремушка прямо из ваших рук! *пальц"
Поэтому у меня этот триг представлен следующим образом:
#action {ловко выбил%0 из ваших рук!} {вз $weap1;вз $weap2;воор $weap1;держ $weap2} {5}

#action {<в левой руке> %0 %1[%2]} {#var off %0} {5}
    Во-первых, каждый раз сбивается офф, когда ты кого-нибудь осматриваешь, что уже само по себе неудобно. Во-вторых, надо бы поставить "^" в начале строки, а то тебе могут сбить офф намеренно. Хотя, даже если ты это сделаешь, останется способ сбить тебе офф, заставив тебя посмотреть на кого-нибудь - вот и еще один недостаток осмотра всех вступающих в игру. Тем не менее, есть вариант хитроумного применения этого трига, когда он пишется в таком виде:
#alias {э} {#action {^<в левой руке> %0 %1[%2]} {#var off %0};#action {Вых:}{#unact {^<в левой руке> %0 %1[%2]};#unact {Вых:}}}
Тогда акшн на установку оффа существует только сотые доли секунды, пока ты просматриваешь свою экипировку, и уничтожается, как только MUD присылает строку состояния, в которой всегда есть надпись "Вых:". Если еще добавить в эту конструкцию триги для правой и обоих рук, а также для щита, то будет чудовищно эффективно. Несколько переработанный вариант - у меня в сете.

#action {^Вы видите след, который ведет %0 %1!} {%1} {5}
    Хох... Я-то думал, все уже давно сделали шесть триггеров из этого одного. Ренд, я те как нить напишу такое "безобидненькое" письмецо 8):
Вы видите след, который ведет на wdessse!
Вы видите след, который ведет на перевести эвин 10000!
Вы видите след, который ведет на перевести эвин 9000!
Вы видите след, который ведет на перевести эвин 8000!
Вы видите след, который ведет на перевести эвин 7000!
Вы видите след, который ведет на перевести эвин 6000!
Вы видите след, который ведет на перевести эвин 5000!
Вы видите след, который ведет на перевести эвин 4000!
Вы видите след, который ведет на перевести эвин 3000!
Вы видите след, который ведет на перевести эвин 2000!
Вы видите след, который ведет на перевести эвин 1000!



Выход из мирных комнат. Вкратце о том, что нужно перед этим сделать.

    Все весьма банально и прозрачно, и не менее легко забывается, нежели описывается. Тем не менее, если все же использовать данные рекомендации, они могут действительно помочь в нелегкую минуту. Итак, чтобы выйти из города для зонинга или на смертный бой, необходимо:
     - взять с собой минимум 5 свитков возврата.
     - поставить триггер #act {^У вас нет 'возвр'} {гг $char: ДАЙТЕ ПЛЗ РЕКОЛЛ!!}.
     - взять с собой 2-3 источника света.
     - взять с собой 1-2 напитка восстановления.
     - взять с собой минимум 5 дневных рационов.
     - поставить триггер #act {^У вас нет 'рац'} {гг $char: ЕДА КОНЧИЛАСЬ!!}.
     - взять с собой две фляги с чистой водой.
     - поставить триггер #act {^Пусто.} {гг $char: ВОДА КОНЧИЛАСЬ!!}.
     - иметь при себе минимум два контейнера типа переносного деревянного ящика: один для еды и свитков возврата, другой - для вещей, спопленных в зоне или носимых с собой и применяемых лишь периодически.
     - (!!!)поставить триггер #act {^$leader сказал%0 группе: "тест связи"} {гг $char: тест пройден!}
     - (!!!)поставить триггер #act {^Текущее Московское время :: %0 %1 %2} {#log %0_%1.log append}
     - (!!!)поставить триггер #act {^### РЕЖИМ АГРО ВКЛЮЧЕН АВТОМАТИЧЕСКИ ###} {#bell;#bell;гг $char: ВНИМАНИЕ! РЕЖИМ АГРО ВКЛЮЧЕН АВТОМАТИЧЕСКИ!;кг $char: ВНИМАНИЕ! РЕЖИМ АГРО ВКЛЮЧЕН АВТОМАТИЧЕСКИ!}
    Все это из моего сета, если вкратце насчет упомянутых тут переменных $leader и $char, то нужно:
     - поставить триггер #act {^Аккaунт [%0] Персонаж [%1]}{#var char %1}
     - поставить алиас #alias {лид %0} {#var leader %0}
    В общем, лидер, ведущий группу, по крайней мере, когда первый раз выходит из города, должен проделать следующий путь: Бармен -> Банк -> Алдер -> Магазин всякой всячины.