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(<разброс_от_уровня_каждого_монстра>).
(в редакторе меню "Монстры" - "Устан. уровни по атаке") 
Позволяет изменить выбор активных уровней для работы островного режима. Для включения уровней будет взят текущий список островной атаки, точнее уровни монстров. Каждый получит плюс-минус указанный разброс относительно себя. Полученный диапазон будет включен в списке уровней. Уровни "без монстров" будут выключены.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.