Подробное описание некоторый триггеров и алиасов для JMC
Targetting and hunting
%NL%
Стандартный алиас для установки таргета - назначение переменной и рапорт об этом в группу.
#alias {target %1} {#var target %1;gt -= killin' %1 now =-}(gt - мой серверный алиас, означающий grouptell)
Для чайников поясняю, что такое таргет и для чего он нужен. Думается, всем вам когда-нибудь приходилось
чертыхаться, с пятого раза набирая 'kil streetsweeper' или что-нибудь подобное. В
SlothIII, в отличие от DSL и
др. мудов, названия предметов и мобов следует писать целиком. Поэтому очень давно некие умные люди придумали
делать переменную target, периодически присваивать ей имя моба, которого мы собираемся убивать, и вписывать
ее в алиасы и горячие клавиши. Алиас, предшествующий тексту, как раз и занимается тем, что по команде target
somebody присваивает переменной $target значение somebody.
Примеры использования переменной (опять же из моего профайла):
#alias bt {bac $target}
#alias kt {kil $target}
#alias lt {look $target}
#alias lb {lt;bas} //Пример для скучных долгоиграющих мобов
#alias bct {bac $target;cir} //Пример для мобов, почти убиваемых со стаба
(я как prime thief пользую circle, но с таким
же успехом это может быть спелл)
Эти алиасы можно загнать и в горячие клавиши, это уже дело вкуса.
#alias {cont} {con $target}
#alias {pt} {tell $target ping}
#alias {ht} {hunt $target;#var hunting 1}
Тут начинается поинтереснее. Мне захотелось сделать адванснутый hunt
с открыванием дверей и остановом, если мы набрели на target раньше времени.
Поэтому понадобился флажок $hunting и переменная $stopstring. Поскольку
описание моба, находящегося в клетке, часто не содержит его реального имени,
пришлось загнать некоторые targets в нечто наподобие базы данных, например:
#action {You grouptell: ' -= killin' dolphin now =-'}
{#var stopstring {Frolicking in the ocean waves, a dolphin darts around you.}}
#action {You grouptell: ' -= killin' kuo-enchanter now =-'}
{#var stopstring {Wisps of blue energy traverse the water between this Kuo-Toan's hands.}}
Конечно, достаточно было бы и куска такой фразы, но я предпочитаю буквальное описание.
На скорость это не влияет, зато понимается все однозначно. Была такая хохма на
RMUDе.
В мирной комнате, где все отсыпаются, стоит доска объявлений. Дес (сотрудник Mio &
Soi) сделал умный триггер: на слово 'доска' ляпаться спать. Когда это просекли, его
долго доставали:
<89H 27M 29083X СЮЗ^> ска дес доска :)))
Вы сказали Десу: "доска :)))"
<89H 27M 29083X СЮЗ^> Дес лег и уснул.
#action {$stopstring} {nohunt} //Вот и наша остановка
Теперь нужно модернизировать alias 'target':
#alias {target %1} {#unvar stopstring;#var target %1;gt -= killin' %1 now =-}
^^^^^^^^^^^^^^^^^ Если таргета не окажется в базе данных,
останавливаться мы не будем.
#action {Alas, you cannot go that way} {#var hunting 0}
#action {You stop hunting and stand still} {#var hunting 0}
#action {The trail is very fresh} {#var hunting 0}
#action {The %1 %2eems to be closed.} {open %1; #if {$hunting=1} ht}
#action {It seems to be locked.} {#var hunting 0}
Поясню, почему я ввожу переменную $hunting. Она показывает, huntим ли мы таргет
(в таком случае она равна 1). При hunte, oткрыв дверь, нужно заново дать команду
hunt, поскольку след сбивается, а если мы huntим не таргет, или же просто бьемся
головой в дверь, и не думая кого-то huntить, то ht нам нужна как рыбке зонтик.
Разумеется, возникают недоразумения при наличии в комнате нескольких дверей,
поскольку триггер просто зацикливается, правда, прерывается nohuntом с
клавиатуры. В этом направлении я планирую его доработать.
%ENDNL%
Информация взята из connect.mud.ru Если вы имеете контакты с авторами - свяжитесь с нами пожалуйста