Erinome Godville UI+
Erinome Godville UI+ — расширение для браузеров, изначально основанное на Godville UI+, но получившее уже заметное количество отличий и дополнительных возможностей от оригинала.
Тема на форуме в квартале мастеровых: Erinome Godville UI+ - браузерное расширение для Годвилля (Firefox, Chrome, Opera).
Информеры
Дополнение может отслеживать различные события в жизни героя и выводить уведомления о них. Уведомление производится миганием иконки вкладки и меткой в верхнем правом углу страницы. Дополнительно доступны всплывающие уведомления и звуковое уведомление.
Пользовательские информеры
Пользовательские информеры позволяют настроить уведомления на произвольный набор событий в игре.
Настраиваются информетры в:
- в блоке "Герой" при наведении курсора на шапку появится кликабельная иконка шестеренки
- в верхнем меню по ссылке "настройки ui+" в разделе "Управление информерами" кликабельная ссылка в элементе "пользовательские информеры"
Каждый информер описывается одной строкой в формате:
Текст уведомления | набор условий | тип информера и уведомлений
Информер можно временно отключить, убрав галочку в начале строки.
Начиная с версии 1.1.17.4, в тексте уведомлений можно использовать одиночные переменные. Они указываются отдельными словами - gv.variable, либо в фигурных скобках - {gv.variable}. Начиная же с версии 1.1.21.0, в фигурных скобках можно указывать и целые логические выражения любой сложности. При изменении значений входящих в заголовки переменных, тексты информеров будут соответственным образом обновлены. Для информеров с переменными в названиях существует два дополнительных модификатора работы уведомления - см. в таблице ниже.
Несколько условий объединяются логическими операторами && (логическое «И»), || (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» !true = false
Также имеются другие операторы:
Операторы | Описание | Примеры |
---|---|---|
==, != <, <= >, >= |
равенство и неравенство
меньше и меньше или равно |
100 == 100 → истина
"строка" != "другая строка" → истина |
~, ~* | регистрозависимое и регистронезависимое регулярное выражение, возвращает результат в виде массива или 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 |
+, - ! |
преобразование строки к числу, изменение знака логическое отрицание |
+"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. |
I | - | мод: неубиваемое уведомление | имеющий смысл для ненавязчивых информеров (N), модификатор типа I отключает всякую возможность убрать данное уведомление нажатием на себя добавлен в версии 1.1.35.3. |
Z | - | мод: логирующее уведомление | модификатор типа Z вынуждает данный информер дополнительно оставлять записи в консоли браузера о том, когда он был включен, отключен или изменил свой заголовок (ежели в оном использовались переменные) добавлен в версии 1.1.35.3. |
Например, чтобы создать неотключаемый информер, уведомляющий миганием и всплывающим окном, необходимо указать тип: SLD (или, если вам нравится складывать числа, то 49 (1+16+32)).
Если модификаторы типа уведомления не указаны, то информер будет использовать набор уведомлений, выбранный для всех пользовательских информеров в общей таблице настроек информеров.
Переменные
Полный и актуальный перечень доступных переменных находится в файле FAQ на странице дополнения.
Примечание: с апреля 2016 года разработчиками игры было запрещено использовать в аддонах точные внутриигровые данные, поэтому начиная с версии 1.1.1.0 вся информация для переменных берется из общедоступных внешних источников, а некоторые значения, которые более недоступны в точном виде, теперь рассчитываются косвенно - следовательно, возможны неточности.
Полный перечень переменных, доступных в версии 1.1.35.3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Категория | Переменная | Описание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Общие переменные | gv.health | здоровье героя | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.healthMax | максимальное здоровье героя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.healthPrc | здоровье героя в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.gold | количество золота у героя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventory | количество предметов в инвентаре | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryMax | максимальное количество предметов в инвентаре | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryPrc | количество предметов в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryHealing | количество лечебных трофеев в инвентаре | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryUnsellable | количество трофеев, которые могут быть не проданы во время фазы торговли (лечилки, трибблы и проч.) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryHasItem("название предмета") | проверка, есть ли в инвентаре героя указанный предмет | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryHasType("тип предмета") | проверка, есть ли в инвентаре героя предмет указанного типа:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inventoryCountLike("regexp", флаги) | возвращает количество предметов в инвентаре, подходящих под указанное регулярное выражение и необязательный список флагов-ограничителей:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.godpower | количество праны | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.godpowerMax | максимальное количество праны | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.godpowerPrc | количество праны в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.charges | количество зарядов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.monstersKilled | общее количество поверженных монстров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inFight | герой находится в боевом режиме | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inBossFight | герой находится в бою с босс-монстром (любым) или корованом | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.fightType | тип боевого режима, возможные варианты:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.hasTemple | герой имеет достроенный храм | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.hasArk | герой имеет достроенный ковчег | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.lastGuildChat | текст последних сообщений гильдчата (доступен только когда открыта и развернута вкладка гильдчата) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.dailyForecast | текст астропрогноза | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isForecast("тип") | проверка на определенный тип астропрогноза:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.couponPrize | товар, который можно получить по купону из газеты (если купон уже забран - пустая строка) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.godpowerCapAvailable | доступен ли праноконденсатор | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.expTimeout | количество минут до окончания штрафа возложения золота в храме (или 10080, если данных нет) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.logTimeout | количество минут до гарантированного бревна в подземелье (или 10080, если данных нет) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.byteTimeout | количество минут до гарантированного слога на полигоне | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.byteDoubleTimeout | количество минут до гарантированных двух слогов на полигоне | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sparTimeout | количество минут до экспоносной тренировки (или 10080, если данных нет) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getSeconds | точное локальное время: секунды (0-59) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getMinutes | точное локальное время: минуты (0-59) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getHours | точное локальное время: часы (0-23) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getHoursUTC | точное время UTC (GMT+0): часы (0-23) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getHoursMSK | точное московское время (GMT+3): часы (0-23) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getDay | текущий день недели (1-7) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getDayUTC | текущий день недели по UTC (GMT+0) (1-7) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.getDayMSK | текущий день недели по московскому времени (GMT+3) (1-7) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.windowFocused | определяет, активна ли текущая вкладка браузера | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Полевые переменные | gv.exp | количество опыта героя до следующего уровня в процентах | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.expTrader | количество опыта торговца до следующего уровня в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.expForge | прогресс Творительной до получения следующего уровня инструментов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.mileStones | количество столбов от столицы до героя в поле | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.poiMileStones | местоположение ближайшей к герою интересной точки на карте в столбах от столицы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.poiDistance | расстояние от героя до ближайшей к нему интересной точки в столбах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.poiMileStonesAhead | аналог gv.poiMileStones, но только для точки впереди героя (дальше от столицы) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.poiMileStonesBehind | аналог gv.poiMileStones, но только для точки позади героя (ближе к столице) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.selTownName | название выбранного в городском информере города | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.selTownMileStones | местоположение выбранного города в столбах от столицы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.selTownDistance | расстояние в столбах от героя до выбранного города | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.auraName | название ауры, если она есть | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.auraDuration | оставшаяся длительность ауры, если она есть (в секундах, но округляется до целых минут) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bingoItems | количество подходящих в бинго трофеев в инвентаре (работает даже после того, как попытки заполнения исчерпаны) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bingoSlotsLeft | количество незаполненных слотов в бинго (работает даже после того, как попытки заполнения исчерпаны) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bingoTriesLeft | количество оставшихся попыток заполнения | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.questName | название квеста | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.questNumber | номер квеста | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.questProgress | прогресс выполнения квеста в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sideJobName | название подряда | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sideJobDuration | длительность подряда в секундах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sideJobProgress | прогресс выполнения подряда в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sideJobRequirements | количество того, что требуется для выполнения подряда (в штуках, или 0 если требование несчетное) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bookBytes | количество байт для книги | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bookWords | количество слов для книги | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.forgeBytes | количество байт в Творительной | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.forgeWords | количество слов в Творительной | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.souls | количество собранных душ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.soulsProcessed | прогресс обработки в Душевой | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.nearestTown | название ближайшего города | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.currentTown | название текущего города, если герой в нем, иначе - пустая строка | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inShop | герой-торговец работает в своей лавке | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.inTown | герой находится в городе | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isBlessed | у героя есть активное благословление, покупаемое за ворох пранозарядов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isEquipmentBold(номер_слота) | жирное ли снаряжение в указанном слоте (слоты: 1 - оружие, 2 - щит и т. д.) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isGoingBack | герой идет из поля в город | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isGoingForth | герой идет из города в поле (экспериментально, может ошибаться!) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isGoingGodville | герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isHealing | герой лечится (как в городе, так и в полевых условиях) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isTrading | герой продает трофеи и покупает снаряжение | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isPartying | герой ищет в городе развлечений или возможности вложить средства | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isSleeping | герой в городе спит и видит сны | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isPraying | герой молится в городском храме | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isWalking | герой идет из города в поля или выполняет задание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isBattling | герой бьется с монстром | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isReturning | герой возвращается в город | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isFishing | герой рыбачит | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.isWaiting | герой находится в ожидании "авантюры" или же переводит дух после завершения оной | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.heroState | код одного из состояний героя:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.heroStateText | текст заголовка блока вестей | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.currentMonster | название монстра, если герой бьется с ним в поле, иначе - пустая строка | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.chosenMonster | идет бой с монстром из настроенного списка избранных | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.soulMonster | идет бой с душесодержащим монстром | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.specialMonster | идет бой со спецмонстром из настроенного списка префиксов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.strongMonster | идет бой с сильным монстром | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.tamableMonster | идет бой с монстром, которого можно приручить (только если у героя нет питомца) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.wantedMonster | идет бой с монстром дня | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.petKnockedOut | питомец героя контужен | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.lastNews | текст строки из Вестей | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.lastDiary | текст последней записи из дневника (не включая гласы и влияния) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.lastDiaryVoice | текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.voiceCooldown | время отката в секундах после гласа, который был услышан героем (уменьшается до 0) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.arenaAvailable | доступен поход на арену | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sparAvailable | доступен тренировочный бой | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.dungeonAvailable | доступен поход в подземелье | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sailAvailable | доступен заплыв в море | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.miningAvailable | доступен поход на полигон | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.arenaSendDelay | время до доступности похода на арену (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sparSendDelay | время до доступности тренировочного боя (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.dungeonSendDelay | время до доступности похода в подземелье (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sailSendDelay | время до доступности заплыва в море (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.miningSendDelay | время до доступности похода на полигон (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.pendingShop | было запрошено посещение лавки для героя-торговца | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.hpd | дельта изменения здоровья героя (работает только вне боевых режимов) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Боевые переменные | gv.fightStep | номер шага в боевом режиме | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.fightStepText | полный текст хроники текущего шага | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.lowHealth | низкий уровень здоровья в боевых режимах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyHealth | суммарное здоровье противников в боевом режиме | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyHealthMax | максимальное суммарное здоровье противников в боевом режиме | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyHealthPrc | суммарное здоровье противников в процентах (имеет смысл для одиночных противников) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyGold | количество золота у противника | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyCount | количество противников (имеет смысл для корованов) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyAliveCount | количество живых противников (имеет смысл для корованов) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyHasAbility("название способности") | проверяет, имеет ли противник указанную способность (имеет смысл для боссов) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyAbilitiesCount | количество способностей у противника (имеет смысл для боссов) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.alliesAliveHealthMax | суммарный максимум здоровья живых союзников | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.enemyName | имя текущего противника (если их несколько - то первого в списке) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bossFightType | категоря босса во время боя с оным:
Примечание: в случае боя с франкенбоссом, собранным из запчастей полевого босса, может ошибочно посчитать такого босса полевым, если страница игры была открыта сразу во время боя (т.е. расширение не видело подземелья) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.alliesHealthMax | суммарный максимум здоровья союзников в боевом режиме | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.alliesHealthPrc | суммарное здоровье союзников в процентах (фактически не имеет смысла) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.alliesCount | количество союзников | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.alliesAliveCount | количество живых союзников | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.alliesAliveHealthMax | суммарный максимум здоровья живых союзников | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Подземельные переменные | gv.dungeonChallenge | дополнительная задача, которую можно выполнить во время похода по подземелью:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.dungeonChallengeReward | награда за выполненную дополнительную задачу:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.guidedStepsCount | общее количество совершенных направляющих гласов для задачи "silence", если данных нет - null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Морские переменные | gv.supplies | количество припасов | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.suppliesMax | максимальное количество припасов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.suppliesPrc | количество припасов в процентах | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.cargo | содержимое трюма ковчега (строкой, включая квадратные скобки) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.portDistance | расстояние до порта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.sailConditions | показывает дополнительные условия карты (если условий несколько - они выводятся через запятую):
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Полигонные переменные | gv.bits | число собранных боссом бит | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bytes | число собранных боссом байт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.bitsPerByte | количество бит в одном байте | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gv.pushReadiness | уровень готовности божественного толкания |
Готовые примеры
Здесь можно посмотреть примеры пользовательских информеров |
---|
Мониторинг удачного стечения обстоятельств |
Скоро 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~"ведут в Годвилль") Либо общий: Может в Сбережения? | (["Нижние Котлы","Большие Бодуны","ЛосАдминос","Пивнотаун","Малые Саппортуны","Тризвездинск","Бугагота"]).includes(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 ~* "тренеры ушли в астрал|прокачка умений не осуществляется" |
Напоминание заполнить бинго |
в бинго {gv.bingoItems}; попыток {gv.bingoTriesLeft} | (gv.isGoingBack || gv.isTrading ) && gv.bingoItems && gv.bingoTriesLeft |
Напоминание забрать бинго |
Забрать бинго срочно! | gv.getHours==23 && gv.bingoTriesLeft |
Напоминание плюсануть глас в Дневнике для бесплатного 1% праны |
+глас | gv.lastDiaryVoice |
Напоминание использовать былину-активашку в городе |
@былина в городе! | gv.inTown && gv.inventoryHasType("coolstory-box") |
Напоминание продлить полезную ауру (темой на форуме или erinome db) |
продли ауру кроссвордом |gv.auraName=="непереносимости" |
Пользовательский CSS
Дополнение позволяет добавлять на страницу игры дополнительные CSS-стили без необходимости заводить для этого дополнительный аддон вроде Stylish, Stylus и других подобных. Поле ввода CSS находится на странице настройки дополнения, каждое правило требуется вписывать на отдельной строке. Указываемые там правила применяются как к странице героя, так и к страницам хроник, форума и газете. После сохранения изменений страницу игры перезагружать не требуется и изменения будут активированы автоматически, а другие страницы понадобится переоткрыть для применения введенных правил.
Базовое описание синтаксиса CSS можно легко найти в интернете (например), а с определением классов и идентификаторов компонентов HTML-кода страницы поможет инструмент "Исследовать элемент" (или "Просмотреть код"), доступный по клику правой кнопкой мыши по интересующему элементу на странице.
Готовые примеры
Здесь можно посмотреть некоторые примеры CSS-правил | |
---|---|
Подсвечивать подходящие для бинго трофеи синим цветом в инвентаре | #inventory .bingo_item { color: blue; } |
Сделать контрастные черно-белые значки в морских заплывах | g.tile { font-family: Verdana, Helvetica, Arial, "Segoe UI Symbol", sans-serif; !important } |
Сделать другие контрастные черно-белые значки в морских заплывах | g.tile { font-family: Verdana, Helvetica, Arial, Em, sans-serif; !important } |
Помечать точками клетки, где точно нет стен в подземельях | .dmc.notAWall { color: transparent !important; } .dmc.notAWall::before { display: block; text-align: center; font-weight: bold; content: "•"; color: #7E7E7E; } .th_nightly .dmc.notAWall::before { color: #999999; } .dmc.notAWall.pointerMatched::before { color: red; } .dmc.notAWall.pointerMatchedThermo::before { color: darkorange; } |
Спрятать кнопку отправки в дуэльный режим при нехватке праны | div.arena_link_wrap .e_low_gp { display: none !important; } /* для арены */ div.e_challenge_button .e_low_gp { display: none !important; } /* для тренировки */ div.e_dungeon_button .e_low_gp { display: none !important; } /* для подземелья */ div.e_sail_button .e_low_gp { display: none !important; } /* для плавания */ div.e_mining_button .e_low_gp { display: none !important; } /* для полигона */ .e_low_gp { display: none !important; } /* для всех режимов сразу */ |
Чуть отодвинуть кнопку отправки в плавание от кнопки отправки в подземелье | .e_sail_button { margin-top: 9px; } |
Спрятать кнопку "Восстановить" распаковки зарядов | .dch_link { display: none !important; } |
Покрасить жирное снаряжение в красный цвет | .eq_b { color: red; } |
Покрасить свои сообщения в гильдчате в тёмно-зелёный цвет | .fr_msg_l_my { color:darkgreen; } |
Отображать информеры в столбик с выравниванием по правому краю окна браузера | #informer_bar { display: grid; justify-items: end; } |
- ↑ «Кстати, помните активируемые былиноделы, сундуки со сказками и прочие довольно бесполезные куплетописи? Теперь при активации в городе эти трофеи заодно усиливают там влияние гильдии — совершенно задаром». «Богучёт», пост в блоге от 12.05.2017