Подробное описание некоторый триггеров и алиасов для 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}JmcImg01.gif #action {It seems to be locked.} {#var hunting 0}

Поясню, почему я ввожу переменную $hunting. Она показывает, huntим ли мы таргет (в таком случае она равна 1). При hunte, oткрыв дверь, нужно заново дать команду hunt, поскольку след сбивается, а если мы huntим не таргет, или же просто бьемся головой в дверь, и не думая кого-то huntить, то ht нам нужна как рыбке зонтик. Разумеется, возникают недоразумения при наличии в комнате нескольких дверей, поскольку триггер просто зацикливается, правда, прерывается nohuntом с клавиатуры. В этом направлении я планирую его доработать. %ENDNL%

Информация взята из connect.mud.ru Если вы имеете контакты с авторами - свяжитесь с нами пожалуйста

 

Русский !МАД-коннектор
The Russian MUD Connector
mudconnector.su

This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.