"Умная" пауза в работе макроса[автомакроса]

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

"Умная" пауза в работе макроса[автомакроса]

Сообщение Cooot »

Можно ли как нибудь реализовать такую конструкцию работы макроса:

*команды макроса*

*макрос прерывается и в это время в действие вступает Ai ОК*

*макрос продолжается далее после паузы*

Просто в некоторых макросах удобно было бы дать Коре осмотреться и дать время выполнить необходимые действия, такие как сбор лута или убийство нужных мобов по параметрам прописанным в конфигах, а потом продолжить макрос с того же места, где он был остановлен

Желательно, чтобы пауза задавалась просто отрезком времени...
Аватара пользователя
Aib0
Бывалый
Сообщения: 961
Зарегистрирован: Чт ноя 16, 2006 12:50 am
Контактная информация:

Сообщение Aib0 »

Разбей на 2 макроса
Wtf is "OpenKore"?

"What we're dealing with here is a total lack of respect for the law"
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Сообщение Cooot »

На два не выход, так как все действия, что должны идти ДО паузы и после нее соответствовать должны одним событиям на срабатывание...

Уточнение по теории: Команда stop в теле автомакроса останавливает ВСЕ макросы на данный момент, которые шли? например, если в теле автомакроса был вызов двух подряд обычных макросов, в теле первого был stop, то дойдет ли выполнение до второго или на этом все остановится
SpyRO
Новичок
Сообщения: 3
Зарегистрирован: Ср апр 16, 2008 8:39 am

Сообщение SpyRO »

Юзай поиск


[Help] Различие между delay, pause и timeout? - Так темка называется
Artemyi
Энтузиаст
Сообщения: 61
Зарегистрирован: Вт ноя 14, 2006 11:05 pm

Сообщение Artemyi »

Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Сообщение Cooot »

В принципе удалось решить проблему используя команду timeout, правда не в таком виде как было изначально, но перестроив порядок выполнения команд под него

Спасибо :)
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

Cooot
спасибо-то-спасибо, но ты бы хотябы выложил алгоритм работы ))
да, кстати, ты менял что-то в функицональности timeout?
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Сообщение Cooot »

Нет, ничего не менял, задача была простая растить, убивать и собирать алкоголь с грибов одним ботом...

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

Решив, что убивать грибы лучше всего через mon_control вписав их туда) Но макрос никак не отпускал кору для этого)

Поэтому я хотел поставить на срабатывание макрос на выращивание грибов только когда бот убьет последний гриб и их не останется, что я поднимал в соседней теме, но условия на отсутствие мобов вокруг вообще я не нашел...

В итоге пришел к самому простому варианту, может не очень производительному, но логичному:
automacro mushroom {
location alberta 125 89
timeout 40
sp > 10%
inventory "mushroom spore" >= 1
call posadka
run-once 1
}

macro posadka {
do sl 491 124 89 1
do sl 491 124 88 1
do sl 491 125 88 1
do sl 491 126 88 1
release mushroom
}
В среднем делая 4 посадки получает 1-3 гриба, которые он успевает спокойно убить за 40 секунд и поднять нужный лут)
Изображение
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

Cooot
есть замечательный плагин - reactOnActor. там есть условие, определяющее наличие или отсутствие Акторов (в данном случае монстров - грибов).
я бы использовал этот плагин с таймаутом (чтобы после убийства последнего возможного гриба я успел собрать лут).

таким образом алгоритм макроса будет очень простым:

1. если нет грибов ждём 5-10 секунд (можно рандомно, чтобы красиво было). после задержки высаживаем грибы.

call posadka 4

macro posadka {
do sl 491 124 89 1
}

(макрос запустится 4 раза. сократим код, оптимизируем макрос)

2. если у нас более чем 4 гриба (ну или сколько там надо посадить). останавливаемся. начинаем мочить грибы.

3. релиз первого и второго макроса :) релизнём первый - через небольшую задержку снова будет запускаться процесс высадки.
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Сообщение Cooot »

Установил плагин и в целом начал разбираться в его документации, жаль она на английском, поэтому простой вопрос или точнее просьба, опиши как именно запустить условие по этому плагину в моем макросе, я могу использовать его и в конфиг.тхт и в макро.тхт? Мини пример первой строки и место ее дислокации, дальше я бы разобрался уже, заранее спасибо.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Cooot
Играешь в Локо-Роко? >_<
Аватара пользователя
Cooot
Грамотный
Сообщения: 306
Зарегистрирован: Пт апр 25, 2008 8:02 am

Сообщение Cooot »

[оффтоп]Играл, прошел, очень понравилась).[/оффтоп]

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

P.S.
Add a reactOnActor config block in your config.txt which defines the command to use and the conditions that will be tested against the actor seen which will trigger Openkore to use the command
Изображение
Ответить