Проблема атаки боссов.

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

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

 

 POMLUA. Резерв по новые категории функций 5. 

Чтобы информация шла единым блоком для удобства последующего просмотра.

 

 POMLUA. Резерв по новые категории функций 4. 

Чтобы информация шла единым блоком для удобства последующего просмотра.

 

 POMLUA. Резерв по новые категории функций 3. 

Чтобы информация шла единым блоком для удобства последующего просмотра.

 

 POMLUA. Резерв по новые категории функций 2. 

Чтобы информация шла единым блоком для удобства последующего просмотра.

 POMLUA. Резерв по новые категории функций. 

Чтобы информация шла единым блоком для удобства последующего просмотра.

 POMLUA. Прочие функции.

 POMLUA. Функции связанные с рейтингами.

 POMLUA. Функции связанные с ресурсами.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).
 
getCurrentResources(без параметров).
(в редакторе меню "Разное"-"Ресурсы"-"<-Получ.массив всех ресов") 
 
getCurrentBrilliants(без параметров).
(в редакторе меню "Разное"-"Ресурсы"-"<-Получить знач. брилл.") 
 
getCurrentOnyx(без параметров).
(в редакторе меню "Разное"-"Ресурсы"-"<-Получить знач. ониксов") 
 
getCurrentCrystals(без параметров).
(в редакторе меню "Разное"-"Ресурсы"-"<-Получить знач. крис.")

getCurrentEnergy(без параметров).
(в редакторе меню "Разное"-"Ресурсы"-"<-Получить знач. энергии")

getCurrentColossusFragments(без параметров).
(в редакторе меню "Разное"-"Ресурсы"-"<-Получить знач. осколков")

 POMLUA. Функции связанные с боссами.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).
 
getBossesFromGame(без параметров).
(в редакторе меню "Разное"-"Боссы"-"Обновить + Поиск/атака цели") 
 
getBossesScanInterval(без параметров).
(в редакторе меню "Разное"-"Боссы"-"<-Получить интервал опроса") 
 
setBossesScanInterval(<число секунд,0 - выкл.доп.опрос>[,<вкл/выкл(1или0)осн.опрос>]).
(в редакторе меню "Разное"-"Боссы"-"=>Установить интервал опроса") 
 
getBossesScanState(без параметров).
(в редакторе меню "Разное"-"Боссы"-"<-Получить состояние опроса") 
 
setBossesScanState(<вкл/выкл(1или0)осн.опрос>[,<число секунд, 0 - выкл доп.опрос>]).
(в редакторе меню "Разное"-"Боссы"-"=>Установить состояние опроса") 
 
 

 POMLUA. Функции связанные с лавкой редкости.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).
 
getAuchanFromGame(без параметров).
(в редакторе меню "Разное"-"Лавка редкостей"-"Обновить + Поиск/запуск покупки")
 
getAuchanScanInterval(без параметров).
(в редакторе меню "Разное"-"Лавка редкостей"-"<-Получить интервал опроса")
 
setAuchanScanInterval(<число секунд>[,<вкл/выкл автопокупку(1или0)>]).
(в редакторе меню "Разное"-"Лавка редкостей"-"=>Установить интервал опроса")

getAuchanAutobuyState(без параметров).
(в редакторе меню "Разное"-"Лавка редкостей"-"<-Получить состояние автопокупки")

setAuchanAutobuyState(<вкл/выкл(1или0)>[,<число секунд интервала опроса>]).
(в редакторе меню "Разное"-"Лавка редкостей"-"=>Установить состояние автопокупки")

 POMLUA. Функции связанные с островами и чатами.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).
 
changeLocation(<ИД локации>,<ее тип>=1(остров)).
 
 
jumpToIsland(<ИД острова/игрока>).
 
 
sendIslandBufs({массив ИД игроков},{массив кодов предметов}).
 
 
setIslandSpamParams(<общий_вкл.>[,<отправка_на_стопе>,<мин.интервал>,<счетчик>,"текст"]).
 
 
getIslandSpamEnabled(<без параметров>).
 
 
setIslandSpamEnabled(<0 = выкл, 1 = вкл>).
 
 
getIslandSpamText(без параметров).


setIslandSpamText("текст").


getIslandSpamCount(без параметров).


setIslandSpamCount(<число отправок(0 = бесконечно)>).


getIslandSpamInterval(без параметров).


setIslandSpamInterval(<число секунд (1+)>).


getIslandSpamOnStopFlag(без параметров).


setIslandSpamOnStopFlag(<0 = выкл, 1 = вкл>).


 POMLUA. Функции связанные с боем.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).
 
getCombatState(без параметров).
(в редакторе меню "Бой" - "<-Получить статус/наличие боя") 
Возвращает статус боя. При отсутствии активного - ноль. Можно использовать для организации логики работы относительно того, есть сейчас бой или нет.

 POMLUA. Функции связанные с монстрами.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).
 
getMonsterParam(<код_монстра>).
(в редакторе меню "Монстры" - "<-Получить параметры по коду")  
Возвращает таблицу (массив) с именованными полями-параметрами указанного монстра. К полям можно обращаться по текстовым идентификаторам: "'id" (код_монстра), "action" (действие), "attackCount" (счетчик побед), "attackActionScript" (скрипт выполняемый после окончания счетчика побед), "loseCurCount" (число поражений этому монстру подряд), "loseAllCount" (общее число поражений этому монстру), "caption" (имя монстра). Надо понимать, что возвращается копия параметров, редактировать таблицу можно, но изменения не переносятся на исходного монстра. Реальные параметры изменяются вызовом отдельных функций.
Пример.
local curMonster = getMonsterParam(2000005046)
message(curMonster.caption) --покажет "Махуика_8ур."
toLog(curMonster.id) --выведет 2000005046
toLog(curMonster.action) --выведет код текущего назначенного действия 
Эта команда позволит выстраивать нужную логику ориентируясь на параметры других монстров.
 
setMonsterParam(<код_монстра>,<действие>,[<счетчик>,"<скрипт-строка>"]).
(в редакторе меню "Монстры" - "=>Изменить параметры")
Назначает указанным первым параметром монстрам (это может быть как одиночный код, так и массив кодов через запятую, заключенных в фигурные скобки {A,B,C,D}) значения из указанных последующих. Как минимум должно быть указано два параметра (монстра и основное действие). Остальные параметры не обязательны. 
Если указан массив монстров, то каждому из них будет назначен один и тот же набор параметров.
Пример.
setMonsterParam(
    {2000005046--[[Махуика(8ур.)]],2000005159--[[Адепт_хаоса_10ур._]]}, --монстры
    monActCheckDropAttackElseGone--[[Нужный_дроп_атака]], --общее действие для них
    0) 

-- назначит двум монстрам (Махуика и Адепт_хаоса) действие "Нужный_дроп(атака)\Прогнать" и счетчик побед равный 0. --[[текст]] это комментарий. На выполнение он не влияет, служит для пояснения, может быть опущен.
В качестве кодов действий можно использовать следующие текстовые константы:
    monActGone - Нет_действия(прогнать)
    monActAttackAllDrop - Атаковать_весь_дроп
    monActStop - Остановиться
    monActToMyFavorites - Перс(остров)_в_программное_избранное (при этом монстр не атакуется)
    monActCheckDropAttackElseGone - Нужный_дроп(атака)\Прогнать, если дроп не подходит
    monActNoGoneReCall - Не прогонять в островном режиме (перепризвать в пещерном). Важно использовать это действие с осторожностью для островных монстров. Оно не совместимо с длительным фармом.
    monActCheckDropAttackElseNoGoneReCall - Нужный_дроп(атака)\Не_прогонять(перепризыв). Если дроп не походит, то действие аналогично предыдущему.
    monActToGameFavorites - Перс(остров)_в_игровое_избранное (при этом монстр не атакуется)
    Следующие три действия являются специальными не атакующими, но производящими поиск нужного дропа. Различаются действием при обнаружении предмета с действием. Если он не подходит, то монстр прогоняется. Дальше будут указаны только действия "нужного дропа".
    monActCheckDropNoGoneElseGone - просто "тихо" пропустить монстра (его потом можно будет найти, если перезапустить режим, выставив на этом монстре уже атакующее действие).
    monActCheckDropToMyFavoritesElseGone - внести остров/игрока с монстром в программное избранное
    monActCheckDropToLogElseGone - похоже на первое из тройки, только еще появится запись в логе.
    Эти действия могут использоваться для поиска дропа на монстрах, которых вы пока не можете атаковать автоматически. А второе для формирования списка из нескольких монстров в программном избранном для их последующей ручной атаки.

В редакторе константу можно выбрать из меню "Константы"-"Действия_на_предметах" либо соответствующего блока на панели (выбрать из списка и нажать кнопку "V Вставить V".
 
Кроме того, в редакторе доступен шаблон (на панели сверху "Шаблоны"-"Параметры"-"Монстр"-"Комплект"), позволяющий вставить пропись команды с заполненными параметрами монстра. Для этого нужно перетащить на него название из стандартного окна с монстрами. Текущие параметры будут скопированы с него и добавлены в пропись. Так что все параметры (которые потом должны быть установлены скриптом) можно сначала назначить привычным образом в программе и затем просто "сбросить" монстра на шаблон.
 
setMonsterAction(<код_монстра>,<действие>).
(в редакторе меню "Монстры" - "=>Изменить действие") 
В отличие от предыдущей команды всегда устанавливает только один параметр для каждого из указанных монстров - основное действие. 
 
Кроме того, в редакторе доступен шаблон на панели сверху ("Шаблоны"-"Параметры"-"Монстр"-"Основ.действие"). Принцип работы идентичен описанию для комплекта настроек выше.
 
setMonsterCount(<код_монстра>,<счетчик_побед_над_ним>).
(в редакторе меню "Монстры" - "=>Изменить счетчик") 
Назначает каждому из указанных монстров один и тот же счетчик побед.
 
Кроме того, в редакторе доступен шаблон на панели сверху ("Шаблоны"-"Параметры"-"Монстр"-"Счетчик побед"). Принцип работы идентичен описанию для комплекта настроек выше.
 
setWorkIslandLevel({уровень,уровень,...массив}[,<не_ноль - сбросить остальные>]).
(в редакторе меню "Монстры" - "=>Включить уровни") 
Позволяет изменить выбор активных уровней для работы островного режима. Данная команда производит активацию (включение) указанных. Если вторым необязательным параметром передать число отличное от нуля, то все остальные неуказанные уровни перейдут в состояние "выкл.", иначе их состояние останется прежним.

resetWorkIslandLevel({уровень,уровень,...массив}).
(в редакторе меню "Монстры" - "=>Выключить уровни") 
Позволяет изменить выбор активных уровней для работы островного режима. Данная команда производит выключение указанных. Состояние неуказанных уровней останется прежним.
 
setWorkIslandLevelByAttack(<разброс_от_уровня_каждого_монстра>).
(в редакторе меню "Монстры" - "Устан. уровни по атаке") 
Позволяет изменить выбор активных уровней для работы островного режима. Для включения уровней будет взят текущий список островной атаки, точнее уровни монстров. Каждый получит плюс-минус указанный разброс относительно себя. Полученный диапазон будет включен в списке уровней. Уровни "без монстров" будут выключены.

 POMLUA. Функции связанные с предметами.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).

getObjParam(<код_предмета>).
(в редакторе меню "Предметы" - "<-Получить параметры по коду")
Возвращает таблицу (массив) с именованными полями-параметрами указанного предмета. К полям можно обращаться по текстовым идентификаторам: "'id" (код_предмета), "action" (основное_действие), "secActionCount" (счетчик_второго/временного_действия), "secAction" (код_второго/временного_действия), "secActionScript" (скрипт_обнуления_счетчика), "caption" (заголовок). Надо понимать, что возвращается копия параметров, редактировать таблицу можно, но изменения не переносятся на исходный предмет. Реальные параметры изменяются вызовом отдельных функций.
Пример.
local curObj = getObjParam(12817)
curObj.caption --будет содержать "Рубаха_странника"
curObj.id --будет содержать 12817
curObj.action --основное действие, которое назначено на этот предмет в самой программе  
Эта команда позволит выстраивать нужную логику ориентируясь на параметры других предметов.

setObjParam(<код_предмета> либо {<предмет1>,<предмет2>,<предмет3>,...массив кодов},<основное_действие>[,<счетчик_врем. действия>,<временное_действие>]).
(в редакторе меню "Предметы" -  "=>Изменить параметры")
Назначает указанным первым параметром предметам (это может быть как одиночный код, так и массив кодов через запятую, заключенных в фигурные скобки {A,B,C,D}) значения из указанных последующих. Как минимум должно быть указано два параметра (предметы и основное действие). Остальные параметры не обязательны. 
Если указан массив предметов, то каждому из них будет назначен один и тот же набор параметров.

Пример.
setObjParam({12817,14910}, objActNoAction, 5, objActTake) 
-- предметам Рубаха_странника и Кольцо_шести_культов будет назначен сбор по 5шт каждого наименования и дальнейшее игнорирование (пропуск у монстров либо продажу при атаке всего дропа). Эквивалентно такому виду в самой программе (показано для одного предмета).
В качестве кодов действий можно использовать следующие текстовые константы:
    objActNoAction - "Нет_действия";
    objActTake - "Собирать";
    objActAlwaysTake - "Важный_сбор" (особых отличий от обычного не имеет, можно использовать просто для выделения предметов в отдельную категорию);
    objActDismantle - "Разбирать";
    objActSell - "Продавать";
    objActDismantleNSell - "Вскрыть-Продать" (специфическое действие применимое только к тем предметам, на которых подобное есть и в игре, например коробках с рабами/рабочими. Не используйте на неподдерживаемых предметах. Это будет вызывать ошибку при их обработке);
    objActDismantleAll - "Вскрыть Все" (так же специфическое действие, которое может применяться только к предметам которые имеют его поддержку и в игре, например, брилл. сюрпризы, рецепты и сосуды с энергией. Использование на других запрещено);
    objActTakeNStop - "Собрать и Стоп" (остановиться после первого сбора данного предмета);
    objActBuy - "Покупать" (из магазинов других хранителей и биржи, если выставлены соотв. настройки. При обработке дропа эквивалентно "Собирать", но не наоборот: "Собирать" никогда не равно "Покупать");
    objActStop - "Остановиться" (при "Нужный дроп" на монстре - остановиться до атаки, при выбитом предмете - собрать и остановиться);
    objActStudy - "Изучить рецепт" (старый вид действия, полностью эквивалентен "Разбирать");
 
В редакторе константу можно выбрать из меню "Константы"-"Действия_на_предметах" либо соответствующего блока на панели (выбрать из списка и нажать кнопку "V Вставить V")

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

setObjAction(<код_предмета либо {массив,кодов,предметов}>,<действие>)
(в редакторе меню "Предметы" -  "=>Изменить действие")
В отличие от предыдущей команды всегда устанавливает только один параметр для каждого из указанных предметов - основное действие. 
 
Кроме того, в редакторе доступен шаблон на панели сверху ("Шаблоны"-"Параметры"-"Предмет"-"Основ.действие"). Принцип работы идентичен описанию для комплекта настроек выше.

setObjSecCount(<код_предмета либо {массив,кодов,предметов}>,<счетчик>).
(в редакторе меню "Предметы" -  "=>Изменить счетчик врем.действия")
Назначает каждому из указанных предметов один и тот же счетчик временного действия.

setObjSecAction(<код_предмета либо {массив,кодов,предметов}>,<врем.действие>).
(в редакторе меню "Предметы" -  "=>Изменить временное действие")
Назначает каждому из указанных предметов одно и то же временное действие.

sellObj(<код предмета> либо {массив,кодов,предметов},<количество>=0).
(в редакторе меню "Предметы" -  "Продать предмет в сундуке")
Продает указанные предметы из сундука. Параметр <количество> имеет специфику в зависимости от значения: "ноль" = все, что есть в сундуке; "больше нуля" = указанное количество, либо все, если в реальности есть меньше; "меньше нуля" = все, кроме указанного, либо ничего, если реальное количество меньше либо равно указанному по модулю (без знака минус). 
Если второй параметр не указан, то он принимается равным нулю. Если осуществляется частичная продажа стекуемых предметов, то производится автоматическое разделение пачек, для получения отдельных с нужными для точного попадания в итоговое число стеками.

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

dismantleObj(<код предмета> либо {массив,кодов,предметов},<количество>=0[,<Вскрыть-Продать>=0]).
(в редакторе меню "Предметы" -  "Разобрать предмет в сундуке")
Разбирает указанные предметы в сундуке. Параметр <количество> имеет специфику в зависимости от значения: "ноль" = все, что есть в сундуке; "больше нуля" = указанное количество, либо все, если в реальности есть меньше; "меньше нуля" = все, кроме указанного, либо ничего, если реальное количество меньше либо равно указанному по модулю (без знака минус). 
Если второй параметр не указан, то он принимается равным нулю. Если осуществляется частичная обработка стекуемых предметов, то производится автоматическое разделение пачек, для получения отдельных с нужными для точного попадания в итоговое число стеками. Если стекуемый предмет поддерживает "Разобрать все", то этим действием обрабатывается вся пачка, вместо разбора каждой штуки по отдельности.
Третьим необязательным параметром можно задать применение "Вскрыть-Продать". По умолчанию = 0.

Кроме того, в редакторе доступен шаблон (на панели сверху "Шаблоны"-"Действия"-"Разобрать(сунд.)"), позволяющий вставить пропись команды с заполненными параметрами. Принцип работы идентичен описанию для шаблона продажи предмета выше.
 
getChestFreeSpace(без параметров).
(в редакторе меню "Предметы" -  "<-Получить свободн.в сундуке")
(в редакторе меню "Разное" -  "Сундук" - "<-Получить число свободн.слотов")
Возвращает число свободных слотов в сундуке.
 
getCellId(<номер страницы(0 для рюкзака)>,<положение на ней>)
(в редакторе меню "Разное" -  "Сундук" - "<-Получить код ячейки")
Возвращает код ячейки для указанных номера страницы (указывайте 0 для рюкзака) и номера ячейки на ней. Может использоваться в вызовах других функций в качестве параметра (будет показано в примере ниже).
 
getObjCodeFromCell(<код ячейки>)
(в редакторе меню "Предметы" -  "<-Получить код предмета в ячейке")
(в редакторе меню "Разное" -  "Сундук" - "<-Получить код предмета в ячейке")
Возвращает код предмета содержащегося в указанной ячейке и 0, если она пуста. Таким образом может использоваться в первую очередь для определения занятости слота, а во вторую для уточнения, что же именно там лежит.
Кроме непосредственно указания кода в виде цифр, что довольно неудобно, можно использовать вызов функции описанной выше.
Пример.
curCell = getObjCodeFromCell(getCellId(0,5)) --присвоить переменной curCell код предмета в пятой ячейке рюкзака
curCell = getObjCodeFromCell(getCellId(1,25)) --получить код предмета со 2 стр. сундука и 25 позиции в нем.
Для обращения к слотам экипировки можно использовать текстовые константы:
    eqipSlotLeftHand - слот левой руки
    eqipSlotRightHand - слот правой руки
    eqipSlotArmor - слот брони
    eqipSlotRing - слот кольца
    eqipSlotAmulet - слот амулета
    eqipSlotRelic - слот реликвии
    eqipSlotTalisman - слот оберега
    eqipSlotPet - слот питомца
    eqipSlotMount - слот маунта
    eqipSlotSignOfStrength - слот знака силы
    eqipSlotScabbard - слот ножн
    eqipSlotGarb - слот облачения
    eqipSlotTrophy - слот трофея
(в редакторе меню "Константы" - "Слоты экипировки")
Пример.
curCell = getObjCodeFromCell(eqipSlotRelic) --узнать что за предмет экипирован в слоте реликвии

getObjAllCount(<код предмета>).
(в редакторе меню "Разное" -  "Сундук" - "<-Получить число предмета в налич.")
Возвращает общее количество предмета в сундуке.

moveObjToCell(<код предмета>,<код ячейки>).
(в редакторе меню "Разное" -  "Сундук" - "Переместить предмет в ячейку")
Перемещает первый экземпляр предмета в указанную ячейку (производит обмен содержимого исходной и целевой ячеек). Получение кода конкретной ячейки указано выше.
 
moveCellToCell(<код ячейки1>,<код ячейки2>)
(в редакторе меню "Разное" -  "Сундук" - "Обмен двух ячеек")
Производит обмен содержимого двух указанных ячеек. Получение кода конкретной ячейки указано выше.
 
getShopFreeSpace(<без параметров>)
(в редакторе меню "Разное" -  "Мой магазин" - "<-Cвободно в магазине")
Возвращает число свободных слотов магазина. Если есть торговый аккаунт, то вместе с суммой свободных биржевых ячеек.

moveObjToShop(<код предмета>,<количество>=0).
(в редакторе меню "Предметы" -  "Предмет в мой магазин")
(в редакторе меню "Разное" -  "Мой магазин" - "Предмет в магазин")
Производит перемещение экземпляров указанного предмета в первую свободную ячейку магазина. Процесс регулируется параметром <количество> с тем же самым смыслом, что и обработка в сундуке. "ноль" = все, что есть в сундуке; "больше нуля" = указанное количество, либо все, если в реальности есть меньше; "меньше нуля" = все, кроме указанного, либо ничего, если реальное количество меньше либо равно указанному по модулю (без знака минус). 
Если второй параметр не указан, то он принимается равным нулю. Если осуществляется частичная обработка стекуемых предметов, то производится автоматическое разделение пачек, для получения отдельных с нужными для точного попадания в итоговое число стеками.
 
Кроме того, в редакторе доступен шаблон (на панели сверху "Шаблоны"-"Действия"-"Предм.в_магазин"), позволяющий вставить пропись команды с заполненными параметрами. Принцип работы идентичен описанию для шаблона продажи предмета выше.
 
moveCellsToShop({<код_ячейки1>,<код_ячейки2>,<код_ячейки3>,...массив_кодов})
(в редакторе меню "Разное" -  "Мой магазин" - "Ячейки в магазин")
Производит перемещение указанных ячеек в свободные слоты магазина начиная с первого. При окончании свободного места процесс прерывается.
 
getMarketFreeSpace(<без параметров>)
(в редакторе меню "Разное" -  "Мой магазин" - "<-Свободно на бирже")
Возвращает число свободных биржевых слотов магазина. Требуется наличие активного торгового аккаунта.
 
moveObjToMarket(<код предмета>,<количество>=0).
(в редакторе меню "Предметы" -  "Предмет на биржу (магазин)")
(в редакторе меню "Разное" -  "Мой магазин" - "Предмет на биржу")
Производит перемещение экземпляров указанного предмета в первую свободную биржевую ячейку магазина. Требуется наличие активного торгового аккаунта. Процесс регулируется параметром <количество> с тем же самым смыслом, что и обработка в сундуке. "ноль" = все, что есть в сундуке; "больше нуля" = указанное количество, либо все, если в реальности есть меньше; "меньше нуля" = все, кроме указанного, либо ничего, если реальное количество меньше либо равно указанному по модулю (без знака минус). 
Если второй параметр не указан, то он принимается равным нулю. Если осуществляется частичная обработка стекуемых предметов, то производится автоматическое разделение пачек, для получения отдельных с нужными для точного попадания в итоговое число стеками.
 
Кроме того, в редакторе доступен шаблон (на панели сверху "Шаблоны"-"Действия"-"Предм.на_биржу"), позволяющий вставить пропись команды с заполненными параметрами. Принцип работы идентичен описанию для шаблона продажи предмета выше.
 
moveCellsToMarket({<код_ячейки1>,<код_ячейки2>,<код_ячейки3>,...массив_кодов}).
(в редакторе меню "Разное" -  "Мой магазин" - "Ячейки на биржу")
Производит перемещение указанных ячеек в свободные биржевые слоты магазина начиная с первого. Требуется наличие активного торгового аккаунта. При окончании свободного места процесс прерывается.

 POMLUA. "Общие" функции.

Разъяснение. В описании каждый отдельный параметр заключен в <>. Необязательная часть в []. В самом коде эту "обвязку" указывать не нужно. Пример. func(<A>[,<B>]) - в реальном коде, при A = 10 и B = 20, будет иметь вид func(10,20). Необязательную часть можно пропускать в вызове, но если указывать, то внутреннюю последовательность нарушать нельзя. Например, (<A>[,<B>,<C>]) - параметр A нужно указывать всегда, B и C можно опустить. При этом можно указать A и B без C. Но если нужно указать C, то перед обязательно должен быть и В (выбросить В и указать только С нельзя).

dofile([[<путь\имя файла>]]).
Производит выполнение скрипта расположенного в указанном файле. В рамках одного текстового скрипта можно выполнять несколько файлов (используя несколько вызовов dofile), а так же смешивать их с выполнением других инструкций. 

message("<текст>").
Результатом выполнения будет показ отдельного окна с сообщением <текст>. Текст может быть заключен как в обычные кавычки так и в специализированные [[]].

toLog("<текст>"[,<стиль>]).
Команда по смыслу похожа на прошлую, вместо показа отдельного окна <текст> выводится только в лог рабочего окна программы. Дополнительно к нему можно применить различные стили для выделения или улучшения восприятия информации:
    fsBold - жирный
    fsUnderline - подчеркнутый
    fsItalic - наклонный;
    fsStrikeOut - зачеркнутый.

alarm(<частота>[,<длительность мс>=200,"<текст>"]).
Подает звуковой сигнал заданной частоты. При указании только первого параметра длительность воспроизведения звука - 200 миллисекунд. Третий необязательный параметр задает текст сообщения, которое будет показано отдельным окном.

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

getMainWorkMode(без параметров).
Команда по смыслу похожа на прошлую, однако возвращает первоначальный режим, с которого пользователь начал выполнение. Он может не совпадать с текущим, если была произведена "горячая" смена (программно в процессе работы). В случае возникновения в "не исходном" режиме ситуации "стоп", производится не остановка, а возврат к выполнению начального режима. 
 
setWorkMode(<код нового режима>).
Изменяет текущий режим выполнения на указанный. Для удобства восприятия можно использовать текстовые константы режимов (их ввод также продублирован вызовом меню или элементом на панели в редакторе):
   modeCave - пещерный:
   modeIsland - островной;
   modeArena - аренный;
   modePassive - пассивный (особый режим реагирующий на появление боев в браузере и проводящий их, кроме этого на его базе реализовано маршальское нападение. Также выполняет проверку доп.событий:мастерская, лавка, клан-заклы и проч.);
   modeShop - магазинный;
   modeIslShop - остроМаг (острова + магазин на каждом из них);
   modeLotoOpen - лото.Открыть;
   modeLotoBuy - лото.Купить;
   modeMessages - разбор сообщений;
   modeBoss - атака босса;
   modeMinion - атака миньонов (на боссах);
   modeTornament - турнир адептов;
   modeVortex - вихрь;
   modeWaiting - ожидание (пустой режим выполняющий только проверки доп.событий: мастерская, лавка, клан-заклы и проч.).

setMainWorkMode(<код режима>).
Не производит смены режима, но заменяет информацию об исходном. Если текущий и есть исходный, то он становится "вторым", а "под него" записывается новый. В случае возникновения в "не исходном" режиме ситуации "стоп", производится не остановка, а возврат к выполнению начального режима. Так что данной командой можно задать переход в какой-то другой режим, когда в текущем возникнет условие остановки.

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

stopProgram(без параметров).
Производит остановку текущего режима.

setStopCloseProgramFlag(<новое значение>).
Изменяет значение опции "Стоп=Закрыть" (вместо общего стопа программы производится ее закрытие, что может быть полезно для замораживания отсчета времени по лицензии, если прогнозируется остановка в длительное отсутствие пользователя). Ноль - отключить, не_ноль - включить.

pauseOn(<число секунд>).
Приостановить текущее выполнение на указанное число секунд. Если указан ноль, то пауза бессрочная, которая может быть снята только из другого скрипта, вызванного по наступлению какого-либо события (игровое, расписание планировщика и проч.), либо лично пользователем (отжать/потушить кнопку паузы в браузере или рабочем окне программы).

pauseOff(без параметров).
Принудительное завершение паузы.

reloadGame([[<поясняющий текст>]]).
Инициирует принудительное обновление игры в браузере. Указанный <поясняющий текст> будет указан в записи лога, что может помочь в определении причины/места вызова перезагрузки.

(2136.PLUS.beta) Обновлена BETA-версия программы Помощник.

Активным лицензиям последних версий (2136+) по 18.03.2021 будут начисляться дополнительные 240 минут (начисление происходит несколькими более мелкими частями в течении суток при условии, что программа не закрыта).

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

- (Добавлено) в спам по новым островным чатам добавлена опция на минимальный интервал отправки. Если с момента прошлой отправки не прошло указанное число СЕКУНД, то очередная отправка отменяется (должно совпасть и смена острова, и истекший интервал с прошлого действия);
- (Добавлено) в информацию о наличии материалов для варки выводятся и ресурсы необходимые для варки (с указанием на сколько изготовлений хватит каждого), кроме того число ресурса влияет на итоговый счетчик "можно изготовить" (если хватает материалов, но нет ресурсов, то итоговый счетчик будет 0). Формат записи: "стоимость одной варки"("на сколько варок хватит" x <- "сколько есть сейчас");
- (Исправлено) неправильное вычисление счетчика "можно изготовить" для позиций в списке, для которых нет реально изученных рецептов (прошлый вариант рассчитывал число только по числу материалов, хотя в этом случае можно изготовить 0, т.к. нет изученного, в итоге были попытки запуска варки, которые постоянно заканчивались ошибкой);
- (Переработано) если при старте браузера фиксируется сбой привязки, то будет выполнено несколько попыток перезапустить его еще раз. В отдельных случаях при проблемах с интернет соединением или сервером игры (в том числе бывают какие-то ночные проф.работы когда игра не загружается в течении некоторого времени) все застревало на перезапуске и ошибке привязки. Надо будет пронаблюдать насколько эта мера окажется эффективной, возможно понадобятся еще изменения по другим слабым местам;
- (Добавлено) в список покупки из лавки добавлены три новые колонки, с помощью которых можно изменить тайминги покупки этой конкретной строки (базовую паузу, случайный временной разброс, и лимит действий за последние 5 минут). При этом работа этих новых опций завязана на одну общую опцию "Копировать параметры с каждой позиции". Это позволит быстро получить вариант "как раньше" просто убрав в ней галочку. Если галочка установлена, то каждая отдельная строка может покупаться по своим личным параметрам (это может быть как определенная стоимость/стек, так и какое-то определенное количество с Инд.(индивидуальным) счетчиком, например первые Хшт покупаем быстрее, чем последующие);
- (Изменено)
данное изменение постигнут не только лишь все =) В качестве альтернативы предыдущему нововведению (при использовании упрощенной прописи в одну строку на покупку всех стеков предмета) можно использовать само действие лимита, точнее их номера с 3 по 11. Там немного непонятно написано, но место, увы, ограничено. Расшифровываю. Для покупки стеков в 100шт. или выше итоговая задержка (базовая пауза + ~ разброс) берется не полная (100%), а уменьшенная (указанное число % от максимума). Пауза ниже - скорость в итоге выше, большие стеки покупаются быстрее, чем последующие. Кроме скорости для этих стеков используется увеличенный лимит (на второе значение в скобках), что даст увеличенный объем покупки. Для стеков 10-99шт. также используется ускорение, но более скромное в сравнении с 100+ (по такому же принципу два числа во вторых скобках). Ну, а стеки в 9 и ниже шт. будут покупаться по стандартным указанным изначально параметрам (получится медленнее, чем более объемные). При срабатывании лимита включается "игнорирование покупки" (как у действия №2), то есть покупка заканчивается и выполняется режим, который был изначально (например, можно побить острова пока счетчик покупок "остывает"). Как только лимит "остынет", покупка продолжится до следующего "перегрева". Получится циклическое "покупаю" - "выполняю исходный режим".
Причем обе настройки (параметры в списке покупки и действие лимита покупки) хотя и могут использоваться одновременно, но я не рассматривал их в таком ключе =) Это уже не нужное усложнение, которое затруднит прогнозирование результата. Не делайте так =)
- (Добавлено) скрипт-обработчики нескольких событий. "после каждого боя" и "после каждого обновления игры" запускаются если не пусты всегда. "поражений подряд", если скрипт не пуст и число поражений превышает либо равно указанному в параметре ("0"=выкл.контроль). "низкого уровня энергии/кристаллов", если скрипт не пуст и новое значение ресурса меньше либо равно указанному в параметре ("0"=выкл.контроль);
- (Добавлено) несколько функций помощника "проброшены" для использования в lua-скриптах. В ближайшее время будет опубликованы все доступные сейчас функции с описанием по ним.
- (Переработано) шаблоны действий над предметами позволяют сразу задавать второй управляющий параметр, который будет указан в прописи после перетаскивания на него объекта. Это может быть особенно удобно, если нужно выполнить несколько прописей с параметром, отличающимся от стандартного 0 (который использовался всегда в прошлом варианте);
- (Доработано) в редакторе через одноименное меню можно менять шрифт отображения текста скрипта.

    Для установки обновления перезапустите программу и согласитесь с запросом на обновление при новой загрузке.
    Либо установите программу поверх в ту же папку (при закрытой программе) с установщика:
Альтернативные ссылки на установщики:
бета версия помощника: 
https://drive.google.com/file/d/1vL2TI17ihGUves5ZklXyyoUIn9P-xqnO

К сожаленью каждый праздник только раз в году.

Решено сделать своего рода подведение итогов по трем прошедшим праздничным событиям (14 и 23 февраля, а так же 8 марта), дабы никто не ушел обиженным =)  
Азъ есмь непредсказуемый деспот, посему повелеваю До 23.03.2021 каждой активной лицензии (запущенной программе) по итогам каждого третьего от полуночи часа выделять из казны 30 минут золотом (+4 часа за сутки непрерывной работы). Данная добрая воля является дополнением и суммируется с любыми другими благами (бонусами), а не заменяет их.

(2135.PLUS.beta) Обновлена BETA-версия программы Помощник.

Активным лицензиям последних версий (2135+) по 06.03.2021 будут начисляться дополнительные 240 минут (начисление происходит несколькими более мелкими частями в течении суток при условии, что программа не закрыта).

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

   - (Исправлено) неверная обработка дат планировщика при использовании циклических (отрицательных) значений в полях "сутки", "месяц", "год";
    - (Изменено) интерфейс планировщика. Убрана опция "*доп.поля", они включены постоянно. Иначе могла ломаться запланированная логика использования *доп.скрипта, если пользователь вдруг случайно отключит общий переключатель. По прежнему можно использовать упрощенный функционал без *доп.скрипта, для этого нужно размер *доп.периода = 0 (сек)(2). Изменен порядок следования опций основного и *доп.скрипта. Все выставлено согласно порядку срабатывания. (1) - изначально проверяется текущий момент больше  установочной даты или меньше. Если больше (событие наступило), то входит ли "сейчас" в *дополнительный активный период (2), а значит нужно ли запускать *доп.скрипт (с учетом всех его остальных параметров)(3). А если же истек и активный период, то однократно запускается основной скрипт (4);
    - (Доработано) в расчет статов персонажа добавлен альтернативный механизм, позволяющий получить более менее точные значения (однако вполне допустима ситуация, когда в реальности статы персонажа несколько выше, расчет приблизительный).
 
    Для установки обновления перезапустите программу и согласитесь с запросом на обновление при новой загрузке.
    Либо установите программу поверх в ту же папку (при закрытой программе) с установщика:
Альтернативные ссылки на установщики:
бета версия помощника: 
https://drive.google.com/file/d/1vL2TI17ihGUves5ZklXyyoUIn9P-xqnO