@Temotsu возможно, на 2 следующих полученных уровнях после обновления 14.04.2023.
Кстати, на вопрос выше https://forum.ecosum.ru/post/140325 про объединение 2 одинаковых генераторов 8го уровня -- не объединяются, как будто они разные вещи. Просто меняются местами. При этом "лишний" можно продать (если лишний убрать в склад, то оставшийся на доске продать нельзя, кнопки нет).
Лучшие сообщения megabyte
-
RE: MERGE BOSS - обсуждение игры
-
RE: MERGE BOSS - обсуждение игры
@Temotsu спасибо большое за такое масштабное исследование, главное -- за ссылку вместе со способом её запустить. Сделал чуть проще -- на firefox 113 developers edition (с голубой иконкой) там же, в responsive design mode, выставил iphone 11 pro.. ну, с 10-15 раза оно загружается )
пока что заметил 2 основных endpoint-а (если смотреть developers console, network tab) -- https://acs.aliexpress.com/h5/mtop.aliexpress.interactive.mergemarket.game.info.get/1.0/ это получение информации о состоянии игры при загрузке и https://acs.aliexpress.com/h5/mtop.aliexpress.interactive.mergemarket.board.update/1.0/ сделать ход
кроме аутентификации, которую может быть и можно как-то обойти, всё осложняется тем, что то, что выпадает из генератора, передаётся с фронта (=приложения) на бэк (=сервер)
пример: {'operatorType': 'produce', 'index': 5, 'data': {'from': '4,2', 'to': '4,3', 'produceElementId': 10801, 'elementOriginId': 10704, 'produceTimestamp': 1681896350710}} ,, 10704 -- видимо, стол 4го левела, 10801 -- одиночная трубкато есть клиент игры (приложение) наперёд знает, что вылетит из генератора и передаёт это серверу. Хотя оно и было заметно при плохой связи после перезагрузки страницы если клацаешь по тому же самому генератору, то вылетают item-ы (вещи) в той же последовательности, что и до "пропадания связи".
при этом для бота, чтобы не заметили, что это бот, надо генерировать те же item-ы в той же последовательности, что и игра (клиент). Как -- пока что самая большая задача. Хотя, использовать только генераторы 4го левела ночью тоже вариант ))
ещё раз спасибо ) ссылку с ?showpage=coins тоже увидел.
буду рад любому продвижению в любую сторону или любым идеям, как спать ночью, чтобы оно всё само мержилось ) -
RE: MERGE BOSS - обсуждение игры
@Temotsu пока что задача стоит "отправить на сервер хоть 1 валидный пакет на ..mergemarket.board.update/.."
что такое сервер:
Вообще, можно и загуглить "клиент-серверная архитектура приложений" и почитать там, я тут попытаюсь кратко. Сервер -- это комп (или множество компов), в данном случае стоящих где-то возможно в Китае, вместе с программой-сервером и алгоритмами, использующимися на нём, и наверняка вместе с базой данных. Функция сервера только одна -- получить пакет по сети и отправить ответ, всё. Форматы пакетов и ответов где-то регламентированы.
Клиент в данном случае это само приложение. Оно отображает графику (генераторы, заказы, вылетание, доску, инвентарь) и реагирует на действия пользователя, отправляя запросы серверу и принимая от него ответы.
Клиент игры в большинстве случаев или допустим загружается для всех 1 и тот же. Откуда он знает, что нарисовать на поле, какие пришли заказы, сколько энергии? Он не знает. Он спросит сервер. Это как раз запрос ..mergemarket.game.info.get/.. который у тебя на скрине. Ты ещё не самое вкусное нашёл в ответе сервера ) Самое вкусное это последовательности генерации item-ов генератором, где-то в data.boardDetailDTO.userBoard.produceMap .
То есть, эти параметры не "подкрутить" (сколько осталось энергии, сколько монет/баксов), они на сервере.Даже дальше, пусть какие-то параметры подкрутить можно, допустим, то, что вылетает из генератора, раз оно генерируется на клиенте (да, в общем задача -- написать "альтернативный клиент" игры -- "бот") -- и что в итоге? Какое-то время ты поиграешь. Потом какая-нибудь автоматизированная аналитика это заметит и тебя побанят. Они тебе ничем не обязаны )
Поэтому задача альтернативного клиента -- полностью подражать реальному клиенту игры (приложению на телефоне/компе), настолько, что очень сложно бы было отличить, бот это или официальный клиент игры (приложение).
В любом случае, когда я напишу бота, я никогда не запущу в него основной аккаунт -- сильно дорого, там уже 75й уровень, руками. Только левый акк, который потом основного акка и обгонит.Теперь по сути -- авторзация. Под авторизацией я имею в_виду только то, чтобы отправить такой пакет серверу, чтобы сервер его скушал. В авторизацию могут входить -- cookies и какие-то поля запроса, например токен.
В идеале клиент (бот) сам проходит всю авторизацию на сервере, отправляя/получая нужные cookies, токены и все юзер-зависимые поля. Но можно и без этого. Например, прошёл авторизацию в браузере, быстро, пока токен не устарел (это где-то 15000 сек вроде бы в данном случае), жамкнул правой кнопкой по пакету -- save all as har, скормил har боту. Бот скушал данные авторизации и смог отправлять пакеты с игровыми действиями.И теперь к самому, до чего я дошёл пока что. Просто просматривая пакеты, отправленные оф.клиентом и полученные им от сервера как ответы, подбив статистику полей --
сверху 7 строчек это отличающиеся части endpoint-ов, они же соответствуют столбикам до "|". Чиселки -- это число разных значений параметра (ну типа, пакет состоит из именованных параметров, каждому из которых присвоено значение).
Суть этой статистики -- если где-то стоит 1, то нам неважно, как данный параметр генерируется, он всегда 1 и тот же, мы его можем взять из пакета, отправленного официальным клиентом игры.
Видно, что основную проблему составляют t, sign и ua. t это втупую время, да, оно всегда разное, но отправлять его не проблема вообще ) sign это "подпись всего пакета". Она пере-генерируется на сервере и сравнивается с тем, что пришло от клиента. Если подписи не свопадают, то "кто-то попытался что-то подкрутить" по дороге и пакет выкидывается ) Как сделать подпись, вкратце описано тут (глава Signature Algorithm), но надо знать secret key. Раз оф.клиент генерит эту подпись, то secret key у него есть и технически извлечь этот secret key можно, как сложно бы это ни было.
И самая жесть это ua, которая содержит "140#" а потом какой-то жёсткий ни на что не похожий за-mime-каный (base64 encoded) бинарник (=непойми что). И это тоже надо будет генерить и высылать на сервер, чтобы он "принял за своего" )
Если присмотреться, то в пакетах ..mergemarket.board.update/.. высылается ещё и idempotentId, который тоже все 11 раз разный (сколько разных пакетов этого типа отанализировано), который тоже откуда-то брать или как-то генерировать. И это я cookies пока что не смотрел.
"operations" это то, что о действии пользователя надо отправить с клиента на сервер, "snapshot" это состояние игрового поля, грубо говоря. с этим скорее всего, проблем не будет. Ну, исключая то, чтосгенерированный в генераторе предмет генерируется на клиенте.
Как это понимать? Ну, допустим, мы в матрице. Предметов нет, заказов нет, энергии нет, генераторов нет, есть только клиент и сервер. Клиент с сервера получает состояние игры. Где циферками прописаны на поле состояние каждой клетки -- какой номер итема/генератора там стоит. Когда пользователь жамкает на картинку генератора, клиент игры должен посчитать, что из генератора вылетело и отправить на сервер. Формат пакета в сообщении выше.
Ну, это вкратце задача отправить 1 игровой пакет. Где 1, там и несколько. Потом сверху логика клацанья/объединения/отдавания_заказов -- вот и бот для компа. Для сотового, имея готовые алгоритмы поведения бота и формирования пакетов, умельцы напишут, если надо будет.Если я на что-то выше не ответил, пиши ))
-
RE: MERGE BOSS - обсуждение игры
Если не хотите тратить игровую валюту на ножницы и при этом делать браслеты, можете повременить мержить 6й генератор колец. Оттуда реально плохо летят браслеты.
5й: {12101: 59, 12001: 41}
6й: {12101: 71, 12102: 15, 12001: 14}
12101 -- кольцо 1, 12001 -- браслет 1, 12102 -- кольцо 2.А то реально -- делаю браслеты, режу 6й генератор пополам, делаю кольца -- мержу обратно )
-
RE: MERGE BOSS - обсуждение игры
@Чужий 50 заказов, без учёта смены ("сменяй сколько хочешь, не считается")