mon control.txt: различия между версиями

Материал из Руководство по OpenKore
Перейти к навигации Перейти к поиску
Новая страница: «В файле '''mon_control.txt''' прописывается, каких мобов бить, а каких не надо. Если же не пользовать…»
 
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
В файле '''mon_control.txt''' прописывается, каких мобов бить, а каких не надо. Если же не пользоваться этим файлом и настроить в конфиге [[config.txt]] параметр [[attackAuto]] '''2''', то OpenKore будет атаковать всех мобов напропалую, не обращая внимания ни на что.
В файле '''mon_control.txt''' прописывается поведение OpenKore при встрече с определёнными монстрами. В случае пустого файла mon_control.txt атака на монстров определяется параметром [[:Category:config.txt|конфига]] [[attackAuto]].


С помощью файла '''mon_control.txt''' можно прописать следующее:
С помощью файла '''mon_control.txt''' можно настроить следующее поведение:
* винг, телепорт от указанного моба.
* винг \ телепорт от указанного моба;
* поиск указанного моба телепортом.
* поиск указанного моба телепортом (винг - поиск моба, винг - поиск моба и т.д.);
* противодействие скиллам мобов.
* атаковать моба, который кастует скилл;
* при каком минимально левеле, джобе, количестве хп и сп можно атаковать указанного моба.
* при каком минимально уровне, джобе и количестве хп \ сп можно атаковать указанного моба;
* опасность моба, его вес, это нужно чтобы отделить слабых мобов от сильных.
* опасность моба, его вес - это нужно чтобы отделить слабых мобов от сильных.




== Правописание ==
== Синтаксис ==
Формат файла '''mon_control.txt''' достаточно сложен, каждая строка - комбинация имени моба и чисел, разделённых между собой пробелами:
Каждая строка файла '''mon_control.txt''' - это комбинация имени моба и чисел, разделённых между собой пробелами:
  <monster name> <attack> <teleport> <search> <skillcancel> <lv> <joblv> <hp> <sp> <weight>  
  <monster_name> <attack> <teleport> <search> <skillcancel> <lv> <joblv> <hp> <sp> <weight>  


'''Примечание:''' Взамен пробела можно пользоваться кнопкой табуляции - TAB, для разделения полей между собой. Этот приём используется в случае, если имя моба содержит цифры.
'''Примечания:'''  
* вместо пробелов значения можно разделять табуляцией. Это полезно в случае, если имя моба содержит цифры;
* не обязательно указывать для моба значения всех параметров;
* строки, начинающиеся со знака решётки ('''#''') являются комментарием и игнорируются OpenKore.


=== Подробности ===
=== Подробности ===
----
----
; <[[References#Monster Names|monster name]]>
; <[[References#Мобы|monster_name]]>
: В первом поле прописывается имя моба. Ключевое слово '''all''' используется для настройки поведения OpenKore для всех остальных мобов, не упомянутых в данном файле.
: В первом поле прописывается имя моба или его ИД. Вместо имени можно написать '''all''', тогда в данной строчке будет описано поведения OpenKore для всех остальных мобов, не упомянутых в данном файле.




; <attack>
; <attack>
: Если автоатака включена в параметре конфига [[attackAuto]], то данное поле определяет, что делать OpenKore при встрече с указанным мобом - атаковать его или нет.
: Если автоатака включена (в параметре конфига [[attackAuto]]), то данное поле определяет, что делать OpenKore при встрече с указанным мобом - атаковать его или нет.


{|border="1" cellpadding="2" cellspacing="1"  
:{|border="1" cellpadding="2" cellspacing="1"  
|- style=background-color:#F9F9F9;
|- style=background-color:#F9F9F9;
!Значение
!Значение
!Действие
!Действие
|-
|-
|align=center|-1
!-1
|Не обращать на моба вообще никакого внимания.
|игнорировать моба, даже если он атакует вас
|-
|-
|align=center|0
!0
|Не нападать на моба, но защищаться, если тот начал первый.
|не нападать на моба первым, но защищаться, если он начал атаковать первый
|-
|-
|align=center|1
!1
|Автоматически атаковать моба (значение по умолчанию).
|автоматически атаковать моба (значение по умолчанию)
|-
|-
|align=center|2
!2
|Всегда нападать на моба, даже если сидим и регеним хп/сп.
|всегда нападать на моба, даже если сидим и регеним хп/сп.
|-
!3
|моб-трейн.
|}
|}




; <teleport>
; <teleport>
: В этом поле прописывается, следует ли OpenKore избегать встречи с указаным мобом.
: В этом поле прописывается, следует ли OpenKore избегать встречи с указанным мобом.


{|border="1" cellpadding="2" cellspacing="1"  
:{|border="1" cellpadding="2" cellspacing="1"  
|- style=background-color:#F9F9F9;
|- style=background-color:#F9F9F9;
!Значение
!Значение
!Действие
!Действие
|-
|-
|align=center|< 0 (-1, -2, и т.д.)
!< 0 (-1, -2, и т.д.)
|Винг, если моб подошел к персонажу ближе, чем на указанное количество блоков.
|винг, если моб подошёл к персонажу ближе, чем на указанное количество блоков
|-
|-
|align=center|0
!0
|Не винговаться.
|не винговаться
|-
|-
|align=center|1
!1
|Винговаться, если на экране замечен указанный моб.
|винговаться, если на экране замечен указанный моб
|-
|-
|align=center|2
!2
|Винговаться, если атака моба нанесёт персонажу урон.
|винговаться, если атака моба нанесёт боту урон
|-
|-
|align=center|3
!3
|Дисконнект, если на экране замечен указанный моб.
|дисконнект, если на экране замечен указанный моб
|}
|}


'''Примечания:'''
'''Примечания:'''
* У персонажа должен быть скилл "Teleport" или винги "Fly Wings" в инвентаре, иначе OpenKore не сможет вингануться, что, кстати говоря, естественно. Использовать ли винги или скилл для телепорта - прописывается в параметре конфига [[teleportAuto_useSkill]].
* у персонажа должен быть скилл "Teleport" или винги "Fly Wings" в инвентаре, иначе OpenKore не сможет вингануться. Использование винга или скилла для телепорта - прописывается в параметре конфига [[teleportAuto_useSkill]].
* Если вовремя вингануться от моба, когда он вас атакует, то персонаж не получин урона вообще, даже если цифры дамага были написаны на консоли.
* если вовремя вингануться от моба, когда он вас атакует, то персонаж не получит урона, даже если цифры дамага были написаны в консоли.




; <search>
; <search>
: Искать ли указанного моба телепортом? Если в данном поле стоит '''0''', то OpenKore не будет винговаться в поисках моба. Если же прописано '''1''', то OpenKore будет искать указанного моба телепортом, вингуясь по всей локации. Чтобы это работало, следует прописать в параметре конфига [[teleportAuto_search]] количество мобов на экране, при встрече с указанным количеством мобов OpenKore не будет винговаться дальше и атакует их.
: Искать ли указанного моба телепортом? Если в данном поле стоит '''0''', то OpenKore не будет винговаться в поисках этого моба. Если же прописано '''1''', то OpenKore будет искать указанного моба телепортом, вингуясь по всей локации. Чтобы это работало, следует прописать в параметре конфига [[teleportAuto_search]] количество мобов на экране для включения автоатаки.




; <skillcancel>
; <skillcancel>
: Противодействовать ли скиллам мобов? Если в этом поле стоит '''1''', то OpenKore будет стараться бороться со скиллами мобов. OpenKore будет переключаться и нападать на моба, который кастует на персонажа скилл, чтобы прервать, сбить каст. Если же скилл кастуется на площадь, то OpenKore зайдёт мобу за спину, выходя из зоны поражения.
: Пробовать остановить каст моба? Если в данном поле стоит '''1''', то OpenKore будет стараться сбить каст скиллов указанного моба. OpenKore будет переключаться и нападать на моба, который кастует на бота скилл, чтобы прервать каст. Если же скилл кастуется на площадь, то OpenKore зайдёт мобу за спину, выходя из зоны поражения.




; <lv>
; <lv>
: Персонаж должен быть не меньше указанного в данном поле левела, чтобы он смог успешно атаковать моба.
: Бот должен быть не меньше указанного уровня, чтобы он смог атаковать моба.




; <joblv>
; <joblv>
: Персонаж должен быть не меньше указанного в данном поле джоб-левела, чтобы он смог успешно атаковать моба.
: Бот должен быть не меньше указанного джоб-уровня, чтобы он смог атаковать моба.




; <hp>
; <hp>
: У персонажа должно быть не меньше указанного в данном поле количества единиц жизни, чтобы он смог успешно атаковать моба.
: У бота должно быть не меньше указанного количества единиц жизни, чтобы он смог атаковать моба.


'''Примечание:''' Количество хп выражается абсолютным значением, а не процентом.
:'''Примечание:''' Количество хп выражается абсолютным значением, а не процентом.




; <sp>
; <sp>
: У персонажа должно быть не меньше указанного в данном поле количества единиц маны, чтобы он смог успешно атаковать моба.
: У бота должно быть не меньше указанного количества единиц маны, чтобы он смог атаковать моба.


'''Примечание:''' Количество сп выражается абсолютным значением, а не процентом.
:'''Примечание:''' Количество сп выражается абсолютным значением, а не процентом.




; <weight>
; <weight>
: Опасность моба, его "вес". Это значение используется при подсчете количества агрессивных мобов, смотри параметры конфига [[teleportAuto_minAggressives]] и [[teleportAuto_minAggressivesInLock]]. Значение этого поля может быть дробным числом больше нуля (например 1.8237402, 0.25, 2 и т.д.). Если вдруг в поле был прописан ноль - '''0''', то весом моба считается '''1'''. Если же нужно не считать моба агрессивным, чтобы тот не участвовал в подсчете, следует прописать '''-1'''.
: В этом поле прописывается опасность моба, его "вес". Это значение используется при подсчёте количества агрессивных мобов, смотри параметры конфига [[teleportAuto_minAggressives]] и [[teleportAuto_minAggressivesInLock]]. Значение этого поля может быть дробным числом больше нуля (например 1.8237402, 0.25, 2 и т.д.). Если в этом поле установлено нулевое значение, то весом моба считается '''1'''. Если не нужно считать моба агрессивным, чтобы он не участвовал в подсчёте, то следует прописать '''-1'''.




== Примеры ==
== Примеры ==


В следующем примере OpenKore будет искать телепортом и атаковать мобов "Elder Willow" и "Eggyra". На мобов "Bigfoot", "Willow" и "Poporing" OpenKore не будет обращать никакого внимания. Кроме того, OpenKore будет пытаться прерывать касты моба "Elder Willow", который, в частности, кастует "Fire Bolt".
В следующем примере OpenKore будет искать телепортом и атаковать мобов "Elder Willow" и "Eggyra". На мобов "Bigfoot", "Willow" и "Poporing" OpenKore не будет обращать никакого внимания. Кроме того, OpenKore будет пытаться прерывать касты моба "Elder Willow", когда он будет кастовать "Fire Bolt".


  Elder Willow 1 0 1 1
  Elder Willow 1 0 1 1
Строка 115: Строка 121:




В следующем примере демонстрируется использование поля "опасность моба", так называемый "вес".
В следующем примере демонстрируется использование поля "вес".
  # в файле config.txt:
  # в файле [[:Category:config.txt|config.txt]]:
  teleportAuto_minAggressives 6
  teleportAuto_minAggressives 6
  teleportAuto_minAggressivesInLock 6
  teleportAuto_minAggressivesInLock 6
Строка 124: Строка 130:
  Merman 1 0 0 0 0 0 0 0 2
  Merman 1 0 0 0 0 0 0 0 2


В данном случае, если OpenKore атакуют пять "Hydra" и два "Sword Fish", то OpenKore не будет винговаться от них и будет драться, потому что количество агрессивных мобов будет равно (5 * 0.2) + (2 * 1) = 3. А в конфиге сказано винговаться от шести агрессивных мобов.
В данном случае, если OpenKore атакуют пять "Hydra" и два "Sword Fish", то OpenKore не будет винговаться от них и будет драться, потому что количество агрессивных мобов будет равно (5 * 0.2) + (2 * 1) = 3. А в конфиге указано винговаться от шести агрессивных мобов.
Если же на OpenKore нападут два "Marc" и два "Merman", то OpenKore винганётся прочь, потому что количество агрессивных мобов будет равно шести: (2 * 1) + (2 * 2) = 6.
Если же на OpenKore нападут два "Marc" и два "Merman", то OpenKore винганётся, потому что количество агрессивных мобов будет равно шести: (2 * 1) + (2 * 2) = 6.
 
'''Примечание:''' Начинающиеся со знака фунта - '''#''' строки, являются комментарием и игнорируются OpenKore.
 


[[Category:Control]]
[[Category:Control]]

Текущая версия от 23:21, 18 апреля 2021

В файле mon_control.txt прописывается поведение OpenKore при встрече с определёнными монстрами. В случае пустого файла mon_control.txt атака на монстров определяется параметром конфига attackAuto.

С помощью файла mon_control.txt можно настроить следующее поведение:

  • винг \ телепорт от указанного моба;
  • поиск указанного моба телепортом (винг - поиск моба, винг - поиск моба и т.д.);
  • атаковать моба, который кастует скилл;
  • при каком минимально уровне, джобе и количестве хп \ сп можно атаковать указанного моба;
  • опасность моба, его вес - это нужно чтобы отделить слабых мобов от сильных.


Синтаксис

Каждая строка файла mon_control.txt - это комбинация имени моба и чисел, разделённых между собой пробелами:

<monster_name> <attack> <teleport> <search> <skillcancel> <lv> <joblv> <hp> <sp> <weight> 

Примечания:

  • вместо пробелов значения можно разделять табуляцией. Это полезно в случае, если имя моба содержит цифры;
  • не обязательно указывать для моба значения всех параметров;
  • строки, начинающиеся со знака решётки (#) являются комментарием и игнорируются OpenKore.

Подробности


<monster_name>
В первом поле прописывается имя моба или его ИД. Вместо имени можно написать all, тогда в данной строчке будет описано поведения OpenKore для всех остальных мобов, не упомянутых в данном файле.


<attack>
Если автоатака включена (в параметре конфига attackAuto), то данное поле определяет, что делать OpenKore при встрече с указанным мобом - атаковать его или нет.
Значение Действие
-1 игнорировать моба, даже если он атакует вас
0 не нападать на моба первым, но защищаться, если он начал атаковать первый
1 автоматически атаковать моба (значение по умолчанию)
2 всегда нападать на моба, даже если сидим и регеним хп/сп.
3 моб-трейн.


<teleport>
В этом поле прописывается, следует ли OpenKore избегать встречи с указанным мобом.
Значение Действие
< 0 (-1, -2, и т.д.) винг, если моб подошёл к персонажу ближе, чем на указанное количество блоков
0 не винговаться
1 винговаться, если на экране замечен указанный моб
2 винговаться, если атака моба нанесёт боту урон
3 дисконнект, если на экране замечен указанный моб

Примечания:

  • у персонажа должен быть скилл "Teleport" или винги "Fly Wings" в инвентаре, иначе OpenKore не сможет вингануться. Использование винга или скилла для телепорта - прописывается в параметре конфига teleportAuto_useSkill.
  • если вовремя вингануться от моба, когда он вас атакует, то персонаж не получит урона, даже если цифры дамага были написаны в консоли.


<search>
Искать ли указанного моба телепортом? Если в данном поле стоит 0, то OpenKore не будет винговаться в поисках этого моба. Если же прописано 1, то OpenKore будет искать указанного моба телепортом, вингуясь по всей локации. Чтобы это работало, следует прописать в параметре конфига teleportAuto_search количество мобов на экране для включения автоатаки.


<skillcancel>
Пробовать остановить каст моба? Если в данном поле стоит 1, то OpenKore будет стараться сбить каст скиллов указанного моба. OpenKore будет переключаться и нападать на моба, который кастует на бота скилл, чтобы прервать каст. Если же скилл кастуется на площадь, то OpenKore зайдёт мобу за спину, выходя из зоны поражения.


<lv>
Бот должен быть не меньше указанного уровня, чтобы он смог атаковать моба.


<joblv>
Бот должен быть не меньше указанного джоб-уровня, чтобы он смог атаковать моба.


<hp>
У бота должно быть не меньше указанного количества единиц жизни, чтобы он смог атаковать моба.
Примечание: Количество хп выражается абсолютным значением, а не процентом.


<sp>
У бота должно быть не меньше указанного количества единиц маны, чтобы он смог атаковать моба.
Примечание: Количество сп выражается абсолютным значением, а не процентом.


<weight>
В этом поле прописывается опасность моба, его "вес". Это значение используется при подсчёте количества агрессивных мобов, смотри параметры конфига teleportAuto_minAggressives и teleportAuto_minAggressivesInLock. Значение этого поля может быть дробным числом больше нуля (например 1.8237402, 0.25, 2 и т.д.). Если в этом поле установлено нулевое значение, то весом моба считается 1. Если не нужно считать моба агрессивным, чтобы он не участвовал в подсчёте, то следует прописать -1.


Примеры

В следующем примере OpenKore будет искать телепортом и атаковать мобов "Elder Willow" и "Eggyra". На мобов "Bigfoot", "Willow" и "Poporing" OpenKore не будет обращать никакого внимания. Кроме того, OpenKore будет пытаться прерывать касты моба "Elder Willow", когда он будет кастовать "Fire Bolt".

Elder Willow 1 0 1 1
Eggyra 1 0 1
Bigfoot 0 0 0
Willow 0 0 0
Poporing 0 0 0


В следующем примере демонстрируется использование поля "вес".

# в файле config.txt:
teleportAuto_minAggressives 6
teleportAuto_minAggressivesInLock 6

# в файле mon_control.txt:
Hydra 1 0 0 0 0 0 0 0 0.2
Merman 1 0 0 0 0 0 0 0 2

В данном случае, если OpenKore атакуют пять "Hydra" и два "Sword Fish", то OpenKore не будет винговаться от них и будет драться, потому что количество агрессивных мобов будет равно (5 * 0.2) + (2 * 1) = 3. А в конфиге указано винговаться от шести агрессивных мобов. Если же на OpenKore нападут два "Marc" и два "Merman", то OpenKore винганётся, потому что количество агрессивных мобов будет равно шести: (2 * 1) + (2 * 2) = 6.