Основаная идея основана на https://github.com/kokole/SteamItemDropIdler
Основаня реализация осуществленна с помощью https://github.com/SteamRE/SteamKit
На данный момент работатет для аккаунтов с файлами от https://github.com/Jessecar96/SteamDesktopAuthenticator, т.е .maFile
Так же с shared_secret (из тех же maFile)
Для начала ставим .net runtime (https://dotnet.microsoft.com/download/thank-you/dotnet-runtime-2.2.5-windows-hosting-bundle-installer) или более позднию версию
Можно не ставить, так как собираю без привязки к .net
В директории бота *\Configs\Accounts создаем файлы конфигурации для ботов:
- Имя файла должно быть именем аккаунта steam, расширение .json
- Тело бота следующее:
{
"Password":"пароль_от_акка",
"IdleEnable":true, //флаг того что аккаунт должен идлиться, false - бот не будет запускать дроп для этого аккаунта
"SharedSecret":"SDDDONDPyaBSnIJS0PjDMpImcpE=",//открытый ключ для аутентификации, если null то будет искать .maFile
"AuthType":"WithSecretKey",
"DropConfig":[
{"Item1":id_игры, "Item2":id_дропа},
{"Item1":id_игры, "Item2":id_дропа},
........
{"Item1":id_игры, "Item2":id_дропа}//до 32 конфигов
],
"timeConfig": { // настройки времени для аккаунта лично, приоритетнее основного конфига
"IdleTime": 60,//время фарма в минутах
"PauseBeatwinIdleTime" : 660 //время простоя до следующего фарма в минутах
},
"authType": "WithSecretKey" // тип авторизации
//WithSecretKey - автоматическа авторизация по ключу SharedSecret;
//Console - авторизация в ручном режиме через ввод кода в консоли;
//Device - авторизация в ручном режиме через подтверждение в мобильном приложенгии
}
В директории бота *\Configs редактируем MainConfig.json:
{
"maFileFolder": "путь до файлов maFiles",
"dropHistoryFolder": "директория для склада истории дропа",
"parallelCount": 100, // количество одновремено запущенных аккаунтов,
"startTimeout": 30, // задержка в секундах перед стартом следующего аккаунта
"timeConfig": { // настройки времени для всех аккаунтов
"IdleTime": 60,//время фарма в минутах
"PauseBeatwinIdleTime" : 660 //время простоя до следующего фарма в минутах
},
"shortDrop": true, //false сокращать ли сообщение при выводе информации о дропе
"coolDownAfterLoginError": 120 // количество секунд для задержки перед запуском аккаунта, если он до этого упал из-за ошибки при логине.
}
Вариант настройки фермы на основе комментариев пользователей:
- При большом количестве одновременно запущенных аккаунтов могут сыпатся ошибки авторизации, поэтому ограничеваем parallelCount до 15-20
- Ограничение обходится если запускать несколько приложений в паралель. То есть, можно завести несколько папок с дроплером в каждом и по 15-20 конфигов
- Для нон стоп фарма ставим IdleTime: 180+ PauseBeatwinIdleTime: 1(0)
- Бот каждые 30 секунд проверяет возможность запустить на идлинг новый аккаунт
- Если количество работающих аккаунтов меньше числа parallelCount, то выбирается кандидат в соответсвии с его расписанием. На данный момент расписание самое простое (1 час идлинга на каждые 12 часов), можно поменять в конфигах
- В итоге кандидат выбирается так:
- Если флаг IdleEnable выставлен в True
- И если аккаунт не идлился последние 12 часов
По итогу за неделю каждый аккаунт наигрывает для каждой игры по 14 часов
Во время работы в файл конфига пишется информация о последнем запуске. Это стоит учитывать, т.к. если вы будете закрывать бота в тот момент пока аккаунты идлятся, он запустится на снова на еще 1 час.
- Все игры на аккаунте запускаются одновременно (до 32 штук)
- Дроп проверяется перед началом фарма и каждые пол часа во время фарма (что бы уменьшит количество запросов к серверу).
- изменен подход к подключению к серверам Steam
- в версии kokole использовался steam.dll и подключение осуществлялось случайно
- в текущей версии напрямую выбирается сервера из ~200 серверов
- на каждый сервер подключаются до 12 (возможно увеличить) аккаунтов
- так что одновременное количество ботов может быть 2400 (не проверялось)
- Настройка семейного доступа
- Получение списка игр для аккаунта (из сети, а не из конфига)
- Получение кода авторизации через почту
- Ввод кода вручную (нужно впилить GUI)
- Настройка расписания для каджой игры, с возможностью редактирования (в связи с эвентами KF2 например)
- Расчет по конфигам расписания оптимального запуска ботов
- GUI для отслеживания состояния ботов (истории, ошибок) и взаимодействия с пользователем
- Покупка игры, принятие кода, покупка игры в падарок
- Автоматическое создание ботов (почта->мобильный аутентификатор)
- Перенос функционала ArchiSteamFarm для передачи шмоток
- Дроп TF2
yandex:410011375178916
bitcoin:3M2m8hLu9w7Z4fonBESafL8SZPfq5SRYBC
qiwi.com/p/79234293663