Erinome Godville UI+: различия между версиями
Kreon (обсуждение | вклад) |
Kreon (обсуждение | вклад) (→Пользовательские информеры: обновление до 1.1.21.0) |
||
| Строка 20: | Строка 20: | ||
Информер можно временно отключить, убрав галочку в начале строки. | Информер можно временно отключить, убрав галочку в начале строки. | ||
Начиная с версии 1.1.17.4 в тексте уведомлений можно использовать одиночные переменные. Они указываются отдельными словами - gv.variable, либо в фигурных скобках - {gv.variable}. При изменении значений | Начиная с версии 1.1.17.4 в тексте уведомлений можно использовать одиночные переменные. Они указываются отдельными словами - gv.variable, либо в фигурных скобках - {gv.variable}. Начиная же с версии 1.1.21.0 - в фигурных скобках можно указывать и целые логические выражения любой сложности. При изменении значений входящих в заголовки переменных, тексты информеров будут соответственным образом обновлены. Для информеров с переменными в названиях существует два дополнительных модификатора работы уведомления - см. в таблице ниже. | ||
Несколько условий объединяются логическими операторами '''&&''' (логическое «И»), '''||''' (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» '''!'''true = false | Несколько условий объединяются логическими операторами '''&&''' (логическое «И»), '''||''' (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» '''!'''true = false | ||
| Строка 32: | Строка 32: | ||
|style="text-align: center;" | ==, !=<br><, <=<br>>, >= || равенство и неравенство<br>меньше и меньше или равно<br>больше и больше или равно || <span style="background: silver;">100 == 100</span> → <span style="background: lime;">истина</span><br><span style="background: silver;">"строка" != "другая строка"</span> → <span style="background: lime;">истина</span><br><span style="background: silver;">100 > 200</span> → <span style="background: #f99;">ложь</span> | |style="text-align: center;" | ==, !=<br><, <=<br>>, >= || равенство и неравенство<br>меньше и меньше или равно<br>больше и больше или равно || <span style="background: silver;">100 == 100</span> → <span style="background: lime;">истина</span><br><span style="background: silver;">"строка" != "другая строка"</span> → <span style="background: lime;">истина</span><br><span style="background: silver;">100 > 200</span> → <span style="background: #f99;">ложь</span> | ||
|- | |- | ||
|style="text-align: center;" | ~, ~* || регистрозависимое и регистронезависимое [https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F#.D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81 регулярное выражение],<br> возвращает результат в виде массива || <span style="background: silver;">"здесь есть число 4 и буква Ё" ~ "число | |style="text-align: center;" | ~, ~* || регистрозависимое и регистронезависимое [https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F#.D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81 регулярное выражение],<br> возвращает результат в виде массива или '''null''', если совпадения нет || <span style="background: silver;">"здесь есть число 4 и буква Ё" ~ "число \\d+"</span> → <span style="background: lime;">["число 4"]</span><br><span style="background: silver;">"здесь есть число 4 и буква Ё" ~ "число (.*?) и"</span> → <span style="background: lime;">["число 4 и", "4"]</span> | ||
|- | |||
|style="text-align: center;" | !~, !~* || инвертированная версия регистрозависимого и регистронезависимого [https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F#.D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81 регулярного выражения],<br> возвращает '''true''' или '''false''' || <span style="background: silver;">"здесь есть число 4 и буква Ё" !~ "число \\d+"</span> → <span style="background: #f99;">ложь</span><br><span style="background: silver;">"здесь есть число 4 и буква Ё" !~ "число 5"</span> → <span style="background: lime;">истина</span> | |||
|- | |- | ||
|style="text-align: center;" | A[x] || извлечение элемента номер ''x'' из массива ''A'' (отсчет x ведется с нуля) || <span style="background: silver;">("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[1]</span> → <span style="background: lime;">"4"</span><br><span style="background: silver;">("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[5]</span> → <span style="background: #f99;">undefined</span> | |style="text-align: center;" | A[x] || извлечение элемента номер ''x'' из массива ''A'' (отсчет x ведется с нуля) || <span style="background: silver;">("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[1]</span> → <span style="background: lime;">"4"</span><br><span style="background: silver;">("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[5]</span> → <span style="background: #f99;">undefined</span> | ||
| Строка 85: | Строка 87: | ||
{| class="standard collapsible collapsed" | {| class="standard collapsible collapsed" | ||
|- | |- | ||
!colspan="3" align="left" |Полный перечень переменных версии 1.1. | !colspan="3" align="left" |Полный перечень переменных версии 1.1.21.0 | ||
|- | |- | ||
!Переменная || Описание | !Категория || Переменная || Описание | ||
|- | |- | ||
|gv.health || здоровье героя | |rowspan="31" valign="top"|Общие переменные || gv.health || здоровье героя | ||
|- | |- | ||
|gv.healthMax || максимальное здоровье героя | |gv.healthMax || максимальное здоровье героя | ||
| Строка 109: | Строка 111: | ||
|gv.inventoryHasItem("название предмета") || проверка, есть ли в инвентаре героя указанный предмет | |gv.inventoryHasItem("название предмета") || проверка, есть ли в инвентаре героя указанный предмет | ||
|- | |- | ||
|gv.inventoryHasType("тип предмета") || проверка, есть ли в инвентаре героя предмет указанного типа: | |valign="top"|gv.inventoryHasType("тип предмета") || проверка, есть ли в инвентаре героя предмет указанного типа: | ||
{| class="standard" | {| class="standard" | ||
|aura-box || коробка, дающая герою случайную ауру | |aura-box || коробка, дающая герою случайную ауру | ||
| Строка 150: | Строка 152: | ||
|} | |} | ||
|- | |- | ||
|gv.inventoryCountLike("regex",флаги) || возвращает количество предметов в инвентаре, подходящих под указанное регулярное выражение и | |valign="top"|gv.inventoryCountLike("regex",флаги) || возвращает количество предметов в инвентаре, подходящих под указанное регулярное выражение и необязательный список флагов-ограничителей: | ||
{| class="standard" | {| class="standard" | ||
| | |h || лечебные | ||
|- | |- | ||
| | |H || не лечебные | ||
|- | |- | ||
| | |b || жирные | ||
|- | |- | ||
| | |B || не жирные | ||
|- | |- | ||
| | |a || активируемые | ||
|- | |- | ||
| | |A || не активируемые | ||
|- | |- | ||
| | |c || крафтящиеся | ||
|- | |- | ||
| | |C || не крафтящиеся | ||
|- | |- | ||
| | |s || продаваемые | ||
|- | |- | ||
| | |S || не продаваемые | ||
|} | |} | ||
|- | |- | ||
|gv. | |gv.godpower || количество праны | ||
|- | |- | ||
|gv. | |gv.godpowerMax || максимальное количество праны | ||
|- | |- | ||
|gv. | |gv.godpowerPrc || количество праны в процентах | ||
|- | |- | ||
|gv. | |gv.charges || количество зарядов | ||
|- | |- | ||
|gv. | |gv.inFight || герой находится в боевом режиме | ||
|- | |- | ||
|gv. | |gv.inBossFight || герой находится в бою с босс-монстром (любым) или корованом | ||
|- | |- | ||
|gv. | |valign="top"|gv.fightType || тип боевого режима, возможные варианты: | ||
{| class="standard" | |||
|dungeon || коридоры подземелья | |||
|- | |||
|sail || режим плавания | |||
|- | |||
|spar || тренировка | |||
|- | |||
|arena || арена | |||
|- | |||
|multi_monster || любой корован | |||
|- | |||
|monster || любой другой боевой режим, или если боевой режим определился неверно | |||
|- | |||
|"" || если герой не в бою. | |||
|} | |||
|- | |- | ||
|gv. | |gv.hasTemple || герой имеет достроенный храм | ||
|- | |- | ||
|gv. | |gv.hasArk || герой имеет достроенный ковчег | ||
|- | |- | ||
|gv. | |gv.lastGuildChat || текст последних сообщений гильдчата (доступен только когда открыта и развернута вкладка гильдчата) | ||
|- | |- | ||
|gv. | |gv.dailyForecast || текст астропрогноза | ||
|- | |- | ||
|gv. | |gv.expTimeout || количество минут до окончания штрафа возложения золота в храме (или 10080, если данных нет) | ||
|- | |- | ||
|gv. | |gv.logTimeout || количество минут до гарантированного бревна в подземелье (или 10080, если данных нет) | ||
|- | |- | ||
|gv. | |gv.sparTimeout || количество минут до экспоносной тренировки (или 10080, если данных нет) | ||
|- | |- | ||
|gv. | |gv.getSeconds || точное локальное время: секунды (0-59) | ||
|- | |- | ||
|gv. | |gv.getMinutes || точное локальное время: минуты (0-59) | ||
|- | |- | ||
|gv. | |gv.getHours || точное локальное время: часы (0-23) | ||
|- | |- | ||
|gv. | |gv.getDay || текущий день недели (1-7) | ||
|- | |- | ||
|gv. | |gv.windowFocused || определяет, активна ли текущая вкладка браузера | ||
|- | |- | ||
|gv. | |rowspan="41" valign="top"|Полевые переменные||gv.mileStones || количество столбов от столицы до героя в поле | ||
|- | |- | ||
|gv. | |gv.poiMileStones || местоположение интересной точки на карте в столбах от столицы | ||
|- | |- | ||
|gv. | |gv.poiDistance || расстояние от героя до точки в столбах | ||
|- | |- | ||
|gv. | |gv.auraName || название ауры, если она есть | ||
|- | |- | ||
|gv. | |gv.auraDuration || оставшаяся длительность ауры, если она есть (в секундах, но округляется до целых минут) | ||
|- | |- | ||
|gv. | |gv.bingoItems || количество подходящих в бинго трофеев в инвентаре | ||
|- | |- | ||
|gv. | |gv.bingoSlotsLeft || количество незаполненных слотов в бинго | ||
|- | |- | ||
|gv. | |gv.bingoTriesLeft || количество оставшихся попыток заполнения | ||
|- | |- | ||
|gv.questName || название квеста | |gv.questName || название квеста | ||
| Строка 234: | Строка 249: | ||
|- | |- | ||
|gv.questProgress || прогресс выполнения квеста в процентах | |gv.questProgress || прогресс выполнения квеста в процентах | ||
|- | |||
|gv.sideJobName || название подряда | |||
|- | |||
|gv.sideJobDuration || длительность подряда в секундах | |||
|- | |||
|gv.sideJobProgress || прогресс выполнения подряда в процентах | |||
|- | |||
|gv.nearestTown || название ближайшего города | |||
|- | |||
|gv.currentTown || название текущего города, если герой в нем, иначе - пустая строка | |||
|- | |||
|gv.inShop || герой-торговец работает в своей лавке | |||
|- | |||
|gv.inTown || герой находится в городе | |||
|- | |- | ||
|gv.isGoingBack || герой идет из поля в город | |gv.isGoingBack || герой идет из поля в город | ||
| Строка 245: | Строка 274: | ||
|gv.isFishing || герой рыбачит (экспериментально, может очень ошибаться!) | |gv.isFishing || герой рыбачит (экспериментально, может очень ошибаться!) | ||
|- | |- | ||
|gv. | |gv.currentMonster || название монстра, если герой бьется с ним в поле, иначе - пустая строка | ||
|- | |||
|gv.chosenMonster || идет бой с монстром из настроенного списка избранных | |||
|- | |||
|gv.specialMonster || идет бой со спец-монстром из настроенного списка префиксов | |||
|- | |||
|gv.tamableMonster || идет бой с монстром, которого можно приручить (только если у героя нет питомца) | |||
|- | |||
|gv.wantedMonster || идет бой с монстром дня | |||
|- | |||
|gv.petKnockedOut || питомец героя контужен | |||
|- | |||
|gv.lastNews || текст строки из Вестей | |||
|- | |- | ||
|gv. | |gv.lastDiary || текст последней строки из дневника | ||
|- | |- | ||
|gv. | |gv.lastDiaryVoice || текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа) | ||
|- | |- | ||
|gv. | |gv.voiceCooldown || время отката в секундах после гласа, который был услышан героем (уменьшается до 0) | ||
|- | |- | ||
|gv.arenaAvailable || доступен поход на арену | |gv.arenaAvailable || доступен поход на арену | ||
| Строка 269: | Строка 310: | ||
|gv.sailSendDelay || время до доступности заплыва в море (в секундах, но округляется до минут (равно 0, когда недоступно)) | |gv.sailSendDelay || время до доступности заплыва в море (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||
|- | |- | ||
|gv. | |rowspan="15" valign="top"|Боевые переменные||gv.fightStep || номер шага в боевом режиме | ||
|- | |- | ||
|gv. | |gv.lowHealth || низкий уровень здоровья в боевых режимах | ||
|- | |- | ||
|gv.enemyHealth || суммарное здоровье противников в боевом режиме | |gv.enemyHealth || суммарное здоровье противников в боевом режиме | ||
| Строка 322: | Строка 340: | ||
|gv.alliesAliveCount || количество живых союзников | |gv.alliesAliveCount || количество живых союзников | ||
|- | |- | ||
|gv. | |rowspan="6" valign="top"|Морские переменные||gv.supplies || количество припасов | ||
|- | |- | ||
|gv. | |gv.suppliesMax || максимальное количество припасов | ||
|- | |- | ||
|gv. | |gv.suppliesPrc || количество припасов в процентах | ||
|- | |- | ||
|gv. | |gv.cargo || содержимое трюма ковчега (строкой, включая квадратные скобки) | ||
|- | |- | ||
|gv. | |gv.portDistance || расстояние до порта в режиме плавания | ||
|- | |- | ||
|gv. | |valign="top"|gv.sailConditions || показывает дополнительные условия карты (если условий несколько - они выводятся через запятую): | ||
|- | {| class="standard" | ||
| | |pois || все подсказки являются метками | ||
|- | |- | ||
| | |migration || нет зависимости силы тварей от расстояния до порта | ||
|- | |- | ||
| | |double || все клады двойные | ||
|- | |||
|beasties || во всех кладах только твари | |||
|- | |||
|winds || ветер раскидывает ковчеги от порта | |||
|- | |||
|small || утыканное рыбами малое море и ограничение в 50 шагов на заплыв | |||
|- | |||
|fires || огромное количество маяков | |||
|- | |||
|locked || закрытая граница, выплыть можно только через порт | |||
|- | |||
|roaming || все рыбы в море бродячие | |||
|- | |||
|faststart || в начале заплыва уже есть несколько подсказок | |||
|- | |||
|multipass || острова можно посещать неоднократно | |||
|- | |||
|noempty || все острова непустые, но загадочные | |||
|- | |||
|reefs || в море множество рифов и практически отсутствуют морские твари | |||
|- | |||
|} | |||
|} | |} | ||
Версия от 13:42, 17 ноября 2018
Erinome Godville UI+ — расширение для браузеров, изначально основанное на Godville UI+, но получившее уже заметное количество отличий и дополнительных возможностей от оригинала.
Тема на форуме в квартале мастеровых: Erinome Godville UI+ - браузерное расширение для Годвилля (Firefox, Chrome, Opera).
_
Информеры
Дополнение может отслеживать различные события в жизни героя и выводить уведомления о них. Уведомление производится миганием иконки вкладки, и меткой в верхнем правом углу страницы. Дополнительно доступны всплывающие уведомления и звуковое уведомление.
Пользовательские информеры
Пользовательские информеры позволяют настроить уведомления на произвольный набор событий в игре.
Каждый информер описывается одной строкой в формате:
Текст уведомления | набор условий | тип информера и уведомлений
Информер можно временно отключить, убрав галочку в начале строки.
Начиная с версии 1.1.17.4 в тексте уведомлений можно использовать одиночные переменные. Они указываются отдельными словами - gv.variable, либо в фигурных скобках - {gv.variable}. Начиная же с версии 1.1.21.0 - в фигурных скобках можно указывать и целые логические выражения любой сложности. При изменении значений входящих в заголовки переменных, тексты информеров будут соответственным образом обновлены. Для информеров с переменными в названиях существует два дополнительных модификатора работы уведомления - см. в таблице ниже.
Несколько условий объединяются логическими операторами && (логическое «И»), || (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» !true = false
Также имеются другие операторы:
| Операторы | Описание | Примеры |
|---|---|---|
| ==, != <, <= >, >= |
равенство и неравенство меньше и меньше или равно больше и больше или равно |
100 == 100 → истина "строка" != "другая строка" → истина 100 > 200 → ложь |
| ~, ~* | регистрозависимое и регистронезависимое регулярное выражение, возвращает результат в виде массива или null, если совпадения нет |
"здесь есть число 4 и буква Ё" ~ "число \\d+" → ["число 4"] "здесь есть число 4 и буква Ё" ~ "число (.*?) и" → ["число 4 и", "4"] |
| !~, !~* | инвертированная версия регистрозависимого и регистронезависимого регулярного выражения, возвращает true или false |
"здесь есть число 4 и буква Ё" !~ "число \\d+" → ложь "здесь есть число 4 и буква Ё" !~ "число 5" → истина |
| A[x] | извлечение элемента номер x из массива A (отсчет x ведется с нуля) | ("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[1] → "4" ("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[5] → undefined |
| +, - *, / % |
сложение и вычитание умножение и деление остаток от деления |
100 + 200 → 300 50 * "строка" → NaN 1898 % 13 → 0 |
| +, - ! |
преобразование строки к числу, изменение знака логическое отрицание |
+"50" → 50 !"строка" → ложь |
Набор условий считается выполненным и активирует информер, когда итоговый результат преобразуем к истине:
| Результат | Примеры | Описание |
|---|---|---|
| ложь | 0, "" false, null undefined, NaN |
ноль (как цифра), пустая строка, специальные значения, которые могут принимать переменные и могут получиться в результате применения операторов |
| истина | - | истиной считается всё, что не попадает под ложь (в т.ч. включая пустые массивы) |
Начиная с версии 1.1.17.4 тип информера кодируется комбинацией букв, соответствующих указанным в таблице модификаторам. Из соображений обратной совместимости старый тип кодирования суммированием по-прежнему работает.
| Буква | Код | Название | Описание |
|---|---|---|---|
| <никакая> | 0 | стандартный информер | включается, когда условие активации информера выполняется, выключается - когда условие активации информера перестает выполняться |
| S | 1 | неотключаемый информер | включается при выполнении условия активации информера, выключается - только когда пользователь кликнет на этот информер (или после перезагрузки страницы, когда условие перестает выполняться) |
| L | 16 | тип: стандартное уведомление | мигание заголовком окна браузера и соответствующей вкладки, добавляет метку в углу страницы |
| D | 32 | тип: всплывающее уведомление | отображается всплывающим окошком поверх всех окон |
| A | 64 | тип: звуковое уведомление | звуковое оповещение согласно настройкам eGUI+ |
| R | 128 | тип: повторяющееся звуковое уведомление | звуковое оповещение, которое будет повторяться каждые несколько секунд (обратите внимание, что если тип "L" не включен, то данный тип будет работать как тип "A") |
| Q | - | мод: возобновимое уведомление | имеет смысл только для информеров, имеющих в своем названии переменные; если информер был выключен пользователем (или не имел тип "L" и был отключен автоматически), а затем его текст изменился, то информер будет автоматически включен обратно |
| W | - | мод: настырное уведомление | имеет смысл только для информеров, имеющих в своем названии переменные; если текст информера поменялся, то информер будет полностью перезапущен (что актуально для типов "D", "A" или "R") |
| N | - | мод: ненавязчивое уведомление | имеющий смысл для стандартных информеров (L), модификатор типа N отключает мигание данного уведомления в заголовке окна, и оно только скромно висит в углу экрана добавлен в версии 1.1.20.12. |
Например, чтобы создать неотключаемый информер, уведомляющий миганием и всплывающим окном, необходимо указать тип: SLD (или, если вам нравится складывать числа, то 49 (1+16+32)).
Если модификаторы типа уведомления не указаны, то информер будет использовать набор уведомлений, выбранный для всех пользовательских информеров в общей таблице настроек информеров.
Переменные
Полный и актуальный перечень доступных переменных находится в файле FAQ на странице дополнения.
Примечание: с апреля 2016 года разработчиками игры было запрещено использовать в аддонах точные внутриигровые данные, поэтому начиная с версии 1.1.1.0 вся информация для переменных берется из общедоступных внешних источников, а некоторые значения, которые более недоступны в точном виде, теперь рассчитываются косвенно - следовательно, возможны неточности.
| Полный перечень переменных версии 1.1.21.0 | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Категория | Переменная | Описание | |||||||||||||||||||||||||||||||||||||
| Общие переменные | gv.health | здоровье героя | |||||||||||||||||||||||||||||||||||||
| gv.healthMax | максимальное здоровье героя | ||||||||||||||||||||||||||||||||||||||
| gv.healthPrc | здоровье героя в процентах | ||||||||||||||||||||||||||||||||||||||
| gv.gold | количество золота у героя | ||||||||||||||||||||||||||||||||||||||
| gv.inventory | количество предметов в инвентаре | ||||||||||||||||||||||||||||||||||||||
| gv.inventoryMax | максимальное количество предметов в инвентаре | ||||||||||||||||||||||||||||||||||||||
| gv.inventoryPrc | количество предметов в процентах | ||||||||||||||||||||||||||||||||||||||
| gv.inventoryHealing | количество лечебных трофеев в инвентаре | ||||||||||||||||||||||||||||||||||||||
| gv.inventoryUnsellable | количество непродаваемых торговцам трофеев в инвентаре | ||||||||||||||||||||||||||||||||||||||
| gv.inventoryHasItem("название предмета") | проверка, есть ли в инвентаре героя указанный предмет | ||||||||||||||||||||||||||||||||||||||
| gv.inventoryHasType("тип предмета") | проверка, есть ли в инвентаре героя предмет указанного типа:
| ||||||||||||||||||||||||||||||||||||||
| gv.inventoryCountLike("regex",флаги) | возвращает количество предметов в инвентаре, подходящих под указанное регулярное выражение и необязательный список флагов-ограничителей:
| ||||||||||||||||||||||||||||||||||||||
| gv.godpower | количество праны | ||||||||||||||||||||||||||||||||||||||
| gv.godpowerMax | максимальное количество праны | ||||||||||||||||||||||||||||||||||||||
| gv.godpowerPrc | количество праны в процентах | ||||||||||||||||||||||||||||||||||||||
| gv.charges | количество зарядов | ||||||||||||||||||||||||||||||||||||||
| gv.inFight | герой находится в боевом режиме | ||||||||||||||||||||||||||||||||||||||
| gv.inBossFight | герой находится в бою с босс-монстром (любым) или корованом | ||||||||||||||||||||||||||||||||||||||
| gv.fightType | тип боевого режима, возможные варианты:
| ||||||||||||||||||||||||||||||||||||||
| gv.hasTemple | герой имеет достроенный храм | ||||||||||||||||||||||||||||||||||||||
| gv.hasArk | герой имеет достроенный ковчег | ||||||||||||||||||||||||||||||||||||||
| gv.lastGuildChat | текст последних сообщений гильдчата (доступен только когда открыта и развернута вкладка гильдчата) | ||||||||||||||||||||||||||||||||||||||
| gv.dailyForecast | текст астропрогноза | ||||||||||||||||||||||||||||||||||||||
| gv.expTimeout | количество минут до окончания штрафа возложения золота в храме (или 10080, если данных нет) | ||||||||||||||||||||||||||||||||||||||
| gv.logTimeout | количество минут до гарантированного бревна в подземелье (или 10080, если данных нет) | ||||||||||||||||||||||||||||||||||||||
| gv.sparTimeout | количество минут до экспоносной тренировки (или 10080, если данных нет) | ||||||||||||||||||||||||||||||||||||||
| gv.getSeconds | точное локальное время: секунды (0-59) | ||||||||||||||||||||||||||||||||||||||
| gv.getMinutes | точное локальное время: минуты (0-59) | ||||||||||||||||||||||||||||||||||||||
| gv.getHours | точное локальное время: часы (0-23) | ||||||||||||||||||||||||||||||||||||||
| gv.getDay | текущий день недели (1-7) | ||||||||||||||||||||||||||||||||||||||
| gv.windowFocused | определяет, активна ли текущая вкладка браузера | ||||||||||||||||||||||||||||||||||||||
| Полевые переменные | gv.mileStones | количество столбов от столицы до героя в поле | |||||||||||||||||||||||||||||||||||||
| gv.poiMileStones | местоположение интересной точки на карте в столбах от столицы | ||||||||||||||||||||||||||||||||||||||
| gv.poiDistance | расстояние от героя до точки в столбах | ||||||||||||||||||||||||||||||||||||||
| gv.auraName | название ауры, если она есть | ||||||||||||||||||||||||||||||||||||||
| gv.auraDuration | оставшаяся длительность ауры, если она есть (в секундах, но округляется до целых минут) | ||||||||||||||||||||||||||||||||||||||
| gv.bingoItems | количество подходящих в бинго трофеев в инвентаре | ||||||||||||||||||||||||||||||||||||||
| gv.bingoSlotsLeft | количество незаполненных слотов в бинго | ||||||||||||||||||||||||||||||||||||||
| gv.bingoTriesLeft | количество оставшихся попыток заполнения | ||||||||||||||||||||||||||||||||||||||
| gv.questName | название квеста | ||||||||||||||||||||||||||||||||||||||
| gv.questNumber | номер квеста | ||||||||||||||||||||||||||||||||||||||
| gv.questProgress | прогресс выполнения квеста в процентах | ||||||||||||||||||||||||||||||||||||||
| gv.sideJobName | название подряда | ||||||||||||||||||||||||||||||||||||||
| gv.sideJobDuration | длительность подряда в секундах | ||||||||||||||||||||||||||||||||||||||
| gv.sideJobProgress | прогресс выполнения подряда в процентах | ||||||||||||||||||||||||||||||||||||||
| gv.nearestTown | название ближайшего города | ||||||||||||||||||||||||||||||||||||||
| gv.currentTown | название текущего города, если герой в нем, иначе - пустая строка | ||||||||||||||||||||||||||||||||||||||
| gv.inShop | герой-торговец работает в своей лавке | ||||||||||||||||||||||||||||||||||||||
| gv.inTown | герой находится в городе | ||||||||||||||||||||||||||||||||||||||
| gv.isGoingBack | герой идет из поля в город | ||||||||||||||||||||||||||||||||||||||
| gv.isGoingForth | герой идет из города в поле (экспериментально, может ошибаться!) | ||||||||||||||||||||||||||||||||||||||
| gv.isGoingGodville | герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах) | ||||||||||||||||||||||||||||||||||||||
| gv.isTrading | герой продает трофеи (экспериментально, может ошибаться!) | ||||||||||||||||||||||||||||||||||||||
| gv.isFishing | герой рыбачит (экспериментально, может очень ошибаться!) | ||||||||||||||||||||||||||||||||||||||
| gv.currentMonster | название монстра, если герой бьется с ним в поле, иначе - пустая строка | ||||||||||||||||||||||||||||||||||||||
| gv.chosenMonster | идет бой с монстром из настроенного списка избранных | ||||||||||||||||||||||||||||||||||||||
| gv.specialMonster | идет бой со спец-монстром из настроенного списка префиксов | ||||||||||||||||||||||||||||||||||||||
| gv.tamableMonster | идет бой с монстром, которого можно приручить (только если у героя нет питомца) | ||||||||||||||||||||||||||||||||||||||
| gv.wantedMonster | идет бой с монстром дня | ||||||||||||||||||||||||||||||||||||||
| gv.petKnockedOut | питомец героя контужен | ||||||||||||||||||||||||||||||||||||||
| gv.lastNews | текст строки из Вестей | ||||||||||||||||||||||||||||||||||||||
| gv.lastDiary | текст последней строки из дневника | ||||||||||||||||||||||||||||||||||||||
| gv.lastDiaryVoice | текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа) | ||||||||||||||||||||||||||||||||||||||
| gv.voiceCooldown | время отката в секундах после гласа, который был услышан героем (уменьшается до 0) | ||||||||||||||||||||||||||||||||||||||
| gv.arenaAvailable | доступен поход на арену | ||||||||||||||||||||||||||||||||||||||
| gv.sparAvailable | доступен тренировочный бой | ||||||||||||||||||||||||||||||||||||||
| gv.dungeonAvailable | доступен поход в подземелье | ||||||||||||||||||||||||||||||||||||||
| gv.sailAvailable | доступен заплыв в море | ||||||||||||||||||||||||||||||||||||||
| gv.arenaSendDelay | время до доступности похода на арену (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||
| gv.sparSendDelay | время до доступности тренировочного боя (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||
| gv.dungeonSendDelay | время до доступности похода в подземелье (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||
| gv.sailSendDelay | время до доступности заплыва в море (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||
| Боевые переменные | gv.fightStep | номер шага в боевом режиме | |||||||||||||||||||||||||||||||||||||
| gv.lowHealth | низкий уровень здоровья в боевых режимах | ||||||||||||||||||||||||||||||||||||||
| gv.enemyHealth | суммарное здоровье противников в боевом режиме | ||||||||||||||||||||||||||||||||||||||
| gv.enemyHealthMax | максимальное суммарное здоровье противников в боевом режиме | ||||||||||||||||||||||||||||||||||||||
| gv.enemyHealthPrc | суммарное здоровье противников в процентах (имеет смысл для одиночных противников) | ||||||||||||||||||||||||||||||||||||||
| gv.enemyGold | количество золота у противника | ||||||||||||||||||||||||||||||||||||||
| gv.enemyCount | количество противников (имеет смысл для корованов) | ||||||||||||||||||||||||||||||||||||||
| gv.enemyAliveCount | количество живых противников (имеет смысл для корованов) | ||||||||||||||||||||||||||||||||||||||
| gv.enemyHasAbility("название способности") | проверяет, имеет ли противник указанную способность (имеет смысл для боссов) | ||||||||||||||||||||||||||||||||||||||
| gv.enemyAbilitiesCount | количество способностей у противника (имеет смысл для боссов) | ||||||||||||||||||||||||||||||||||||||
| gv.alliesHealth | суммарное здоровье союзников в боевом режиме | ||||||||||||||||||||||||||||||||||||||
| gv.alliesHealthMax | суммарный максимум здоровья союзников в боевом режиме | ||||||||||||||||||||||||||||||||||||||
| gv.alliesHealthPrc | суммарное здоровье союзников в процентах (фактически, не имеет смысла) | ||||||||||||||||||||||||||||||||||||||
| gv.alliesCount | количество союзников | ||||||||||||||||||||||||||||||||||||||
| gv.alliesAliveCount | количество живых союзников | ||||||||||||||||||||||||||||||||||||||
| Морские переменные | gv.supplies | количество припасов | |||||||||||||||||||||||||||||||||||||
| gv.suppliesMax | максимальное количество припасов | ||||||||||||||||||||||||||||||||||||||
| gv.suppliesPrc | количество припасов в процентах | ||||||||||||||||||||||||||||||||||||||
| gv.cargo | содержимое трюма ковчега (строкой, включая квадратные скобки) | ||||||||||||||||||||||||||||||||||||||
| gv.portDistance | расстояние до порта в режиме плавания | ||||||||||||||||||||||||||||||||||||||
| gv.sailConditions | показывает дополнительные условия карты (если условий несколько - они выводятся через запятую):
| ||||||||||||||||||||||||||||||||||||||
Готовые примеры
| Здесь можно посмотреть примеры пользовательских информеров |
|---|
| Мониторинг удачного стечения обстоятельств |
Скоро ZPG арена | (gv.godpower >=50 || (gv.godpower >=25 && gv.dailyForecast ~* "достаточно и 25")) && gv.getMinutes >=59 && gv.arenaAvailable Пора на ZPG арену | (gv.godpower >=50 || (gv.godpower >=25 && gv.dailyForecast ~* "достаточно и 25")) && gv.getMinutes < 2 && gv.arenaAvailable Кабак с подвалом! | gv.dungeonAvailable && gv.healthPrc>70 && gv.inTown && gv.inventoryUnsellable==gv.inventory Кабак с подвалом с распаковкой! | !gv.dungeonSendDelay && gv.godpower < 50 && gv.healthPrc>70 && gv.inTown && gv.inventoryHealing==gv.inventory Копать!(здоровье>65%,прана>=30%)| gv.healthPrc > 65 && gv.godpower >=30 && !gv.inTown && !gv.isTrading && !gv.isFishing && !gv.inFight && gv.currentMonster == "" Рыбалка! | gv.lastDiary ~* "отвлекает пираний, насадил|Подойдя к крутому берегу, бросил|Убедившись в отсутствии инспектора рыбнадзора в ближайших кустах|чтобы задобрить Ёрмунганда перед рыбалкой|Рыбалка — дело тонкое. Сломал|для рыбалки. Посмотрим, кто клюнет на|на берегу посмотреть, кто всплывёт|Настоящего рыбака|руку в воду по локоть|Cтоило бы накопать червей|А коль так, то и рыба должна повестись|Рыбалка в этих краях запрещена, но так даже|порыбачить. Лично я бы, правда|как я трачу на рыбалку|куда-то убежал. Прид|Крепкая вещица. Надеюсь, что улов оправдает|внеплановый рыбный день|такую рыбу, чтобы хоть раз не надо было врать|В качестве наживки попробую"|0 Баллада в городе | gv.inTown && gv.inventoryHasType("coolstory-box")
|
| Мониторинг во время боя |
№ Примеры от Servelll
Риск нокаута героя (подзем)|gv.fightType=="monster" && gv.alliesCount==4 && (((gv.health - 1) <= ((gv.alliesHealthMax+gv.healthMax)/16 - 45 + 5*gv.enemyAbilitiesCount) && ((gv.alliesHealthMax+gv.healthMax)/16 - 45 + 5*gv.enemyAbilitiesCount) < 102) || ((gv.health - 1) <= 102 && ((gv.alliesHealthMax+gv.healthMax)/16 - 45 + 5*gv.enemyAbilitiesCount) >= 102))|1
Риск нокаута героя двойным ударом (подзем)|gv.fightType=="monster" && gv.alliesCount==4 && gv.enemyHasAbility("бойкий") && (((gv.health - 1) <= 2*((gv.alliesHealthMax+gv.healthMax)/16 - 45 + 5*gv.enemyAbilitiesCount) && ((gv.alliesHealthMax+gv.healthMax)/16 - 45 + 5*gv.enemyAbilitiesCount) < 102) || ((gv.health - 1) <= 204 && ((gv.alliesHealthMax+gv.healthMax)/16 - 45 + 5*gv.enemyAbilitiesCount) >= 102))|1
# приблизительно 2 удара осталось, если все живы
Взрывной при смерти! | gv.enemyHasAbility("взрывной") && gv.enemyHealth < gv.alliesHealthMax/5
Лучезарному скоро каюк | gv.enemyHasAbility("лучезарный") && gv.enemyHealth < gv.alliesHealthMax/5
# приблизительно 1 удар остался, если все живы. Срабатывает только если вкладка с игрой не активна
Вернись, пора рулить | !gv.windowFocused && gv.fightType == 'monster' && gv.enemyHealth < gv.alliesHealthMax/9
|
| Пенсионные города |
Нижние Котлы (37%±12%) | gv.godpower>4 && gv.gold>2000 && !gv.inTown && gv.mileStones>=0 && gv.mileStones<=4 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") БольшиеБодуны (58%±18%) | gv.godpower>4 && gv.gold>2000 && !gv.inTown && gv.mileStones>=23 && gv.mileStones<=31 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") ЛосАдминос (49%±16%) | gv.godpower>4 && gv.gold>2000 && !gv.inTown && gv.mileStones>=46 && gv.mileStones<=51 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") Пивнотаун (69%±20%) | gv.godpower>4 && gv.gold>2000 && !gv.inTown && gv.mileStones>=101 && gv.mileStones<=109 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") МалыеСаппорт..(47%±15%) | gv.godpower>4 && gv.gold>2000 && !gv.inTown && gv.mileStones>=110 && gv.mileStones<=120 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") Тризвездинск (51%±15%) | gv.godpower>4 && gv.gold>2000 && !gv.inTown && gv.mileStones>=152 && gv.mileStones<=160 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") Либо общий: Может в Сбережения? | (gv.nearestTown=="Нижние Котлы" || gv.nearestTown=="Большие Бодуны" || gv.nearestTown=="ЛосАдминос" || gv.nearestTown=="Пивнотаун" || gv.nearestTown=="Малые Саппортуны" || gv.nearestTown=="Бугагота" || gv.nearestTown=="Тризвездинск") && !gv.inTown && gv.godpower>4 && gv.gold>2000 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") |
| Анализ прогнозов |
Прогноз на активацию трофеев | gv.dailyForecast ~* "активируемые трофеи могут обходиться вдвое дешевле" Прогноз на распаковку 70% | gv.dailyForecast ~* "распаковывается в 70" Прогноз на дорогие трофеи | gv.dailyForecast ~* "Активируемые трофеи сегодня можно продать вдвое дороже обычного" Прогноз на пенс.день | gv.dailyForecast ~* "отказаться от пьянок" Прогноз на годвилль-день | gv.dailyForecast ~* "все дороги ведут в Годвилль" Прогноз на эффективные молитвы | gv.dailyForecast ~* "эффективность молитв в храмах" Прогноз на остроухость | gv.dailyForecast ~* "слышимость гласов|реагируют на божьи гласы" Прогноз на боссов | gv.dailyForecast ~* "выкопать|так и прут" -- День Рыбалки |gv.dailyForecast ~* "садиться с удочкой почаще" Прогноз на день долгого задания |gv.dailyForecast ~* "советуют героям не спешить и просто рубить монстров в своё удовольствие" Прогноз на день невозложения |gv.dailyForecast ~* "Сконвертировать золото в опыт храмовладельцам сегодня не удастся" День без прокачки умений |gv.dailyForecast ~* "тренеры ушли в астрал|прокачка умений не осуществляется" |
- ↑ «Кстати, помните активируемые былиноделы, сундуки со сказками и прочие довольно бесполезные куплетописи? Теперь при активации в городе эти трофеи заодно усиливают там влияние гильдии — совершенно задаром». «Богучёт», пост в блоге от 12.05.2017