如果你有一台服主机 (VPS树莓派一台被淘汰的 PC…) 你会用它做什么?

玩法有很多,可以用来挖矿赚点零花钱 虽然可能连电费都赚不回来,也可以养只爬虫没事爬爬网页,或者加入 BOINC 为世界科研贡献力量… 如果你和我一样,恰好是个 Steam 玩家玩家的话,用闲置的主机来挂 Steam 集换式卡牌似乎是个不错的选择。


关于 Steam 集换式卡牌

关于 ASF 挂卡

众所周知,要在 Steam 上玩游戏,Steam 才会给你相应的集换式卡牌。而在闲置的主机上挂真正的游戏却不怎么现实 (性能不够)。所以,我们要使用 ASF 挂卡器来挂卡。

**关于 ASF (ArchiSteamFarm):**

ASF 是由 C# 編寫,能同時掛載多個 Steam 賬號的掛卡工具。其不像 Idle Master 那樣:同一時間只能為一個賬號掛卡,需要後台運行 Steam 客戶端,需啟動額外進程模擬『正在遊戲』狀態。ASF 不需要後台運行任何Steam 客戶端,不需要啟動額外進程,而且能為不限數目的 Steam 賬號同時掛卡。不僅如此,該軟件還能在服務器和其他非桌面電腦上運行,並擁有完整支持 Mono 的特性,這能讓其在 Windows、Linux 以及 OS X 等任何支持 Mono 的操作系統上運行。ASF 存在的基礎要歸功於 SteamKit2

[注] ArchiSteamFarm V3.0 以后的版本已经将 Mono 换成了 .Net Core

简单来说 ASF 就是一个假的 Steam 客户端,它通过“假装玩游戏”,让 Steam 以为你真的在玩某款游戏,从而获得 Steam 集换式卡牌

那么“假装玩游戏”有风险吗?会被 Steam 发现吗?理论上是有被 Steam 发现的可能性的,但到目前为止,还没有听说过谁因为挂卡被封号或者其他处罚的情况,V 社官方也没有明确表态过禁止挂卡 挂卡从某种意义上来说是可以增加用户粘性的,所以基本上可以认为挂卡是安全的。(出了事别找我就对了 | ・ω・’))

不过为了保险起见,最好还是将带有 VAC 的游戏排除在外。

ASF 的安装与使用

Windows 安装

这个页面去下载最新版的 ASF,然后解压。

双击 ArchiSteamFarm.exe 便可运行。

GNU/Linux 安装

首先去这个页面获取适合你系统的最新版 ASF 的下载地址。这里以 64 位 x86 架构的 ArchiSteamFarm V3.4.0.7 为例。

在终端中运行:(如果没有 unzip 的话先安装 unzip)

mkdir asf
cd asf
wget https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/3.4.0.7/ASF-linux-x64.zip
unzip ASF-linux-x64.zip

asf 目录中使用命令 ./ArchiSteamFarm 便可运行。

使用 Docker 部署

相对于直接运行,我更喜欢用 Docker 来部署 ASF

同样以 64 位 x86 架构的 ArchiSteamFarm V3.4.0.7 为例。

在终端中运行:

mkdir asf
cd asf
wget https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/3.4.0.7/ASF-generic.zip
unzip ASF-generic.zip

然后在 asf 目录中新建并编写 Dockerfile 文件:

FROM microsoft/dotnet

WORKDIR /home/asf
COPY . /home/asf

EXPOSE 5000
ENV ASPNETCORE_URLS http://*:5000
RUN rm -rf /home/asf/config

ENTRYPOINT [ "dotnet","/home/asf/ArchiSteamFarm.dll" ]

然后运行以下命令来制作 Docker 镜像

docker build --tag=asf:v1.0.0 .

使用以下命令启动容器:(默认你的 asf/config 目录为 ~/asf/config)

docker run -it \
-v ~/asf/config:/home/asf/config \
-p 5000:5000 asf:v1.0.0 --name asf

ASF 配置

ASF 的配置文件在 config 目录中。

config 目录中新建 / 编辑两个文件:

  • ASF.json:全局配置文件
  • Bot.json:每个帐号的配置文件

Bot.json 可以有多个,每个文件对应一个 Steam 帐号,文件名可以换成你喜欢的任意名称

ASF.json

{
	"AutoRestart": true,
	"CommandPrefix": "!",
	"ConfirmationsLimiterDelay": 10,
	"ConnectionTimeout": 60,
	"CurrentCulture": "zh-CN",
	"Debug": false,
	"FarmingDelay": 15,
	"GiftsLimiterDelay": 1,
	"Headless": false,
	"IdleFarmingPeriod": 8,
	"InventoryLimiterDelay": 3,
	"IPC": false,
	"IPCPassword": null,
	"IPCPrefixes": [
		"http://127.0.0.1:1242/"
	],
	"LoginLimiterDelay": 10,
	"MaxFarmingTime": 10,
	"MaxTradeHoldDuration": 15,
	"OptimizationMode": 0,
	"Statistics": true,
	"SteamMessagePrefix": "/me ",
	"SteamOwnerID": 0,
	"SteamProtocols": 7,
	"UpdateChannel": 1,
	"UpdatePeriod": 24,
	"WebLimiterDelay": 200,
	"WebProxy": null,
	"WebProxyPassword": null,
	"WebProxyUsername": null,
	"Blacklist": [
		730,
		440,
		221100,
		10,
		240,
		50,
		70,
		500,
		550,
		20,
		30,
		300,
		320,
		40,
		60,
		80,
		360,
		58610,
		222880,
		4000,
		252490,
		2100,
		61700,
		21970,
		1250,
		204300,
		219640,
		10180,
		115300,
		42700,
		2400,
		216250,
		255220,
		65800,
		4920,
		35450,
		44350,
		221040,
		70000,
		282800,
		227100,
		215470,
		222480,
		208090,
		243800,
		17710,
		1200,
		63000,
		63500,
		61730,
		45500,
		63200,
		39000,
		224260,
		223710,
		104900,
		55110,
		247730,
		55100,
		6510,
		214360,
		214630,
		63970,
		42160,
		204080,
		212410,
		209610,
		201070,
		244630,
		91310
	]
}

简单介绍几个重要的配置:

  • “Blacklist”:不挂卡的游戏 (这里排除了所以带 VAC 的游戏)

  • “SteamOwnerID”ASF 所有者的 SteamIDASF 所有者可以使用全局指令 (例如:!exit!restart!update 等 ) 获取 SteamID 的方法:怎么获取 SteamID?

详细的配置说明请参考:ASF.json 详细配置说明

Bot.json

{
	"AcceptGifts": false,
	"AutoSteamSaleEvent": false,
	"BotBehaviour": 0,
	"CustomGamePlayedWhileFarming": null,
	"CustomGamePlayedWhileIdle": null,
	"Enabled": true,
	"FarmingOrders": [],
	"GamesPlayedWhileIdle": [],
	"HoursUntilCardDrops": 3,
	"IdlePriorityQueueOnly": false,
	"IdleRefundableGames": true,
	"LootableTypes": [
		1,
		3,
		5
		
	],
	"MatchableTypes": [
		5
	],
	"OnlineStatus": 1,
	"PasswordFormat": 0,
	"Paused": false,
	"RedeemingPreferences": 0,
	"SendOnFarmingFinished": false,
	"SendTradePeriod": 0,
	"ShutdownOnFarmingFinished": false,
	"SteamLogin": null,
    "SteamMasterID": 0,
	"SteamMasterClanID": 0,
	"SteamParentalPIN": "0",
	"SteamPassword": null,
	"SteamTradeToken": null,
	"SteamUserPermissions": {},
	"TradingPreferences": 0,
	"UseLoginKeys": true
}

简单介绍几个重要的配置:

  • “Enabled”:是否启用本 Bot
  • “SteamLogin”:用来登陆 Steam 的用户名;为空着表示在启动时输入
  • “SteamPassword”:用来登陆 Steam 的登录密码;为空着表示在启动时输入
  • “SteamMasterID”:管理员的 SteamID;管理员可以使用与 Bot 相关的控制命令。 如果不添加「小号」的话保持默认 (为 0) 即可。 获取 SteamID 的方法:如何获取 SteamID
  • “SteamMasterClanID”Steam 群组的 ID;如果有很多 Bot 需要控制,可以创建一个 Steam 群组,然后群主管理员可在群组聊天中使用与 Bot 相关的控制命令进行控制 如果不添加「小号」的话保持默认 (为 0) 即可。 获取 Steam 群组 ID 的方法:如何获取 Steam 群组 ID

详细的配置说明请参考:Bot.json 详细配置说明

ASF 命令

所谓 ASF 命令实际上就是用「主号」给「小号」发送 Steam 消息,来控制指挥 ASF 控制「小号」和 ASF

因为比较常用,所以特地做了一个图片格式的速查表 (右键,保存即可下载) -> 查看原图


命令描述
!redeem [Bots] [key1, key2,...]指定 Bot 激活给予的全部密钥,同 !r
!redeem^ [Bots] [key1, key2,...]指定 Bot 激活给予的全部密钥,不转发,同 !r^
!redeem^ [Bots] [Modes] [Keys]使指定 Bot 以指定模式激活 key
Modes:FD = 分发,FF = 转发,FKMG = 补缺,SD = 不分发,SF = 不转发,SI = 舍己,SKMG = 不补缺,V = 验正跳废
!addlicense [Bots] [appID1, appID2 ...]使指定 Bot 激活指定 ID 的游戏(仅限于免费游戏
!owns [Bots] [appID,gameName...]检查当前 Bot 是否已经拥有游戏,同 !oa (指定 ID, 游戏名, 部分游戏名)
!ownsall [appID,gameName...]检查所有 Bot 是否已经拥有指定 ID 的游戏
!exit退出 ASF
!restart重启 ASF
!start [Bots]启动指定的 Bot
!startall启动所有 Bot
!resume [Bots]恢复指定 Bot!pause 暂停和 !play 手动挂卡
!pause [Bots]永久暂停指定 Bot,直至重启或手动恢复,使用 !resume 恢复
!pause~ [Bots]暂时暂停指定 Bot,自动恢复
!farm重启当前 Bot 的挂卡模块
!farm [Bots]重启指定 Bot 的挂卡模块
!play [Bots] [appID1, appID2,...]切换至手动挂卡,让指定 Bot 启动指定 ID 的游戏。使用 !resume 恢复自动挂卡模式
!stop [Bots]停止指定 Bot,注销登录
!leaveBot 离开当前的群组聊天。该指令只在群组聊天中生效。
!rejoinchat [Bots]强制指定 Bot 重新加入群聊
!status [Bots]输出指定 Bot 的状态,同 !sa
!statusall输出所有 Bot 以及 ASF 本身的状态
!loot [Bots]将指定 Bot 所有 Steam 物品交易给 SteamMasterID
!lootall将已启动 Bot 所有 Steam 物品交易给 SteamMasterID
!transfer [Bots] [Modes] [Bots]使指定 Bot 发送某类交易至指定 Bot
Modes:A = 全部,BG = 背景,BO = 卡包,C = 卡,E = 表情,F = 闪卡,G = 宝珠,U = 其他
!unpack [Bots]将所有补充包存储在指定Bot的库存
!bl [Bots]列出指定 Bot 交易模块中的黑名单用户
!bladd [Bots] [SteamIDs64]为指定 Bot 的黑名单增加用户
!blrm [Bots] [SteamIDs64]为指定 Bot 的黑名单删除用户
!ib [Bots]列出指定 Bot 黑名单中的 apps
!ibadd [Bots] [AppIDs]为指定 Bot 的黑名单中增加 apps
!ibrm [Bots] [AppIDs]为指定 Bot 的黑名单删除 apps
!2fa [Bots]为指定 Bot 生成 2FA 验证
!2fano [Bots]否决指定 Bot 所有的验证请求
!2faoff [Bots]关闭指定 Bot2FA 验证功能
!2faok [Bots]接受指定 Bot 所有的验证请求
!password [Bots]显示指定 Bot 加密后的密码 (在使用 PasswordFormat 时)
!iq [Bots]列出指定 Bot 的优先队列
!iqadd [Bots] [AppIDs]为指定 Bot 的优先队列增加 apps
!iqrm [Bots] [AppIDs]为指定 Bot 的优先队列删除 apps
!nickname [Bots] [Nickname]改变指定 Bot 的昵称
!input [Bots] [Type] [Value]给予指定 Bot 输入类型,Headless 模式下工作
Type:DeviceID, Login, Password, SteamGuard, SteamParentalPIN, TwoFactorAuthentication
!help弹出帮助信息 (链接到 Wiki 指令页面)
!update检查在 GitHub 的更新 (默认每 24 小时进行一次)
!version显示当前版本信息

附录

如何获取 Steam 群组 ID

在你所创建的 Steam 群组的页面的地址末尾添加 /memberslistxml/?xml=1

例如:https://steamcommunity.com/groups/mogeasf/memberslistxml/?xml=1

然后在 <groupID64> 标签中就可以找到类似于 103582791462949118 的数字,这就是 Steam 群组 ID 了。

Steam 群组 ID

如何获取 SteamID

首先打开你的 Steam 个人主页 ([用户名] -> 个人资料),复制网页地址

Steam 群组 ID

打开网页:http://steamrep.com

在搜索框中粘贴上刚刚复制的网页地址,搜索

Steam 群组 ID

然后搜索框中的一串数字就是 SteamID

Steam 群组 ID

如何注册 Steam 网页 API 密匙

点击这个链接 (需要科学上网):https://steamcommunity.com/dev/apikey

登录,就可以获取生成的网页 API 了

域名名称随便什么是都可以,不影响使用的。

ASF 详细配置说明

ASF 使用 C# 开发,所以配置文件中的配置语句也是带有类型的。

ASF 支持如下类型:

  • bool:布尔型;只接收 truefalse 数值。
  • byte:字节型;接受 0 至 255 的数字。
  • ushort:无符号短整形;接受 0 至 65535 的数字。
  • uint:无符号整型;接受 0 至 4294967295 的数字。
  • ulong:无符号长整型;接受 0 至 18446744073709551615 的数字。
  • string:字符串;接受英文字母,需要用双引号 (“”) 包裹起来。
  • HashSet:无符号数组;接受一个数组。

ASF.json 详细配置说明

[bool] “Debug” (默认:false):该程序是否以调试模式运作。调试模式中,ASF 将在可执行文件所在位置创建一个特殊的 debug 文件夹,当中能够包含 ASFSteam 服务器之间的完整通讯内容。调试信息能帮助查找关于网络的问题。除非是开发者需要,用户不要用调试模式运行 ASF。ASF 在调试模式下性能会降低,如非开发者要求记录调试日志,不要将其开启。注意:调试日志包含诸如 Steam 登陆密码等敏感信息。所以不要将你的调试日志在任何场所公开。ASF 开发者只会要求将其发送至他的电子邮箱。

[bool] “Headless” (默认:false):该配置定义程序是否以无标头模式运行。当处在无标头模式中,ASF会假定其在服务器上运行,因此不会尝试读取诸如2FA码、Steam令牌码、密码以及任何需要ASF操作的宝贵数据。该模式对用服务器运行ASF的用户有用,比如在要求2FA码时,ASF将静默终止操作并停用账号。除非用户在服务器上使用ASF,并确认其能够在非无标头模式下运作,否则请将该配置禁用。无标头模式下将拒绝任何用户的干预,你的账户在需要你的协助的情况下不会启动。这在服务器状态下有用,能够中止任何要求凭证的操作,而非一直等待玩家提供相应信息。

[bool] “AutoUpdates” (默认:true):是否开启自动更新。如果使用 Docker 部署可以考虑关闭,因为 Docker 不允许容器自动重启。

[bool] “AutoRestart” (默认:true):是否在更新后自动重启。

[byte] “UpdateChannel” (默认:1):该配置定义自动更新的通道,目前 ASF 支持两种通道 1 为稳定版,2 为实验版。稳定版通道是默认的发布通道,适合大多数用户。实验版通道不单提供稳定版,还包含为高阶用户及其他开发者用来测试新特性、验证bug修复或是给予未来计划特性反馈的预发布版。实验版通常包含未被修复的 bug,尚处在开发中的特性或是重写的实现。如果你不认为自己是高阶用户,请保持默认的 1(稳定版)更新通道。

[byte] “SteamProtocol” (默认:6):该配置定义 ASF 内置 Steam 客户端所用的网络协议。目前仅支持2种数值 - 6代表特定的TCP协议,17代表特定的UDP协议。使用其他数值结果都是采用默认数值6。在你尝试应对特定防火墙,或是尝试设置代理时,从TCP切换到UDP可能会有效。UDP Steam协议目前尚为试验性功能,使用请自担风险。除非你有充足的理由修改该配置,请将其保持默认。

[byte] “SteamOwnerID” (默认:0):ASF 所有者的 SteamIDASF 所有者可以使用全局指令 (例如:!exit!restart!update 等 )

[byte] “MaxFarmingTime” (默认:10):最大挂卡时间。

[byte] “IdleFarmingPeriod” (默认:3):当ASF没有任何游戏可挂卡时,它会以 “IdleFarmingPeriod” 配置中设定小时周期,周期性检查是否有新游戏需要挂卡。数值设定为 0 可禁用该特性。

[byte] “FarmingDelay” (默认:3):挂卡延迟。ASF为了正常运作,会以 “FarmingDelay” 设定的分钟内定期检查目前挂卡的游戏,判断该游戏是否挂卡完毕。将该数值设置过低会导致发送过多的 Steam 请求,设置过高会让 ASF 在游戏挂卡完毕后依然继续为其挂卡。默认值应该适用于多数用户,不过若是你有许多 Bot 运行,可能需要将其延长至 30 分钟以限制过多的 Steam 请求。由于 ASF 采用基于事件的机制,其会在账户有新物品时检查徽章页面,所以通常我们就不需要按照固定周期进行检查,但对于 Steam 网络传达的信息也不能完全信赖 - 这也就意味着还是需要周期性检查(在 Steam 网络不知会物品掉落信息等情况下)。除非你有足够的理由编辑该选项,请将其保持默认。

[byte] “LoginLimiterDelay” (默认:7):登陆间隔延迟。如上述提到的那样,Steam 拥有登录请求的数目限制。同时也包含短时间内的过多登录。ASF 通过 “LoginLimiterDelay” 设定的秒数来限定两次连续登录的时间间隔。默认值 7 的设定基于同时连接 100 个 Bot 的情况考量,也应该满足大多数用户的需求。用户可能会因为拥有少量 Bot 的情况下降低数值,甚至将其更改为 0,这时候 ASF 将无视延迟并很快连接 Steam。这里需要警示一下,设定太低可能会导致 Steam 暂时封禁你的 IP,让所有的登陆都会出现 「InvalidPassword(无效密码)」报错。除非你有充足的理由修改该配置,请将其保持默认。

[byte] “InventoryLimiterDelay” (默认:3):物品请求延长。与上述配置类似,获取 Steam 物品栏信息同样拥有频数限制,需要在物品请求中加入一定间隙。ASF 将确保每次物品请求至少留有 “InvetoryLimiterDelay” 设置的秒数间隙。默认值 3 是基于同时连接 100 个 Bot 的情况考量,也应该满足大多数用户的需求。用户可能会因为拥有少量Bot的情况下降低数值,甚至将其更改为 0。这是 ASF 将无视延迟并更快地获取steam物品信息。需要警示的是,将该数值设置过低会导致Steam暂时封禁你的IP,结果就是所有物品请求失败。除非你有充足的理由修改该配置,请将其保持默认。

[bool] “ForceHttp” (默认:false):默认情况下 ASF 会优先使用 https 协议。然而,极少数情况下,你可能想要从 https 切换回 http 这种兼容性更好的方式。这时候可以将 “ForceHttp” 数值设为 true。使用该设置并不确保 ASF 所有请求都以 htt p发送,一些服务(比如 GitHub api)仅支持 https。这种情况下,没有办法通过 http 使用这些服务,ASF 会直接拒绝发送 https 请求,其结果就是部分请求失败。如果你并不在调试网络,强烈推荐继续使用安全且加密的 https。除非你有充足的理由修改该配置,请将其保持默认。

[byte] “HttpTimeout” (默认:60):该配置定义 ASF 发送 HTTP(S) 请求的间隙,单位为秒。默认数值 60 应该适合大多数用户,然而,如果你的网络传输过慢,可能会想提升该数值(比如 90)。要记住更大的数值并非修复与 Steam 服务器连接缓慢或是中止的神药,有时候也不得不接受 Steam 服务器无响应并之后尝试连接的事实。将该数值设置过高会无故等待,并降低全局性能。除非你有充足的理由修改该配置,请将其保持默认。

[string] “WCFHostname” (默认:localhost):主机名,也是“全局地址”,由 WCF 使用。该配置仅在 WCF 启动时生效。ASF 默认仅仅监听来自localhost 地址以确保没有其他机器能够访问。这是一道安全措施,进入 WCF 界面可能会让攻击者掌管你的 ASF 进程,并带来极大影响。然而,当你清楚自己要做什么,比如限制 WCF 的链接,使用类似 iptables 的功能,可能会将该配置(自担风险)限制设为较为宽松,比如设置 “0.0.0.0” 让任意网络地址启动 WCF。需记住该配置需要在服务器与客户端上(如果两者不在一台机器上)正确设置。除此以外,用户还可使用数值 null。这将导致 ASF 每次启动都会询问该配置(如果你不想暴露服务器的 IP,这可能是有效的安全手段)。除非你有充足的理由修改该配置,请将其保持默认。

[ushort] “WCFPort” (默认:1242):WCF 运行的端口。

[bool] “LogToFile” (默认:true):该配置定义 ASF 是否应该保留最近运行的 log.txt 文件。之前已经说明,日志文件用于分析 ASF 行为时十分有用,也是汇报 bug 时的关键。不过另一方面,如果用户有许多 Bot,日志文件体积可能会快速增长,为了不让 ASF 将所有内容记录在日志中,你可能想要重定向标准输出(stdout)至别处。比如说,使用 grep 进行过滤。这种情况下,你并不对日志文件感兴趣,而且有自己的方式记录日志,便可以将日志记录禁用。

[bool] “Statistics” (默认:true):该配置定义 ASF 是否启用统计。统计帮助 ASF 开发者提供开发周期的重要信息。如果你想要看到新版本出炉,bug 被修复,以及实现的新特性,请将其保持在默认数值 true

[HashSet] Blacklist:不挂卡的游戏

Bot.json 详细配置说明

[bool] “Enabled” (默认:false):该 Bot 是否启

[bool] “StartOnLaunch” (默认:true):该 Bot 是否在 ASF 启动后自动启用。如果为 false 则需要使用 !start 命令手动启动

[string] “SteamLogin” (默认:null):用来登陆 Steam 的用户名;为空着表示在启动时输入

[string] “SteamPassword” (默认:null):用来登陆 Steam 的登录密码;为空着表示在启动时输入

[string] “SteamParentalPIN” (默认:”0”):家长控制 PIN

[string] “SteamApiKey” (默认:null):你的 Steam 网页 API 密钥点击这里生成。可用于与 “SteamTradeMatcher” 配合自动接收交易请求。API 密钥仅对生成该密钥的账户有用,不能将同一密钥用于多个 Bot,每个 Bot 都拥有自己独有的 API 密钥。另外该配置并不强制要求填写,ASF 会在默认值 null 的情况下正常运作,但这样会削减部分需要密钥的功能,比如自动接收交易请求。如何注册 Steam 网页 API 密匙

[ulong] “SteamMasterID” (默认:0):管理员的 SteamID;管理员可以使用与 Bot 相关的控制命令。如果不添加「小号」的话保持默认即可。如何获取 SteamID

[ulong] “SteamMasterClanID” (默认:0):Steam 群组的 ID;如果有很多 Bot 需要控制,可以创建一个 Steam 群组,然后群主管理员可在群组聊天中使用与 Bot 相关的控制命令进行控制。如果不添加「小号」的话保持默认即可。如何获取 Steam 群组 ID

[bool] “CardDropsRestricted” (默认:false):该帐号是否有卡牌掉落 (游玩 2 小时以上才会掉卡)。新规则中,好像所有的帐号都有这个限制了,最好开启

[bool] “DismissInventoryNotification” (默认:true):关闭每张掉落的卡牌都会触发物品通知。设置为 false 的情况下,每张掉落的卡牌都会触发物品通知,Steam 通知系统会告诉你收到了新物品。这可能会相当扰人,而且也没太大意义,因此 ASF 默认将其关闭。如果你仍然想接收这些信息,可将该选项切换为 false

[bool] “FarmOffline” (默认:false):是否开启「离线挂卡」。挂卡会让你的 Steam 状态显示“当前正在游戏”,这可能会误导你的朋友,让他们以为你真的在玩这款游戏。离线挂卡就能解决这个问题,在你用 ASF 挂卡时,账号不会显示正在玩某款游戏。离线挂卡依然会增加被挂游戏的游戏时长,并会在个人资料的“最新动态”中显示出来。

**[bool] “HandleOfflineMessages” **(默认:false):是否接收离线消息;配合 “FarmOffline” 使用

[bool] “AcceptGifts” (默认:false):自动接收所有礼物

[bool] “SteamTradeMatcher” (默认:false):自动接收交易请求;需要配合 “SteamApiKey” 使用

[bool] “IsBotAccount” (默认:false):是否为「小号」

[bool] “ForwardKeysToOtherBots” (默认:false):是否转发密匙 (激活码)。转发密匙在拥有 2 个以上帐号的情况下有用。如果为 true,Bot 将会在激活失败 (已拥有) 的情况下将密匙发送给其他 Bot 激活。这样很容易触发:「 (短期内) 激活失败次数过多」,慎用

[bool] “DistributeKeys” (默认:false):分发密匙 (激活码)。如果为 true,Bot 接收密匙并尝试激活接收到的第一个密匙,无论成功失败,将剩下的密匙转发给其他 Bot 激活,以此类推。可以在一定程度上减少触发:「 (短期内) 激活失败次数过多」的可能。但是 “ForwardKeysToOtherBots” 会影响这个操作,多数情况你可能只想启用两种配置之一,如果这两个配置被同时启用,那么已经激活该游戏的 Bot 在收到密钥后还会将其转发给另一个 Bot,那么就要注意发送的密钥必须小于 Bot 数量才行。如果你不确定是否该启用这项特性,请将其保持默认值 false

[bool] “UseAsfAsMobileAuthenticator” (默认:false):是否将ASF用作手机认证器,既是否为账号启用「ASF 2FA」机制。该特性相当复杂,你可以点击这里获知更多信息。该特性可能会锁死你的账号,因此不要在未充分理解「ASF 2FA」的情况下使用。

[bool] “ShutdownOnFarmingFinished” (默认:false):是否挂卡结束后关闭。ASF 在启动后会一直“占据”账号。当指定账号挂卡结束后,ASF 还会进行周期性检查(“IdleFarmingPeriod” 设定的小时数),如果该账号添加了新游戏,那么将会继续进行挂卡,这过程不用重启进程。这对多数用户来说很有用,毕竟ASF能够自动继续挂卡。然而,你可能会想在账号挂卡结束后停止该进程,那可以将该配置设置为 true 来实现。启用之后,ASF 在挂卡完毕后会注销账号,不会再周期性检查或是启用账号。当全部 Bot 挂卡完毕后,ASF 进程也将完全退出。如果你不确定是否该启用这项特性,请将其保持默认值 false

[bool] “SendOnFarmingFinished” (默认:false):挂卡结束后发送交易。当某个账号挂卡完毕后,其会自动向 “SteamMasterID” 发起全部挂卡所得的交易请求,这项功能十分便利。该选项的作用与 !loot 指令一样,因此需要设置 “SteamMasterID”,同时还需要设置下方介绍的 “SteamTradeToken”。此外账号需要满足交易条件,除非你使用「ASF 2FA」进行自动化操作,不然需要手动通过电子邮件来确认交易。

[string] “SteamTradeToken” (默认:null):如果 “SteamMasterID” 在其他 Bot 的好友列表里,Bot 可立即发起交易请求,不用操心交易凭证。因此可将该配置维持默认值 null。然而如果你的好友列表不打算列入其他Bot账号,就需要生成并输入 “SteamMasterID” 的交易凭证。于官网登陆 Steam 账号,点击这里便能查看交易URL。凭证就是URL当中&token=之后的8位字母。你需要将其复制粘贴到 “SteamTradeToken” 之中。请记住不要复制整个URL,只需要凭证代码。

[byte] “SendTradePeriod” (默认:0):该配置与上述的 “SendOnFarmingFinished”作用类似,但有一点不同,该配置并非在挂卡结束后才发起交易,而是以 “SendTradePeriod” 当中设置的小时数为周期发起。这对想要时常 !loot 其他 Bot 的用户来说很有帮助。默认值 0 禁用了该项特性,如果你想要每隔一天进行收获,就设置该配置数值为 24。如果你不确定是否该启用这项特性,请将其保持默认值 0

[byte] “AcceptConfirmationPeriod” (默认:0):该配置只有为账号启用「ASF 2FA」情况下生效。最近 Valve 加入了额外的限制,所有发到市场的请求都需要额外的「ASF 2FA」验证。该选项与 !2faok 指令功能相同,ASF 会以 “AcceptConfirmationPeriod” 设置的分钟数为间隔,自动接收所有发起的验证。默认值 0 禁用了该特性,通常来说并不推荐启用该选项。如若启用,请将间隔设置较长时间,比如 30 分钟。如果你不确定是否该启用这项特性,请将其保持默认值 0

[string] “CustomGamePlayedWhileIdl” (默认:null):ASF 空置时意味着无事可做(比如账号挂卡结束),其依然能显示“非Steam游戏中:CustomGamePlayerdWhileIdle”。默认值null禁用该特性。

[HashSet] “GamesPlayedWhileIdle” (默认:0):与上面较为类似,如果ASF不在挂卡状态时其能继续挂载你所指定的游戏。被指定的游戏时长会增长。默认值0禁用该特性。

参考


·End·