Erinome Godville UI+: различия между версиями
Kreon (обсуждение | вклад) |
Евклиопа (обсуждение | вклад) |
||
| Строка 223: | Строка 223: | ||
Копать!(здоровье>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тоило бы накопать червей|А коль так, то и рыба должна повестись|Рыбалка в этих краях запрещена, но так даже|порыбачить. Лично я бы, правда|как я трачу на рыбалку|куда-то убежал. Прид|Крепкая вещица. Надеюсь, что улов оправдает|внеплановый рыбный день|такую рыбу, чтобы хоть раз не надо было врать|В качестве наживки попробую" | |||
</pre> | </pre> | ||
|- | |- | ||
Версия от 06:18, 18 мая 2016
Erinome Godville UI+ — расширение для браузеров, изначально основанное на Godville UI+, но получившее уже заметное количество отличий и дополнительных возможностей от оригинала.
Тема на форуме в квартале мастеровых: Erinome Godville UI+ - браузерное расширение для Годвилля (Firefox, Chrome, Opera).
_
Информеры
Дополнение может отслеживать различные события в жизни героя и выводить уведомления о них. Уведомление производится миганием иконки вкладки, и меткой в верхнем правом углу страницы. Дополнительно доступны всплывающие уведомления и звуковое уведомление.
Пользовательские информеры
Пользовательские информеры позволяют настроить уведомления на произвольный набор событий в игре.
Каждый информер описывается одной строкой в формате:
Текст уведомления | набор условий | тип информера и уведомлений
Информер можно временно отключить, закомментировав его символом # в начале строки
Несколько условий объединяются логическими операторами && (логическое «И»), || (логическое «ИЛИ») и группируются скобками. Доступно логическое отрицание «НЕ» !true = false
Так же доступны:
- ==, !=, <, <=, >, >= ← операторы сравнения: равенство, неравенство, меньше, меньше или равно, больше, больше или равно;
- ~, ~* ← операторы регулярных выражений: регистрозависимое и регистронезависимое сравнение;
- +, -, *, / ← математические действия: сложение, вычитание, умножение, деление.
Унарные операторы (например: !x, -a):
- +, - ← преобразует аргумент к числу (если это требуется), позволяет инвертировать его знак;
- ! ← логическое отрицание.
Переменные
Полный и актуальный перечень доступных переменных находится в файле FAQ на странице дополнения.
Примечание: с апреля 2016 года разработчиками игры было запрещено использовать в аддонах точные внутриигровые данные, поэтому начиная с версии 1.1.1.0 вся информация для переменных берется из общедоступных внешних источников, а некоторые значения, которые более недоступны в точном виде, теперь рассчитываются косвенно - следовательно, возможны разнообразные ошибки.
| Полный перечень переменных версии 1.1.2.0 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Переменная | Описание | ||||||||||||||
| gv.health | здоровье героя | ||||||||||||||
| gv.healthMax | максимальное здоровье героя | ||||||||||||||
| gv.healthPrc | здоровье героя в процентах | ||||||||||||||
| gv.gold | количество золота у героя | ||||||||||||||
| gv.inventory | количество предметов в инвентаре | ||||||||||||||
| gv.inventoryMax | максимальное количество предметов в инвентаре | ||||||||||||||
| gv.inventoryPrc | количество предметов в процентах | ||||||||||||||
| gv.inventoryHealing | количество лечебных трофеев в инвентаре | ||||||||||||||
| gv.inventoryUnsellable | количество непродаваемых торговцам трофеев в инвентаре | ||||||||||||||
| gv.supplies | количество припасов в плавании | ||||||||||||||
| gv.suppliesMax | максимальное количество припасов в режиме плавания | ||||||||||||||
| gv.suppliesPrc | количество припасов в процентах | ||||||||||||||
| gv.mileStones | количество столбов до столицы в поле | ||||||||||||||
| gv.portDistance | расстояние до порта в режиме плавания | ||||||||||||||
| gv.godpower | количество праны | ||||||||||||||
| gv.godpowerMax | максимальное количество праны (может ошибаться у лавковладельцев) | ||||||||||||||
| gv.godpowerPrc | количество праны в процентах | ||||||||||||||
| gv.auraName | название ауры, если она есть | ||||||||||||||
| gv.auraDuration | оставшаяся длительность ауры, если она есть (в секундах, но округляется до целых минут) | ||||||||||||||
| gv.charges | количество зарядов | ||||||||||||||
| gv.nearestTown | название ближайшего города | ||||||||||||||
| gv.currentTown | название текущего города, если герой в нем, иначе - пустая строка | ||||||||||||||
| gv.hasTemple | герой имеет достроенный храм | ||||||||||||||
| gv.hasArk | герой имеет достроенный ковчег | ||||||||||||||
| gv.currentMonster | название монстра, если герой бьется с ним в поле, иначе - пустая строка | ||||||||||||||
| gv.lastNews | текст строки из Вестей | ||||||||||||||
| gv.lastDiary | текст последней строки из дневника | ||||||||||||||
| gv.lastDiaryVoice | текст последнего гласа другого бога из дневника (вернёт пустую строку, если в дневнике не видно ни одного чужого гласа) | ||||||||||||||
| gv.lastGuildChat | текст последних сообщений гильдчата (доступен только когда открыта и развернута вкладка гильдчата) | ||||||||||||||
| gv.questName | название квеста | ||||||||||||||
| gv.questProgress | прогресс выполнения квеста в процентах | ||||||||||||||
| gv.isGoingBack | герой идет из поля в город | ||||||||||||||
| gv.isGoingForth | герой идет из города в поле (экспериментально, может ошибаться!) | ||||||||||||||
| gv.isTrading | герой продает трофеи (экспериментально, может ошибаться!) | ||||||||||||||
| gv.dailyForecast | текст астропрогноза | ||||||||||||||
| gv.arenaAvailable | доступен поход на арену | ||||||||||||||
| gv.sparAvailable | доступен тренировочный бой | ||||||||||||||
| gv.dungeonAvailable | доступен поход в подземелье | ||||||||||||||
| gv.sailAvailable | доступен заплыв в море | ||||||||||||||
| gv.arenaSendDelay | время до доступности похода на арену (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||
| gv.sparSendDelay | время до доступности тренировочного боя (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||
| gv.dungeonSendDelay | время до доступности похода в подземелье (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||
| gv.sailSendDelay | время до доступности заплыва в море (в секундах, но округляется до минут (равно 0, когда недоступно)) | ||||||||||||||
| gv.inFight | герой находится в боевом режиме | ||||||||||||||
| gv.inBossFight | герой находится в бою с босс-монстром (любым) или корованом | ||||||||||||||
| gv.inTown | герой находится в городе | ||||||||||||||
| gv.fightType | тип боевого режима, возможные варианты:
| ||||||||||||||
| gv.fightStep | номер шага в боевом режиме | ||||||||||||||
| gv.enemyHealth | суммарное здоровье противников в боевом режиме | ||||||||||||||
| gv.enemyHealthMax | максимальное суммарное здоровье противников в боевом режиме | ||||||||||||||
| gv.enemyHealthPrc | суммарное здоровье противников в процентах (имеет смысл для одиночных противников) | ||||||||||||||
| gv.enemyGold | количество золота у противника | ||||||||||||||
| gv.enemyCount | количество противников (имеет смысл для корованов) | ||||||||||||||
| gv.enemyAliveCount | количество живых противников (имеет смысл для корованов) | ||||||||||||||
| gv.enemyHasAbility("название способности") | проверяет, имеет ли противник указанную способность (имеет смысл для боссов) | ||||||||||||||
| gv.enemyAbilitiesCount | количество способностей у противника (имеет смысл для боссов) | ||||||||||||||
| gv.alliesHealth | суммарное здоровье союзников в боевом режиме | ||||||||||||||
| gv.alliesHealthMax | суммарный максимум здоровья союзников в боевом режиме | ||||||||||||||
| gv.alliesHealthPrc | суммарное здоровье союзников в процентах (фактически, не имеет смысла) | ||||||||||||||
| gv.alliesCount | количество союзников | ||||||||||||||
| gv.alliesAliveCount | количество живых союзников | ||||||||||||||
| gv.expTimeout | количество минут до окончания штрафа возложения золота в храме (или 10080, если данных нет) | ||||||||||||||
| gv.logTimeout | количество минут до гарантированного бревна в подземелье (или 10080, если данных нет) | ||||||||||||||
| gv.getSeconds | точное локальное время: секунды (0-59 | ||||||||||||||
| gv.getMinutes | точное локальное время: минуты (0-59) | ||||||||||||||
| gv.getHours | точное локальное время: часы (0-23) | ||||||||||||||
| gv.getDay | текущий день недели (1-7) | ||||||||||||||
| gv.voiceCooldown | время отката в секундах после гласа, который был услышан героем (уменьшается до 0) | ||||||||||||||
| gv.windowFocused | определяет, активна ли текущая вкладка браузера. | ||||||||||||||
Типы информеров
Тип информера кодируется определённым числом.
Существующие на данный момент типы пользовательских информеров: 0 и 1 + необязательные модификаторы, определяющие тип уведомления.
- 0 ← стандартный информер: включается, когда условие активации информера выполняется, выключается - когда условие активации информера перестает выполняться;
- 1 ← неотключаемый информер: включается при выполнении условия активации информера, выключается - только когда пользователь кликнет на этот информер (или после перезагрузки страницы, когда условие перестает выполняться);
- 16 ← стандартное уведомление (мигание заголовком + метка в углу страницы);
- 32 ← всплывающее уведомление (для функционирования необходимо, чтобы глобальная опция разрешения всплывающих уведомлений была включена);
- 64 ← звуковое уведомление
Тип информера равен сумме указанных выше флагов. Например, чтобы создать неотключаемый информер, уведомляющий миганием и всплывающим окном, необходимо указать тип: 49 (1+16+32).
Если модификаторы типа уведомления не указаны, то информер будет использовать набор уведомлений, выбранный для всех пользовательских информеров в общей таблице настроек информеров.
Готовые примеры
| Здесь можно посмотреть примеры пользовательских информеров |
|---|
| Мониторинг удачного стечения обстоятельств |
Скоро ZPG арена | gv.godpower >=50 && gv.getMinutes >=59 && gv.arenaAvailable Пора на ZPG арену | gv.godpower >=50 && gv.getMinutes < 2 && gv.arenaAvailable Кабак с подвалом! | gv.dungeonAvailable && 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 == "" Рыбалка! | gv.lastDiary ~* "Настоящего рыбака|руку в воду по локоть|Cтоило бы накопать червей|А коль так, то и рыба должна повестись|Рыбалка в этих краях запрещена, но так даже|порыбачить. Лично я бы, правда|как я трачу на рыбалку|куда-то убежал. Прид|Крепкая вещица. Надеюсь, что улов оправдает|внеплановый рыбный день|такую рыбу, чтобы хоть раз не надо было врать|В качестве наживки попробую" |
| Мониторинг во время боя |
# Варианты от Евклиопы
Низкое здоровье на боссе с учетом праны и типа босса | gv.inFight && gv.fightType == "monster_m" && (gv.enemyHasAbility("second_strike") && gv.godpower < 25 && gv.health < 300 || gv.enemyHasAbility("second_strike") && gv.godpower >= 25 && gv.health < 150||!gv.enemyHasAbility("second_strike") && gv.godpower < 25 && gv.health < 150 )
Босс всё: на лучезарном с остатками праны или невысоком хп | gv.inFight && gv.fightType == "monster_m" && gv.enemyHealth < 300 && (gv.godpower > 25 && (gv.enemyHasAbility("gp_restore") || gv.health < 180) || gv.enemyHasAbility("explosive") && gv.healthPrc < 65)
№ Примеры от Servelll
Риск нокаута героя (подзем)|gv.fightType=="monster_m" && 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_m" && gv.alliesCount==4 && gv.enemyHasAbility("second_strike") && (((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("explosive") && gv.enemyHealth < gv.alliesHealthMax/5
Лучезарному скоро каюк | gv.enemyHasAbility("gp_restore") && gv.enemyHealth < gv.alliesHealthMax/5
# приблизительно 1 удар остался, если все живы. Срабатывает только если вкладка с игрой не активна
Вернись, пора рулить | !gv.windowFocused && gv.fightType == 'monster_m' && gv.enemyHealth < gv.alliesHealthMax/9
|
| Пенсионные города |
Нижние Котлы (37%±12%) | 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~"ведут в Годвилль") ЛосАдминос (49%±16%) | 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~"ведут в Годвилль") МалыеСаппорт..(47%±15%) | 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~"ведут в Годвилль") |
| Анализ прогнозов |
Прогноз на активацию трофеев | gv.dailyForecast ~* "активируемые трофеи могут обходиться вдвое дешевле" Прогноз на распаковку 70% | gv.dailyForecast ~* "распаковывается в 70" Прогноз на дорогие трофеи | gv.dailyForecast ~* "Активируемые трофеи сегодня можно продать вдвое дороже обычного" Прогноз на пенс.день | gv.dailyForecast ~* "отказаться от пьянок" Прогноз на годвилль-день | gv.dailyForecast ~* "все дороги ведут в Годвилль" Прогноз на эффективные молитвы | gv.dailyForecast ~* "эффективность молитв в храмах" Прогноз на остроухость | gv.dailyForecast ~* "слышимость гласов|реагируют на божьи гласы" Прогноз на боссов | gv.dailyForecast ~* "выкопать|так и прут" |