从零开始的ASF详细食用手册(windows限定)

字数 8128阅读 15809

1 在windows上部署ASF

我用的是腾讯云1核1G1M的CVM,没错,就是旧版学生套餐每个月1块钱那个。
系统是Windows Server 2012 R2 标准版 64位。

1.1 测试版Pre-release

V3.1.1.8 功能最新最全(理论上)但可能有未能预知的BUG
[ASF V3.1.1.8官方下载链接]
[ASF V3.1.1.8度盘分流] 提取码c1sr

V3.1.1.8 Changes since V3.1.1.1:

  • [!] Re-enabled link-time optimizations, which results in smaller overall ASF size (especially in OS-specific variants). Please let me know if you find any weird errors before this goes stable!
  • IPC GUI improvements, new features, optimizations and bugfixes.
  • BGR improvements (more verbosity, used and unused output files).
  • Added CommandPrefix global config property.
  • Fixed V3.1 regression that made SteamTarget no longer possible to be declared (ref: #765).
  • Changed default value of SteamProtocols from 1 to 3 due to #186) issue being resolved.
  • Removed obsolete GET /Api/Command IPC endpoint.
  • Usual amount of other code improvements, optimizations and bugfixes.

1.2 稳定版Latest release

V3.1.1.1
[ASF V3.1.1.1官方下载链接]
[ASF V3.1.1.1度盘分流] 提取码c1sr

1.3 运行ASF

以上下载链接更新于2018.4.2。
压缩包是免安装的,解压之后直接执行里面的ArchiSteamFarm.exe即可。


2 配置ASF

2.1 不想折腾能用就行的简易配置

在ASF\config文件夹里新建文本文档,重命名为bot1(名字随意).json。
用记事本打开,输入以下内容并保存:

{
  "SteamLogin": "你的Steam账号",
  "SteamPassword": "你的Steam密码",
  "Enabled": true
}

然后启动ASF就行了。

2.2 ASF全局配置详解

配置文件生成器[官方链接]版本 V3.1.1.3+
[ASF全局配置wiki]

BASIC 基本

SteamOwnerID ASF最高权限拥有者
"SteamOwnerID": "你Steam大号的64位ID"
指定了ASF程序的所有者,即你的Steam大号,所有的bot示例都会被这个账号完全控制。
因为你可能会帮朋友挂卡,之类的。
64位ID可到SteamRepCN查询。
此外,如果你想启用IPC功能,你必须设置一个有效值。

MISC 杂项

CommandPrefix 命令前缀
"CommandPrefix": "!"
是否使用命令前缀 使用何种命令前缀
假如值为"!",所有!开头的指令才被视为命令。
如果为空,ASF会阅读每一条指令并判断它是否为命令,毫无疑问,这将降低性能。
建议保持默认值"!"不变,当然你也可以修改为你觉得更顺手的前缀,比如"@"或"#"。

Statistics 是否开启统计功能
"Statistics": true
除非你有理由要修改此属性,否则应该将其保留为默认值开启。

Blacklist 黑名单
"Blacklist": [730]
AppID写进黑名单的游戏将会被ASF无视。
这个设置的作用是当夏促/圣诞时,夏促/圣诞徽章会被视为“可掉卡游戏”;
ASF会不断挂这个“游戏”,然而事实是再怎么挂也不会掉卡,因此ASF会无限卡住。
或者你只是单纯的不想挂某个游戏(即使它可以掉卡)时也可以用;
比如你刚买了CSGO,但你不想要这几张卡,只想让它保持在0小时,那么你可以像下面这么写:

CurrentCulture 当前语言
CurrentCulture": null
默认值为空,ASF会试图使用当前操作系统的语言。
如果你不想使用本机语言,可以使用此设置选择你喜好的任何有效语言。

MaxTradeHoldDuration 最大交易持续时间
"MaxTradeHoldDuration": 15
ASF允许交易最多持续MaxTradeHoldDuration天。
这个选项只对设定了TradingPreferences的SteamTradeMatcher的机器人有意义,不会影响Master/SteamOwnerID的交易,也不会影响捐赠(不损失任何物品的交易)。
除非你有理由要修改此属性,否则应该将其保留为默认值15天。

UPDATES 更新

AutoRestart 是否自动重启
"AutoRestart": true
更新程序/修改配置/到了UpdatePeriod设定的时间 是否自动重启
如果你不知道如何设置这个属性,强烈建议将其保留为默认值开启。

UpdateChannel 自动更新版本
"UpdateChannel": 1
设置更新ASF使用的版本,有三种:
0 不更新 禁用所有有关更新的相关功能 包括更新命令
1 稳定版(Stable)
2 实验版(Experimental)
如果你不知道如何设置这个属性,建议将其保留为默认值1。

UpdatePeriod 自动更新检测周期
"UpdatePeriod": 24
设置ASF每隔UpdatePeriod小时检查是否有新版本。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值24小时。

REMOTE ACCESS 远程访问

IPCPassword IPC密码
"IPCPassword": null
设置IPC的密码。
当值为空时,会跳过验证密码这一步,IPC会处理所有收到的请求。
当设置了密码后,短时间内发送大量错误密码的IP将会被IPC暂时ban掉。
如果你使用IPC功能,强烈建议使用一个强度足够高的安全密码。
如果你没有使用IPC功能,不用理会此项设置。

IPCPrefixes IPC前缀
"IPCPrefixes": ["http://127.0.0.1:1242/"]
设置IPC的地址和端口。
详情见3.1。

Headless 是否开启无头模式
"Headless": false
如果开启无头模式,ASF会假定它在服务器上运行,因此它不会尝试读取二次验证码/移动端验证码/Steam密码/ASF操作要求的任何其他变量等关键账户凭据。
在无头模式下,所有的用户交互都会被被拒绝。
如果登录时需要凭据,ASF会自动中止尝试登录,而不是无限等待用户输入凭据。
此外,ASF还将调整为适合服务器的配置。比如,在windows上防止系统休眠。
如果你不知道如何设置这个属性,强烈建议将其保留为默认值关闭。

CONNECTION 连接

SteamProtocols Steam协议
"SteamProtocols": 3
设置ASF连接到Steam时使用的协议,可多选:
0 None No protocol
1 TCP Transmission Control Protocol
2 UDP User Datagram Protocol
4 WebSocket WebSocket
除非你要调试具体问题,否则你应该确保ASF可以自由使用任何协议,而不是特定的某一种或者两种协议。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值3。

ConnectionTimeout 连接超时判定
"ConnectionTimeout": 60
设置ASF各种网络行为算作超时的时间。
对于大多数人来说,应该设置为60秒;如果你的网络很卡,你可能想设置为90。
如果此值过高,会导致ASF做很多无用功,降低整体性能。
如果此值过低,失效的请求仍会被解析,降低整体稳定性和性能。
除非你有理由要修改此属性,否则应该将其保留为默认值60秒。

PERFORMANCE 性能

ConfirmationsLimiterDelay 确认延时
"ConfirmationsLimiterDelay": 10
Steam的服务器处理各种请求时会有一个速率限制,因此ASF必须增加一些额外的延迟。
ASF会确保在连续两次二次验证以及进行各种交易相关操作之间至少有ConfirmationsLimiterDelay秒的延时。
默认值是通过测试设定的,如果你不想遇到问题,就不该降低这个值。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值10秒。

FarmingDelay 挂卡检测延时
"FarmingDelay": 15
每隔FarmingDelay分钟,ASF会检查目前挂的游戏是否还能掉卡。
对于大多数人来说,默认值的15分钟是非常合适的;
如果你有很多机器人同时运行,你可以考虑增加到30分钟。
如果此值过高,会导致卡已经掉完了,ASF还在挂。
如果此值过低,会导致发送给Steam的请求过多。
只要Steam网络正常,降低这个值不会以任何方式提高挂卡效率,同时显著增加网络开销。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值15分钟。

GiftsLimiterDelay 礼物限制延时
"GiftsLimiterDelay": 1
Steam的服务器处理各种请求时会有一个速率限制,因此ASF必须增加一些额外的延迟。
ASF会确保在连续两次礼物/key/licenses之间至少有GiftsLimiterDelay秒的延时。
此外,这个设置还将被用作ASF请求的全局延时设置,比如!命令。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值1秒。

IdleFarmingPeriod 空闲挂卡周期(严酷的监工)
"IdleFarmingPeriod": 8
当ASF没有挂卡时,每隔IdleFarmingPeriod小时检查库里是否有新的可掉卡游戏。
当购买/激活新的可掉卡游戏时,ASF不需要额外配置也能自动检测到。
这个选项的作用是当库里本来没有交易卡的游戏添加了交易卡后(原来不能掉卡的老游戏可以掉卡了),ASF可以检测到这类游戏(检查徽章页面统计可掉卡游戏)。
如果你不知道如何设置这个属性,建议将其保留为默认值8小时。

InventoryLimiterDelay 库存限制延时
"InventoryLimiterDelay": 3
Steam的服务器处理各种请求时会有一个速率限制,因此ASF必须增加一些额外的延迟。
ASF会确保在连续两次库存操作之间至少有InventoryLimiterDelay秒的延时。
默认值3秒是基于超过100个bot实例的!loot命令设置的,应该满足大部分用户的要求。
如果你的bot数量很少(甚至只有2个),你可以将此值设置为0,即取消这个延时。
ASF会忽略这个延时,!loot库存时会快很多。
但要小心,如果延时太低而操作次数太多可能会导致Steam暂时ban掉你的IP。
如果你没有小号,就只有一个Steam号挂挂卡,你用不到此设置,你连!loot功能都用不到。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值3秒。

LoginLimiterDelay 登录限制延时
"LoginLimiterDelay": 10
Steam的服务器处理各种请求时会有一个速率限制,因此ASF必须增加一些额外的延迟。
ASF会确保在连续两次登录之间至少有LoginLimiterDelay秒的延时。
默认值10秒是基于超过100个bot实例的登录操作设置的,应该满足大部分用户的要求。
如果你的bot数量很少(甚至只有1个),你可以将此值设置为0,即取消这个延时。
ASF会忽略这个延时,连接到Steam时会快很多。
但要小心,如果延时太低而操作次数太多可能会导致Steam暂时ban掉你的IP。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值10秒。

MaxFarmingTime 最大挂卡时间
"MaxFarmingTime": 10
你应该知道,Steam不是永远都能正常工作,甚至有时候你确实在玩游戏,但Steam没有记录游戏时间。
ASF允许挂某个游戏的最大时间为MaxFarmingTime小时。
这样可以防止奇怪的情况发生,而且当Steam发布一个新的徽章时防止ASF进一步恶化(详见Blacklist设置)。
默认值的10小时应该足够一个游戏掉完所有的卡。
如果此值过高,会导致挂卡进程卡在奇怪的地方。
如果此值过低,会导致明明还能掉卡却被跳过(没错,有游戏需要9个小时才能掉完所有卡)。
除非你有特别的理由要修改此属性,否则应该将其保留为默认值10小时。

OptimizationMode 优化模式
"OptimizationMode": 0
ASF支持两种模式:
0 MaxPerformance 最高性能
1 MinMemoryUsage 最少内存占用
默认情况下,ASF使用负载均衡,使用所有CPU内核,多个CPU线程,多接口和多线程任务。
除非你的内存小到令人发指,可以设置为1(开启优化模式),否则都不该启用此设置。

ADVANCED 高级

Debug 是否打开调试模式
"Debug": false
在调试模式下,会建立一个debug目录,ASF和Steam之间的通信信息都会保存在里面。
此外,一些程序行为将会有更详细的说明。
开启调试模式将使ASF降低性能,影响稳定性,在不必要的地方产生多余的详细信息。
即使是有目的性地调试特定问题,也只需要短期地开启调试模式。
调试模式下产生的调试目录里包含敏感信息,包括Steam密码等,请妥善保管。
除非你是拥有相当知识量的开发者,并且有特定需要使用调试模式,否则都不该启用此设置。

BackgroundGCPeriod 垃圾回收周期
"BackgroundGCPeriod": 0
此设置专门用于帮助超低内存机器,可以减少内存使用量,但会影响ASF的效率并造成额外的CPU使用率。
默认值为0时禁用此设置。
除非你的内存小到令人发指,可以设置为10,否则都不该启用此设置。

EXAMPLE 示例

{
    "AutoRestart": true,
    "BackgroundGCPeriod": 0,
    "Blacklist": [],
    "CommandPrefix": "!",
    "ConfirmationsLimiterDelay": 10,
    "ConnectionTimeout": 60,
    "CurrentCulture": null,
    "Debug": false,
    "FarmingDelay": 15,
    "GiftsLimiterDelay": 1,
    "Headless": false,
    "IdleFarmingPeriod": 8,
    "InventoryLimiterDelay": 3,
    "IPCPassword": null,
    "IPCPrefixes": [
        "http://127.0.0.1:1242/"
    ],
    "LoginLimiterDelay": 10,
    "MaxFarmingTime": 10,
    "MaxTradeHoldDuration": 15,
    "OptimizationMode": 0,
    "Statistics": true,
    "SteamOwnerID": 0,
    "SteamProtocols": 3,
    "UpdateChannel": 1,
    "UpdatePeriod": 24
}

2.3 BOT配置详解

配置文件生成器[官方链接]版本 V3.1.1.3+
[BOT配置wiki]

BASIC 基本

SteamLogin 你的Steam账号用户名
"SteamLogin": "username"

SteamPassword 你的 Steam 账户密码
"SteamPassword": "password"

Enabled 是否启用此bot
"Enabled": false
如果启用,ASF运行时bot也会自动运行。
如果关闭,bot需要手动启动。

IsBotAccount 此bot是否是小号
"IsBotAccount": false
小号会自动拒绝除UserPermission MasterSteamClanID以外的交易报价/好友请求/群组邀请。

Paused 是否设置bot初始状态为暂停挂卡
"Paused": false

SECURITY 安全

PasswordFormat Steam密码格式
"PasswordFormat": 0
0 明文
1 AES加密
2 ProtectedDataForCurrentUser
如果你想启用加密,你设置的密码也应该匹配此格式。
除非你知道自己在干什么,否则应该将其保留为默认值0。

UseLoginKeys 是否使用登录密钥机制
"UseLoginKeys": true
登录密钥存储在BotName.db的文件里并自动更新。
类似“记住我”功能。
如果你想每次运行ASF都手动输入二次验证码,可以将值设置为false。

ACCESS 访问

SteamUserPermissions Steam账户权限
"SteamUserPermissions": {}
映射关系:
0 None 没有任何权限 参考值
1 FamilySharing 家庭共享用户 拥有最小权限 参考值
2 Operator bot实例 拥有最基本的权限 主要是添加licenses和激活key
3 Master 大号 拥有控制给定bot的所有权限
小号会自动接受来自Master的交易报价/好友请求/群组邀请

SteamParentalPIN 家庭监护PIN
"SteamParentalPIN": "0"

COMMUNITY 社区

HandleOfflineMessages 是否处理离线消息
HandleOfflineMessages": false
如果启用此功能,bot将不能以通常的方式接受命令,因为它没有登录到Steam社区。
但你可以发送命令到离线的bot,离线bot也能做出响应。
但是,bot会阅读并标记所有离线消息,因此,如果不是ASF命令而是你的好友给你发消息也会被标记,导致你可能会错过好友的消息。
此外,本功能算是一个不够可靠的黑科技,可能有效,也可能失效。
所以完全有可能离线bot收不到你的命令。
如果你不知道如何设置这个属性,强烈建议将其保留为默认值false。

TRADING 交易

SteamTradeToken Steam交易Token
"SteamTradeToken": "你的交易token"
如果大号小号不是好友,则需要TradeToken才能完成交易。
交易token在[Steam交易报价页面]最下面的「第三方网站」获取:
steamcommunity.com/tradeoffer/new/?partner=[9位数字打码]&token=[你的交易token]

TradingPreferences 交易规则
"TradingPreferences": 0
交易规则,可多选:
0 None 只接受来自Master的交易报价 当然!loot命令也有效
1 AcceptDonations 若不损失任何东西则接受交易
2 SteamTradeMatcher 使用类似SteamTradeMatcher换卡网的规则[更多信息]
4 MatchEverything 需设置SteamTradeMatcher结合规则接受包括不等价的交易报价
8 DontAcceptBotTrades 不接受!loot命令

LootableTypes 提取类型
"LootableTypes": [1,3,5]
执行!loot命令时从小号提取哪种物品,可多选:
0 Unknown 不属于下列任何一种的其他类型
1 BoosterPack 补充包
2 Emoticon 表情
3 FoilTradingCard 闪卡
4 ProfileBackground 背景
5 TradingCard 交易卡
6 SteamGems 宝珠
Valve可能会给Steam添加一些新的项目,新项目会被分类为0(Unknown类型物品),如果!loot新项目可能会产生无法预料的错误。
因此,强烈建议不要包括0(Unknown类型物品),即使你想提取所有物品。

MatchableTypes 匹配类型
"MatchableTypes": [5]
TradingPreferences设置为SteamTradeMatcher的匹配类型:
0 Unknown 不属于下列任何一种的其他类型
1 BoosterPack 补充包
2 Emoticon 表情
3 FoilTradingCard 闪卡
4 ProfileBackground 背景
5 TradingCard 交易卡
6 SteamGems 宝珠
注意:ASF不是专门的交易bot,它不会在乎价格或者品质。
假如你使用它,比如说Emoticon类型,它可能会把两个罕见表情跟一个罕见表情和一个普通表情交易。
如果你要使用此功能,请手动进行二次评估。
除非你知道自己在干什么,否则应该将其保留为默认值5(只换卡)。

AcceptGifts 是否接受礼物
"AcceptGifts": false

DismissInventoryNotifications 是否忽略库存提醒
"DismissInventoryNotifications": false
每次掉卡时都会触发一个库存通知,这是非常无谓且让人讨厌的行为。
如果启用此设置,ASF会自动阅读库存通知(不止掉卡,包括你交易或者其他方式获得库存而产生的通知)。
当然,此选项只影响库存通知,其他所有通知类型(新留言/新邀请/新礼物/未读聊天信息)都会保留。

FARMING 挂卡

FarmingOrder 挂卡规则
"FarmingOrder": 0
ASF首选的挂卡规则:
0 Unordered 无序 略微提高CPU性能
1 AppIDsAscending 先挂AppID数字小的游戏 [App1111]和[App99999] 挂[App1111]
2 AppIDsDescending 先挂AppID数字大的游戏 [App1111]和[App99999] 挂[App99999]
3 CardDropsAscending 先挂剩余掉卡数少的游戏 [剩1张卡可掉]和[剩4张卡可掉] 挂[剩1张卡可掉]
4 CardDropsDescending 先挂剩余掉卡数多的游戏 [剩1张卡可掉]和[剩4张卡可掉] 挂[剩4张卡可掉]
5 HoursAscending 先挂已游玩时间少的游戏 [游戏时间0小时]和[游戏时间3小时] 挂[游戏时间0小时]
6 HoursDescending 先挂已游玩时间多的游戏 [游戏时间0小时]和[游戏时间3小时] 挂[游戏时间3小时]
7 NamesAscending 先挂首字母顺序靠前的游戏 [ACO]和[CSGO] 挂[ACO]
8 NamesDescending 先挂首字母顺序靠前的游戏 [ACO]和[CSGO] 挂[CSGO]
9 Random 顺序完全随机
10 BadgeLevelsAscending 先挂徽章等级低的游戏 [0级徽章]和[1级徽章] 挂[0级徽章]
11 BadgeLevelsDescending 先挂徽章等级高的游戏 [0级徽章]和[1级徽章] 挂[1级徽章]
12 RedeemDateTimesAscending 先挂先入库的游戏 [3月31日入库]和[4月1日入库] 挂[3月31日入库]
13 RedeemDateTimesDescending 先挂后入库的游戏 [3月31日入库]和[4月1日入库] 挂[4月1日入库]
这个规则设置只是一个建议倾向,ASF并不会严格遵守。
在不影响性能的情况下ASF会尽量遵守。

SendTradePeriod 库存转移周期
"SendTradePeriod": 0
SendTradePeriod小时,会把库存自动发往Master。
如果你不知道如何设置这个属性,建议将其保留为默认值0(关闭此功能)。

AutoSteamSaleEvent 自动完成事件
"AutoSteamSaleEvent": false

众所周知,Steam夏促/圣诞活动中,每天浏览发现队列或者投票会额外掉卡。
如果启用本功能,每6小时都会自动检查并完成活动。
注意:由于Valve的决策是不可知的,ASF不保证此功能能够正常工作。
因此完全有可能这个选项根本不起作用,ASF不接受任何错误报告,也不提供此选项的技术支持。
此功能没有绝对保证,使用者后果自负。

IdlePriorityQueueOnly 空闲优先级队列
"IdlePriorityQueueOnly": false
如果启用此功能,ASF将跳过所有不在名单上的游戏,优先挂你想要挂的游戏。
如果你没有添加任何有游戏到队列,ASF会以为此bot没有可挂的游戏而空转。
如果你不知道如何设置这个属性,建议将其保留为默认值false。

IdleRefundableGames 是否挂可退款游戏
"IdleRefundableGames": true
Steam的退款规则是“2周内购买的游戏时间不超过2小时的游戏可以无条件退款”。
如果选否,则ASF不会挂任何14日内购买/激活的游戏。

FarmOffline 是否显示正在玩挂卡游戏
"FarmOffline": false
当你在挂卡的时候,你可能会误导你的好友你正在游玩某个游戏,实际上你只是在挂卡。
启用此功能,则Steam账号不会显示“XXX游戏中”;但仍然会计算游戏时间,并显示到个人资料的最新动态中。

SendOnFarmingFinished 自动转移库存
"SendOnFarmingFinished": false
如果启用此功能,当ASF挂完卡之后会把库存自动发往Master,当小号从其他人那获得库存时也会自动转发。
如果大号小号不是好友,则需要TradeToken才能完成交易。

ShutdownOnFarmingFinished 挂完卡后是否自动关闭
"ShutdownOnFarmingFinished": false
ASF是“占领”一个账户活动的进程,即ASF运行某bot时,该bot的steam账户是在线状态。
挂完卡后bot会中止“XXX游戏中”的状态,但steam仍然在线。
而检测到有新卡可以掉落时,bot让steam进入“XXX游戏中”的状态挂卡而不用重新启动。
如果启用此功能,bot挂完卡会关闭,这意味着steam将离线,ASF也不会定期检查是否有新卡可以掉落了。
当所有bot都停止,ASF也不是以服务器模式运行的时候,ASF进程将会关闭。

CUSTOMIZATION 自定义

SteamMasterClanID Master的群组ID
"SteamMasterClanID": 0
进入http://steamcommunity.com/groups/[你的群组名]/memberslistxml/?xml=1
第二行<groupID64>[这个18位数字就是你的群组ID]</groupID64>
如果你没有“本人专用挂卡Steam群组”,建议将其保留为默认值0。

GamesPlayedWhileIdle 空闲时挂游戏时间游戏
"GamesPlayedWhileIdle": []
当ASF无卡可挂时,设定挂时数的Steam游戏。

CustomGamePlayedWhileFarming 挂卡时显示的非Steam游戏名字
"CustomGamePlayedWhileFarming": "挂卡睡觉中"
ASF进行挂卡时,显示“非Steam游戏中 XXX”。

CustomGamePlayedWhileIdle 空闲时显示的非Steam游戏名字
"CustomGamePlayedWhileIdle": "睡觉中"
当ASF无卡可挂时,显示“非Steam游戏中 XXX”。

MISC 杂项

RedeemingPreferences 分发key规则
"RedeemingPreferences": 0
分发key规则:
0 None 不分发
1 Forwarding 将所有不能激活的key自动发给其他小号
2 Distributing 均分所有key 这意味着每个bot都能从中获得一个key 当你为同一个游戏激活许多key时使用这个选项才有意义
4 KeepMissingGames 当不能激活key时(短时间内超出激活限制/缺少本体的DLC/锁区key)跳过规则2 如果该bot已经拥有或者购买该游戏(即库里有这个app)正常转发 如果规则2没有启用则本规则无效

PERFORMANCE 性能

HoursUntilCardDrops 掉卡前预挂时间
"HoursUntilCardDrops": 3
根据多年统计、无数账户的经验来看,Steam有一个掉卡限制,如果是新账户或者申请过退款将导致信用下降,触发掉卡限制,所有游戏的前3个小时都不会掉落任何卡。
当然,这只是一种理论,而不是一种明文规则。
ASF会先把每个游戏挂满HoursUntilCardDrops小时,然后再挂还有剩余卡片可掉落的游戏。

EXAMPLE 示例

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

3 启用ASF的IPC功能

[IPC相关wiki]

3.1 本地测试

编辑ASF\config\ASF.json,将其中的内容修改为:

    "IPCPassword": "设置一个IPC密码",
    "IPCPrefixes": [
        "http://127.0.0.1:1242/"
    ],

其中1242这个端口号可以设置为你喜欢的端口,建议不要使用默认的1242,比如我就改成了6666。

  1. 然后用ArchiSteamFarm.exe创建一个快捷方式。

  2. 右键快捷方式-属性。

  3. 「目标」一栏在路径最后加上--server,注意--server与路径之间有一个空格。
    比如我的就是C:\ASF\ArchiSteamFarm.exe --server

  4. 然后使用快捷方式启动ASF,看到

    INFO|ASF|StartServer() Starting IPC server on http://127.0.0.1:1242/...
    INFO|ASF|StartServer() IPC server ready!
    

    就说明IPC启用成功了。

  5. 打开浏览器,输入http://127.0.0.1:1242/,进入「ASF | Config Generator」页面,本地测试完成。

3.2 网络测试

3.2.1 下载nginx

[nginx官方下载链接]
[nginx/Windows-1.13.10度盘分流] 提取码c1sr
第三列随便下一个版本,我下的nginx/Windows-1.13.10。

3.2.2 安装nginx

解压,运行nginx-1.13.10\nginx.exe,然后一个命令行窗口会一闪而过,就像闪退一样。
不要慌,是技术调整 正常现象,nginx已经启动了。
验证方法1:
打开任务管理器,可以看到后台有两个名为nginx.exe的进程。
验证方法2:
打开cmd,输入tasklist /fi "imagename eq nginx.exe"并回车。
验证方法3:
打开浏览器,输入http://127.0.0.1/并回车。

3.2.3 配置nginx

编辑nginx-1.13.10\conf\nginx.conf,找到http {标签里的:

    server {
        listen       80;
        server_name  localhost;

将「这三行」改为

    server {
        listen 80;
        server_name  localhost;

        location / {
            proxy_pass http://127.0.0.1:1242;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    server {
        listen       800;
        server_name  localhost;

保存并退出,如果你之前不是用的1242端口,记得这里的proxy_pass http://127.0.0.1:1242;要改成对应的端口。
然后打开cmd,cd [你的nginx.exe所在的目录]进入工作目录,比如我就是cd C:\nginx-1.13.10,然后nginx -s reload更新配置文件。
如果没有任何提示信息说明更新配置成功。

3.2.4 测试效果

然后打开浏览器,输入http://127.0.0.1/并回车,如果进入「ASF | Config Generator」页面则配置成功。
现在不管服务器,打开任意一台电脑,输入你服务器的外网IP,应该都能进入IPC了。


4 做一个自己的Telegram机器人

4.1 友谊是魔法~! ★

首先要保证你的服务器能够连上Telegram。
最简单的测试方法:打开浏览器,输入 https://core.telegram.org/api ,如果能连接就没问题。
如果不能,要么换一台能直连Telegram的服务器,要么使用友谊的魔法~!★☆
记得用使用PAC模式,全局模式会导致nginx服务失效。

4.2 安装Python3.6

[Python3.6.5官方下载链接]
[Python3.6.5度盘分流] 提取码c1sr
打开安装界面第一步一定要记得勾选最下面的「Add Python 3.6 to PATH」
如果你不想慢慢配置环境变量的话。

4.3 注册机器人

打开telegram,跟@BotFather新建对话:
/newbot 新建一个机器人
然后BotFather问你机器人要叫什么名字(昵称),随便取,反正之后可以改。
然后BotFather问你机器人的「用户名」要叫什么,前面无所谓但最后必须以bot结尾,可以mybot/myBot/my_bot/my_Bot等等形式。
然后机器人就建好了,BotFather会告诉你机器人的token。
Use this token to access the HTTP API:后面的一串就是机器人token。

4.4 绑定机器人

先下载人生亦梦写的机器人。
[telegram-bot-asf Github地址]
[telegram-bot-asf 度盘分流] 提取码c1sr

解压之后可以看到telegram-asf.py和requirements.txt两个文件。
如果你用了友谊的魔法~!★☆,打开requirements.txt把第二行的#pysocks改为pysocks
打开cmd,cd [你的telegram-asf.py所在的目录]进入工作目录,比如我就是cd C:\telegram-bot-asf\
然后pip3 install -r requirements.txt安装依赖。

右键telegram-asf.py选择Edit with IDLE编辑:

token = '你的机器人token'
admin = [你的telegram数字ID]  # 多位管理员则用英文逗号,分隔
ipc_address = 'http://127.0.0.1:1242/' # 如果你用的其他端口 改成你的端口
ipc_password = '你的IPC密码'
use_proxy = True  # 如果不使用代理则为False
proxy = 'socks5://127.0.0.1:1080/' # 你没改过的话默认就是这个

保存并退出。

有两点要提一下。
第一,如果你不知道你的telegram数字ID。
Telegram搜索@get_id_bot然后/start,它会告诉你Your Chat ID = 你的telegram数字ID
第二,要不要设置密码。
因为之前我们把IPC接到了外网,不设置密码等于一旦别人摸到你服务器IP就能控制你的ASF
因此要么设置一个足够安全的复杂密码,安心使用网页版IPC;要么不把IPC接到外网,就不用设置密码。

然后直接执行telegram-asf.py就可以了,双击就能运行。

4.5 使用机器人

现在跟你的机器人新建对话就可以开始使用了。
redeem 激活key
addlicense 激活AppID
start 开启机器人
stop 关闭机器人
pause 暂停挂卡
resume 继续挂卡
2fa 显示二次验证码
2faok 确认二次验证请求
version 显示ASF版本
status 机器人状态
GUI菜单 /start

4.5 美化机器人

刚出生的机器人是不是特别丑。
跟@BotFather对话/mybots,选择你的asf机器人。
选择Edit Bot,然后BotFather会列出你的机器人信息并提供Edit选项:
Name 昵称
Description 跟机器人新建对话后提示“它能做什么?”后面的信息
About 机器人资料页显示的介绍
Botpic 头像 选择此选项之后发一张图给BotFather就设置成功了
Commands 命令 最好別乱改
最后的成品效果就是@clsrasfbot这样。


参考资料

ArchiSteamFarm官方wiki
SteamCN论坛《【v3.1.1.1更新】ASF升級V3全教程(Windows OS)》By Singx9
SteamCN论坛《【2018.3.14】Telegram Bot管理ASF【可能有bug】》By 人生亦梦
博客园《windows下nginx的安装及使用方法入门》By 冒雨ing


特别鸣谢

勤恳的大佬JustArchi写的ASF[Github地址]
我在crowdin上反映翻译问题几乎秒回,真是劳模
人生亦梦写的Telegram Bot[Github地址]

推荐阅读更多精彩内容