Пятница, 29.03.2024
Hameleon Mud game client
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Настройка » Основной » Триггера (Тонкости работы триггеров)
Триггера
mudclientДата: Пятница, 11.10.2013, 11:25 | Сообщение # 1
Рядовой
Группа: Администраторы
Сообщений: 9
Статус: Offline
Основное замечание: Триггера в Хамелеоне не являются регулярными выражениями
они похожи, но идеологически это не то и ближе к шаблонам в языке LUA


  • Триггер проверяет всю строку, символ ^ в начале шаблона совершенно безсмысленен и соответственно работать не будет (есть определённая проблема с ловлей промпта. например, в былинах промпт посылается без перевода строки - невозможно понять это строка не полностью пришла или это промпт, в аладоне можно сделать перенос строки промпта включением в промпт строки "%c" )
  • В качестве исключения шаблоном может быть переменная, главное что бы она не была объявлена до задания триггера (например, удобно так задавать триггер на промп как наиболее часто употребляемый)
  • Все так называемые сеты относятся к жадным и могут включать от 0 до ХХХ символов


Пример настройки триггера для жряка на лечение по отчёту
Код
#set 1 {-АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя}
#set H {0123456789}
#set h {-0123456789}
#var h 0

#alias л0 {#pasgroup леч ; гг по отчёту не лечу}
#alias л1 {#actgroup леч; #var d {по отчету лечу: }; #for л {#add$ d $for; #add$ d ,} ; гг {$d}}
#alias л+ {#ifin л {%0} {#ar л}  { [color=#ff0000]#ifequ {%0} {} {#ar л}  {#ar л {%0} }}}
#alias л- {#ifequ  {} {%0}  {#nop}   {#unar л {%0}; #ar л} }

#action {%1 произносит: У меня %h/%H жизни,%С опыта.} {#ifin л {%1} {#percent h {%h} {%H}; #iflt $h 40 {ко обновл %1} {гг %1 много хп}}} {леч}


  • л0 - отключение работы триггера
  • л1 - включение и показ кого
  • л+ - добавление в группу лечимых
  • л- - удаление из группы лечимых
 
mudclientДата: Пятница, 11.10.2013, 11:27 | Сообщение # 2
Рядовой
Группа: Администраторы
Сообщений: 9
Статус: Offline
Спецкоманды для триггеров:
  • #drop - удалит приходящую строку из показа, так можно отсекать лишний спам
  • #checknext - триггера проверяются с самого последнего введённого до первого, если
    шаблон поймался, то следующие за ним шаблоны не проверяются, эта командазаставляет проверять остальные шаблоны


Отсечка спама:
Код
#action {%к вытягивает жизнь %е} {#drop} {спам}
#action {%к морозит %у} {#drop} {спам}
#action {%к опаляется %е.} {#drop} {спам}
#action {%к бьет %у электричеством.} {#drop} {спам}


Вывод болтанки и разговоров в окно вывода (здесь используется
недокументированная "фича". Если множество не указано в шаблоне его всё
равно можно использовать в действии. %t используется в триггере на
промпт и соответственно хранит текущее время)

Код
#action {%1 болтает:%O} {#out {\R(%t)%1\G->\M%O}} {болтанка}
#action {%1 говорит группе:%O} {#out {\G(%t)г\R%1\G%O}} {болтанка}
#action {Ты болтаешь: %О} {#out {\R(%t)я->Б:\M%О}} {болтанка}
#action {[оффтопик] %1: %O} {#out {\G(%t)off:\R%1\G%O}} {болтанка}
#action {[оффтопик] Ты : %О} {#out {\R(%t)я->off:\M%О}} {болтанка}
#action {%1 говорит тебе: %O} {#out {\G(%t)Razg:\R%1 \Y%O}} {болтанка}
#action {Ты говоришь %1: %O} {#out {\G(%t)Я->\R%1 \Y%O}} {болтанка}
#action {Ты говоришь группе:%О} {#out {\R(%t)я->г\G%О}} {болтанка}


вот так можно задать основные множества используемые в промпте
Код
#set E {DENSUW}
#set H {0123456789}
#set M {0123456789}
#set T {0123456789}
#set V {0123456789}
#set X {-0123456789}
#set Y {АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя}
#set d {0123456789}
#set e {ВЗНСЮв}
#set f {0123456789}
#set g {0123456789}
#set h {-0123456789}
#set m {-0123456789}
#set s {0123456789}
#set t {0123456789}
#set v {-0123456789}
#set w {АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя}
#set x {-0123456789}
 
Форум » Настройка » Основной » Триггера (Тонкости работы триггеров)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024