美化 Steam 个人资料页面,用 ASF 实现自动挂卡。
个人资料页面美化
效果展示
制作艺术作品
想要显示原背景(省事儿)
- 选中背景,点击「查看完整大小」,获取背景图片地址。
- 打开 SteamDesign ,填入 Steam 背景地址,点击 「Change BG」,然后点击 「Download Images」下载切好的图片。
注:Artwork_Middle.png
、Artwork_Right_Top.png
、Avatar.png
分别对应展柜的左图、右图以及头像。
想要自定义角色(需要 PS)
文字版:
- 使用 Photoshop 打开
Steam展柜模板.psd
。
- 导入背景
Cloudy Sky
和角色Asuka
。
- 调整图层顺序,将背景置于底层,显示出来展柜的位置;移动角色至合适位置。
- 复制背景图层。
- 合并背景图层和角色图层。
- 根据模板切割图片。根据图层
1
进行选区(Ctrl
+鼠标左键
点击图层),在激活角色图层的情况下按Ctrl
+J
根据选区创建新图层,得到展柜左侧图片;如法炮制根据图层2
进行选区并得到展柜右侧图片。
- 快速导出为 PNG。
上传流程
- 使用 Chrome/Firefox 等浏览器打开 Steam 个人资料页面,点击「艺术作品」,选择「上传艺术作品」。
- 起名,选择文件,勾选保证创作,按
F12
打开控制台,输入控制台代码后按下回车:
1 | var num= document.getElementsByName("image_width")[0].value; |
- 编辑个人资料,「个人资料背景」选择背景,显示方式为「原始大小」,保存。
- 编辑个人资料,「已展示的展柜」选择「艺术作品展柜」,选择刚才上传的图片,保存。
Steam 真是喜欢前端校验。
资源下载
2020 新版展柜模板: 下载
控制台代码: 下载
自动探索队列
Steam 促销活动中,往往需要探索队列获取卡片。
探索过程可以使用控制台代码自动完成:
1 | (function _exec(){ |
ASF自动挂卡
ASF(ArchiSteamFarm)是一个支持同时挂载多个 Steam 账号的挂卡工具。ASF 不需要后台运行任何 Steam 客户端,不需要启动额外进程,而且能为不限数目的 Steam 账号同时挂卡。
安装
下载 ArchiSteamFarm 后解压。
配置
ASF 配置分为两个主要部分:全局配置以及单个 Bot 配置。Bot 是运作在 ASF 进程当中的单个 Steam 账号,ASF 的运作至少需要启动一个 Bot,而 Bot 的数量没有上限,也就是说可以给多个 Steam 账号(Bot)同时挂卡。
ASF 解压后的目录结构如下:
1 | ├── config |
目录结构说明:
- ArchiSteamFarm.exe:用来启动程序。
- config:包含ASF进程以及所有 Bot 配置的文件夹。
- ASF.json:ASF全局配置文件。该配置用来制定ASF进程的行为,全局作用于整个程序。你可以(也应该)根据自身需求修改全局配置。该内容将在下文详述。
- ASF.db:ASF全局数据库文件。其作为ASF全局持久性存储文件,用来储存一些关键信息。请用户不要编辑该文件。
- Bot*.json:Bot 配置文件。用来制定该 Bot 的行为,包含所有用于正常运作的信息,配置只会影响该 Bot。
- Bot*.db:自动生成的 Bot 数据库文件。该文件用来储存 Bot 的关键数据。不要编辑该文件。
- Bot*.bin:Bot 特殊文件。包含 Steam 安全哈希信息,安全哈希用作 Steam 令牌机制的授权。不要编辑该文件。
最基础的 Bot,可以使用昵称作为文件名,如 sannaha.json
,使用默认的策略来给所有游戏挂卡,新手只需创建该配置文件即可:
1 | { |
配置说明:
- Enabled:是否启用该 Bot。
- SteamLogin:登录 Steam 的用户名,默认值为
null
。如果不想让配置文件留有敏感信息,可以保持其默认值null
,但需要在每次启动 ASF 时输入用户名。 - SteamPassword:登录 Steam 的密码,默认值为
null
。如果不想让配置文件留有敏感信息,可以保持其默认值null
,但需要在每次启动 ASF 时输入密码。
基础 Bot 的进阶形式,能够非常细致地调试所需的 Bot 和 ASF 状态:
1 | { |
配置说明:
- Enabled(启用) - bool:默认值为
false
。该属性定义 Bot 是否启动。将其启动并不意味着 Bot 开始运作,而是让 ASF “留意”到这是一个有效且配置完毕的 Bot,可以被Start()
或是Stop()
。该属性能够让你轻松启用与禁用 Bot,而不用去删除配置文件。默认设置下所有 Bot 都被禁用,如果你想要让其生效,需要将其更改为true
。 - StartOnLaunch(随程序启动)- bool:默认值为
true
。该属性定义 Bot 是否在 ASF 启动后自动启用。通常你会想将其保持在true
,如果决定将该属性变更为false
,那么需要通过!start
在 ASF 启动后手动启用 Bot。除非你有理由修改该属性,请将其保持默认。 - SteamLogin(Steam用户名) - string:默认值为
null
。该属性为你用来登录 Steam 的用户名。如果你想要每次启动 ASF 输入用户名,可以保持其默认值null
。这在你不想让配置文件留有敏感信息时可能有所帮助。 - SteamPassword(Steam密码) - string:默认值为
null
。该属性为你登录 Steam 的账户密码。如果你想要每次启动 ASF 输入密码,可以保持其默认值null
。这在你不想让配置文件留有敏感信息时可能有所帮助。 - SteamParentalPIN(Steam 家长控制 PIN) - string:默认值为”0”,该属性为你的家长控制 PIN。ASF 需要访问家长控制的限制内容,因此如果你之前启用了该特性,需要提供 PIN 码用以解锁。默认值”0”意味着该账户未启用家长控制。你也可将该属性数值设置为
null
,这样在启动 ASF 时会被要求手动输入 PIN 码。这在你不想让配置文件留有敏感信息时可能有所帮助。 - SteamApiKey - string:默认值为
null
。该属性为你的 Steam 网页 API 密钥。ASF 在多种情况下需要用到你的 API 密钥,比如接受或拒绝交易请求,因此你需要在此处填写 Steam API 密钥以使功能生效。API 密钥可 点击这里 生成,登录并点击注册便可获得。当中的域名信息对于 ASF 并不重要,可任意填写。需要注意 API 密钥仅对生成该密钥的账户有用,不能将同一密钥用于多个 Bot ,每个 Bot 都拥有自己独有的 API 密钥。另外该属性并不强制要求填写,ASF 会在默认值null
的情况下正常运作,但这样会削减部分需要密钥的功能,比如接受或是拒绝交易。如果你的账号能够生成和使用 API 密钥,那么非常推荐你填写此项,因为该密钥不仅仅用于交易,还用来启用其他特性与增强已有功能,比如为!owns
指令使用更为优化的方式,让其可用于私密个人资料,而不单单依靠 Steam 社区功能。 - SteamMasterID(Steam主ID) - ulong:默认值为
0
。该属性为 64 位形式的主 Bot SteamID。主 Bot 拥有执行与 Bot 有关的 ASF 指令权限。如果用户配置主账号且不打算使用任何指令,那么将该属性保持为默认值即可。如果用户想配置副账号,或是执行与 Bot 有关的指令,那就需要填写 SteamID 以控制 Bot。ASF 能够自动接收由 SteamMasterID 发送的好友申请、聊天申请以及交易。另外 ASF 通过!loot
指令发送物品时也会使用该 SteamID,可以 点击这里 获取 64 位形式的 SteamID。SteamID 的形式诸如76561198006963719
这样。 - SteamMasterClanID(Steam主群组ID) - ulong:默认值为
0
。该属性与上述类似,但其为能让 Bot 自动加入,参与群聊的 Steam 群组所用的 SteamID。获取群组 SteamID 可在群组页面网址的末尾加上/memberslistxml/?xml=1
,比如http://steamcommunity.com/groups/ascfarm/memberslistxml/?xml=1
,页面当中可在<groupID64>
标签找到类似于103582791440160998
这样形式的 SteamID。如果你没有“挂卡群组”,将其保持默认便好。 - CardDropsRestricted(卡牌掉落限制) - bool:默认值为
false
。该属性定义账户是否限制卡牌掉落。卡牌掉落限制意味着该账号只有在游戏游玩 2 小时以上才开始掉落卡牌。可惜目前并没有任何魔法手段来侦测此项,所以 ASF 只能依赖于用户的判断来设定。该属性影响所使用的卡牌掉落算法。设置合理会最大化受益并最大程度减少挂卡的时间。不过目前关于该选项究竟设置true
还是false
为好没有明确的定论,如果用户不确定是否该设置此项,建议将其保持默认值false
,如果你留意到 2 小时内没有任何卡牌掉落,可以将其修改到true
以加速掉落速度。貌似注册较早的账号不需要限制卡牌掉落时间,但这仅仅是理论而已,不该作为规则来用。 - DismissInventoryNotification(忽略物品通知) - bool:默认值为
true
。每张掉落的卡牌都会触发物品通知,Steam 通知系统会告诉你收到了新物品。这可能会相当扰人,而且也没太大意义,因此 ASF 默认将其关闭。如果你仍然想接收这些信息,可将该选项切换为false
。 - FarmOffline(离线挂卡) - bool:默认值为
false
。离线挂卡对主账号来说极为有用。要知道挂卡会让你的 Steam 状态显示“当前正在游戏”,这可能会误导你的朋友,让他们以为你真的在玩这款游戏。离线挂卡就能解决这个问题,在你用 ASF 挂卡时,账号不会显示正在玩某款游戏。这功能归功于 ASF 本身不需要登录 Steam 社区的特性,其实该账号的确在玩这款游戏,只不过是处在“半离线”的模式下。离线挂卡依然会增加被挂游戏的游戏时长,并会在个人资料的“最新动态”中显示出来。另外,为 Bot 启用离线挂卡特性会让其不响应指令(直接),这一点在启用副帐号时较为重要。查看:HandleOfflineMessages - HandleOfflineMessages(处理离线信息) - bool:默认值为
false
。当离线挂卡特性启用时,因为并未登录 Steam 社区, Bot 将不会接受来自 SteamMasterID 的指令。然而,其依然能接收离线信息,也可以进行回复。如果你为副账号使用了离线挂卡特性,将HandleOfflineMessages
属性设置为true
就可以给离线的 Bot 发送指令。要留心这项特性基于 Steam 离线信息,并会在自动回复后将其标记为已读,因此该选项并不推荐给主账号使用,因为 ASF 会强制读取并标记所有的离线信息以监听离线指令,这会影响朋友给你发送的离线信息。如果你不确定是否需要启用该特性,请将其保持默认值false
。 - AcceptGifts(接受礼物) - bool:默认值为
false
。一旦启用后,ASF 将自动接收 Bot 收到的所有礼物,这不仅仅涉及 SteamMasterID,也包括其他的账号发来的礼物。如果 Bot 已经拥有该游戏,那么就会被收入库存之中。该选项只推荐为副账号设置,通常你不会想让主账号自动接收所有的礼物。须留意那些通过电子邮件发送的礼物并不通过客户端渠道,所以 ASF 不会自动接收那些礼物,必须直接将礼物通过账号发送给其他 Bot 才行。如果你不确定是否该启用这项特性,请将其保持默认值false
。 - SteamTradeMatcher(Steam交易匹配) - bool:默认值为
false
。将其设置成true
时,ASF 会接收来自 SteamMasterID 的捐赠和交易,同时也接受所有关于卡牌的交易。该选项配合 SteamTradeMatcher 公开列表非常有效,但也可以单独使用。要留意该选项涉及到接收和接受交易,因此需要设置好 SteamApiKey。还需要提到的是这项特性只能用来接受普通卡牌和闪卡,ASF 并不会接收背景与表情交易,因为这些的价格变动过于频繁,你需要亲自查看。ASF 将忽略任何不确定的交易内容,因此更像是一个自动交易助手,并不能完全替代你的工作。强烈推荐在启用该选项时使用 ASF 2FA,这样你就不用人工确认每项交易。通常你会为主账号启用该项特性,但也在副账号上启用来囤货。如果你不确定是否该启用这项特性,请将其保持默认值false
。 - IsBotAccount(Bot账号类型) - bool:默认值为
false
。该属性用于定义当前 Bot 采用的账号是被看作主号(false
),还是被看作小号(true
)。ASF 尽可能为两种类型提供更好的兼容性,因此技术上并不需要将小号的这项属性调整为true
,但这么做会让 ASF 更好地调整逻辑。此时,默认值false
会让 ASF 忽略 SteamMasterID 以外账号的无效交易和好友请求,这对主号来说是没错的。将该属性更改为true
将直接拒绝无效交易与好友请求,这样更适合小号。该逻辑可能会根据需求在之后版本扩展内容。如果你不确定该如何设定该属性,请将其保持默认值false。 - ForwardKeysToOtherBots(转发密钥) - bool:默认值为
false
。转发密钥在 ASF 至少启用了两个 Bot 的情况下有效。该选项的作用形象描述就是“我有一个key,只想用来挂卡,无所谓哪个 Bot 账号启用这个key。”将该属性设置为true
, Bot 首先尝试自己激活密钥,如果激活不成功(比如已经拥有了这款游戏),那么 Bot 就会将密钥转发给其他 Bot ,供其他账号激活。但这样会很快触发 OnCooldown(激活失败次数过多)状态:账号短时间内激活密钥失败次数达到上限,Steam 就会暂时禁止其激活功能。因此,该属性的合理用法是省去检查哪个账号没有某款游戏的步骤,不宜滥用。如果你不确定是否该启用这项特性,请将其保持默认值false
。 - DistributeKeys(分发密钥) - bool:默认值为
false
。当ForwardKeysToOtherBots
启用时,一个 Bot 如果收到了三个密钥,那么它首先会尝试全部都自己激活,激活失败才会转发给其他 Bot ,以此类推。你可能会想改变这种方式,让首先收到三个密钥的 Bot 只用一个,将另外两个分别转发给 Bot2 和 Bot3。这在你拥有许多相同游戏密钥,想将其分发给所有 Bot 的情况下非常有用。这种情况下效率和成功率更高,因为所有 Bot 只尝试激活一个密钥,所以也会降低触发 OnCooldown 的几率。不过要注意ForwardKeysToOtherBots
也会影响这个操作,多数情况你可能只想启用两种属性之一,如果这两个属性被同时启用,那么已经激活该游戏的 Bot 在收到密钥后还会将其转发给另一个 Bot ,那么就要注意发送的密钥必须小于 Bot 数量才行。如果你不确定是否该启用这项特性,请将其保持默认值false
。 - UseAsfAsMobileAuthenticator(将 ASF 用作手机认证器) - bool:默认值为
false
。该属性决定 ASF 是否为账号启用“ASF 2FA”机制。该特性相当复杂,你可以 点击这里 获知更多信息。该特性可能会锁死你的账号,因此不要在未充分理解 ASF 2FA 的情况下使用。在将其切换至true
之前,请仔细阅读 Escrow 页面内容。 - ShutdownOnFarmingFinished(挂卡结束后关闭) - bool:默认值为
false
。ASF 在启动后会一直“占据”账号。当指定账号挂卡结束后,ASF 还会进行周期性检查(IdleFarmingPeriod
设定的小时数),如果该账号添加了新游戏,那么将会继续进行挂卡,这过程不用重启进程。这对多数用户来说很有用,毕竟 ASF 能够自动继续挂卡。然而,你可能会想在账号挂卡结束后停止该进程,那可以将该属性设置为true
来实现。启用之后,ASF 在挂卡完毕后会注销账号,不会再周期性检查或是启用账号。当全部 Bot 挂卡完毕后,ASF 进程也将完全退出。如果你不确定是否该启用这项特性,请将其保持默认值false
。 - SendOnFarmingFinished(挂卡结束后发送所得) - bool:默认值为
false
。当某个账号挂卡完毕后,其会自动向 SteamMasterID 发起全部挂卡所得的交易请求,这项功能十分便利。该选项的作用与!loot
指令一样,因此需要设置 SteamMasterID,同时还需要设置下方介绍的 SteamTradeToken。此外账号需要满足交易条件,除非你使用 ASF 2FA 进行自动化操作,不然需要手动通过电子邮件来确认交易。 - SteamTradeToken(Steam交易凭证) - string:默认值为
null
。如果(SteamMasterID)在其他 Bot 的好友列表里,Bot 可立即发起交易请求,不用操心交易凭证。因此可将该属性维持默认值null
。然而如果你的好友列表不打算列入其他 Bot 账号,就需要生成并输入 SteammMasterID 的交易凭证。于官网登录 Steam 账号, 点击这里 便能查看交易 URL。凭证就是 URL 当中&token=
之后的 8 位字母。你需要将其复制粘贴到SteamTradeToken
之中。请记住不要复制整个 URL,只需要凭证代码。 - SendTradePeriod(发起交易间隔) - byte:默认值为
0
。该属性与上述的SendOnFarmingFinished
作用类似,但有一点不同,该属性并非在挂卡结束后才发起交易,而是以SendTradePeriod
当中设置的小时数为周期发起。这对想要时常!loot
其他 Bot 的用户来说很有帮助。默认值0
禁用了该项特性,如果你想要每隔一天进行收获,就设置该属性数值为24
。如果你不确定是否该启用这项特性,请将其保持默认值0
。 - AcceptConfirmationPeriod(接受验证间隔) - byte:默认值为
0
。该属性只有为账号启用 ASF 2FA 情况下生效。最近 Valve 加入了额外的限制,所有发到市场的请求都需要额外的 2FA 验证。该选项与!2faok
指令功能相同,ASF 会以AcceptConfirmationPeriod
设置的分钟数为间隔,自动接收所有发起的验证。默认值0
禁用了该特性,通常来说并不推荐启用该选项。如若启用,请将间隔设置较长时间,比如 30 分钟。如果你不确定是否该启用这项特性,请将其保持默认值 0。 - CustomGamePlayedWhileIdle(自定义空置游戏) - string:默认值为
null
。ASF 空置时意味着无事可做(比如账号挂卡结束),其依然能显示“非Steam游戏中:CustomGamePlayerdWhileIdle”。默认值null
禁用该特性。 - GamesPlayedWhileIdle(空置进行游戏) - HashSet
:默认值为 0
。与上面较为类似,如果 ASF 不在挂卡状态时其能继续挂载你所指定的游戏。被指定的游戏时长会增长。默认值0
禁用该特性。
全局配置文件为 ASF.json
,内容形式如下:
1 | { |
配置说明:
- Debug(调试模式) - bool:默认值为
false
。该属性定义程序是否以调试模式运作。调试模式中,ASF 将在可执行文件所在位置创建一个特殊的 debug 文件夹,当中能够包含 ASF 与 Steam 服务器之间的完整通讯内容。调试信息能帮助查找关于网络的问题。除非是开发者需要,用户不要用调试模式运行 ASF。ASF 在调试模式下性能会降低,如非开发者要求记录调试日志,不要将其开启。注意:调试日志包含诸如 Steam 登录密码等敏感信息。所以不要将你的调试日志在任何场所公开。ASF 开发者只会要求将其发送至他的电子邮箱。 - Headless(无标头模式) - bool:默认值为
false
。该属性定义程序是否以无标头模式运行。当处在无标头模式中,ASF 会假定其在服务器上运行,因此不会尝试读取诸如 2FA 码、Steam 令牌码、密码以及任何需要 ASF 操作的宝贵数据。该模式对用服务器运行 ASF 的用户有用,比如在要求 2FA 码时,ASF 将静默终止操作并停用账号。除非用户在服务器上使用 ASF,并确认其能够在非无标头模式下运作,否则请将该属性禁用。无标头模式下将拒绝任何用户的干预,你的账户在需要你的协助的情况下不会启动。这在服务器状态下有用,能够中止任何要求凭证的操作,而非一直等待玩家提供相应信息。 - AutoUpdates(自动更新) - bool:默认值为
true
。该属性定义 ASF 是否在新版本发布时自动更新本体。更新内容相当重要,其不单单会增加新特性,同时也修复 bug、增强性能、提升稳定性等等。该属性启用后,ASF会在新版本发布后自动下载、替换并重启。ASF 会以 24 小时的间隔查询是否有更新内容。更新进程通常只会替换核心可执行程序(ArchiSteamFarm.exe
),其不会触及任何配置或是数据库文件。除非用户有充足的理由禁用该特性,请一直将其保持启用。 - AutoRestart(自动重启) - bool:默认值为
true
。该属性定义 ASF 是否在需要时重启。目前唯一可能会让 ASF 重启的事件就是上述的自动更新。但之后可能会有变化。一般说来,重启包含两部分操作:创建新进程,以及退出目前进程。对多数用户来说,将其设定为true是没问题的,然而,如果你通过自己的脚本或是 Mono 运行 ASF,可能想要完全掌控启动进程,以避免 ASF 在别处后台静默启动。这种情况下你可以将其设定为false
。但要记住这种设定下你需要自行重启进程,因为 ASF 只会退出而不会启动新进程,如果你没有添加任何的逻辑语句,ASF 将会在你手动启动之前一直停止运作。ASF 退出时会提供暗示成功(0
),和非成功(非0
)的错误代码,这可帮助你在脚本中添加正确的逻辑语句,避免因失败自动重启的情况,或者至少在本地留有一份log.txt
供之后分析。在 Mono 的部分提供了示例脚本,请记住无论属性如何设置,!restart
指令仍能重启 ASF 进程,!exit
也是同样。除非你有理由禁用该特性,请将其保持启用。 - UpdateChannel(更新通道) - byte:默认值是
1
。该属性定义自动更新的通道,目前 ASF 支持两种通道 -1
为稳定版,2
为实验版。稳定版通道是默认的发布通道,适合大多数用户。实验版通道不单提供稳定版,还包含为高阶用户及其他开发者用来测试新特性、验证 bug 修复或是给予未来计划特性反馈的预发布版。实验版通常包含未被修复的 bug,尚处在开发中的特性或是重写的实现。如果你不认为自己是高阶用户,请保持默认的1
(稳定版)更新通道。实验版通道适用于了解如何汇报 bug,处理问题以及给予反馈的用户。不提供任何技术支持。如果用户想要完全取消所有新版本的检测,也可以将UpdateChannel
设置为0
(未知),不推荐这么做,除非是有不想收到更新提示的特定原因。 - SteamProtocol(Steam协议) - byte:默认值为
6
。该属性定义 ASF 内置 Steam 客户端所用的网络协议。目前仅支持 2 种数值 -6
代表特定的 TCP 协议,17
代表特定的 UDP 协议。使用其他数值结果都是采用默认数值6
。在你尝试应对特定防火墙,或是尝试设置代理时,从 TCP 切换到 UDP 可能会有效。UDP Steam 协议目前尚为试验性功能,使用请自担风险。除非你有充足的理由修改该属性,请将其保持默认。 - SteamOwnerID(Steam所有者ID) - byte:默认值是
0
。该属性有点类似每个 Bot 的 SteamMasterID,但是,其中的 SteamID 用以定义 ASF 进程的所有者。SteamMasterID 能够完全掌控 Bot ,但像是!exit
、!restart
或是!update
这样的全局指令只由SteamOwnerID使用。这样做很便利,你可能会想为朋友挂卡,但不允许他们控制ASF进程,比如说通过!exit
指令退出程序。默认值0
表示 ASF 进程没有所有者,意味着没有账户能够执行 ASF 全局指令。要记住 WCF 在 SteamOwnerID 提供的状态下才能生效,所以必须提供可用的数值,这在子端机器上也是同样的。 - MaxFarmingTime(最大挂卡时间) - byte:默认值为
10
。你要知道,Steam 并非总是正常运作,有时候可能会发生诸如事实上你在玩游戏,但游戏时间未被记录的怪异情况。ASF 能够让单独挂卡模式下,单款游戏最多挂上 MaxFarmingTime 设定的小时数内,超过时限便认为该游戏挂卡结束。这不仅能防止怪异情况下挂卡停滞的情况发生,也能避免部分情况下 Steam 发布新徽章会停滞 ASF 挂卡进程的情况(查看:Blacklist
)。10 小时的默认值应该足够让一款游戏掉落所有的卡片。将该选项设置过低可能会导致部分尚有卡牌的游戏被略过(没错,部分游戏甚至需要 9 小时来挂卡),将其设定过高可能会导致挂卡进程停滞,除非你有足够的理由修改属性,将其保持默认就好。 - IdleFarmingPeriod(空置挂卡周期) - byte:默认值为
3
。当 ASF 没有任何游戏可挂卡时,它会以IdleFarmingPeriod
属性中设定小时周期,周期性检查是否有新游戏需要挂卡。数值设定为0
可禁用该特性。也请查看:ShutdownOnFarmingFinished
。 - FarmingDelay(挂卡延迟) - byte:默认值为
15
。ASF 为了正常运作,会以FarmingDelay
设定的分钟内定期检查目前挂卡的游戏,判断该游戏是否挂卡完毕。将该数值设置过低会导致发送过多的 Steam 请求,设置过高会让 ASF 在游戏挂卡完毕后依然继续为其挂卡。默认值应该适用于多数用户,不过若是你有许多 Bot 运行,可能需要将其延长至 30 分钟以限制过多的 Steam 请求。由于 ASF 采用基于事件的机制,其会在账户有新物品时检查徽章页面,所以通常我们就不需要按照固定周期进行检查,但对于 Steam 网络传达的信息也不能完全信赖 - 这也就意味着还是需要周期性检查(在 Steam 网络不知会物品掉落信息等情况下)。除非你有足够的理由编辑该选项,请将其保持默认。 - LoginLimiterDelay(登录间隔延迟) - byte:默认值为
7
。如上述提到的那样,Steam 拥有登录请求的数目限制。同时也包含短时间内的过多登录。ASF 通过LoginLimiterDelay
设定的秒数来限定两次连续登录的时间间隔(排除 2FA 登录的情况,这需要越快越好)。默认值7
的设定基于同时连接 100 个 Bot 的情况考量,也应该满足大多数用户的需求。用户可能会因为拥有少量 Bot 的情况下降低数值,甚至将其更改为0
,这时候 ASF 将无视延迟并很快连接 Steam。这里需要警示一下,设定太低可能会导致 Steam 暂时封禁你的 IP,让所有的登录都会出现 InvalidPassword(无效密码)报错。除非你有充足的理由修改该属性,请将其保持默认。 - InventoryLimiterDelay(物品间隔延迟) - byte:默认值为
3
。与上述属性类似,获取Steam物品栏信息同样拥有频数限制,需要在物品请求中加入一定间隙。ASF将确保每次物品请求至少留有InvetoryLimiterDelay设置的秒数间隙。默认值3是基于同时连接100个 Bot 的情况考量,也应该满足大多数用户的需求。用户可能会因为拥有少量 Bot 的情况下降低数值,甚至将其更改为0。这是ASF将无视延迟并更快地获取steam物品信息。需要警示的是,将该数值设置过低会导致Steam暂时封禁你的IP,结果就是所有物品请求失败。除非你有充足的理由修改该属性,请将其保持默认。 - ForceHttp(强制Http) - bool:默认值为
false
。默认情况下ASF会优先使用https安全协议。然而,极少数情况下,你可能想要从https切换回http这种兼容性更好的方式。这时候可以将ForceHttp数值设为true。使用该设置并不确保ASF所有请求都以http发送,一些服务(比如GitHub api)仅支持https。这种情况下,没有办法通过http使用这些服务,ASF会直接拒绝发送https请求,其结果就是部分请求失败。如果你并不在调试网络,强烈推荐继续使用安全且加密的https。除非你有充足的理由修改该属性,请将其保持默认。 - HttpTimeout(Http间隔) - byte:默认值为
60
。该属性定义ASF发送HTTP(S)请求的间隙,单位为秒。默认数值60应该适合大多数用户,然而,如果你的网络传输过慢,可能会想提升该数值(比如90)。要记住更大的数值并非修复与Steam服务器连接缓慢或是中止的神药,有时候也不得不接受Steam服务器无响应并之后尝试连接的事实。将该数值设置过高会无故等待,并降低全局性能。除非你有充足的理由修改该属性,请将其保持默认。 - WCFHostname(WCF主机名) - string:默认值为
"localhost"
。这是主机名,也是“全局地址”,由WCF使用。该属性仅在WCF启动时生效。ASF默认仅仅监听来自”localhost”地址以确保没有其他机器能够访问。这是一道安全措施,进入WCF界面可能会让攻击者掌管你的ASF进程,并带来极大影响。然而,当你清楚自己要做什么,比如限制WCF的链接,使用类似iptables的功能,可能会将该属性(自担风险)限制设为较为宽松,比如设置”0.0.0.0”让任意网络地址启动WCF。需记住该属性需要在服务器与客户端上(如果两者不在一台机器上)正确设置。除此以外,用户还可使用数值null。这将导致ASF每次启动都会询问该属性(如果你不想暴露服务器的IP,这可能是有效的安全手段)。除非你有充足的理由修改该属性,请将其保持默认。 - WCFPort(WCF端口) - ushort:默认值为
1242
。这是WCF运行的默认端口。用户可能想要修改该数值,推荐设置超过1024的端口数值,因为在Unix类型操作系统上,0-1024通常需要root权限。记住该属性必须在服务器和客户端(如果两者并非一台机器)上设置一致。除非你有充足的理由修改该属性,请将其保持默认。 - LogToFile(日志至文件) - bool:默认值为
true
。该属性定义ASF是否应该保留最近运行的log.txt文件。之前已经说明,日志文件用于分析ASF行为时十分有用,也是汇报bug时的关键。不过另一方面,如果用户有许多 Bot ,日志文件体积可能会快速增长,为了不让ASF将所有内容记录在日志中,你可能想要重定向标准输出(stdout)至别处。比如说,输出至grep过滤器。这种情况下,你并不对日志文件感兴趣,而且有自己的方式记录日志,便可以将日志记录禁用。然而,在没有手段记录日志的情况下,请将该属性设为默认值true,即便你确定用不到日志文件 - 如果有打算汇报bug,这对ASF开发者查找bug来说至关重要。除非你有充足的理由修改该属性,请将其保持默认。 - Statistics(统计) - bool:默认值为
true
。该属性定义ASF是否启用统计。统计帮助ASF开发者提供开发周期的重要信息。如果你想要看到新版本出炉,bug被修复,以及实现的新特性,请将其保持在默认数值true。目前统计仅包含极少量信息 - 使用ASF的账户将自动加入我们的steam群组与群聊。统计开放给所有人,所以你可以查看我们的群组信息,当中的会员数目以及多少 Bot 正在运行中。我们不会收集任何其他信息,尤其是像密码、steam用户名或是当前使用的操作系统这样的敏感信息,将该特性开启将会帮助ASF开发者们了解目前有多少用户使用该程序。除非你有理由修改属性,请将其保持默认。 - Blacklist(黑名单) -
HashSet<unint>
:默认值为267420
、303700
、335590
、368020
、425280
这些appID
。很不幸Steam喜欢将夏季/冬季特卖徽章设定为“有卡牌掉落”,这会迷惑ASF,以为他们是可以挂卡的有效游戏。如果没有黑名单的话,ASF将会突然为这些实质上不是游戏的内容挂卡而停滞。Blacklist能让这些徽章不参与挂卡,所以ASF可以在选择要为哪些内容挂卡时静默忽略这些。ASF默认包含两种黑名单 - GlobalBlacklist全局黑名单,嵌入在了ASF进程中,不能被用户编辑。以及普通的Blacklist,也就是这段所描述的内容。该属性的唯一目的就是能让你将不该挂卡的游戏加入。嵌入式黑名单将尽可能快速地更新,因此在你使用最新版本时不用更新自身黑名单。当Valve发布新的特卖徽章时,你可以通过该属性保持ASF的正常运作。除非你有充足的理由修改该属性,请将其保持默认。
配置中属性的数据类型如下:
bool
:true / falsebyte
:0 ~ 255ushort
:0 ~ 65535uint
:0 ~ 4294967295ulong
:0 ~ 18446744073709551615string
:字符串。除非使用null
,字符串应当包含在双引号之中。HashSet<uint>
:无符号整形集合,接受任何数字。
启动
运行 ArchiSteamFarm.exe
,启动 ASF。根据配置,可能要求输入账号、密码和令牌。
指令
在 ASF 运行过程中,可以输入 C
键后输入命令:
命令 | 说明 | 示例 |
---|---|---|
!2fa |
为当前bot生成2FA临时凭证 | |
!2fa <BOT> |
为指定bot生成2FA临时凭证 | |
!2fano |
否决当前bot所有的验证请求 | |
!2fano <BOT> |
否决指定bot所有的验证请求 | |
!2faoff |
关闭当前bot的2FA功能 | |
!2faoff <BOT> |
关闭指定bot的2FA功能 | |
!2faok |
接受当前bot所有的验证请求 | |
!2faok <BOT> |
接受指定bot所有的验证请求 | |
!addlicense <appID1,appID2...> |
使当前bot激活指定ID的游戏(仅限于免费游戏) | !addlicense 440,570 |
!addlicense <BOT> <appID1,appID2...> |
使指定bot激活指定ID的游戏(仅限于免费游戏) | |
!exit |
退出ASF | |
!farm |
重启当前bot的挂卡模块 | |
!farm <BOT> |
重启指定bot的挂卡模块 | |
!help |
弹出帮助信息(链接到wiki的命令页面) | |
!help <BOT> |
弹出帮助信息(链接到wiki的命令页面) | |
!leave |
让bot离开当前的群组聊天。该指令只有在群组聊天中生效。 | |
!loot |
将当前bot所有Steam物品发起交易给SteamMasterID | |
!loot <BOT> |
将指定bot所有Steam物品发起交易给SteamMasterID | |
!owns <appID,gameName...> |
检查当前bot是否已经拥有指定ID(和/或)游戏名(可以是部分游戏名)的游戏 | !owns 440,570 ,!owns 440,dota ,!owns roach |
!owns <BOT> <appID,gameName...> |
检查指定bot是否已经拥有指定ID(以及/或是)游戏名(可以是部分游戏名)的游戏 | |
!pause |
暂停/继续当前bot的自动挂卡 | |
!pause <BOT> |
暂停/继续指定bot的自动挂卡 | |
!play <appID1,appID2,...> |
切换至手动挂卡,让当前bot启动指定ID的游戏。ID使用数值0将会返回自动挂卡状态 | |
!play <BOT> <appID1,appID2,...> |
切换至手动挂卡,让指定bot启动指定ID的游戏。ID使用数值0将会返回自动挂卡状态 | |
!redeem <key1,key2,...> |
当前bot激活给予的全部密钥 | |
!redeem <BOT> <key1,key2,...> |
指定bot激活给予的全部密钥 | |
!rejoinchat |
强制所有bot重新加入群聊 | |
!restart |
重启ASF进程 | |
!start <BOT> |
启动指定的bot | |
!status |
输出当前bot的状态 | |
!status <BOT> |
输出指定bot的状态 | |
!statusall |
输出所有bot以及ASF本身的状态 | |
!stop |
停止当前bot | |
!stop <BOT> |
停止指定bot | |
!update |
检查SF在GitHub的更新(这项操作默认每24小时进行一次) | |
!version |
显示ASF当前版本信息 |