Что нового
Короткая версия каждого выпуска, в порядке выхода. Полный список в журнале изменений, а это тот же текст, который приложение показывает вам при обновлении.
2.18.0: магазин настроек
Новое: магазин настроек. Поделись конфигурацией, на которой играет персонаж, с названием и описанием, для одного класса или для всех, и пользуйся тем, чем поделились другие. Сортировка по популярности, оценке, дате или использованию, фильтр по классу и поиск.
Каждая запись проверяется на сервере до сохранения. Принимаются только ключи, похожие на настройки, которые пишет это приложение, а значения должны быть да или нет, числом, коротким именем или списком таких. Всё остальное отклоняется с фразой, которая называет поле и причину.
Вебхуки уведомлений, токены Telegram, адреса прокси, списки имён игроков и название гильдии удаляются и никуда не отправляются. Это чужая личность или чужой компьютер, и публикующему точно говорят, что осталось за бортом.
Один голос с аккаунта, изменяемый, и снимаемый повторным нажатием той же стрелки. Каждая запись несёт дату публикации и версию приложения, из которой она вышла.
Применение записи пишет поверх значений по умолчанию, а не поверх того, что уже есть у персонажа, поэтому запись означает ровно то, что называет, и ничего больше.
На что угодно можно пожаловаться с указанием причины и снять с витрины, не разрушая голоса и историю автора.
2.17.7: вторая рука и установщики, которые заменяют друг друга
Исправлено: Убийца никогда не надевал второе оружие. Внутри любое оружие указывает на основную руку, а Убийца единственный класс, который носит оружие во второй. Эта рука никогда не рассматривалась: туда ничего не надевалось, для неё ничего не покупалось, а продавец считал любое улучшение для неё хламом и продавал его. Сообщено как персонаж 60 уровня всё ещё со стартовым оружием 1 уровня.
Теперь обе руки сравниваются отдельно, и улучшение достаётся более слабой. Щит для этой руки отклоняется, потому что он обменял бы второе оружие класса на шанс блока.
Исправлено: применение пресета могло сбросить настройки всех персонажей. Отметка версии, которую пишет интерфейс, отставала от бота на пять миграций, поэтому пресет сообщал ему о старых настройках, и он прогонял миграции заново: улучшения Мирового босса снова включены, экспедиции в приоритете, замена камней включена, порядок питомцев переписан, движок достижений выключен. При применении ко всем персонажам это происходило со всеми аккаунтами разом.
Клик по пресету или сохранённому профилю теперь только открывает его. Применение это отдельная кнопка, применение ко всем персонажам сначала спрашивает и говорит, чего это стоит, а потом его можно отменить: каждый персонаж получает обратно ровно то, что было.
Исправлено: анализ снаряжения ничего не советовал девяти гибридным классам. Он сравнивал классовое требование предмета напрямую с классом персонажа, а это может совпасть только для Воина, Мага и Разведчика.
Новое: Server Start может догнать альбом до выбранного тобой процента, потратить на это не больше заданного числа грибов и написать строку в журнал активности при достижении, чтобы ты доиграл жажду вручную.
Новое: звёздочка у каждого просканированного игрока добавляет его в список целей для атаки в первую очередь, чтобы вручную выбить недостающий предмет.
Исправлено: установка поверх старой версии могла оставить обе. Установщика два, .exe и .msi, и они не знали друг о друге: .msi поверх установки .exe давал две записи в «Приложения и возможности» и две копии программы. Теперь каждый удаляет другой, прежде чем что-либо ставить.
Исправлено: «удалить данные приложения» оставляло почти всё. Удалялся кеш webview, но не папка со всеми настройками, журналами, кешем альбома и файлами статистики, 650 МБ на машине, где это нашли. Теперь удаляется и то и другое, вместе с автозапуском и ярлыками от старых версий.
2.17.4: дебют, за которым можно смотреть вживую
Старт сервера. Первые дни решают судьбу остального пути персонажа, и порядок, который окупается, не тот, в котором модули работают по умолчанию. Старт сервера разыгрывает дебют по фазам: сперва гильдия, потом арена, пока не станет можно купить альбом, потом альбом отдельно, потом подземелья, потом всё. Фаза придерживает модули, которые к ней не относятся, и страница называет каждый из придержанных, так что «почему мой бот не делает задания» получает ответ прямо на экране.
Альбом идёт первым по причине, которую стоит знать: процент его заполнения И ЕСТЬ та прибавка к опыту, которую игра даёт на всё. Каждый его пункт делает каждое последующее задание дороже, и поэтому раннее заполнение бьёт ранние задания.
Живая лента. Текущая цель с её шансом победы, реальные предметы, которые этот бой собрал бы, нарисованные графикой самой игры, следующие восемь целей в том порядке, в котором их взвесил модуль боя, подземелья, ждущие за ними, и прибавки по мере поступления. Очередь это тот список, по которому бот действовал, а не второе мнение, поэтому панель не может разойтись с тем, что бот делает.
Быстрый режим. Один переключатель. Он платит гриб за следующий бой вместо того, чтобы ждать бесплатного, так что альбом заполняется с той скоростью, с какой вы покупаете. Он работает только в фазах арены и альбома, останавливается сам, когда дебют кончился, выключен по умолчанию и ограничен по дням, а ваш грибной запас над ним по-прежнему действует.
Обходчик альбома работал не с того конца сервера. Он начинал со страницы 0 Зала славы, то есть с вершины лестницы, поэтому персонаж 15-го уровня тратил каждый запрос на игроков в районе шестисотого: десять минут обхода, 701 игрок в кэше, 2 из них по силам. Теперь он начинает с вашего собственного места. Он также перестал платить за сведения, которые уже имел, поскольку каждая страница Зала славы несёт уровень каждого игрока, а обходчик запрашивал все 51 имя прежде, чем это проверить. Тот же бюджет, цели, с которыми вы действительно можете драться.
У анонимного режима было три утечки, все в тех частях экрана, которые люди фотографируют, когда просят о помощи: имя персонажа перед каждой записью активности, связанные персонажи в баннере синхронизации настроек и имена игроков внутри полезной нагрузки команд в журнале. Все три теперь замаскированы.
Жажда приключений показывала не тот потолок. Каждая кружка поднимает дневной максимум на 20, так что у персонажа, выпившего одиннадцать, было 320 минут, а обзор по-прежнему печатал «0/100».
Рекламный модуль больше не собирается и не поставляется, по соображениям безопасности. Код остаётся за флагом функции и по-прежнему компилируется и тестируется, но ни в одной выпущенной сборке его нет.
2.17: Адский лифт, как следует
У Адского лифта было три отдельных неисправности, и вместе они означали, что он не делал вообще ничего, не сообщая при этом ни об одной ошибке.
Он никогда не присоединялся к событию. Его состояние читалось как «недоступно» всякий раз, когда данные забега не приходили, в том числе во время идущего события, к которому персонаж просто ещё не присоединился. Присоединение было единственным, что могло эти данные породить, так что он ждал того, что мог вызвать только он сам. Включено, событие идёт, ничего не происходит, и ничто не говорит почему.
Каждая покупка лакомства отклонялась. Место в лавке считается с единицы, а отправлялось посчитанным с нуля, так что сервер искал первое лакомство, пока приложение называло второе, и отвечал «тип угощения не совпадает». За один день: 302 отклонённые покупки и ни одного боя.
Один отклонённый шаг заканчивал цикл. Покупка шла перед боем и считала отказ фатальным, так что лавка, сказавшая нет, означала полное отсутствие подъёма. Сбор наград, запись на рейд и покупки теперь все делаются по мере возможности.
Также в 2.17
- Страница Адского лифта на вкладке событий, появляющаяся сама, пока событие идёт: подъём, предлагаемые лакомства вместе с тем, которое будет куплено, и с тем, чего оно стоит на одну ключ-карту, этажи гильдейского рейда, монстр этажа, недавние бои и строка о том, что будет дальше.
- Собственные настройки Адского лифта, рядом с Мировым боссом и Легендарным подземельем, а не закопанные в дополнительном.
- Он поднимается сначала на ключ-картах и покупает лакомство, когда начинает проигрывать. Лакомства хватает на два этажа, так что купленное в самом низу тратит карты на этажи, которые брались и без него. Первое поражение это место, где лакомство начинает себя окупать.
- Ещё восемь языков, все полные: чешский, польский, русский, китайский, японский, итальянский, французский и испанский, рядом с немецким и английским. Китайский и японский получили ещё и нужную им типографику, потому что ничто мельче одиннадцати пикселей в этих письменностях не читается.
- Доска, на которой можно провести связи. Нарисуйте цикл, перетащите один блок на другой, чтобы поставить его в последовательность, щёлкните по линии, чтобы её разрезать. Доски можно называть, сохранять, экспортировать, импортировать и отменять, и они путешествуют вместе с синхронизацией настроек.
- Нажмите на предмет, чтобы увидеть, что он заменит, с надетым предметом рядом и разницей в цвете.
- Безоконная сборка для ARM64 Linux, для Raspberry Pi или похожей платы.
- Числа и даты следуют выбранному вами языку, а не языку операционной системы. Немец на английской системе выбирал Deutsch и всё равно читал 1,234,567.
- Запись на гильдейский рейд теперь выключена по умолчанию. Выпущенная включённой, она отклонялась на каждом аккаунте и каждый раз. Смотрите Адский лифт.
2.16: блокировка и сборка, которая не была той сборкой
Приложение могло зависнуть вскоре после входа. Опрос состояния брал вторую блокировку на чтение сессии аккаунта, чтобы вычитать из неё две строки, а движок держит эту блокировку на запись на протяжении своих сетевых запросов. Любой опрос, попавший в середину цикла, ждал весь цикл, а опросы за ним выстраивались в очередь.
Сборка, которая уходит людям, теперь та же, которую тестируют. Необязательная функция попадала к пользователям прямо из задания выпуска, никогда не проходя ни линтер, ни тесты, потому что она выкомпиливалась из каждой проверки. Проверки теперь идут в обеих конфигурациях.
2.14: расписания и сохранённые профили
Бота можно ограничить днями и часами. Вне этих окон он не отправляет вообще ничего. Он не крутится тихо, он останавливается. Смотрите Настройки.
Библиотека профилей. Сохраните настройки, на которых вы работаете, под именем и вернитесь к ним одним щелчком. Каждый профиль описывает себя из настроек, а не из описания, набранного однажды, которое устаревает в момент пересохранения.
Пивные настройки переехали в Траты грибов. Каждая кружка стоит гриба, а они сидели под Таверной и заданиями, так что список «что может тратить мои грибы» молча упускал три из них.
2.13: порядок подземелий и деньги, которые читаются как в игре
Выберите порядок, в котором проходятся ваши подземелья. По умолчанию выключено, потому что бот и так выбирает самую выигрышную цель, и почти всем это подходит. Смотрите Подземелья, башня и крепость.
Любой упорядоченный список можно перетаскивать, а не только двигать стрелками.
Большие числа сокращаются так, как их показывает игра. Дерево, камень и души читаются одинаково.
Отклонённая попытка больше не отступает на целый час. Час это неверная единица для того, что через минуту может снова оказаться верным.
2.12: аккаунты и консоль, которую можно автоматизировать
Аккаунты, которые уже вошли, перестали пропадать с экрана, пока их боты продолжали работать в фоне.
Консольная сборка получила неинтерактивный режим, который выдаёт объект JSON: список персонажей, полное состояние персонажа, то, что решил модуль боя. Смотрите справочник CLI.
2.11: анонимный режим
Переключатель в шапке скрывает в приложении каждое имя: ваших персонажей, ваши аккаунты, соперников, гильдии и их участников, историю боёв, ленту активности и журнал, так что снимок экрана можно передать как есть.
Имена заменяются устойчивой подстановкой, а не затираются, так что вы по-прежнему поймёте, был ли игрок, дважды вас побивший, тем же самым. Подстановка солится случайным значением, порождённым на вашей собственной машине, которое её никогда не покидает. Смотрите Экран обзора.
Башня сообщала серверу этаж, который уже прошла, вместо того, в который входила, поэтому каждая атака отклонялась, а общий ежедневный бой тратился впустую.
2.10: один модуль для арены и альбома
Бои на арене и охота за альбомом стали одним модулем. Раньше их было два, с двумя копиями правил, которые расходились между собой в том, может ли нижняя граница шанса наложить вето на бесплатный бой.
Экран арены показывает решение: сколько кандидатов пришло из какого источника, чего стоил каждый, кто победил, и во время отката, с кем он будет драться дальше. Смотрите Арена.
Загрузка на треть меньше, с 364 МБ до 238 МБ, и выглядит ровно так же.