Планировщик.

    Планировщик позволяет создавать произвольное число расписаний, которые в свою очередь могут запускать lua-скрипты с различными действиями в них.
 
    Открыть окно планировщика можно через соответствующее меню в рабочем окне (программы Окна - Планировщик) (см. рис. 1).

(рисунок 1)

    Все расписания глобально можно разделить на служебные и пользовательские. 
 
    Служебные обеспечивают работу стандартных одиночных скриптов: Начала и окончания каждых игровых суток (имеют идентификаторы for_EachNewDay_Script и specialForEndDay), Начала каждых квестовых суток (specialForNewQuestDay), а также specialForLotoBuy реализующий ситуацию ожидания появления в лавке нужных предметов (тиражей лото) на определенный момент времени для более быстрого входа в покупку. Служебные расписания не рекомендуется удалять из списка. Это нарушит работу связанных с ними скриптов (или и вовсе сотрет их содержимое).

(рисунок 2)
    Пользовательские, как и следует из названия, создаются самим пользователем для решения личных задач.

    Создание нового расписания осуществляется через клик на ссылку "Новая запись" (3.1) над списком. 

(рисунок 3)

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

    Новое расписание получает идентификатор (название расписания), начинающийся на "id" + случайный набор цифр. Идентификаторы разных расписаний ни в коем случае не должны совпадать! При необходимости пользователь может задать собственную строку-идентификатор (не переименовывайте служебные расписания) (3.2).
 
    Кроме идентификатора каждое расписание позволяет задать строку-описание, в которой можно указать детали выполняемой задачи, чтобы лучше ориентироваться, если расписаний будет много (3.3).

    Кроме того каждое расписание имеет дату срабатывания (4.1), смещение для формирования новой (4.2), если требуется циклическое срабатывание, и блок настройки скриптов (4.3).
(рисунок 4. Увеличивается при клике)

    Для удобства задания фиксированных значений в дату начала действия расписания и его смещения, можно использовать выпадающее меню на кнопке "<=Уст.(ановить)Время<=" (выбор меню запоминается и повторное нажатие на кнопку повторяет то же самое назначение).

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

    Ситуация 1. Нужно после определенной даты однократно запустить скрипт. 
В полях даты (5.1) указывается нужная. В полях смещения (5.2) все нули. В блоке "мульти-скрипт" "*Период активности (сек)" (5.3) устанавливается так же в 0.  (последний параметр будет более подробно рассмотрен далее)
(рисунок 5)
    А все требуемые действия прописываются в "Основной(1х)Скрипт" справа. Кликаете по ссылке и вводите команды в открывшемся редакторе.
(рисунок 6)
    Ситуация 2. Один и тот же скрипт нужно выполнять постоянно и с одним и тем же периодом.
Настройка аналогична ситуации 1, за исключением смещения (5.2). В него вносится на сколько должна измениться исходная дата для нового срабатывания. Например, + 1 день (можно использовать ненулевые значения сразу в нескольких полях: + 1 день, 2 часа, 3 минуты, 4 секунды).
(рисунок 7)
    Примечание. Расписание срабатывает не строго в указанное время. Реальный запуск скрипта может запаздывать, в зависимости от того, чем занята программа. Например, это никогда не произойдет, пока программа проводит бой. Если срок выйдет в бою, то расписание будет активировано после его окончания. В общем проверка расписаний и запуск скриптов производится не параллельно основному циклу текущего режима, а внутри него и в строго определенных точках выполнения. 
    Исходя из этого рассмотренная выше ситуация плохо подходит для активации благословений или чего-то подобного. Следующая дата срабатывания вычисляется не от фактической, а от исходной. Например, при смещении +2 часа и исходной 0:01:05 следующие точки срабатывания будут смещаться строго как: 2:01:05, 4:01:05, 6:01:05 ... 22:01:05. При этом, если перс проводит длительные бои (боссы или вихрь), то реальное срабатывание может происходить через минуты после исходной даты. Если активировать благо с запозданием, то оно может не успеть истечь к следующему запуску. Вариант со смещением относительно прошлого реального запуска скрипта будет рассмотрен дальше.

    Кроме основного скрипта выполняемого всегда однократно, к расписанию прикреплен дополнительный, который может иметь многократный запуск. Его активность в первую очередь регулируется параметром "*Период активности (секунд)". Если он не равен нулю, то обработка расписания немного изменяется. После исходной даты и в течении указанного числа секунд действует специальный период активности и в его рамках начинает выполняться дополнительный скрипт. По истечении дополнительного периода (то есть исходная дата + указанное число секунд) однократно выполняется основной скрипт. 
    На запуск дополнительного скрипта также будут оказывать влияние опции "*Счетчик" и "*Между запусками (секунд)". Первым можно задать ограничение на число запусков (0 для любого количества пока не истек период активности), а вторым задать интервал между сработками. Причем этот интервал учитывает фактическое время старта прошлого скрипта. Новый не будет запускаться, если не вышло указанное значение (минимум 1 секунда).
 
    Для чего могут быть полезны такие сложности.
 
    Ситуация 3. Когда известна дата появления нужного тиража в лавке, то для его оптимальной покупки стоит заранее прекратить лишнюю активность программы (например включить режим Ожидание). При этом начать часто производить опрос лавки, чтобы как можно быстрее увидеть изменение ассортимента и приступить к покупке, пока не разобрали большие стеки. А после закупки вернуть предыдущий режим и продолжить работу. В общем тут может быть любая ситуация когда в рамках одного условия сначала надо выполнить один набор действий (в том числе например изменить настройки самой программы), а по истечении времени другой (выставить настройки как было или любой другой вариант).
(рисунок 8. Увеличивается при клике)
8.1. - дата сработки;
8.2. - в течении 600 секунд (10 минут);
8.3. - меняем текущий режим (если стоит другой) на Ожидание и с паузой между попытками в 1 сек начинаем опрашивать лавку (при счетчике 0 производим столько попыток, сколько влезет в отведенные 10 мин);
8.4. - по истечении 10 минут возвращаем прежний режим работы и продолжаем прошлую деятельность дальше.

    Ситуация 4. Требуется регулярно набрасывать бафы на определенных игроков.
    Настройка схожа на прошлый вариант. 
8.1. - дата начала;
8.2. - активный период выставляется в большое значение, например неделю или больше;
8.3. - в доп. скрипт заносим команды на бафы, счетчик либо по прежнему 0, либо столько сколько бафов надо навесить, пауза между запусками - время действия бафа + пару секунд, чтобы не наступить на хвост еще не упавшего с прошлого раза эффекта.
8.4. - основной скрипт можно не использовать.
Пример с конкретикой по самим скриптам на эту ситуацию есть здесь: https://heavengameonline.blogspot.com/2021/10/blog-post_21.html

Удаление расписания из списка осуществляется путем клика в поле с символом "Х" (столбик "Удалить")

Пещера. Призыв вместо прогона.

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

    Полная замена пещерного прогона на призыв осуществляется выбором соответствующего подрежима в пещерных настройках: "Обыск + призыв вместо прогона". В этом случае любое действие "Прогонять" будет заменено на условное "Заменить призывом". 

    ВАЖНО. Для любых перепризывов сам призыв должен быть настроен (указан с какого свитка призывать и прочие параметры).

    Однако бывают ситуации, когда требуется средний вариант: на части монстров прогон оставить, а на другой заменять ненужных призывом. Такой вариант тоже реализуем, хоть и с большим объемом манипуляций. В этом случае подрежим должен иметь значение "Обыск", а саму необходимость перепризыва для каждого конкретного монстра придется задавать через действие "Не_прогонять (перепризвать)" в общем списке монстров.

    Причем есть два варианта этого "Не_прогонять". Отмечены на скрине, ниже описание в том же порядке следования как и в опции.

    Безусловное "Не_прогонять", которое заменяет всех встретившихся монстров с любым дропом. 

    Либо "Нужный дроп (атака) \ Не прогонять". Тут уже вначале происходит проверка действия на предмете в (обязательно) открытом дропе. "Нет действия" приравнивается к "Заменить монстра призывом", остальные атакуются.

    После призыва работа с монстром производится по стандартному для этого подрежима механизму. Монстр может быть как атакован, так и снова перепризван или прогнан (можно заменить дорогого для прогона монстра на более дешевого и прогнать уже его с меньшими расходами). Этот момент регулируется опцией "Спец.действие для призываемого" =>

    Причем два значения выбора специфичны именно для принудительного перепризыва ("Прогонять" и "1х нужный дроп).
- Перепризыв до нужного дропа. У призванного монстра проверяется дроп и если он не подходит, то начинается циклический перепризыв до подходящего;
- Атака всего дропа. Дроп не проверяется, монстр атакуется с любым; 
- Прогонять. Призванный монстр будет прогнан с любым дропом в нем;
- 1х нужный дроп. Сначала проверяется дроп, подходящий атакуется. Если он не подошел монстр прогоняется. Перепризыв до нужного дропа не производится;
- Согласно индивидуальному действию каждого монстра. Монстр обрабатывается по действию назначенному на него в общем списке.

Если долго грузится игра, особенно если наблюдается значительная разница между профилями.

    Данная проблема может происходить из-за содержимого файлового кэша. И первое, что надо попробовать, выполнить его очистку стандартным методом, нажав кнопку " Очистить КЭШ " на панели слева. Для завершения операции браузер после перезапустить.

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

1. Закрыть пом-браузер.

2. Открыть папку программы, найти в ней папку " Cache " и зайти в нее. 

Если с открытием папки программы испытываете трудности, то при открытом помощнике эту операцию можно выполнить через вкладку " Общие " окна настроек.

При закрытом помощнике папку можно открыть через ярлык запуска программы на рабочем столе. Для этого нужно вызвать его свойства (правую кнопку мыши на ярлыке - Свойства в открывшемся меню). В окне свойств на вкладке Ярлык нажать кнопку Расположение файла.
Напоминаю, что непосредственно в папке программы, нужно открыть подпапку " Cache ".

3. Внутри ее будет еще ряд папок приблизительно такого вида.

Цифра в конце есть порядковый номер профиля на панели браузера. 

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

5. Запустите пом-браузер. Он автоматически создаст обратно папку кэша и начнет заполнять ее содержимым. 

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

Переключение типа игры

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

0. Если вы только запустили программу и она у вас начала открывать браузер, то остановите процесс автоматической привязки к игре, чтобы пом не волновался, что пока эту самую игру не может найти. Для этого потушите кнопку " СТАРТ " в рабочем окне программы (кликнув по ней, если она подсвечена).

1. В адресную строку браузера через буфер обмена копируете (выделяете здесь, на выделении кликаете правой кнопкой мыши - Копировать) этот адрес http://2b2s.ru/gameSwitch.html и заменяете на него весь текущий текст (стереть текущее содержимое адресной строки, правую на поле ввода - Вставить). Дальше нажимаете кнопку " GO " справа.

2. На появившейся странице выбираете тип игры (флеш выбран по умолчанию, можно оставлять как есть), и затем нажимаете кнопку " GO>>> ".
3. Должен начать загружаться выбранный тип игры. Почти все готово. Надо вернуть в адресную строку правильный адрес для последующего открытия. Желательно не игнорировать этот шаг. Нажимаем кнопку " nebogame.com ".
4. Выполняем привязку к игре вручную, путем перетаскивания прицела на игру в область островного монстра (все текущие игровые окна лучше закрыть до чистого острова). Ждем сообщения об ее успешном окончании, и, если не нужна дополнительная донастройка, жмем " СТАРТ " в рабочем окне.

Добавление предметов.

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

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

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

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

    Картинка предмета в окне его параметров.

    Любая открытая группа предметов (в т.ч. список дропа монстров).

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

(2170.ACTIVE) Обновлена ACTIVE-версия программы Помощник.

  Что изменено с прошлого релиза:

    - (Исправлено) в отдельных ситуациях не применяло эликсиры, особенно свежедобавленные в список.

     Для установки обновления (не касается frozen-версии 2127) перезапустите программу и согласитесь с запросом на обновление при новой загрузке.

    Если используете несколько копий одновременно, то постарайтесь не закрывать их все в один момент. При сохранении используется ряд общих файлов у всех копий, и одновременный процесс может вызвать драку за доступ к записи/чтению таких файлов с непредсказуемым результатом (в том числе повреждению сохранения). 
    Так что оптимальным вариантом будет закрытие каждой следующей копии после полного закрытия окон предыдущей.
    Либо установите программу поверх в ту же папку (при закрытой программе) с установщика:
Альтернативные ссылки на установщики:
ACTIVE-версия помощника: 

(2169.ACTIVE) Обновлена ACTIVE-версия программы Помощник.

  Что изменено с прошлого релиза:

    - (Исправлено) возникновение ошибки -7 при прогоне, появившейся после проф.работ 03.03.2022;
    - (Исправлено) фильтр типа предмета "Экипировка". В прошлых версиях он пропал и весь экип заносился в последнюю группу "Прочее" (в том числе при сортировке содержимого сундука по типу);
    - (Переработано) функции сброса и отката настроек на один из прошлых вариантов из истории. После сброса новозапущенная программа помнит прошлый профиль настроек и соотв. имеет доступ к его же истории сохранений (раньше сброс в любом профиле давал историю только для первого). При выборе варианта в истории теперь дополнительно выводится запрос как именно производить возврат на эти настройки: с перезапуском программы или нет. В общем случае можно отказываться от перезапуска (нажимать НЕТ). Но иногда текущие настройки настолько повреждены, что мешают любому процессу загрузки новых, то есть откат на заведомо рабочие настройки не меняет испорченную картину. В таком случае стоит загружать настройки безопасно, выбирая перезапуск (ответить ДА);
    - (Добавлено) история обращения к скриптам сохраненным в файлы. Наборы каких-то действий могут требовать только ручного запуска, а значит их не особо не привяжешь к стандартным точкам автоматического запуска. Конечно и раньше существовал способ сохранения произвольных скриптов в файлы, однако их подгрузка через диалог обладала избыточным числом кликов и затрачиваемым на это временем) Теперь программа сама ведет историю 15 последних обращений к файл-скриптам, сортируя список в порядке свежести. На первой строке будет скрипт, который был в использовании самым последним, на второй строке - предпоследним и так далее прибавляя новую частичку "пред-" для каждой последующей. Данный топ файлов может использоваться как для быстрого открытия скрипта для редактирования, так и для запуска сразу из файла без предварительной загрузки в редактор. 
    К активности относится как сохранение в файл через стандартный диалог, так и выбор в списке истории для открытия на редактирование, а также быстрый запуск из файла без подгрузки в редактор. 
    Доступ к истории возможен как на вкладке скриптов в окне настроек, так и в самом редакторе. Ссылки загрузки/выполнения скрипта преобразованы в кнопки с дополнительным списком, раскрывающимся по нажатию на стрелочку справа. Выбор конкретных имен в нем вызывает, в зависимости от исходной кнопки (списка), либо загрузку в редактор, либо немедленный запуск на выполнение из файла соответствующего скрипта;

     Для установки обновления (не касается frozen-версии 2127) перезапустите программу и согласитесь с запросом на обновление при новой загрузке.

    Если используете несколько копий одновременно, то постарайтесь не закрывать их все в один момент. При сохранении используется ряд общих файлов у всех копий, и одновременный процесс может вызвать драку за доступ к записи/чтению таких файлов с непредсказуемым результатом (в том числе повреждению сохранения). 
    Так что оптимальным вариантом будет закрытие каждой следующей копии после полного закрытия окон предыдущей.
    Либо установите программу поверх в ту же папку (при закрытой программе) с установщика:
Альтернативные ссылки на установщики:
ACTIVE-версия помощника: