Подробное описание некоторый триггеров и алиасов для JMC

Targetting and hunting


Стандартный алиас для установки таргета - назначение переменной и рапорт об этом в группу.

#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ом с
клавиатуры. В этом направлении я планирую его доработать.

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

 

Русский МАД-коннектор
The Russian MUD Connector
www.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.