KARASIQUE
Бог флуда
- Дней с нами
- 2.985
- Розыгрыши
- 3
- Сообщения
- 4.025
- Репутация
- 66
- Реакции
- 6.841
книга в доте, в твитяре напсали шо буит в начале след нделиШо за бп?
баттл пасс в дотеШо за бп?
500+ рукамижаль что походу арчи плагин делать не будетон типа игнарирует такие ивенты. В группе советуют заплатить чтобы сделали плаин под ивент. Ну шо будем ручками через скрипты
![]()
500500+ руками![]()
Они ж не думали о том, что ушлые ребята выполнят скриптами все задания за пять минут. Там было семь заданий, по одной игре в день, видимо рассчет был таков, когда ивент пилили.Кстати, а ивент на этих 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 чёт не нравится, подзабил. Сделал всё БАСомпробовал кто то?