KARASIQUE
Бог флуда
- Дней с нами
- 2.923
- Розыгрыши
- 3
- Сообщения
- 4.025
- Репутация
- 66
- Реакции
- 6.841
книга в доте, в твитяре напсали шо буит в начале след нделиШо за бп?
баттл пасс в дотеШо за бп?
500+ рукамижаль что походу арчи плагин делать не будет он типа игнарирует такие ивенты. В группе советуют заплатить чтобы сделали плаин под ивент. Ну шо будем ручками через скрипты
500 мда но как же 500 опыта? прикинь на каждого 500 опыта, типа такой тебе мотиватор. 500 опыта добавишь на каждый акк будут сыпатся бустеры каждый день (нет)500+ руками
Они ж не думали о том, что ушлые ребята выполнят скриптами все задания за пять минут. Там было семь заданий, по одной игре в день, видимо рассчет был таков, когда ивент пилили.Кстати, а ивент на этих 500 опыта кончился или ещё что будет? (8 дней все же)
не работает для всех аккаунтов а только для одного на котором нажал кнопку.На реддите уже запостили гайд для ботов:
1. Переходите по ссылке https://store.steampowered.com/springcleaning/
2. Нажимаете на кнопку https://imgur.com/a/D6BPfOH, страница перезагрузится
3. Открываете консоль браузера CTRL+Shift+I и вставляете код:
4. Через ASF используете команду !play <botname> <ID list>Код:var gamelist=""; for (i=0;i<document.getElementsByClassName("task_app_completed").length;i++){gamelist=gamelist+document.getElementsByClassName("task_app_completed")[i].getAttribute("data-sg-appid")+",";} gamelist = gamelist.slice(0, -1);
2. Нажимаете на кнопку https://imgur.com/a/D6BPfOH, страница перезагрузится написано жене работает для всех аккаунтов а только для одного на котором нажал кнопку.
ну а толку ? на все 2к аков захожить нажимать эту кнопку?2. Нажимаете на кнопку https://imgur.com/a/D6BPfOH, страница перезагрузится написано же
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Composition;
using System.Linq;
using System.Threading.Tasks;
using AngleSharp.Dom;
using ArchiSteamFarm;
using ArchiSteamFarm.Plugins;
using JetBrains.Annotations;
using Newtonsoft.Json.Linq;
using SteamKit2;
namespace m4d0ne.SpringClean2020
{
class BotGuts : ClientMsgHandler {
public Bot BotInstance;
public SteamFriends BotFriends;
public SteamUser BotUser;
public SteamApps BotApps;
public BotGuts(Bot bot)
{
BotInstance = bot;
}
public void Init()
{
BotFriends = Client.GetHandler<SteamFriends>();
BotUser = Client.GetHandler<SteamUser>();
BotApps = Client.GetHandler<SteamApps>();
}
public override void HandleMsg(IPacketMsg packetMsg)
{
}
void HandleLogonResponse(IPacketMsg packetMsg)
{
}
}
[Export(typeof(IPlugin))]
internal sealed class SpringClean : IASF, IBot, IBotCommand, IBotSteamClient
{
private ConcurrentDictionary<Bot, BotGuts> BotEx = new ConcurrentDictionary<Bot, BotGuts>();
public string Name => nameof(SpringClean);
public Version Version => typeof(SpringClean).Assembly.GetName().Version;
public void OnASFInit(IReadOnlyDictionary<string, JToken> additionalConfigProperties = null)
{
}
private async Task<bool> JoinEvent(Bot bot)
{
return await bot.ArchiWebHandler.UrlPostWithSession("https://store.steampowered.com", "/springcleaning/ajaxoptintoevent");
}
private async Task<List<uint>> GetGamesToPlay(Bot bot)
{
List<uint> tasks = new List<uint>();
IDocument eventPage = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession("https://store.steampowered.com", "/springcleaning");
if (eventPage != null)
{
var taskNodes = eventPage.GetElementsByClassName("task_app_completed");
foreach(var node in taskNodes)
{
string appID = node.GetAttributeValue("data-sg-appid");
if(!string.IsNullOrEmpty(appID))
{
tasks.Add(uint.Parse(appID));
}
}
}
List<uint> notOwned = new List<uint>();
var ownedGames = await bot.ArchiWebHandler.GetMyOwnedGames();
if (ownedGames != null)
{
notOwned = ownedGames.Where(x => !tasks.Contains(x.Key)).ToDictionary(x => x.Key).Keys.ToList();
}
else
{
notOwned = tasks;
}
if(notOwned.Count() > 0)
{
var reqResult = await BotEx[bot].BotApps.RequestFreeLicense(notOwned);
if(reqResult.GrantedApps.Count > 0)
{
string reply = string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps));
bot.ArchiLogger.LogGenericInfo(string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps)));
}
}
return tasks;
}
private async Task<string> DoSpringClean(Bot bot)
{
bool joined = await JoinEvent(bot);
if(joined)
{
List<uint> appsToPlay = await GetGamesToPlay(bot);
if(appsToPlay.Count > 0)
{
await bot.Actions.Play(appsToPlay);
return bot.BotName + ": Ok";
}
else
{
return bot.BotName + ": No games to play!";
}
}
return bot.BotName + ": Could not join event!";
}
public async Task<string> OnBotCommand(Bot bot, ulong steamID, string message, string[] args)
{
switch(args[0].ToUpperInvariant())
{
case "SPRINGCLEAN" when bot.HasPermission(steamID, BotConfig.EPermission.Operator):
if(args.Count() > 1)
{
List<Bot> activeBots = Bot.GetBots(args[1]).Where(x => x.IsConnectedAndLoggedOn).ToList();
int delayCnt = activeBots.Count();
IList<string> result = await Utilities.InParallel(activeBots.Select( async x => { await Task.Delay(TimeSpan.FromSeconds(delayCnt * 30)); --delayCnt; return await DoSpringClean(x); }));
return result.Count() > 0 ? string.Join(Environment.NewLine, result) : null;
}
else
{
return await DoSpringClean(bot);
}
default:
return null;
}
}
public void OnLoaded()
{
ASF.ArchiLogger.LogGenericInfo("SpringCleanPlugin loaded. Expect weird behaviour and unexpected consequences.");
}
public void OnBotDestroy([NotNull] Bot bot) {
//throw new NotImplementedException();
}
public void OnBotInit([NotNull] Bot bot) {
//throw new NotImplementedException();
}
public void OnBotSteamCallbacksInit([NotNull] Bot bot, [NotNull] CallbackManager callbackManager) {
BotEx[bot].Init();
}
public IReadOnlyCollection<ClientMsgHandler> OnBotSteamHandlersInit([NotNull] Bot bot) {
BotGuts botEx = new BotGuts(bot);
BotEx.TryAdd(bot, botEx);
return new List<ClientMsgHandler>() { botEx };
}
}
}
springclean <bot>
плагин к ASF?Глючный плагин для ASF
Код:using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Composition; using System.Linq; using System.Threading.Tasks; using AngleSharp.Dom; using ArchiSteamFarm; using ArchiSteamFarm.Plugins; using JetBrains.Annotations; using Newtonsoft.Json.Linq; using SteamKit2; namespace m4d0ne.SpringClean2020 { class BotGuts : ClientMsgHandler { public Bot BotInstance; public SteamFriends BotFriends; public SteamUser BotUser; public SteamApps BotApps; public BotGuts(Bot bot) { BotInstance = bot; } public void Init() { BotFriends = Client.GetHandler<SteamFriends>(); BotUser = Client.GetHandler<SteamUser>(); BotApps = Client.GetHandler<SteamApps>(); } public override void HandleMsg(IPacketMsg packetMsg) { } void HandleLogonResponse(IPacketMsg packetMsg) { } } [Export(typeof(IPlugin))] internal sealed class SpringClean : IASF, IBot, IBotCommand, IBotSteamClient { private ConcurrentDictionary<Bot, BotGuts> BotEx = new ConcurrentDictionary<Bot, BotGuts>(); public string Name => nameof(SpringClean); public Version Version => typeof(SpringClean).Assembly.GetName().Version; public void OnASFInit(IReadOnlyDictionary<string, JToken> additionalConfigProperties = null) { } private async Task<bool> JoinEvent(Bot bot) { return await bot.ArchiWebHandler.UrlPostWithSession("https://store.steampowered.com", "/springcleaning/ajaxoptintoevent"); } private async Task<List<uint>> GetGamesToPlay(Bot bot) { List<uint> tasks = new List<uint>(); IDocument eventPage = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession("https://store.steampowered.com", "/springcleaning"); if (eventPage != null) { var taskNodes = eventPage.GetElementsByClassName("task_app_completed"); foreach(var node in taskNodes) { string appID = node.GetAttributeValue("data-sg-appid"); if(!string.IsNullOrEmpty(appID)) { tasks.Add(uint.Parse(appID)); } } } List<uint> notOwned = new List<uint>(); var ownedGames = await bot.ArchiWebHandler.GetMyOwnedGames(); if (ownedGames != null) { notOwned = ownedGames.Where(x => !tasks.Contains(x.Key)).ToDictionary(x => x.Key).Keys.ToList(); } else { notOwned = tasks; } if(notOwned.Count() > 0) { var reqResult = await BotEx[bot].BotApps.RequestFreeLicense(notOwned); if(reqResult.GrantedApps.Count > 0) { string reply = string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps)); bot.ArchiLogger.LogGenericInfo(string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps))); } } return tasks; } private async Task<string> DoSpringClean(Bot bot) { bool joined = await JoinEvent(bot); if(joined) { List<uint> appsToPlay = await GetGamesToPlay(bot); if(appsToPlay.Count > 0) { await bot.Actions.Play(appsToPlay); return bot.BotName + ": Ok"; } else { return bot.BotName + ": No games to play!"; } } return bot.BotName + ": Could not join event!"; } public async Task<string> OnBotCommand(Bot bot, ulong steamID, string message, string[] args) { switch(args[0].ToUpperInvariant()) { case "SPRINGCLEAN" when bot.HasPermission(steamID, BotConfig.EPermission.Operator): if(args.Count() > 1) { List<Bot> activeBots = Bot.GetBots(args[1]).Where(x => x.IsConnectedAndLoggedOn).ToList(); int delayCnt = activeBots.Count(); IList<string> result = await Utilities.InParallel(activeBots.Select( async x => { await Task.Delay(TimeSpan.FromSeconds(delayCnt * 30)); --delayCnt; return await DoSpringClean(x); })); return result.Count() > 0 ? string.Join(Environment.NewLine, result) : null; } else { return await DoSpringClean(bot); } default: return null; } } public void OnLoaded() { ASF.ArchiLogger.LogGenericInfo("SpringCleanPlugin loaded. Expect weird behaviour and unexpected consequences."); } public void OnBotDestroy([NotNull] Bot bot) { //throw new NotImplementedException(); } public void OnBotInit([NotNull] Bot bot) { //throw new NotImplementedException(); } public void OnBotSteamCallbacksInit([NotNull] Bot bot, [NotNull] CallbackManager callbackManager) { BotEx[bot].Init(); } public IReadOnlyCollection<ClientMsgHandler> OnBotSteamHandlersInit([NotNull] Bot bot) { BotGuts botEx = new BotGuts(bot); BotEx.TryAdd(bot, botEx); return new List<ClientMsgHandler>() { botEx }; } } }
Глючный плагин для ASF
Не знаю. Возможно.плагин к ASF?
пробовал кто то?Глючный плагин для ASF
Код:using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Composition; using System.Linq; using System.Threading.Tasks; using AngleSharp.Dom; using ArchiSteamFarm; using ArchiSteamFarm.Plugins; using JetBrains.Annotations; using Newtonsoft.Json.Linq; using SteamKit2; namespace m4d0ne.SpringClean2020 { class BotGuts : ClientMsgHandler { public Bot BotInstance; public SteamFriends BotFriends; public SteamUser BotUser; public SteamApps BotApps; public BotGuts(Bot bot) { BotInstance = bot; } public void Init() { BotFriends = Client.GetHandler<SteamFriends>(); BotUser = Client.GetHandler<SteamUser>(); BotApps = Client.GetHandler<SteamApps>(); } public override void HandleMsg(IPacketMsg packetMsg) { } void HandleLogonResponse(IPacketMsg packetMsg) { } } [Export(typeof(IPlugin))] internal sealed class SpringClean : IASF, IBot, IBotCommand, IBotSteamClient { private ConcurrentDictionary<Bot, BotGuts> BotEx = new ConcurrentDictionary<Bot, BotGuts>(); public string Name => nameof(SpringClean); public Version Version => typeof(SpringClean).Assembly.GetName().Version; public void OnASFInit(IReadOnlyDictionary<string, JToken> additionalConfigProperties = null) { } private async Task<bool> JoinEvent(Bot bot) { return await bot.ArchiWebHandler.UrlPostWithSession("https://store.steampowered.com", "/springcleaning/ajaxoptintoevent"); } private async Task<List<uint>> GetGamesToPlay(Bot bot) { List<uint> tasks = new List<uint>(); IDocument eventPage = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession("https://store.steampowered.com", "/springcleaning"); if (eventPage != null) { var taskNodes = eventPage.GetElementsByClassName("task_app_completed"); foreach(var node in taskNodes) { string appID = node.GetAttributeValue("data-sg-appid"); if(!string.IsNullOrEmpty(appID)) { tasks.Add(uint.Parse(appID)); } } } List<uint> notOwned = new List<uint>(); var ownedGames = await bot.ArchiWebHandler.GetMyOwnedGames(); if (ownedGames != null) { notOwned = ownedGames.Where(x => !tasks.Contains(x.Key)).ToDictionary(x => x.Key).Keys.ToList(); } else { notOwned = tasks; } if(notOwned.Count() > 0) { var reqResult = await BotEx[bot].BotApps.RequestFreeLicense(notOwned); if(reqResult.GrantedApps.Count > 0) { string reply = string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps)); bot.ArchiLogger.LogGenericInfo(string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps))); } } return tasks; } private async Task<string> DoSpringClean(Bot bot) { bool joined = await JoinEvent(bot); if(joined) { List<uint> appsToPlay = await GetGamesToPlay(bot); if(appsToPlay.Count > 0) { await bot.Actions.Play(appsToPlay); return bot.BotName + ": Ok"; } else { return bot.BotName + ": No games to play!"; } } return bot.BotName + ": Could not join event!"; } public async Task<string> OnBotCommand(Bot bot, ulong steamID, string message, string[] args) { switch(args[0].ToUpperInvariant()) { case "SPRINGCLEAN" when bot.HasPermission(steamID, BotConfig.EPermission.Operator): if(args.Count() > 1) { List<Bot> activeBots = Bot.GetBots(args[1]).Where(x => x.IsConnectedAndLoggedOn).ToList(); int delayCnt = activeBots.Count(); IList<string> result = await Utilities.InParallel(activeBots.Select( async x => { await Task.Delay(TimeSpan.FromSeconds(delayCnt * 30)); --delayCnt; return await DoSpringClean(x); })); return result.Count() > 0 ? string.Join(Environment.NewLine, result) : null; } else { return await DoSpringClean(bot); } default: return null; } } public void OnLoaded() { ASF.ArchiLogger.LogGenericInfo("SpringCleanPlugin loaded. Expect weird behaviour and unexpected consequences."); } public void OnBotDestroy([NotNull] Bot bot) { //throw new NotImplementedException(); } public void OnBotInit([NotNull] Bot bot) { //throw new NotImplementedException(); } public void OnBotSteamCallbacksInit([NotNull] Bot bot, [NotNull] CallbackManager callbackManager) { BotEx[bot].Init(); } public IReadOnlyCollection<ClientMsgHandler> OnBotSteamHandlersInit([NotNull] Bot bot) { BotGuts botEx = new BotGuts(bot); BotEx.TryAdd(bot, botEx); return new List<ClientMsgHandler>() { botEx }; } } }
Проект и собранный бинарник: https://mega.nz/file/eGBxQQJD#1O0OsjCHPCuzjl-YcdAq2IpiifSlRa37h4VFVPGQS3I
Он должен сыпать ошибки?Глючный плагин для ASF
Код:using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Composition; using System.Linq; using System.Threading.Tasks; using AngleSharp.Dom; using ArchiSteamFarm; using ArchiSteamFarm.Plugins; using JetBrains.Annotations; using Newtonsoft.Json.Linq; using SteamKit2; namespace m4d0ne.SpringClean2020 { class BotGuts : ClientMsgHandler { public Bot BotInstance; public SteamFriends BotFriends; public SteamUser BotUser; public SteamApps BotApps; public BotGuts(Bot bot) { BotInstance = bot; } public void Init() { BotFriends = Client.GetHandler<SteamFriends>(); BotUser = Client.GetHandler<SteamUser>(); BotApps = Client.GetHandler<SteamApps>(); } public override void HandleMsg(IPacketMsg packetMsg) { } void HandleLogonResponse(IPacketMsg packetMsg) { } } [Export(typeof(IPlugin))] internal sealed class SpringClean : IASF, IBot, IBotCommand, IBotSteamClient { private ConcurrentDictionary<Bot, BotGuts> BotEx = new ConcurrentDictionary<Bot, BotGuts>(); public string Name => nameof(SpringClean); public Version Version => typeof(SpringClean).Assembly.GetName().Version; public void OnASFInit(IReadOnlyDictionary<string, JToken> additionalConfigProperties = null) { } private async Task<bool> JoinEvent(Bot bot) { return await bot.ArchiWebHandler.UrlPostWithSession("https://store.steampowered.com", "/springcleaning/ajaxoptintoevent"); } private async Task<List<uint>> GetGamesToPlay(Bot bot) { List<uint> tasks = new List<uint>(); IDocument eventPage = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession("https://store.steampowered.com", "/springcleaning"); if (eventPage != null) { var taskNodes = eventPage.GetElementsByClassName("task_app_completed"); foreach(var node in taskNodes) { string appID = node.GetAttributeValue("data-sg-appid"); if(!string.IsNullOrEmpty(appID)) { tasks.Add(uint.Parse(appID)); } } } List<uint> notOwned = new List<uint>(); var ownedGames = await bot.ArchiWebHandler.GetMyOwnedGames(); if (ownedGames != null) { notOwned = ownedGames.Where(x => !tasks.Contains(x.Key)).ToDictionary(x => x.Key).Keys.ToList(); } else { notOwned = tasks; } if(notOwned.Count() > 0) { var reqResult = await BotEx[bot].BotApps.RequestFreeLicense(notOwned); if(reqResult.GrantedApps.Count > 0) { string reply = string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps)); bot.ArchiLogger.LogGenericInfo(string.Format("Got free license for apps: {0}", string.Join(",", reqResult.GrantedApps))); } } return tasks; } private async Task<string> DoSpringClean(Bot bot) { bool joined = await JoinEvent(bot); if(joined) { List<uint> appsToPlay = await GetGamesToPlay(bot); if(appsToPlay.Count > 0) { await bot.Actions.Play(appsToPlay); return bot.BotName + ": Ok"; } else { return bot.BotName + ": No games to play!"; } } return bot.BotName + ": Could not join event!"; } public async Task<string> OnBotCommand(Bot bot, ulong steamID, string message, string[] args) { switch(args[0].ToUpperInvariant()) { case "SPRINGCLEAN" when bot.HasPermission(steamID, BotConfig.EPermission.Operator): if(args.Count() > 1) { List<Bot> activeBots = Bot.GetBots(args[1]).Where(x => x.IsConnectedAndLoggedOn).ToList(); int delayCnt = activeBots.Count(); IList<string> result = await Utilities.InParallel(activeBots.Select( async x => { await Task.Delay(TimeSpan.FromSeconds(delayCnt * 30)); --delayCnt; return await DoSpringClean(x); })); return result.Count() > 0 ? string.Join(Environment.NewLine, result) : null; } else { return await DoSpringClean(bot); } default: return null; } } public void OnLoaded() { ASF.ArchiLogger.LogGenericInfo("SpringCleanPlugin loaded. Expect weird behaviour and unexpected consequences."); } public void OnBotDestroy([NotNull] Bot bot) { //throw new NotImplementedException(); } public void OnBotInit([NotNull] Bot bot) { //throw new NotImplementedException(); } public void OnBotSteamCallbacksInit([NotNull] Bot bot, [NotNull] CallbackManager callbackManager) { BotEx[bot].Init(); } public IReadOnlyCollection<ClientMsgHandler> OnBotSteamHandlersInit([NotNull] Bot bot) { BotGuts botEx = new BotGuts(bot); BotEx.TryAdd(bot, botEx); return new List<ClientMsgHandler>() { botEx }; } } }
Проект и собранный бинарник: https://mega.nz/file/eGBxQQJD#1O0OsjCHPCuzjl-YcdAq2IpiifSlRa37h4VFVPGQS3I
тот случай, когда используешь версию 3+ до внедрения поддержки плагиновпробовал кто то?
Обязан. Какие ошибки? ( готовый билд собран для последней версии арчи 4.2.1.3 и NET Framework 4.8 и netcore 3.1 )Он должен сыпать ошибки?
Пробовал, но ASF чёт не нравится, подзабил. Сделал всё БАСомпробовал кто то?