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

Материал из Энциклобогии
Перейти к навигации Перейти к поиску
(чуток апдейтов списка, возможные значения переменных в алфавитном порядке, попытался кое-где сделать код почитабельнее)
м (Перенос в новую категорию)
 
(не показано 11 промежуточных версий 4 участников)
Строка 1: Строка 1:
[[Категория:Клиенты и плагины]]
[[Категория:Расширения и другое (стороннее)]]
 
'''Erinome Godville UI+''' — расширение для браузеров, изначально основанное на [[Godville UI+]], но получившее уже заметное количество отличий и дополнительных возможностей от оригинала.  
'''Erinome Godville UI+''' — расширение для браузеров, изначально основанное на [[Godville UI+]], но получившее уже заметное количество отличий и дополнительных возможностей от оригинала.  


Строка 133: Строка 132:
| мод: ненавязчивое уведомление
| мод: ненавязчивое уведомление
| имеющий смысл для стандартных информеров (L), модификатор типа N отключает мигание данного уведомления в заголовке окна, и оно только скромно висит в углу экрана<br>добавлен в версии 1.1.20.12.
| имеющий смысл для стандартных информеров (L), модификатор типа N отключает мигание данного уведомления в заголовке окна, и оно только скромно висит в углу экрана<br>добавлен в версии 1.1.20.12.
|-
| style="text-align: center" | I
| style="text-align: center" | -
| мод: неубиваемое уведомление
| имеющий смысл для ненавязчивых информеров (N), модификатор типа I отключает всякую возможность убрать данное уведомление нажатием на себя<br>добавлен в версии 1.1.35.3.
|-
| style="text-align: center" | Z
| style="text-align: center" | -
| мод: логирующее уведомление
| модификатор типа Z вынуждает данный информер дополнительно оставлять записи в консоли браузера о том, когда он был включен, отключен или изменил свой заголовок (ежели в оном использовались переменные)<br>добавлен в версии 1.1.35.3.
|}
|}


Строка 145: Строка 154:
{| class="standard collapsible collapsed"  
{| class="standard collapsible collapsed"  
|-
|-
! colspan="3" align="left" | Полный перечень переменных версии 1.1.26.5
! colspan="3" align="left" | Полный перечень переменных, доступных в версии 1.1.35.3
|-
|-
! Категория || Переменная || Описание  
! Категория || Переменная || Описание  
Строка 385: Строка 394:
| gv.windowFocused || определяет, активна ли текущая вкладка браузера
| gv.windowFocused || определяет, активна ли текущая вкладка браузера
|-
|-
| rowspan="49" valign="top"| Полевые переменные
| rowspan="74" valign="top" | Полевые переменные
| gv.exp || количество опыта героя до следующего уровня в процентах
| gv.exp || количество опыта героя до следующего уровня в процентах
|-
|-
| gv.expTrader || количество опыта торговца до следующего уровня в процентах
| gv.expTrader || количество опыта торговца до следующего уровня в процентах
|-
|gv.expForge
|прогресс Творительной до получения следующего уровня инструментов
|-
|-
| gv.mileStones || количество столбов от столицы до героя в поле  
| gv.mileStones || количество столбов от столицы до героя в поле  
|-
|-
| gv.poiMileStones || местоположение интересной точки на карте в столбах от столицы
| gv.poiMileStones || местоположение ближайшей к герою интересной точки на карте в столбах от столицы
|-
| gv.poiDistance || расстояние от героя до ближайшей к нему интересной точки в столбах
|-
| gv.poiMileStonesAhead || аналог gv.poiMileStones, но только для точки впереди героя (дальше от столицы)
|-
| gv.poiMileStonesBehind || аналог gv.poiMileStones, но только для точки позади героя (ближе к столице)
|-
| gv.selTownName || название выбранного в городском информере города
|-
| gv.selTownMileStones || местоположение выбранного города в столбах от столицы
|-
|-
| gv.poiDistance || расстояние от героя до точки в столбах
| gv.selTownDistance || расстояние в столбах от героя до выбранного города
|-
|-
| gv.auraName || название ауры, если она есть  
| gv.auraName || название ауры, если она есть  
Строка 400: Строка 422:
| gv.auraDuration || оставшаяся длительность ауры, если она есть (в секундах, но округляется до целых минут)
| gv.auraDuration || оставшаяся длительность ауры, если она есть (в секундах, но округляется до целых минут)
|-
|-
| gv.bingoItems || количество подходящих в бинго трофеев в инвентаре
| gv.bingoItems || количество подходящих в бинго трофеев в инвентаре (работает даже после того, как попытки заполнения исчерпаны)
|-
|-
| gv.bingoSlotsLeft || количество незаполненных слотов в бинго
| gv.bingoSlotsLeft || количество незаполненных слотов в бинго (работает даже после того, как попытки заполнения исчерпаны)
|-
|-
| gv.bingoTriesLeft || количество оставшихся попыток заполнения
| gv.bingoTriesLeft || количество оставшихся попыток заполнения
Строка 417: Строка 439:
|-
|-
| gv.sideJobProgress || прогресс выполнения подряда в процентах
| gv.sideJobProgress || прогресс выполнения подряда в процентах
|-
| gv.sideJobRequirements || количество того, что требуется для выполнения подряда (в штуках, или 0 если требование несчетное)
|-
|-
| gv.bookBytes || количество байт для книги
| gv.bookBytes || количество байт для книги
|-
|-
| gv.bookWords || количество слов для книги
| gv.bookWords || количество слов для книги
|-
|gv.forgeBytes
|количество байт в Творительной
|-
|gv.forgeWords
|количество слов в Творительной
|-
|gv.souls || количество собранных душ
|-
|gv.soulsProcessed || прогресс обработки в Душевой
|-
|-
| gv.nearestTown || название ближайшего города  
| gv.nearestTown || название ближайшего города  
Строка 429: Строка 463:
|-
|-
| gv.inTown || герой находится в городе
| gv.inTown || герой находится в городе
|-
| gv.isBlessed || у героя есть активное благословление, покупаемое за ворох пранозарядов
|-
|-
| gv.isEquipmentBold(номер_слота) || жирное ли снаряжение в указанном слоте (слоты: 1 - оружие, 2 - щит и т. д.)
| gv.isEquipmentBold(номер_слота) || жирное ли снаряжение в указанном слоте (слоты: 1 - оружие, 2 - щит и т. д.)
Строка 438: Строка 474:
| gv.isGoingGodville || герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах)
| gv.isGoingGodville || герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах)
|-
|-
| gv.isTrading || герой продает трофеи (экспериментально, может ошибаться!)  
| gv.isHealing || герой лечится (как в городе, так и в полевых условиях)
|-
|-
| gv.isFishing || герой рыбачит (экспериментально, может очень ошибаться!)
| gv.isTrading || герой продает трофеи и покупает снаряжение
|-
| 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 || название монстра, если герой бьется с ним в поле, иначе - пустая строка  
|-
|-
| gv.chosenMonster || идет бой с монстром из настроенного списка избранных
| gv.chosenMonster || идет бой с монстром из настроенного списка избранных
|-
| gv.soulMonster || идет бой с душесодержащим монстром
|-
|-
| gv.specialMonster || идет бой со спецмонстром из настроенного списка префиксов
| gv.specialMonster || идет бой со спецмонстром из настроенного списка префиксов
Строка 458: Строка 545:
| gv.lastNews || текст строки из Вестей  
| gv.lastNews || текст строки из Вестей  
|-
|-
| gv.lastDiary || текст последней строки из дневника  
| gv.lastDiary || текст последней записи из дневника (не включая гласы и влияния)
|-
|-
| gv.lastDiaryVoice || текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа)
| gv.lastDiaryVoice || текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа)
Строка 484: Строка 571:
| gv.miningSendDelay || время до доступности похода на полигон (в секундах, но округляется до минут (равно 0, когда недоступно))  
| gv.miningSendDelay || время до доступности похода на полигон (в секундах, но округляется до минут (равно 0, когда недоступно))  
|-
|-
| rowspan="16" valign="top" | Боевые переменные
| gv.pendingShop || было запрошено посещение лавки для героя-торговца
|-
| gv.hpd || дельта изменения здоровья героя (работает только вне боевых режимов)
|-
| rowspan="19" valign="top" | Боевые переменные
| gv.fightStep || номер шага в боевом режиме  
| gv.fightStep || номер шага в боевом режиме  
|-
|gv.fightStepText
|полный текст хроники текущего шага
|-
|-
| gv.lowHealth || низкий уровень здоровья в боевых режимах
| gv.lowHealth || низкий уровень здоровья в боевых режимах
Строка 505: Строка 599:
| gv.enemyAbilitiesCount || количество способностей у противника (имеет смысл для боссов)  
| gv.enemyAbilitiesCount || количество способностей у противника (имеет смысл для боссов)  
|-
|-
| gv.alliesHealth || суммарное здоровье союзников в боевом режиме
| gv.alliesAliveHealthMax || суммарный максимум здоровья живых союзников
|-
| gv.enemyName || имя текущего противника (если их несколько - то первого в списке)
|-
| gv.bossFightType || категоря босса во время боя с оным:
    {| class="standard"
    | dungeon || подземный босс
    |-
    | field || полевой босс
    |-
    | "" || если сейчас нет боя с боссом
    |}
Примечание: в случае боя с франкенбоссом, собранным из запчастей полевого босса, может ошибочно посчитать такого босса полевым, если страница игры была открыта сразу во время боя (т.е. расширение не видело подземелья)
|-
|-
| gv.alliesHealthMax || суммарный максимум здоровья союзников в боевом режиме  
| gv.alliesHealthMax || суммарный максимум здоровья союзников в боевом режиме  
Строка 516: Строка 622:
|-
|-
| gv.alliesAliveHealthMax || суммарный максимум здоровья живых союзников
| gv.alliesAliveHealthMax || суммарный максимум здоровья живых союзников
|-
| rowspan="3" valign="top" |Подземельные переменные
| valign="top" | gv.dungeonChallenge
|дополнительная задача, которую можно выполнить во время похода по подземелью:
{| class="standard"
|nook
|посетить тайную комнату
|-
|silence
|суммарно рулить не более 8 раз за весь поход
|-
|agility
|дойти до клада за 40 шагов
|-
|ecology
|не трогать боссов
|-
|genocide
|перебить всех боссов
|-
|survivors
|до сокровищницы должны дойти 2 или 5 участников
|-
|""
|нет задания
|}
|-
| valign="top" | gv.dungeonChallengeReward
|награда за выполненную дополнительную задачу:
{| class="standard"
|key
|ключ от сокровищницы
|-
|hints
|включение указателей на сокровищницу
|-
|dice
|перевод всех тайников в ловушки (или наоборот)
|-
|gold
|дополнительное золото
|-
|artifacts
|дополнительные трофеи
|-
|double
|дополнительный гофер
|-
|notraps
|отключение ловушек
|-
|noboss
|убирание финального босса
|-
|clarity
|отображение всех интересных мест на карте
|-
|transformation
|смена типа подземелья
|-
|unknown
|что-то заранее неизвестное
|-
|""
|нет награды
|}
|-
|gv.guidedStepsCount
|общее количество совершенных направляющих гласов для задачи "silence", если данных нет - null
|-
|-
| rowspan="6" valign="top" | Морские переменные
| rowspan="6" valign="top" | Морские переменные
Строка 667: Строка 842:
|-
|-
| <pre>
| <pre>
+гласс | gv.lastDiaryVoice
+глас | gv.lastDiaryVoice
</pre>
</pre>


Строка 734: Строка 909:
|-
|-
| Покрасить жирное снаряжение в красный цвет || <pre>.eq_b { color: red; }</pre>
| Покрасить жирное снаряжение в красный цвет || <pre>.eq_b { color: red; }</pre>
|-
| Покрасить свои сообщения в гильдчате в тёмно-зелёный цвет || <pre>.fr_msg_l_my { color:darkgreen; }</pre>
|-
| Отображать информеры в столбик с выравниванием по правому краю окна браузера || <pre>#informer_bar { display: grid; justify-items: end; }</pre>
|}
|}


-------------
-------------
<references/>
<references/>

Текущая версия от 09:23, 9 мая 2024

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.
I - мод: неубиваемое уведомление имеющий смысл для ненавязчивых информеров (N), модификатор типа I отключает всякую возможность убрать данное уведомление нажатием на себя
добавлен в версии 1.1.35.3.
Z - мод: логирующее уведомление модификатор типа Z вынуждает данный информер дополнительно оставлять записи в консоли браузера о том, когда он был включен, отключен или изменил свой заголовок (ежели в оном использовались переменные)
добавлен в версии 1.1.35.3.

Например, чтобы создать неотключаемый информер, уведомляющий миганием и всплывающим окном, необходимо указать тип: SLD (или, если вам нравится складывать числа, то 49 (1+16+32)).

Если модификаторы типа уведомления не указаны, то информер будет использовать набор уведомлений, выбранный для всех пользовательских информеров в общей таблице настроек информеров.

Переменные

Полный и актуальный перечень доступных переменных находится в файле FAQ на странице дополнения.

Примечание: с апреля 2016 года разработчиками игры было запрещено использовать в аддонах точные внутриигровые данные, поэтому начиная с версии 1.1.1.0 вся информация для переменных берется из общедоступных внешних источников, а некоторые значения, которые более недоступны в точном виде, теперь рассчитываются косвенно - следовательно, возможны неточности.

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

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

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

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

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


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