33
правки
Нефертит (обсуждение | вклад) м (→Готовые примеры: добавлены примеры от Servelll) |
Кофий (обсуждение | вклад) м (а, да, еще это) |
||
| (не показаны 42 промежуточные версии 9 участников) | |||
| Строка 1: | Строка 1: | ||
[[Категория:Клиенты и плагины]] | [[Категория:Клиенты и плагины]] | ||
'''Erinome Godville UI+''' — расширение для браузеров, изначально основанное на [[Godville UI+]], но получившее уже заметное количество отличий и дополнительных возможностей от оригинала. | '''Erinome Godville UI+''' — расширение для браузеров, изначально основанное на [[Godville UI+]], но получившее уже заметное количество отличий и дополнительных возможностей от оригинала. | ||
| Строка 6: | Строка 5: | ||
Тема на форуме в квартале мастеровых: [http://godville.net/forums/show_topic/3432?page=1 Erinome Godville UI+ - браузерное расширение для Годвилля (Firefox, Chrome, Opera)]. | Тема на форуме в квартале мастеровых: [http://godville.net/forums/show_topic/3432?page=1 Erinome Godville UI+ - браузерное расширение для Годвилля (Firefox, Chrome, Opera)]. | ||
__TOC__ | |||
== Информеры == | == Информеры == | ||
Дополнение может отслеживать различные события в жизни героя и выводить уведомления о них. Уведомление производится миганием иконки вкладки | Дополнение может отслеживать различные события в жизни героя и выводить уведомления о них. Уведомление производится миганием иконки вкладки и меткой в верхнем правом углу страницы. Дополнительно доступны всплывающие уведомления и звуковое уведомление. | ||
=== Пользовательские информеры === | === Пользовательские информеры === | ||
Пользовательские информеры позволяют настроить уведомления на произвольный набор событий в игре. | Пользовательские информеры позволяют настроить уведомления на произвольный набор событий в игре. | ||
Настраиваются информетры в: | |||
* в блоке "Герой" при наведении курсора на шапку появится кликабельная иконка шестеренки | |||
* в верхнем меню по ссылке "настройки ui+" в разделе "Управление информерами" кликабельная ссылка в элементе "пользовательские информеры" | |||
Каждый информер описывается одной строкой в формате: | Каждый информер описывается одной строкой в формате: | ||
| Строка 18: | Строка 21: | ||
''Текст уведомления'' '''|''' ''набор условий'' '''|''' ''тип информера и уведомлений'' | ''Текст уведомления'' '''|''' ''набор условий'' '''|''' ''тип информера и уведомлений'' | ||
Информер можно временно отключить, | Информер можно временно отключить, убрав галочку в начале строки. | ||
Начиная с версии 1.1.17.4, в тексте уведомлений можно использовать одиночные переменные. Они указываются отдельными словами - gv.variable, либо в фигурных скобках - {gv.variable}. Начиная же с версии 1.1.21.0, в фигурных скобках можно указывать и целые логические выражения любой сложности. При изменении значений входящих в заголовки переменных, тексты информеров будут соответственным образом обновлены. Для информеров с переменными в названиях существует два дополнительных модификатора работы уведомления - см. в таблице ниже. | |||
Несколько условий объединяются логическими операторами '''&&''' (логическое «И»), '''||''' (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» '''!'''true = false | Несколько условий объединяются логическими операторами '''&&''' (логическое «И»), '''||''' (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» '''!'''true = false | ||
Также имеются другие операторы: | |||
{| class="standard" | |||
* | |- | ||
* | ! Операторы || Описание || Примеры | ||
|- | |||
| style="text-align: center" | ==, != <br> <, <= <br> >, >= | |||
| равенство и неравенство | |||
меньше и меньше или равно<br> | |||
больше и больше или равно | |||
| <span style="background: silver">100 == 100</span> → <span style="background: lime">истина</span> | |||
<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" | ~, ~* | |||
| регистрозависимое и регистронезависимое [[wikipedia:ru:Регулярные выражения#Синтаксис|регулярное выражение]],<br>возвращает результат в виде массива или '''null''', если совпадения нет | |||
| <span style="background: silver">"здесь есть число 4 и буква Ё" ~ "число \\d+"</span> → <span style="background: lime">["число 4"]</span> | |||
<span style="background: silver">"здесь есть число 4 и буква Ё" ~ "число (.*?) и"</span> → <span style="background: lime">["число 4 и", "4"]</span> | |||
|- | |||
| style="text-align: center" | !~, !~* | |||
| инвертированная версия регистрозависимого и регистронезависимого [[wikipedia:ru:Регулярные выражения#Синтаксис|регулярного выражения]],<br> возвращает '''true''' или '''false''' | |||
| <span style="background: silver">"здесь есть число 4 и буква Ё" !~ "число \\d+"</span> → <span style="background: #F99">ложь</span> | |||
<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> | |||
<span style="background: silver">("здесь есть число 4 и буква Ё" ~ "число (.*?) и")[5]</span> → <span style="background: #F99">undefined</span> | |||
|- | |||
| style="text-align: center" | +, - <br> *, / <br> % | |||
| сложение и вычитание | |||
умножение и деление<br> | |||
остаток от деления | |||
| <span style="background: silver">100 + 200</span> → <span style="background: lime">300</span> | |||
<span style="background: silver">50 * "строка"</span> → <span style="background: #F99">NaN</span><br> | |||
<span style="background: silver">1898 % 13</span> → <span style="background: #F99">0</span> | |||
|- | |||
| style="text-align: center" | +, - <br> ! | |||
| преобразование строки к числу, изменение знака<br>логическое отрицание | |||
| <span style="background: silver">+"50"</span> → <span style="background: lime">50</span> | |||
<span style="background: silver">!"строка"</span> → <span style="background: #F99">ложь</span> | |||
|} | |||
Набор условий считается выполненным и активирует информер, когда итоговый результат преобразуем к истине: | |||
{| class="standard" | |||
|- | |||
! Результат || Примеры || Описание | |||
|- | |||
| style="text-align: center" | ложь | |||
| style="text-align: center" | 0, ""<br>false, null<br>undefined, NaN | |||
| ноль (как цифра), пустая строка, специальные значения,<br>которые могут принимать переменные и могут получиться <br>в результате применения операторов | |||
|- | |||
| style="text-align: center" | истина | |||
| style="text-align: center" | - | |||
| истиной считается всё, что не попадает под ложь<br>(в т. ч. включая пустые массивы) | |||
|} | |||
Начиная с версии 1.1.17.4 тип информера кодируется комбинацией букв, соответствующих указанным в таблице модификаторам. | |||
Из соображений обратной совместимости старый тип кодирования суммированием по-прежнему работает. | |||
{| class="standard" | |||
|- | |||
! Буква || Код || Название || Описание | |||
|- | |||
| style="text-align: center" | <никакая> | |||
| style="text-align: center" | 0 | |||
| style="text-align: center" | стандартный информер | |||
| включается, когда условие активации информера выполняется; выключается, когда условие активации информера перестает выполняться | |||
|- | |||
| style="text-align: center" | S | |||
| style="text-align: center" | 1 | |||
| style="text-align: center" | неотключаемый информер | |||
| включается при выполнении условия активации информера; выключается, когда пользователь кликнет на этот информер (или после перезагрузки страницы, когда условие перестанет выполняться) | |||
|- | |||
| style="text-align: center" | L | |||
| style="text-align: center" | 16 | |||
| тип: стандартное уведомление | |||
| мигает заголовком окна браузера и соответствующей вкладки, добавляет метку в углу страницы | |||
|- | |||
| style="text-align: center" | D | |||
| style="text-align: center" | 32 | |||
| тип: всплывающее уведомление | |||
| отображается всплывающим окошком поверх всех окон | |||
|- | |||
| style="text-align: center" | A | |||
| style="text-align: center" | 64 | |||
| тип: звуковое уведомление | |||
| звуковое оповещение согласно настройкам eGUI+ | |||
|- | |||
| style="text-align: center" | R | |||
| style="text-align: center" | 128 | |||
| тип: повторяющееся звуковое уведомление | |||
| звуковое оповещение, которое будет повторяться каждые несколько секунд (обратите внимание, что если тип "L" не включен, то данный тип будет работать как тип "A") | |||
|- | |||
| style="text-align: center" | Q | |||
| style="text-align: center" | - | |||
| мод: возобновимое уведомление | |||
| имеет смысл только для информеров, имеющих в своем названии переменные; если информер был выключен пользователем (или не имел тип "L" и был отключен автоматически), а затем его текст изменился, то информер будет автоматически включен обратно | |||
|- | |||
| style="text-align: center" | W | |||
| style="text-align: center" | - | |||
| мод: настырное уведомление | |||
| имеет смысл только для информеров, имеющих в своем названии переменные; если текст информера поменялся, то информер будет полностью перезапущен (что актуально для типов "D", "A" или "R") | |||
|- | |||
| style="text-align: center" | N | |||
| style="text-align: center" | - | |||
| мод: ненавязчивое уведомление | |||
| имеющий смысл для стандартных информеров (L), модификатор типа N отключает мигание данного уведомления в заголовке окна, и оно только скромно висит в углу экрана<br>добавлен в версии 1.1.20.12. | |||
|} | |||
Например, чтобы создать неотключаемый информер, уведомляющий миганием и всплывающим окном, необходимо указать тип: SLD (или, если вам нравится складывать числа, то 49 (1+16+32)). | |||
Если модификаторы типа уведомления не указаны, то информер будет использовать набор уведомлений, выбранный для всех пользовательских информеров в общей таблице настроек информеров. | |||
==== Переменные ==== | ==== Переменные ==== | ||
Полный и актуальный перечень доступных переменных находится в файле [https://gv.erinome.net/godville/?show=FAQ FAQ] на странице дополнения. | Полный и актуальный перечень доступных переменных находится в файле [https://gv.erinome.net/godville/?show=FAQ FAQ] на странице дополнения. | ||
Примечание: с апреля 2016 года разработчиками игры было запрещено использовать в аддонах точные внутриигровые данные, поэтому начиная с версии 1.1.1.0 вся информация для переменных берется из общедоступных внешних источников, а некоторые значения, которые более недоступны в точном виде, теперь рассчитываются косвенно - следовательно, возможны неточности. | |||
{| class="standard collapsible collapsed" | {| class="standard collapsible collapsed" | ||
|- | |- | ||
!colspan="3" align="left" |Полный перечень переменных версии 1. | ! colspan="3" align="left" | Полный перечень переменных версии 1.1.27.2 | ||
|- | |- | ||
| | ! Категория || Переменная || Описание | ||
|- | |- | ||
|gv. | | rowspan="41" valign="top" | Общие переменные | ||
| gv.health || здоровье героя | |||
|- | |- | ||
|gv. | | gv.healthMax || максимальное здоровье героя | ||
|- | |- | ||
|gv. | | gv.healthPrc || здоровье героя в процентах | ||
|- | |- | ||
|gv. | | gv.gold || количество золота у героя | ||
|- | |- | ||
|gv. | | gv.inventory || количество предметов в инвентаре | ||
|- | |- | ||
|gv. | | gv.inventoryMax || максимальное количество предметов в инвентаре | ||
|- | |- | ||
|gv. | | gv.inventoryPrc || количество предметов в процентах | ||
|- | |- | ||
|gv. | | gv.inventoryHealing || количество лечебных трофеев в инвентаре | ||
|- | |- | ||
|gv. | | gv.inventoryUnsellable || количество трофеев, которые могут быть не проданы во время фазы торговли (лечилки, трибблы и проч.) | ||
|- | |- | ||
|gv. | | gv.inventoryHasItem("название предмета") || проверка, есть ли в инвентаре героя указанный предмет | ||
|- | |- | ||
|gv. | | valign="top" | gv.inventoryHasType("тип предмета") | ||
| проверка, есть ли в инвентаре героя предмет указанного типа: | |||
{| class="standard" | |||
| aura-box || коробка, дающая герою случайную ауру | |||
|- | |||
| arena-box || коробка, стабилизирующая вероятность в боевых режимах | |||
|- | |||
| black-box || всевозможные варианты черных ящиков | |||
|- | |||
| boss-box || коробка, вызывающая личного босса | |||
|- | |||
| charge-box || коробка, добавляющая заряд в праноаккумулятор | |||
|- | |||
| coolstory-box || коробка, сочиняющая былину о герое | |||
|- | |||
| friend-box || коробка, знакомящая героя с другим случайным героем | |||
|- | |||
| gift-box || коробка, дарующая герою что-то полезное | |||
|- | |||
| godpower-box || коробка, пополняющая полоску праны | |||
|- | |||
| good-box || коробка, делающая что-то хорошее | |||
|- | |||
| heal-box || коробка, лечащая героя | |||
|- | |||
| invite || инвайт на Годвилль | |||
|- | |||
| prize-box || коробка с призовыми трофеями и золотом, но требует праны для открытия | |||
|- | |||
| quest-box || коробка, назначающая герою случайный мини-квест | |||
|- | |||
| raidboss-box || коробка, отправляющая героя на раскопки босса | |||
|- | |||
| skill-box || коробка, заменяющая одно умение на другое | |||
|- | |||
| smelter || коробка, выплавляющая золотой кирпич | |||
|- | |||
| teleporter || коробка, телепортирующая героя в случайный город | |||
|- | |||
| temper-box || коробка, усиливающая характер героя | |||
|- | |||
| to-arena-box || коробка, отправляющая героя на арену | |||
|- | |||
| transformer || коробка, превращающая жирные предметы в золотые кирпичи | |||
|- | |||
| treasure-box || коробка, внутри которой может находиться как что-то ценное, так и не очень | |||
|} | |||
|- | |- | ||
|gv. | | valign="top" | gv.inventoryCountLike("regexp", флаги) | ||
| возвращает количество предметов в инвентаре, подходящих под указанное регулярное выражение и необязательный список флагов-ограничителей: | |||
{| class="standard" | |||
| h || лечебные || || H || не лечебные | |||
|- | |||
| b || жирные || || B || не жирные | |||
|- | |||
| a || активируемые || || A || не активируемые | |||
|- | |||
| c || крафтящиеся || || C || не крафтящиеся | |||
|- | |||
| s || продаваемые || || S || не продаваемые | |||
|- | |||
| g || подходящие для бинго || || G || не подходящие для бинго | |||
|} | |||
|- | |- | ||
|gv.godpower || количество праны | |gv.godpower || количество праны | ||
|- | |- | ||
|gv.godpowerMax || максимальное количество праны | |gv.godpowerMax || максимальное количество праны | ||
|- | |- | ||
|gv.godpowerPrc || количество праны в процентах | |gv.godpowerPrc || количество праны в процентах | ||
|- | |- | ||
|gv. | |gv.charges || количество зарядов | ||
|- | |- | ||
|gv. | |gv.monstersKilled || общее количество поверженных монстров | ||
|- | |- | ||
|gv. | |gv.inFight || герой находится в боевом режиме | ||
|- | |||
|gv.inBossFight || герой находится в бою с босс-монстром (любым) или корованом | |||
|- | |||
|valign="top"|gv.fightType || тип боевого режима, возможные варианты: | |||
{| class="standard" | |||
| arena || арена | |||
|- | |||
| dungeon || коридоры подземелья | |||
|- | |||
| mining || полигон для франкенбосса | |||
|- | |||
| monster || любой другой боевой режим или если боевой режим определился неверно | |||
|- | |||
| multi_monster || любой корован | |||
|- | |||
| sail || режим плавания | |||
|- | |||
| spar || тренировка | |||
|- | |||
| "" || если герой не в бою | |||
|} | |||
|- | |||
| gv.hasTemple || герой имеет достроенный храм | |||
|- | |||
| gv.hasArk || герой имеет достроенный ковчег | |||
|- | |||
| gv.lastGuildChat || текст последних сообщений гильдчата (доступен только когда открыта и развернута вкладка гильдчата) | |||
|- | |||
| gv.dailyForecast || текст астропрогноза | |||
|- | |||
| valign="top"| gv.isForecast("тип") | |||
| проверка на определенный тип астропрогноза: | |||
{| class="standard" | |||
| accu70 || распаковка аккумуляторов в 70% праны | |||
|- | |||
| arena || стоимость отправки на арену составляет 25% праны | |||
|- | |||
| badtraders || риск потери трофеев при торговле больше обычного | |||
|- | |||
| bingo || награда за бинго больше обычного | |||
|- | |||
| cheapactivatables || активируемые трофеи стоят меньше обычного | |||
|- | |||
| corovans || повышена вероятность встречи с корованами | |||
|- | |||
| easybosses || боссы выкапываются проще обычного | |||
|- | |||
| epic || внеплановые эпические задания | |||
|- | |||
| expensiveactivatables || активируемые трофеи стоят больше обычного | |||
|- | |||
| fame || усиленные гильдвлияния в городах | |||
|- | |||
| fishing || герои рыбачат чаще обычного | |||
|- | |||
| goldbosses || у наземных боссов золота больше обычного | |||
|- | |||
| goldmonsters || каждый монстр имеет при себе что-то ценное | |||
|- | |||
| gvroads || все дороги ведут в Годвилль | |||
|- | |||
| hearing || хорошие условия для слышимости гласов | |||
|- | |||
| itemsloss || риск потери трофеев в поле больше обычного | |||
|- | |||
| longauras || ауры действуют дольше обычного | |||
|- | |||
| longquests || взятые задания выполняются дольше обычного | |||
|- | |||
| lowpoweractivatables || стоимость активации трофеев составляет 25% праны | |||
|- | |||
| melting || упрощенная переплавка монет в золотые кирпичи | |||
|- | |||
| noconversion || день без возложений золота в храме | |||
|- | |||
| nodrinking || пенсионный день | |||
|- | |||
| noequip || день без покупки снаряжения | |||
|- | |||
| noguildhealing || день без гильдлечения | |||
|- | |||
| nopotions || день без покупки лечебных зелий | |||
|- | |||
| norstraders || отсутствие бродячих торговцев | |||
|- | |||
| notraining || день без покупки новых уровней умений | |||
|- | |||
| personality || влияния меняют характер героев больше обычного | |||
|- | |||
| prayer || усиленные молитвы в городах | |||
|- | |||
| selfhealing || эффективность лежания под деревом выше обычного | |||
|- | |||
| shortauras || ауры действуют короче обычного | |||
|- | |||
| sidejobs || вероятность получения незапланированных подрядов | |||
|- | |||
| skills || умения используются чаще обычного | |||
|- | |||
| sleeping || герои стремятся чаще отсыпаться в городах | |||
|- | |||
| tribbles || трибблы встречаются чаще обычного | |||
|- | |||
| undead || день самовоскрешающихся монстров | |||
|- | |||
| unhearing || плохие условия для слышимости гласов | |||
|} | |||
|- | |||
| 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 || определяет, активна ли текущая вкладка браузера | |||
|- | |||
| rowspan="49" valign="top"| Полевые переменные | |||
| gv.exp || количество опыта героя до следующего уровня в процентах | |||
|- | |||
| gv.expTrader || количество опыта торговца до следующего уровня в процентах | |||
|- | |||
| 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.bookBytes || количество байт для книги | |||
|- | |||
| gv.bookWords || количество слов для книги | |||
|- | |||
| gv.nearestTown || название ближайшего города | |||
|- | |||
| gv.currentTown || название текущего города, если герой в нем, иначе - пустая строка | |||
|- | |||
| gv.inShop || герой-торговец работает в своей лавке | |||
|- | |||
| gv.inTown || герой находится в городе | |||
|- | |||
| gv.isEquipmentBold(номер_слота) || жирное ли снаряжение в указанном слоте (слоты: 1 - оружие, 2 - щит и т. д.) | |||
|- | |||
| gv.isGoingBack || герой идет из поля в город | |||
|- | |||
| gv.isGoingForth || герой идет из города в поле (экспериментально, может ошибаться!) | |||
|- | |||
| gv.isGoingGodville || герой идет из поля в столицу (экспериментально, может ошибаться, точно не работает на ближайших к Годвиллю городах) | |||
|- | |||
| gv.isTrading || герой продает трофеи (экспериментально, может ошибаться!) | |||
|- | |- | ||
|gv. | | gv.isFishing || герой рыбачит (экспериментально, может очень ошибаться!) | ||
|- | |- | ||
|gv. | | gv.currentMonster || название монстра, если герой бьется с ним в поле, иначе - пустая строка | ||
|- | |- | ||
|gv. | | gv.chosenMonster || идет бой с монстром из настроенного списка избранных | ||
|- | |- | ||
|gv. | | gv.specialMonster || идет бой со спецмонстром из настроенного списка префиксов | ||
|- | |- | ||
|gv. | | gv.strongMonster || идет бой с сильным монстром | ||
|- | |- | ||
|gv. | | gv.tamableMonster || идет бой с монстром, которого можно приручить (только если у героя нет питомца) | ||
|- | |- | ||
|gv. | | gv.wantedMonster || идет бой с монстром дня | ||
|- | |- | ||
|gv. | | gv.petKnockedOut || питомец героя контужен | ||
|- | |- | ||
|gv. | | gv.lastNews || текст строки из Вестей | ||
|- | |- | ||
|gv. | | gv.lastDiary || текст последней строки из дневника | ||
|- | |- | ||
|gv. | | gv.lastDiaryVoice || текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа) | ||
|- | |- | ||
|gv. | | gv.voiceCooldown || время отката в секундах после гласа, который был услышан героем (уменьшается до 0) | ||
|- | |- | ||
|gv. | | gv.arenaAvailable || доступен поход на арену | ||
|- | |- | ||
|gv. | | gv.sparAvailable || доступен тренировочный бой | ||
|- | |- | ||
|gv. | | gv.dungeonAvailable || доступен поход в подземелье | ||
|- | |- | ||
|gv. | | gv.sailAvailable || доступен заплыв в море | ||
|- | |- | ||
|gv. | | gv.miningAvailable || доступен поход на полигон | ||
|- | |- | ||
|gv. | | gv.arenaSendDelay || время до доступности похода на арену (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||
|- | |- | ||
|gv. | | gv.sparSendDelay || время до доступности тренировочного боя (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||
|- | |- | ||
|gv. | | gv.dungeonSendDelay || время до доступности похода в подземелье (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||
|- | |- | ||
|gv. | | gv.sailSendDelay || время до доступности заплыва в море (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||
|- | |- | ||
|gv. | | gv.miningSendDelay || время до доступности похода на полигон (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||
|- | |- | ||
|gv. | | rowspan="16" valign="top" | Боевые переменные | ||
| gv.fightStep || номер шага в боевом режиме | |||
|- | |- | ||
|gv. | | gv.lowHealth || низкий уровень здоровья в боевых режимах | ||
|- | |- | ||
|gv. | | gv.enemyHealth || суммарное здоровье противников в боевом режиме | ||
|- | |- | ||
|gv. | | gv.enemyHealthMax || максимальное суммарное здоровье противников в боевом режиме | ||
|- | |- | ||
| gv.enemyHealthPrc || суммарное здоровье противников в процентах (имеет смысл для одиночных противников) | |||
|- | |- | ||
|gv. | | gv.enemyGold || количество золота у противника | ||
|- | |- | ||
|gv. | | gv.enemyCount || количество противников (имеет смысл для корованов) | ||
|- | |- | ||
|gv. | | gv.enemyAliveCount || количество живых противников (имеет смысл для корованов) | ||
|- | |- | ||
|gv. | | gv.enemyHasAbility("название способности") || проверяет, имеет ли противник указанную способность (имеет смысл для боссов) | ||
|- | |- | ||
|gv. | | gv.enemyAbilitiesCount || количество способностей у противника (имеет смысл для боссов) | ||
|- | |- | ||
|gv. | | gv.alliesHealth || суммарное здоровье союзников в боевом режиме | ||
|- | |- | ||
|gv. | | gv.alliesHealthMax || суммарный максимум здоровья союзников в боевом режиме | ||
|- | |- | ||
| gv.alliesHealthPrc || суммарное здоровье союзников в процентах (фактически не имеет смысла) | |||
|- | |- | ||
|gv. | | gv.alliesCount || количество союзников | ||
|- | |- | ||
|gv. | | gv.alliesAliveCount || количество живых союзников | ||
|- | |- | ||
|gv. | | gv.alliesAliveHealthMax || суммарный максимум здоровья живых союзников | ||
|- | |- | ||
|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" | |||
| beasties || во всех кладах только твари | |||
|- | |||
| double || все клады двойные | |||
|- | |||
| extrabooty || вместо ящиков здесь есть лишний клад | |||
|- | |||
| farsight || увеличена дальность обзора с ковчега, но нет подсказок | |||
|- | |||
| faststart || в начале заплыва уже есть несколько подсказок | |||
|- | |||
| fires || огромное количество маяков | |||
|- | |||
| kindness || в море нельзя напрямую атаковать других игроков | |||
|- | |||
| locked || закрытая граница, выплыть можно только через порт | |||
|- | |||
| migration || нет зависимости силы тварей от расстояния до порта | |||
|- | |||
| multipass || острова можно посещать неоднократно | |||
|- | |||
| noempty || все острова непустые, но загадочные | |||
|- | |||
| pois || все подсказки являются метками | |||
|- | |||
| reefs || в море множество рифов и практически отсутствуют морские твари | |||
|- | |||
| roaming || все рыбы в море бродячие | |||
|- | |||
| small || утыканное рыбами малое море и ограничение в 50 шагов на заплыв | |||
|- | |||
| winds || ветер раскидывает ковчеги от порта | |||
|} | |||
|- | |- | ||
|gv. | | rowspan="4" valign="top" | Полигонные переменные | ||
| gv.bits || число собранных боссом бит | |||
|- | |- | ||
|gv. | | gv.bytes || число собранных боссом байт | ||
|- | |- | ||
|gv. | | gv.bitsPerByte || количество бит в одном байте | ||
|- | |- | ||
|gv. | | gv.pushReadiness || уровень готовности божественного толкания | ||
|} | |} | ||
==== Готовые примеры ==== | ==== Готовые примеры ==== | ||
| Строка 242: | Строка 579: | ||
!style="background:#6599FF"|Здесь можно посмотреть примеры пользовательских информеров | !style="background:#6599FF"|Здесь можно посмотреть примеры пользовательских информеров | ||
|- | |- | ||
| '''Мониторинг удачного стечения обстоятельств''' | | '''Мониторинг удачного стечения обстоятельств''' | ||
|- | |- | ||
|<pre> | |<pre> | ||
Скоро ZPG арена | gv.godpower >=50 && gv.getMinutes >=59 && gv.arenaAvailable | Скоро ZPG арена | (gv.godpower >=50 || (gv.godpower >=25 && gv.dailyForecast ~* "достаточно и 25")) && gv.getMinutes >=59 && gv.arenaAvailable | ||
Пора на ZPG арену | gv.godpower >=50 && gv.getMinutes < 2 && 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. | Кабак с подвалом! | 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 | Кабак с подвалом с распаковкой! | !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 == "" | Копать!(здоровье>65%,прана>=30%)| gv.healthPrc > 65 && gv.godpower >=30 && !gv.inTown && !gv.isTrading && !gv.isFishing && !gv.inFight && gv.currentMonster == "" | ||
Рыбалка! | gv.lastDiary ~* "отвлекает пираний, насадил|Подойдя к крутому берегу, бросил|Убедившись в отсутствии инспектора рыбнадзора в ближайших кустах|чтобы задобрить Ёрмунганда перед рыбалкой|Рыбалка — дело тонкое. Сломал|для рыбалки. Посмотрим, кто клюнет на|на берегу посмотреть, кто всплывёт|Настоящего рыбака|руку в воду по локоть|Cтоило бы накопать червей|А коль так, то и рыба должна повестись|Рыбалка в этих краях запрещена, но так даже|порыбачить. Лично я бы, правда|как я трачу на рыбалку|куда-то убежал. Прид|Крепкая вещица. Надеюсь, что улов оправдает|внеплановый рыбный день|такую рыбу, чтобы хоть раз не надо было врать|В качестве наживки попробую"|0 | |||
</pre> | |||
<pre> | |||
Баллада в городе | gv.inTown && gv.inventoryHasType("coolstory-box") | |||
</pre> | </pre> | ||
<ref>«Кстати, помните активируемые былиноделы, сундуки со сказками и прочие довольно бесполезные куплетописи? Теперь при активации в городе эти трофеи заодно усиливают там влияние гильдии — совершенно задаром». [https://godville.net/blog/post/220 «Богучёт», пост в блоге от 12.05.2017]</ref> | |||
|- | |- | ||
| Строка 259: | Строка 601: | ||
|- | |- | ||
|<pre> | |<pre> | ||
№ Примеры от Servelll | № Примеры от Servelll | ||
Риск нокаута героя (подзем)|gv.fightType==" | Риск нокаута героя (подзем)|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==" | Риск нокаута героя двойным ударом (подзем)|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 удара осталось, если все живы | # приблизительно 2 удара осталось, если все живы | ||
Взрывной при смерти! | gv.enemyHasAbility(" | Взрывной при смерти! | gv.enemyHasAbility("взрывной") && gv.enemyHealth < gv.alliesHealthMax/5 | ||
Лучезарному скоро каюк | gv.enemyHasAbility(" | Лучезарному скоро каюк | gv.enemyHasAbility("лучезарный") && gv.enemyHealth < gv.alliesHealthMax/5 | ||
# приблизительно 1 удар остался, если все живы. Срабатывает только если вкладка с игрой не активна | # приблизительно 1 удар остался, если все живы. Срабатывает только если вкладка с игрой не активна | ||
Вернись, пора рулить | !gv.windowFocused && gv.fightType == ' | Вернись, пора рулить | !gv.windowFocused && gv.fightType == 'monster' && gv.enemyHealth < gv.alliesHealthMax/9 | ||
</pre> | </pre> | ||
|- | |- | ||
| Строка 280: | Строка 618: | ||
|- | |- | ||
|<pre> | |<pre> | ||
Нижние Котлы (37%±12%) | gv.gold>2000 && !gv.inTown && gv.mileStones>=0 && gv.mileStones<=4 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") | Нижние Котлы (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.gold>2000 && !gv.inTown && gv.mileStones>=23 && gv.mileStones<=31 && 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.gold>2000 && !gv.inTown && gv.mileStones>=46 && gv.mileStones<=51 && 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.gold>2000 && !gv.inTown && gv.mileStones>=101 && gv.mileStones<=109 && 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.gold>2000 && !gv.inTown && gv.mileStones>=110 && gv.mileStones<=120 && 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.gold>2000 && !gv.inTown && gv.mileStones>=152 && gv.mileStones<=160 && 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~"ведут в Годвилль") | ||
</pre> | |||
Либо общий: | |||
<pre> | |||
Может в Сбережения? | (["Нижние Котлы","Большие Бодуны","ЛосАдминос","Пивнотаун","Малые Саппортуны","Тризвездинск","Бугагота"]).includes(gv.nearestTown) && !gv.inTown && gv.godpower>4 && gv.gold>2000 && gv.currentMonster=="" && !gv.isGoingBack && !(gv.dailyForecast~"ведут в Годвилль") | |||
</pre> | </pre> | ||
|- | |- | ||
| Строка 300: | Строка 642: | ||
Прогноз на остроухость | gv.dailyForecast ~* "слышимость гласов|реагируют на божьи гласы" | Прогноз на остроухость | gv.dailyForecast ~* "слышимость гласов|реагируют на божьи гласы" | ||
Прогноз на боссов | gv.dailyForecast ~* "выкопать|так и прут" | Прогноз на боссов | gv.dailyForecast ~* "выкопать|так и прут" | ||
-- | |||
День Рыбалки |gv.dailyForecast ~* "садиться с удочкой почаще" | |||
Прогноз на день долгого задания |gv.dailyForecast ~* "советуют героям не спешить и просто рубить монстров в своё удовольствие" | |||
Прогноз на день невозложения |gv.dailyForecast ~* "Сконвертировать золото в опыт храмовладельцам сегодня не удастся" | |||
День без прокачки умений |gv.dailyForecast ~* "тренеры ушли в астрал|прокачка умений не осуществляется" | |||
</pre> | |||
|- | |||
| Напоминание заполнить бинго | |||
|- | |||
|<pre> | |||
в бинго {gv.bingoItems}; попыток {gv.bingoTriesLeft} | (gv.isGoingBack || gv.isTrading ) && gv.bingoItems && gv.bingoTriesLeft | |||
</pre> | |||
|- | |||
| Напоминание забрать бинго | |||
|- | |||
| <pre> | |||
Забрать бинго срочно! | gv.getHours==23 && gv.bingoTriesLeft | |||
</pre> | |||
|- | |||
| Напоминание плюсануть глас в Дневнике для бесплатного 1% праны | |||
|- | |||
| <pre> | |||
+гласс | gv.lastDiaryVoice | |||
</pre> | |||
|- | |||
| Напоминание использовать былину-активашку в городе | |||
|- | |||
| <pre> | |||
@былина в городе! | gv.inTown && gv.inventoryHasType("coolstory-box") | |||
</pre> | |||
|- | |||
| Напоминание продлить полезную ауру ([https://godville.net/forums/show_topic/2611 темой на форуме] или erinome db) | |||
|- | |||
| <pre> | |||
продли ауру кроссвордом |gv.auraName=="непереносимости" | |||
</pre> | </pre> | ||
|} | |} | ||
== Пользовательский CSS == | |||
Дополнение позволяет добавлять на страницу игры дополнительные CSS-стили без необходимости заводить для этого дополнительный аддон вроде Stylish, Stylus и других подобных. Поле ввода CSS находится на странице настройки дополнения, каждое правило требуется вписывать на отдельной строке. Указываемые там правила применяются как к странице героя, так и к страницам хроник, форума и газете. После сохранения изменений страницу игры перезагружать не требуется и изменения будут активированы автоматически, а другие страницы понадобится переоткрыть для применения введенных правил. | |||
Базовое описание синтаксиса CSS можно легко найти в интернете ([http://htmlbook.ru/samcss например]), а с определением классов и идентификаторов компонентов HTML-кода страницы поможет инструмент "Исследовать элемент" (или "Просмотреть код"), доступный по клику правой кнопкой мыши по интересующему элементу на странице. | |||
==== Готовые примеры ==== | |||
{| class="wikitable collapsible collapsed" | |||
|- | |||
!style="background:#6599FF" colspan=2|Здесь можно посмотреть некоторые примеры CSS-правил | |||
|- | |||
| Подсвечивать подходящие для бинго трофеи синим цветом в инвентаре || <pre>#inventory .bingo_item { color: blue; }</pre> | |||
|- | |||
| Сделать контрастные черно-белые значки в морских заплывах || <pre>g.tile { font-family: Verdana, Helvetica, Arial, "Segoe UI Symbol", sans-serif; !important }</pre> | |||
|- | |||
| Сделать другие контрастные черно-белые значки в морских заплывах || <pre>g.tile { font-family: Verdana, Helvetica, Arial, Em, sans-serif; !important }</pre> | |||
|- | |||
| Помечать точками клетки, где точно нет стен в подземельях || <pre>.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; | |||
}</pre> | |||
|- | |||
| Спрятать кнопку отправки в дуэльный режим при нехватке праны || <pre>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; } /* для всех режимов сразу */</pre> | |||
|- | |||
| Чуть отодвинуть кнопку отправки в плавание от кнопки отправки в подземелье || <pre>.e_sail_button { margin-top: 9px; }</pre> | |||
|- | |||
| Спрятать кнопку "Восстановить" распаковки зарядов || <pre>.dch_link { display: none !important; }</pre> | |||
|- | |||
| Покрасить жирное снаряжение в красный цвет || <pre>.eq_b { color: red; }</pre> | |||
|} | |||
------------- | ------------- | ||
<references/> | <references/> | ||
правки