Онлайн игра Адамант Адан: Хроники Средиземья

Дискуссии => Новичкам => Игровой клиент => Тема начата: Мирокс от 10 Ноя 2015 в 23:29

Название: Снова про регулярные выражения
Отправлено: Мирокс от 10 Ноя 2015 в 23:29
Коллеги, добрый день!

Хотел бы поинтересоваться, как вы вышли из положения в ситуации, когда нужно настроить автотриггер, например, на входящих мобов/игроков (учитывая, что ПК-игроков - тонны, то, мне кажется, этим заморачивался каждый второй). Т.е. цель - моб зашел на клетку - танк автоматом вписывается в него (при условии, что моб забит в цели и он не сидит на пятой точке, будучи в баше).

Раньше в Жабе, вполне канал триггер вроде: ^%0$target1%1 прискакал%2 с %2.

Учитывая жаркую политическую обстановку, отмечу, что интересуюсь я не с целью пойти и поохотиться на мирных хайлевов, а чтобы перестать судорожно атаковать входящих агромобов.

пробовал строку в духе ^.$target1. прилетел%1 %2, вдохновившись тредом про регулярные выражения - не прокатило =(

Прошу помощи!
Название: Re: Снова про регулярные выражения
Отправлено: Salrod от 12 Ноя 2015 в 04:53
Думается мне, что задачка решается нормальным регулярные выражением, учитывающим все варианты фраз.
В качестве основы я бы взял тот же принцип, что и у автореска:
Название: Re: Снова про регулярные выражения
Отправлено: lrdx от 12 Ноя 2015 в 11:22
Ну здесь либо ты вбиваешь все возможные варианты мобов в регулярку (хотя, например, агрить тигров, коз и т.д. может спровоцировать агро), примерно такую:
/^(ИМЕНА_МОБОВ) (ПРИШЛИ/ПРИБЕЖАЛИ) с (НАПРАВЛЕНИЕ)/
либо делаешь агро на всех входящих и танка с реж агро нет.
Название: Re: Снова про регулярные выражения
Отправлено: Мирокс от 20 Ноя 2015 в 17:11
Ребят, спасибо за помощь, но вопрос вот в чем:
Как сделать триггер на проверку начилия в строке переменной при условии что переменная встречается в строке.

Например, у меня есть ц1 - $t1 = Мух

Далее я хочу сделать проверку входящей строки в духе "Муха прилетела с севера."

Раньше в жабе я бы сделал триггер "^%0$t1%1 при%2 с %3."

Такой триггер у меня всегда работал. Сейчас же - нет.

Т.е. хочется чтобы была проверка неполного имени моба, например не "муха", а "мух%0" и на регистр ввода: "мух" вместо "Мух". Это реально сделать?
Путем экспериментов выяснил, что триггер затывается на обработке переменной строке. Печаль.
Название: Re: Снова про регулярные выражения
Отправлено: Salrod от 20 Ноя 2015 в 19:29
Думается мне, что задачка решается нормальным регулярные выражением, учитывающим все варианты фраз.
В качестве основы я бы взял тот же принцип, что и у автореска:
  • определяешь штук 9 переменных аля $target1/2/3/4/5/6/7/8/9
  • делаешь триггер
  • делаешь 9 штук проверок соответствия переменной и целям, далее список команд

Писал же уже - тот же принцип, что у автореска.
Потратил 5 минут, написал работающий пример (см. вложение).

В переменных $target1/2/3 у меня вбиты три цели. Когда они входят в клетку с чаром - он выполняет заданное действие(я).
Название: Re: Снова про регулярные выражения
Отправлено: Nebraska от 21 Ноя 2015 в 21:38
чет у меня совсем не работает твой тригер на "автоулыбку" влетающим на клетку бабочкам )
Название: Re: Снова про регулярные выражения
Отправлено: Salrod от 22 Ноя 2015 в 08:03
чет у меня совсем не работает твой тригер на "автоулыбку" влетающим на клетку бабочкам )

Сейчас снова проверил - почему то тоже не работал сразу триггер (хотя до этого работал).
Починилось после следующих действий - по новой добавил цели в переменные с помощью команд: target1 Бабочка, target2 Белочка, target3 Бурундук.

И снова работает:

(http://s13.postimg.org/o1c42wwif/autoattack.png)

PS: Кроме того это всего лишь пример. Он не учитывает все все варианты - это уж Ваш job.
Название: Re: Снова про регулярные выражения
Отправлено: Nebraska от 22 Ноя 2015 в 09:26
нет, именно не работает твой тригер, ибо мой который я написал уже позднее на автодогон с автоулыбкой убежавших улетевших с клетки, срабатывает. переменные с целями используются одни и те же.
Название: Re: Снова про регулярные выражения
Отправлено: Lenin от 22 Ноя 2015 в 09:36
Я хоть и не профи в написании тригеров, но методом проб и ошибок +инфы с форума, уяснил для себя две просты вещи -
Вопервых в АМС не работают тригеры с сочетанием регулярных выражений и переменных, как и было написано выше, просто забивать в регулярку все цели которые ты хочешь рескать/башить и т.п.
Тут тоже сделаю отступление по поводу работает или не работает: Сталкивался с такой хренью ни раз. Вечером позонили, разошлись, закрыл клиент лег спать. На след день собираемся зонить куда-то идем и триг у танка, на автореск просто не работает, хотя абсолютно нечего в нем не менялось... хызы так я и не сообразил из-за чего это происходило, приходилось просто удалять тригер и прописыват по новой(я даже текст документ отдельно под это дело замутил, чтоб просто копипастить).
И второй момент, на счет переменых, в АМС если имя цели склоняется, в в некоторые таргеты ее надо забивать в родительном падеже иначе триг не сработает... столкнулся с этой штукой когда триги на автооглушку ставил, в оригинальной строчке имя идет в родительно(... вспышка чето-там избавила ХиданА от оков) и если в таргет автоглуша прописать просто Хидан, триг хрен сработает... как-то так.
Название: Re: Снова про регулярные выражения
Отправлено: Salrod от 22 Ноя 2015 в 12:02
нет, именно не работает твой тригер, ибо мой который я написал уже позднее на автодогон с автоулыбкой убежавших улетевших с клетки, срабатывает. переменные с целями используются одни и те же.

Ну вот и поделился бы с народом ). А то спрашивать все могут, а вот реально выложить свой конфиг чтобы всем лучше было - это уже не каждый готов (
Название: Re: Снова про регулярные выражения
Отправлено: Lenin от 22 Ноя 2015 в 12:38
Те кто участвуют в войнах по понятным причинам конфиги свою выкладывать не будут)
Название: Re: Снова про регулярные выражения
Отправлено: lrdx от 22 Ноя 2015 в 13:36
И второй момент, на счет переменых, в АМС если имя цели склоняется, в в некоторые таргеты ее надо забивать в родительном падеже иначе триг не сработает... столкнулся с этой штукой когда триги на автооглушку ставил, в оригинальной строчке имя идет в родительно(... вспышка чето-там избавила ХиданА от оков) и если в таргет автоглуша прописать просто Хидан, триг хрен сработает... как-то так.

Так это везде так, если имя в родительном падеже, то в триге надо использовать родительный падеж, а то не срабатывает, или использовать $target1%0. Или такое тоже не работает?
Название: Re: Снова про регулярные выражения
Отправлено: Lenin от 22 Ноя 2015 в 14:11
И второй момент, на счет переменых, в АМС если имя цели склоняется, в в некоторые таргеты ее надо забивать в родительном падеже иначе триг не сработает... столкнулся с этой штукой когда триги на автооглушку ставил, в оригинальной строчке имя идет в родительно(... вспышка чето-там избавила ХиданА от оков) и если в таргет автоглуша прописать просто Хидан, триг хрен сработает... как-то так.

Так это везде так, если имя в родительном падеже, то в триге надо использовать родительный падеж, а то не срабатывает, или использовать $target1%0. Или такое тоже не работает?

Нет, в жабе можно в именительном написать и сработает. На счет $target1%0. хызы, не пробовал.
Название: Re: Снова про регулярные выражения
Отправлено: lrdx от 22 Ноя 2015 в 15:10
И второй момент, на счет переменых, в АМС если имя цели склоняется, в в некоторые таргеты ее надо забивать в родительном падеже иначе триг не сработает... столкнулся с этой штукой когда триги на автооглушку ставил, в оригинальной строчке имя идет в родительно(... вспышка чето-там избавила ХиданА от оков) и если в таргет автоглуша прописать просто Хидан, триг хрен сработает... как-то так.

Так это везде так, если имя в родительном падеже, то в триге надо использовать родительный падеж, а то не срабатывает, или использовать $target1%0. Или такое тоже не работает?

Нет, в жабе можно в именительном написать и сработает. На счет $target1%0. хызы, не пробовал.

Вообще-то нельзя:
#act {Вспышка яркого света избавила $test от оков} {ул}
#Existing variables:
{test}={Илронд}

464H 151V 1X 177C Вых:СВЮЗ> г Вспышка яркого света избавила Илронд от оков
ул
Вы сказали: "Вспышка яркого света избавила Илронд от оков"

464H 151V 1X 177C Вых:СВЮЗ> Вы тепло улыбнулись.

464H 151V 1X 177C Вых:СВЮЗ> г Вспышка яркого света избавила Илронда от оков
Вы сказали: "Вспышка яркого света избавила Илронда от оков"
Название: Re: Снова про регулярные выражения
Отправлено: Lenin от 22 Ноя 2015 в 15:50
Хм... Да сейчас тоже проверил и действительно не работает, честно говоря озадачен, потому как до установки АМС аще не парился по поводу падежа в переменной и все нормально работало...
На ум приходит только один вариант, что я все время ставил в таргет людей с несклоняемыми именами, что конечно маловероятно.
Название: Re: Снова про регулярные выражения
Отправлено: Мирокс от 30 Ноя 2015 в 14:27
2Salrod,

Что-то не могу я заставить улыбаться на входящих. Можешь скрин конфига скинуть? Есть подозрение, что у тебя там указано больше элементов проверки, чем отражается в конфиге после экспорта-импорта.
Название: Re: Снова про регулярные выражения
Отправлено: Salrod от 30 Ноя 2015 в 14:44
2Salrod,

Что-то не могу я заставить улыбаться на входящих. Можешь скрин конфига скинуть? Есть подозрение, что у тебя там указано больше элементов проверки, чем отражается в конфиге после экспорта-импорта.

Скрин кидать не вижу смысла - конфиг ровно тот что был. В архиве 4 файла - тебе нужно два - с текущими значениями переменных и самими тригами/алиасами.

На всякий случай спрошу - а ты про галку isRegExp вкурсе? Без нее триггер работает только на полное совпадение строки и не парсит регулярные выражения.

Вообще самое главное описано вот в этом треде: http://forum.adan.ru/index.php?topic=641.0

Читать три раза внимательно и экспериментировать. И будет все работать (иди от простого к сложному).

PS: Сейчас еще снова уже на работе (другой комп) проверил - работает. Причем сразу без повторного определения целей. Конфиг скачал уже с этого сайта.
Название: Re: Снова про регулярные выражения
Отправлено: Salrod от 30 Ноя 2015 в 19:13
Если нужно, чтобы триггер срабатывал на цели, в имени которых два слова (например Огромный комар, Маленькая птичка) - триг меняем совсем чуток (добавим .*):
^(\w+) .* (прибежа|прилете|приполз|приш|прискака|припрыга)(л|ло|ла|ел|) (.*)

Теперь в цели забиваю:
target1 Огромный
target2 Маленькая

Все - срабатывает на комаров и птичек.