Erinome Godville UI+: различия между версиями

Материал из Энциклобогии
Перейти к навигации Перейти к поиску
(→‎Готовые примеры: перекраска своих сообщений в гильдчате)
(→‎Переменные: синхронизация списка)
Строка 145: Строка 145:
{| class="standard collapsible collapsed"  
{| class="standard collapsible collapsed"  
|-
|-
! colspan="3" align="left" | Полный перечень переменных версии 1.1.32.0
! colspan="3" align="left" | Полный перечень переменных, доступных в версии 1.1.34.10
|-
|-
! Категория || Переменная || Описание  
! Категория || Переменная || Описание  
Строка 385: Строка 385:
| gv.windowFocused || определяет, активна ли текущая вкладка браузера
| gv.windowFocused || определяет, активна ли текущая вкладка браузера
|-
|-
| rowspan="56" valign="top" | Полевые переменные
| rowspan="72" valign="top" | Полевые переменные
| gv.exp || количество опыта героя до следующего уровня в процентах
| gv.exp || количество опыта героя до следующего уровня в процентах
|-
|-
Строка 395: Строка 395:
| gv.mileStones || количество столбов от столицы до героя в поле  
| gv.mileStones || количество столбов от столицы до героя в поле  
|-
|-
| gv.poiMileStones || местоположение интересной точки на карте в столбах от столицы
| gv.poiMileStones || местоположение ближайшей к герою интересной точки на карте в столбах от столицы
|-
|-
| gv.poiDistance || расстояние от героя до точки в столбах
| gv.poiDistance || расстояние от героя до ближайшей к нему интересной точки в столбах
|-
| gv.poiMileStonesAhead || аналог gv.poiMileStones, но только для точки впереди героя (дальше от столицы)
|-
| gv.poiMileStonesBehind || аналог gv.poiMileStones, но только для точки позади героя (ближе к столице)
|-
| gv.selTownName || название выбранного в городском информере города
|-
| gv.selTownMileStones || местоположение выбранного города в столбах от столицы
|-
| gv.selTownDistance || расстояние в столбах от героя до выбранного города
|-
|-
| gv.auraName || название ауры, если она есть  
| gv.auraName || название ауры, если она есть  
Строка 454: Строка 464:
| gv.isGoingGodville || герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах)
| gv.isGoingGodville || герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах)
|-
|-
| gv.isTrading || герой продает трофеи (экспериментально, может ошибаться!)
| gv.isHealing || герой лечится (как в городе, так и в полевых условиях)
|-
| gv.isTrading || герой продает трофеи и покупает снаряжение
|-
|-
| gv.isFishing || герой рыбачит (экспериментально, может очень ошибаться!)
| gv.isPartying || герой ищет в городе развлечений или возможности вложить средства
|-
| gv.isSleeping || герой в городе спит и видит сны
|-
| gv.isPraying || герой молится в городском храме
|-
| gv.isWalking || герой идет из города в поля или выполняет задание
|-
| gv.isBattling || герой бьется с монстром
|-
| gv.isReturning || герой возвращается в город
|-
| gv.isFishing || герой рыбачит
|-
| gv.isWaiting || герой находится в ожидании "авантюры" или же переводит дух после завершения оной
|-
| valign="top"| gv.heroState || код одного из состояний героя:
    {| class="standard"
    | healing || лечение в городе или поле
    |-
    | trading || торговля в городе или поле
    |-
    | partying || развлечение в городе
    |-
    | sleeping || сон в городе
    |-
    | praying || молитва в городе
    |-
    | walking || движение из города
    |-
    | battling || бой с монстром
    |-
    | returning || возврат в город
    |-
    | fishing || рыболовля
    |-
    | preAdventure || ожидание боевого режима
    |-
    | postAdventure || окончание боевого режима
    |-
    | profiteering || торговля в своей лавке
    |-
    | dying || жизнь после смерти
    |-
    | unparsed || текст заголовка не распознался
    |}
|-
| gv.heroStateText || текст заголовка блока вестей
|-
|-
| gv.currentMonster || название монстра, если герой бьется с ним в поле, иначе - пустая строка  
| gv.currentMonster || название монстра, если герой бьется с ним в поле, иначе - пустая строка  
Строка 502: Строка 561:
| gv.miningSendDelay || время до доступности похода на полигон (в секундах, но округляется до минут (равно 0, когда недоступно))  
| gv.miningSendDelay || время до доступности похода на полигон (в секундах, но округляется до минут (равно 0, когда недоступно))  
|-
|-
| rowspan="17" valign="top" | Боевые переменные
| gv.pendingShop || было запрошено посещение лавки для героя-торговца
|-
| rowspan="19" valign="top" | Боевые переменные
| gv.fightStep || номер шага в боевом режиме  
| gv.fightStep || номер шага в боевом режиме  
|-
|-
Строка 526: Строка 587:
| gv.enemyAbilitiesCount || количество способностей у противника (имеет смысл для боссов)  
| gv.enemyAbilitiesCount || количество способностей у противника (имеет смысл для боссов)  
|-
|-
| gv.alliesHealth || суммарное здоровье союзников в боевом режиме
| gv.alliesAliveHealthMax || суммарный максимум здоровья живых союзников
|-
| gv.enemyName || имя текущего противника (если их несколько - то первого в списке)
|-
| gv.bossFightType || категоря босса во время боя с оным:
    {| class="standard"
    | dungeon || подземный босс
    |-
    | field || полевой босс
    |-
    | "" || если сейчас нет боя с боссом
    |}
Примечание: в случае боя с франкенбоссом, собранным из запчастей полевого босса, может ошибочно посчитать такого босса полевым, если страница игры была открыта сразу во время боя (т.е. расширение не видело подземелья)
|-
|-
| gv.alliesHealthMax || суммарный максимум здоровья союзников в боевом режиме  
| gv.alliesHealthMax || суммарный максимум здоровья союзников в боевом режиме  

Версия от 08:57, 11 марта 2023


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 →‎ истина

"строка" != "другая строка" →‎ истина
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 вся информация для переменных берется из общедоступных внешних источников, а некоторые значения, которые более недоступны в точном виде, теперь рассчитываются косвенно - следовательно, возможны неточности.

Готовые примеры

Пользовательский CSS

Дополнение позволяет добавлять на страницу игры дополнительные CSS-стили без необходимости заводить для этого дополнительный аддон вроде Stylish, Stylus и других подобных. Поле ввода CSS находится на странице настройки дополнения, каждое правило требуется вписывать на отдельной строке. Указываемые там правила применяются как к странице героя, так и к страницам хроник, форума и газете. После сохранения изменений страницу игры перезагружать не требуется и изменения будут активированы автоматически, а другие страницы понадобится переоткрыть для применения введенных правил.

Базовое описание синтаксиса CSS можно легко найти в интернете (например), а с определением классов и идентификаторов компонентов HTML-кода страницы поможет инструмент "Исследовать элемент" (или "Просмотреть код"), доступный по клику правой кнопкой мыши по интересующему элементу на странице.

Готовые примеры


  1. «Кстати, помните активируемые былиноделы, сундуки со сказками и прочие довольно бесполезные куплетописи? Теперь при активации в городе эти трофеи заодно усиливают там влияние гильдии — совершенно задаром». «Богучёт», пост в блоге от 12.05.2017