ASF技术支持 您所在的位置:网站首页 steam令牌登录代码 ASF技术支持

ASF技术支持

2023-12-04 01:41| 来源: 网络整理| 查看: 265

机器人配置

您应该已经了解,每个机器人都有自己的配置文件,其 JSON 结构如下: 首先,您需要决定机器人的名称(例如 1.json、main.json、primary.json 或者随便什么名字 AnythingElse.json,然后再开始配置。

注意:机器人不能被命名为 ASF(因为该关键字是留给全局配置文件的),ASF 也会忽略所有以点号开头的配置文件。

机器人配置文件有如下的结构:

{    "AcceptGifts": false,    "AutoSteamSaleEvent": false,    "BotBehaviour": 0,    "CompleteTypesToSend": [],    "CustomGamePlayedWhileFarming": null,    "CustomGamePlayedWhileIdle": null,    "Enabled": false,    "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,    "SteamMasterClanID": 0,    "SteamParentalCode": null,    "SteamPassword": null,    "SteamTradeToken": null,    "SteamUserPermissions": {},    "TradingPreferences": 0,    "TransferableTypes": [1, 3, 5],    "UseLoginKeys": true}  

下面是对所有选项的解释:

AcceptGifts

这是一个默认值为 false 的 bool 类型属性。 当启用时,ASF 会自动接受并激活所有发送给此机器人的 Steam 礼物(包括钱包礼物卡)。 不在 SteamUserPermissions 中的用户发来的礼物也算在内。 请注意,发送到电子邮箱的礼物不会直接转发给客户端,所以 ASF 无法自动接受这种礼物,除非您提供帮助。

仅建议您在子帐户上启用此选项,因为有可能您不希望在主帐户上自动激活所有礼物。 如果您不确定是否要启用此功能,请保留默认值 false。

 

AutoSteamSaleEvent

这是一个默认值为 false 的 bool 类型属性。 在 Steam 夏季/冬季特卖活动期间,您每天可以通过浏览探索队列或者其他活动事件获得额外的集换式卡牌。 启用此选项时,ASF 将会每隔 8 小时自动检查 Steam 探索队列(从程序启动一小时后开始),并且在需要时浏览完成这些探索队列。 如果您希望自己手动执行这些操作,则不建议使用此选项,通常情况下,该功能仅对于机器人帐户有意义。 此外,如果您希望收到这些卡牌,首先要确保您的帐户至少达到 8 级,这是 Steam 本身的限制。 如果您不确定是否要启用此功能,请保留默认值 false。

请注意,由于 Valve 经常造成问题或变更,我们无法保证此功能正常工作,因此该选项是有可能完全无效的。 我们不接受任何与此有关的漏洞报告,也不支持关于此选项的请求。 该属性是在完全无保证的情况下提供的,您需要自行承担风险。

 

BotBehaviour

这是一个默认值为 0 的 byte flags 类型属性。 该属性定义 ASF 机器人在各种事件中的自动化行为,可选项如下:

名称

描述

0

None

无特殊行为,对帐户的控制最少,默认选项

1

RejectInvalidFriendInvites

使 ASF 拒绝(而不是忽略)无效的好友邀请

2

RejectInvalidTrades

使 ASF 拒绝(而不是忽略)无效的交易报价

4

RejectInvalidGroupInvites

使 ASF 拒绝(而不是忽略)无效的组邀请

8

DismissInventoryNotifications

使 ASF 自动去除所有库存通知

16

MarkReceivedMessagesAsRead

使 ASF 自动将所有消息标记为已读

32

MarkBotMessagesAsRead

使 ASF 自动将来自其他 ASF 机器人(同一个实例下)的消息标记为已读

请注意,该属性是 flags 字段,因此可以设置为可用选项的任意组合。 如果您想了解更多,请阅读 flags 映射。 不启用任何 Flag 即为 None 选项。

通常,如果您希望一个 ASF 机器人帐户(而非主帐户)根据情况进行一些自动化操作,则需要修改此属性。 因此,该选项主要用于子帐户,但您也可以为主帐户设定这些属性。

标准(None)ASF 行为表示仅仅自动化用户所需的操作(例如自动挂卡或者处理 TradingPreferences 属性中设定的 SteamTradeMatcher 交易报价)。 这是对帐户行为影响最小的模式,适用于大多数用户,因为您可以完全控制帐户,自己决定是否允许帐户执行一些超出范围的操作。

无效的好友邀请指的是来自于没有 FamilySharing 或更高权限(在 SteamUserPermissions 中定义)的用户发来的好友邀请。 在标准模式下,ASF 会如您所期望的那样忽略这些邀请,您可以自行选择是否接受这些邀请。 RejectInvalidFriendInvites 会导致这些邀请被自动拒绝,这实际上阻止了其他人将您添加到好友列表(因为 ASF 会拒绝这些邀请,除非对方在您定义的 SteamUserPermissions 列表中)。 除非您想要完全拒绝所有好友邀请,否则不应该启用此选项。

无效的交易报价指的是不被 ASF 内置交易模块接受的报价。 关于这一情况的更多信息,可以在交易章节中找到,这一章节明确定义了 ASF 将会自动接受何种类型的交易报价。 有效的交易报价也由其他属性定义,特别是 TradingPreferences。 RejectInvalidTrades 会导致所有无效的交易报价被拒绝而不是仅仅忽略。 除非您想要完全拒绝所有 ASF 未自动接受的交易报价,否则不应该启用此选项。

无效的群组邀请指的是来自 SteamMasterClanID 以外群组的邀请。 在标准模式下,ASF 会如您所期望的那样忽略这些群组邀请,您可以自行选择是否加入这些群组。 RejectInvalidGroupInvites 会导致这些群组邀请被自动拒绝,使 SteamMasterClanID 以外的任何群组都无法邀请您加入。 除非您想要完全拒绝所有群组邀请,否则不应该启用此选项。

如果您开始厌烦获得新物品的 Steam 通知,DismissInventoryNotifications 则是一个相当有用的选项。 ASF 无法禁用通知本身,因为该功能是 Steam 客户端的内置功能,但它能够在收到通知后自动清除通知,使您不再看到烦人的“库存中的新物品”消息。 如果您希望自己检查所有收到的物品(特别是 ASF 挂到的卡牌),那么显然您不应该启用此选项。 但如果您因太多通知而疯狂,请记住您随时可以启用这个选项。

MarkReceivedMessagesAsRead 会自动将 ASF 运行的帐户收到的所有消息标记为已读,包括私人和群组聊天。 此功能通常用来清除子帐户的“新聊天消息”通知,这些消息可能来自于您向机器人发送的命令。 我们不建议为主帐户启用此选项,除非您希望完全无视任何新消息通知,包括在您离线时收到的消息,因为 ASF 仍然会在后台为您消除这些通知。

MarkBotMessagesAsRead 的运作方式很相似,但只会将机器人的消息标记为已读。 但要注意的是,如果您的机器人和其他人都在群组聊天中,Steam 在将一条消息标记为已读时,同样会标记此消息之前的所有消息,所以如果您不希望错过这之间的其他消息,就不应该启用此功能。 显然,如果您在同一个 ASF 实例上运行了多个主帐户(例如,属于其他人的帐户),也可能会出现问题,因为您有可能错过正常的、与 ASF 无关的消息。

如果您不确定如何配置此选项,最好将其保留为默认值。

 

CompleteTypesToSend

这是一个默认值为空的 ImmutableHashSet 类型属性。 当 ASF 完成收集符合此处设置类型的一组物品时,它可以通过 Steam 交易自动将所有已经完成的物品套组发送给拥有 Master 权限的用户,如果您将机器人帐户用于 STM 匹配等需求,此功能可以非常方便地将已收集全的套组发送到另一个帐户。 此选项的运作方式与 loot 命令相同,因此请注意,您需要先正确为用户设置 Master 权限,并且设置有效的 SteamTradeToken,并且还要保证此帐户原本就能够进行交易。

目前,此设置支持以下物品类型:

名称

描述

3

FoilTradingCard

闪亮集换式卡牌(TradingCard)

5

TradingCard

用来合成徽章的 Steam 集换式卡牌(非闪亮)

请注意,无论如何设置上述选项,ASF 都只会处理 Steam 分组(appID 为 753)中的社区物品(contextID 为 6),所以所有的游戏物品、礼物等都会被排除在交易报价之外。

由于启用此选项会带来额外开销,我们建议您只在确实有机会自行集齐物品的机器人上启用——例如,如果您平时已经使用 SendOnFarmingFinished、SendTradePeriod 或 loot 命令来收集物品,就没有必要使用此选项。

如果您不确定如何配置此选项,最好将其保留为默认值。

 

CustomGamePlayedWhileFarming

这是一个默认值为 null 的 string 类型属性。 ASF 可以在挂卡时显示“非 Steam 游戏中:CustomGamePlayedWhileFarming“,而不是正在挂卡的游戏名。 如果您希望好友们明白您正在挂卡,但是又不想将 OnlineStatus 设置为 Offline,则可以设置这个属性。 请注意,ASF 不能保证 Steam 网络的实际显示顺序,因此这只是一个建议值,或许能正常显示,或许不能。 默认值 null 将会禁用此功能。

ASF 提供了一些您可以在文本中使用的特殊变量。 {0} 会被 ASF 替换为当前挂卡游戏的 AppID, {1} 会被 ASF 替换为当前挂卡游戏的名称。

 

CustomGamePlayedWhileIdle

这是一个默认值为 null 的 string 类型属性。 类似于 CustomGamePlayedWhileFarming,但该属性设置的是 ASF 闲置时(挂卡完成后)显示的内容。 默认值 null 将会禁用此功能。

 

Enabled

这是一个默认值为 false 的 bool 类型属性。 该属性定义了是否启用此机器人。 已启用(true)的机器人实例将会在 ASF 启动后自动开始运行,而已禁用(false)的机器人就必须由您手动启动。 默认情况下,所有机器人都是被禁用的,所以需要为每个需要自动运行的机器人设置该属性为 true。

 

FarmingOrders

这是一个默认值为空的 ImmutableList 类型属性。 该属性定义了 ASF 为此机器人帐户设定的首选挂卡顺序。 目前支持以下挂卡顺序:

名称

描述

0

Unordered

不排序,略微提升 CPU 性能

1

AppIDsAscending

尝试先挂 appID 最低的游戏

2

AppIDsDescending

尝试先挂 appID 最高的游戏

3

CardDropsAscending

尝试先挂剩余掉落卡牌最少的游戏

4

CardDropsDescending

尝试先挂剩余掉落卡牌最多的游戏

5

HoursAscending

尝试先挂游戏时间最短的游戏

6

HoursDescending

尝试先挂游戏时间最长的游戏

7

NamesAscending

尝试以字母顺序挂游戏,从 A 开始

8

NamesDescending

尝试以字母逆序挂游戏,从 Z 开始

9

Random

尝试以完全随机顺序挂游戏(每次运行程序都不同)

10

BadgeLevelsAscending

尝试先挂徽章等级最低的游戏

11

BadgeLevelsDescending

尝试先挂徽章等级最高的游戏

12

RedeemDateTimesAscending

尝试先挂帐户内最早的游戏

13

RedeemDateTimesDescending

尝试先挂帐户内最新的游戏

14

MarketableAscending

尝试先挂掉落卡牌无法出售的游戏

15

MarketableDescending

尝试先挂掉落卡牌可以出售的游戏

由于此属性是一个数组,因此您可以按不同优先级使用多种排序方式。 例如,您可以按顺序选择方式 15、11 和 7,首先按照卡牌能否出售排序,然后按照徽章等级排序,最后按照字母顺序排序。 您可能已经猜到,选项的顺序很重要,如果您反转该属性的选项(7、11 和 15),则结果会完全不同。 大多数用户可能只需要从中选择一种排序方式,但如果您想进一步调整挂卡顺序,也可以添加多种排序方式。

需要注意的是上表中所有描述都含有词汇“尝试”——ASF 实际采用的顺序非常受所选的挂卡算法影响,并且 ASF 只会在不影响性能的情况下尝试进行排序。 例如,在使用 Simple 算法时,当前挂卡会话将会严格按照您设置的 FarmingOrders 排序(因为每款游戏的性能值都相同),而在使用 Complex 算法时,实际的挂卡顺序首先受游戏小时数影响,然后才按照 FarmingOrders 排序。 这会导致不同的结果,因为已有游戏时间的游戏将会优于其他游戏,因此 ASF 会首先挂游戏时长已满足 HoursUntilCardDrops 要求的游戏,然后才按照您设置的 FarmingOrders 顺序挂其他游戏。 同样地,ASF 在挂完了所有时长达标的游戏之后,会将剩余的游戏按照游戏小时数排序(因为这能够减少将游戏时长挂到 HoursUntilCardDrops 所需的时间)。 因此,这个配置属性仅仅是为 ASF 提供的一个建议,ASF 会在不降低挂卡性能的情况下尽量遵守(在二者有冲突时,ASF 会优先考虑性能而不是 FarmingOrders)。

此外,您可以通过 iq 命令访问“挂卡优先级队列”。 如果使用这个队列,则实际的挂卡顺序首先由性能决定,其次受优先挂卡队列影响,最后才是 FarmingOrders。

 

GamesPlayedWhileIdle

这是一个默认值为空的 ImmutableHashSet 类型属性。 如果 ASF 没有游戏可以挂卡,您可以让它运行指定的 Steam 游戏(appIDs)。 以这种方式玩游戏会增加您的游戏时间,但这也是唯一的作用。 若要此功能正常工作,您的 Steam 帐户必须拥有所有您指定的 appIDs 的有效许可,包括免费游戏。 此功能可以与 CustomGamePlayedWhileIdle 一同启用,在运行指定游戏的同时,使 Steam 网络显示自定义的状态信息,但在这种情况下,与 CustomGamePlayedWhileFarming 的情况类似,我们无法保证实际的显示顺序。 请注意,Steam 只允许 ASF 同时运行最多 32 款游戏(appIDs),因此您也只能在该属性中设置这么多游戏。

 

HoursUntilCardDrops

这是一个默认值为 3 的 byte 类型属性。 该属性定义帐户是否卡牌掉落受限,并且如果受限,其初始掉卡时长是多少小时。 卡牌掉落受限意味着此帐户在运行指定游戏时,游戏时长必须达到 HoursUntilCardDrops 小时才会开始掉落卡牌。 但 ASF 没有自动检测该属性的魔法,所以只能由您来手动设置。 这个属性会影响对挂卡算法的选择。 正确设置此属性将会最大化您的收益,并且节约挂卡所需的时间。 请记住,您应该选择某个值还是另一个值,并没有明显的答案,因为这完全取决于您的帐户。 看起来从未退款的较早帐户不会受限,应该将值设置为 0,而曾经退款的新帐户会受限,通常应该设置为 3。 然而这只是一种理论,不应该将其当作规则。 该默认值是两害相权取其轻的结果,可以适用于大多数情况。

 

IdlePriorityQueueOnly

这是一个默认值为 false 的 bool 类型属性。 这个属性定义 ASF 是否应该仅自动挂您通过 iq 命令添加到挂卡优先级队列内的应用。 在启用此选项时,ASF 将会跳过所有不在队列中的 appIDs,使您可以选择性地忽略 ASF 自动挂卡的游戏。 请记住,如果您没有向队列中添加任何游戏,ASF 就会表现为您的帐户中没有游戏可以挂卡。 如果您不确定是否要启用此功能,请保留默认值 false。

 

IdleRefundableGames

这是一个默认值为 true 的 bool 类型属性。 该属性定义了 ASF 是否应该挂仍可以退款的游戏。 可退款游戏指的是您在 2 周内通过 Steam 商店购买的、游戏时间不超过 2 小时的游戏,详见 Steam 退款。 该选项的默认值为 true,ASF 将会完全忽略 Steam 的退款策略,挂一切可以挂的游戏,这也是大多数用户所需要的。 然而,如果您不希望 ASF 马上开始挂您的可退款游戏,就可以将该选项改为 false,这样您就可以自己体验游戏,并在需要时退款,避免 ASF 影响您的游戏时间。 请注意,如果您禁用此选项,自您在 Steam 商店购买游戏起的 14 天内,ASF 将不会挂这款游戏,如果在此期间,您没有其他可挂卡游戏,ASF 就会表现为闲置。 如果您不确定是否要启用此功能,请保留默认值 true。

 

LootableTypes

这是一个默认值为 Steam 物品类型 1, 3, 5 的 ImmutableHashSet 类型属性。 这个属性定义 ASF 拾取操作的行为——这既包括通过命令触发的手动拾取,也包括通过各种配置属性设置的自动拾取。 ASF 会确保交易报价内只包含 LootableTypes 类型的物品,因此,这个属性使您可以选择您希望从交易报价中获得何种物品。

名称

描述

0

Unknown

不符合以下情况的任何类型

1

BoosterPack

包含某游戏随机 3 张卡牌的补充包

2

Emoticon

Steam 聊天中使用的表情

3

FoilTradingCard

闪亮集换式卡牌(TradingCard)

4

ProfileBackground

在 Steam 个人资料上使用的个人资料背景

5

TradingCard

用来合成徽章的 Steam 集换式卡牌(非闪亮)

6

SteamGems

用来制作补充包的 Steam 宝石,包括成袋的宝石

7

SaleItem

Steam 特卖期间的特殊奖励物品

8

Consumable

使用后消失的特殊消耗品

9

ProfileModifier

修改 Steam 个人资料外观的特殊物品

10

Sticker

Steam 聊天中使用的特殊物品(聊天贴纸)

11

ChatEffect

Steam 聊天中使用的特殊物品(聊天室效果)

12

MiniProfileBackground

Steam 个人资料迷你背景

13

AvatarProfileFrame

Steam 个人资料头像边框

14

AnimatedAvatar

Steam 个人资料动画头像

请注意,无论如何设置上述选项,ASF 都只会处理 Steam 分组(appID 为 753)中的社区物品(contextID 为 6),所以所有的游戏物品、礼物等都会被排除在交易报价之外。

默认值的设定基于机器人的最常见用法,即仅仅拾取补充包和集换式卡牌(包括闪亮卡牌)。 您可以更改此属性,将机器人的行为调整至令您满意。 请记住,上表未定义的所有类型都会显示为 Unknown,特别是在 Valve 发布一些新 Steam 物品时,ASF 也会将它们标记为 Unknown,直到它们(在未来版本中)被添加到这个表格中。 这也是为何一般不建议在 LootableTypes 中包含 Unknown 类型,除非您了解您正在做什么,并且明白如果 Steam 网络出现故障,将所有物品当作 Unknown,ASF 将会在交易报价中发送整个库存内的物品。 我强烈建议,即使您希望拾取所有(其他)类型的物品,也不要在 LootableTypes 中包含 Unknown。

 

MatchableTypes

这是一个默认值为 Steam 物品类型 5 的 ImmutableHashSet 类型属性。 此属性定义了当您启用 TradingPreferences 中的 SteamTradeMatcher 选项时,允许用于匹配的 Steam 物品类型。 可用类型如下:

名称

描述

0

Unknown

不符合以下情况的任何类型

1

BoosterPack

包含某游戏随机 3 张卡牌的补充包

2

Emoticon

Steam 聊天中使用的表情

3

FoilTradingCard

闪亮集换式卡牌(TradingCard)

4

ProfileBackground

在 Steam 个人资料上使用的个人资料背景

5

TradingCard

用来合成徽章的 Steam 集换式卡牌(非闪亮)

6

SteamGems

用来制作补充包的 Steam 宝石,包括成袋的宝石

7

SaleItem

Steam 特卖期间的特殊奖励物品

8

Consumable

使用后消失的特殊消耗品

9

ProfileModifier

修改 Steam 个人资料外观的特殊物品

10

Sticker

Steam 聊天中使用的特殊物品(聊天贴纸)

11

ChatEffect

Steam 聊天中使用的特殊物品(聊天室效果)

12

MiniProfileBackground

Steam 个人资料迷你背景

13

AvatarProfileFrame

Steam 个人资料头像边框

14

AnimatedAvatar

Steam 个人资料动画头像

当然,您应该设置的类型通常只有 2、3、4 和 5,因为 STM 只支持这些类型。 ASF 的逻辑能够正确地获取物品的稀有程度,因此匹配表情或背景也是安全的,因为 ASF 只会将来自同一游戏、同一物品类型以及稀有程度相同的物品视为相等。

请注意,ASF 不是交易机器人,并且不会考虑物品在社区市场上的价格。 如果您认为同一组中稀有度相同的物品价值不同,则此选项不适合您。 如果您决定更改此设置,请再次确认您理解并同意以上声明。

除非您明确了解自己在做什么,否则请将其保留为默认值 5。

 

OnlineStatus

这是一个默认值为 1 的 byte 类型属性。 该属性指定机器人登录 Steam 网络之后显示的 Steam 状态。 目前您可以选择下列状态之一:

名称

0

Offline(离线)

1

Online(在线)

2

Busy(忙碌)

3

Away(离开)

4

Snooze(打盹)

5

LookingToTrade(想交易)

6

LookingToPlay(想玩游戏)

7

Invisible(隐身)

Offline 状态比较适合主帐户。 您应该知道,挂卡会使您的帐户状态显示为“游戏中:XXX”,这可能会误导您的朋友,使他们认为您真的在玩游戏。 使用 Offline 状态可以解决这个问题——您的帐户将不会在 ASF 挂卡时显示您在“游戏中”。 能够这样做的原因是 ASF 不需要登录到 Steam 社区就可以正常工作,所以我们实际运行了这些游戏、连接到了 Steam 网络,但是没有向其他人告知我们在线。 请注意,在离线状态下进行游戏仍然会增加您的游戏时间,您个人资料页面的“最新动态”栏也会显示这些游戏。

此外,如果您在不同时启动 Steam 客户端的情况下运行 ASF,但仍然希望收到通知和未读消息,也应该设置这个选项。 这是因为 ASF 本身就是一个 Steam 客户端,无论 ASF 是否愿意,Steam 都会向它广播这些消息和事件。 如果您同时运行 ASF 和 Steam 客户端,这就不是什么问题,因为每个客户端都会收到完全相同的事件广播。 但如果只有 ASF 在运行,Steam 就会将某些事件与消息标记为“已送达”,但您的原版 Steam 客户端因为不在线而无法收到这些消息。 离线状态可以解决这个问题,因为在这种情况下,ASF 将不再接收任何社区事件,因此所有未读消息和其他事件都会在您返回时保持未读状态。

需要特别注意的是,在 Offline 模式下运行的 ASF 将无法通过 Steam 聊天接收命令,因为此时 ASF 与聊天服务器甚至整个 Steam 社区都是未连接的。 解决此问题的方法是使用 Invisible 隐身模式,它类似于离线模式(不暴露您的状态),但是仍然可以接收与响应消息(所以仍然有上述的消除您的未读消息的问题)。 Invisible 模式主要适用于您不想暴露状态,但是仍需要发送命令的子帐户。

但是,Invisible 模式的问题在于,它并不适合主帐户。 这是因为任何在线的 Steam 会话都会公开其在线状态,即使 ASF 不希望这样做。 这是由目前的 Steam 网络的限制/漏洞导致的,无法由 ASF 修复,所以如果您希望使用 Invisible 模式,就需要确保登录同一帐户的其他所有会话也都设置为 Invisible 隐身状态。 对于子帐户,ASF 通常就是其唯一的活动会话,但对于主帐户来说,通常您需要向您的朋友们显示 Online 状态,仅仅隐藏 ASF 的活动,此时 Invisible 模式就会完全失效(建议您在此时以 Offline 模式代替)。 希望 Valve 能够在将来解决这个限制/漏洞,但我不认为这能在短期内实现……

如果您不确定如何设置这个属性,建议您为主帐户设置 0(Offline),为其他帐户保留默认值 1(Online)。

 

PasswordFormat

这是一个默认值为 0 的 byte 类型属性。 该属性定义了 SteamPassword 属性的格式,目前支持——0 表示 PlainText、1 表示 AES、2 表示 ProtectedDataForCurrentUser。 如果您需要了解更多,请参考安全性章节,确保 SteamPassword 属性的值确实符合 PasswordFormat 定义的格式。 换句话说,在您更改 PasswordFormat 时,必须确保您的 SteamPassword 已经是您所选择的格式。 除非您明确了解自己在做什么,否则请将其保留为默认值 0。

 

Paused

这是一个默认值为 false 的 bool 类型属性。 这个属性定义了机器人 CardsFarmer 模块的初始状态。 在使用默认值 false 时,机器人会在通过 Enabled 或 start 命令启动时自动开始挂卡。 只有您希望手动 resume(恢复)自动挂卡进程时,才应该将这个属性设置为 true。例如,您可能只使用 play 命令,从来都不用 CardFarmer(挂卡)模块——这一属性与发送 pause 命令的效果完全相同。 如果您不确定是否要启用此功能,请保留默认值 false。

 

RedeemingPreferences

这是一个默认值为 0 的 byte flags 类型属性。 该属性定义 ASF 在激活游戏序列号时的行为,可选项如下:

名称

描述

0

None

无特殊激活偏好,默认值

1

Forwarding

将无法激活的序列号转发给其他机器人

2

Distributing

将序列号分配给自身和其他机器人

4

KeepMissingGames

在转发时保留(可能)未拥有的游戏,使这些序列号不被使用

8

AssumeWalletKeyOnBadActivationCode

假定 BadActivationCode 状态的序列号等同于 CannotRedeemCodeFromClient 状态,并因此尝试将其作为钱包礼物卡代码激活

请注意,该属性是 flags 字段,因此可以设置为可用选项的任意组合。 如果您想了解更多,请阅读 flags 映射。 不启用任何 Flag 即为 None 选项。

Forwarding 会使机器人将无法激活的序列号转发给另一个尚未拥有此游戏的(尽可能事先检查)、已连接并且已登录的机器人。 最常见的情况是将 AlreadyPurchased(已拥有)的游戏转发给另一个尚未拥有游戏的机器人,但该选项也同样会转发其他情况下的序列号,例如 DoesNotOwnRequiredApp(缺少游戏本体)、RateLimited(激活频率限制)或者 RestrictedCountry(激活地区限制)。

Distributing 会使机器人在自己和其他机器人之间分配所有序列号。 这意味着每个机器人都会从一批序列号中获得一个。 通常,这个功能仅适用于激活大量同一个游戏的序列号。并且您希望在所有机器人中均匀分配,而激活各种不同游戏的情况则不适合该选项。 如果您仅在 redeem 命令中提供一个序列号,则此功能就没有意义,因为没有可供分配的额外序列号。

KeepMissingGames 会使机器人在无法确定自己是否拥有序列号所激活的游戏时,跳过 Forwarding 操作。 这基本上意味着 Forwarding 操作将只会针对 AlreadyPurchased 的序列号生效,而不再转发 DoesNotOwnRequiredApp、RateLimited 或 RestrictedCountry 状态的序列号。 通常情况下,您会希望为主帐户设置这一选项,以确保在临时触发频率限制 RateLimited 等情况下,不再继续转发为此帐户激活的序列号。 从描述中可以猜到,如果未启用 Forwarding,则此字段就完全没有任何效果。

AssumeWalletKeyOnBadActivationCode 会使 BadActivationCode 状态的序列号被当作 CannotRedeemCodeFromClient 状态,ASF 会尝试将其作为钱包礼物卡代码激活。 加入此选项的原因是,Steam 可能会将钱包礼物卡代码当作 BadActivationCode(而非正确的 CannotRedeemCodeFromClient),导致 ASF 永远不会尝试激活它们。 然而,我们建议避免使用此选项,因为这会使 ASF 尝试将所有无效序列号当作钱包代码激活,因而向 Steam 服务发送大量(可能无效)的请求,造成意料之外的后果。 相反,我们建议您在明确激活钱包礼物卡代码时,使用 redeem^ 命令的 ForceAssumeWalletKey 模式,这样仅在启用此模式时进行所需的额外尝试。

同时启用 Forwarding 和 Distributing 将会在转发的基础上增加分配的功能,即 ASF 会首先尝试在所有机器人上激活一个序列号(转发),然后再切换到下一个(分配)。 通常,如果您这样设置,就表示您希望启用 Forwarding 功能,同时在序列号被使用时切换机器人,而不是始终按机器人顺序激活每个序列号(仅启用 Forwarding 的行为)。 这种行为在您知道大多数甚至全部序列号都被绑定到同一款游戏的情况下非常有用,因为这种情况下仅启用 Forwarding 将会使机器人首先尝试在一个机器人上激活所有序列号(适合序列号属于不同游戏的情况),而启用 Forwarding + Distributing 将会在激活下一个序列号时切换机器人,将激活新序列号的任务“分配”到另一个机器人上,不再由初始机器人负责(适合所有序列号都是同一款游戏的情况,每次激活都会跳过一次无意义的尝试)。

激活时,机器人的顺序都是按照字母排列的,除了不可用的机器人(未连接、已停用或者其他情况)。 请记住,每个 IP 和每个帐户都有每小时激活次数的限制,并且每次激活结果不为 OK 都意味着激活失败。 ASF 会尽力减少 AlreadyPurchased 错误的次数,例如,避免向已拥有游戏的机器人转发序列号,但由于 Steam 处理游戏许可的方式,我们无法保证这种措施一定有效。 使用 Forwarding 或 Distributing 等激活选项,一定会增加您触发 RateLimited 的可能性。

还需注意,您无法向您没有权限的机器人转发或分配序列号。 这应该是很显然的,但是您需要确保您至少对激活过程中的机器人拥有 Operator 权限,例如使用 status ASF 命令检查。

 

SendOnFarmingFinished

这是一个默认值为 false 的 bool 类型属性。 当 ASF 完成给定帐户的挂卡任务时,它可以通过交易报价将全部挂卡所得发送给拥有 Master 权限的用户,免去您手动发送交易报价的麻烦。 此选项的运作方式与 loot 命令相同,因此请注意,您需要先正确为用户设置 Master 权限,并且设置有效的 SteamTradeToken,并且还要保证此帐户原本就能够进行交易。 启用此选项时,除了在挂卡完成之后激发 loot 命令,ASF 也会在每次获得新物品时(未挂卡时)以及每次在交易中获得新物品时激发 loot 命令。 这可以方便地将来自其他人的物品“转发”到我们的帐户中。

通常您需要同时启用 ASF 2FA 以更好地使用此功能,但如果您愿意及时手动确认交易,也可以跳过这一步。 如果您不确定应该如何设置这个属性,请保留默认值 false。

 

SendTradePeriod

这是一个默认值为 0 的 byte 类型属性。 该属性的工作方式非常类似于 SendOnFarmingFinished 属性,只有一点区别——不是在挂卡完成时发送交易报价,而是每隔 SendTradePeriod 小时发送一次,无论是否挂卡完成。 如果您希望定期对子帐户发送 loot 命令而不是等到挂卡结束,则应该设置此属性。 默认值 0 会禁用此功能,如果您希望您的机器人每天发送一次交易报价,就可以设置为 24。

通常您需要同时启用 ASF 2FA 以更好地使用此功能,但如果您愿意及时手动确认交易,也可以跳过这一步。 如果您不确定应该如何设置这个属性,请保留默认值 0。

 

ShutdownOnFarmingFinished

这是一个默认值为 false 的 bool 类型属性。 ASF 会在机器人激活期间始终“占用”帐户。 在指定帐户挂卡完成后,ASF 会定期(每隔 IdleFarmingPeriod 小时)检查帐户内是否有新游戏含有 Steam 卡牌,以便于在不重启进程的情况下恢复此帐户的挂卡过程。 这应该适合大多数人,因为 ASF 可以在需要时自动恢复挂卡。 但是,您可能希望在指定帐户挂卡完成后停止进程,这就需要将这个属性设置为 true。 在启用时,ASF 将会在挂卡完成之后注销帐户,这意味着此帐户将不再被定期检查或占用。 您应该自己决定,更希望 ASF 始终处理指定的机器人实例,还是在挂卡结束后停止。 如果所有帐户都停止运行,并且程序没有以 --process-required 模式运行,则 ASF 本身也会关闭,让您的机器休息,您可以在获得最后一张卡牌之后为计算机安排睡眠或者关机等其他操作。

如果您不确定应该如何设置这个属性,请保留默认值 false。

 

SteamLogin

这是一个默认值为 null 的 string 类型属性。 该属性定义您的 Steam 用户名——在登录 Steam 时使用。 除了在配置文件内输入 Steam 用户名,您还可以保留其默认值 null,并在 ASF 每次启动时手动输入用户名,如果您不希望在文件中保存敏感信息,这是更好的方法。

 

SteamMasterClanID

这是一个默认值为 0 的 ulong 类型属性。 该属性定义一个 Steam 群组 ID,机器人应该自动加入此群组及其聊天室。 要获取您的群组 ID,您可以访问群组的主页,然后在该页面的网址后面加上 /memberslistxml?xml=1,使网址看起来类似这样。 此时您可以在结果的  标签内找到群组的 ID。 在本例中即为 103582791440160998。 机器人不仅会尝试主动加入指定的群组,还会自动接受来自此群组的邀请,使您可以手动邀请机器人加入私密群组。 如果您没有专门用于管理机器人的群组,就应该保留默认值 0。

 

SteamParentalCode

这是一个默认值为 null 的 string 类型属性。 该属性定义您的 Steam 家庭监护 PIN 代码。 ASF 需要有权限访问由 Steam 家庭监护保护的资源,因此如果您的帐户启用了家庭监护,就需要将家庭监护解锁 PIN 提供给 ASF,使它能够正常运行。 默认值 null 表示无需 Steam 家庭监护 PIN 解锁此帐户,如果您没有启用家庭监护功能,就不需要更改。 除了在配置文件内输入 Steam 家庭监护 PIN 代码,您还可以使用 0 值,并在 ASF 每次启动并需要此代码时手动输入,如果您不希望在文件中保存敏感信息,这是更好的方法。

在有限的情况下,ASF 也能够自动生成有效的家庭监护代码,但这需要消耗大量的系统资源和时间来完成,并且也不能保证一定成功,因此我们不建议您依赖此功能,而是在配置文件内手动指定有效的 SteamParentalCode 值。

 

SteamPassword

这是一个默认值为 null 的 string 类型属性。 该属性定义您的 Steam 密码——在登录 Steam 时使用。 除了在配置文件内输入 Steam 密码,您还可以保留其默认值 null,并在 ASF 每次启动时手动输入密码,如果您不希望在文件中保存敏感信息,这是更好的方法。

 

SteamTradeToken

这是一个默认值为 null 的 string 类型属性。 如果您的机器人在您的好友列表内,机器人就无需交易令牌,直接向您发起交易,因此您可以保留其默认值 null。 但如果机器人不在您的好友列表内,就需要为接收交易报价的用户生成交易令牌并填写至此。 换句话说,此属性应该填写此机器人实例在 SteamUserPermissions 中定义的 Master 权限用户的交易令牌。

要找到交易令牌,您需要以 Master 权限用户登录,访问此页面,找到您的交易 URL。 我们寻找的交易令牌有 8 个字符,就在您的交易 URL 中 &token= 的后面。 您应该复制这 8 个字符,粘贴到这里作为 SteamTradeToken。 请不要填写完整的交易 URL,也不要包含 &token= 文本,您仅需要填写 8 个字符的令牌本身。

 

SteamUserPermissions

这是一个默认值为空的 ImmutableDictionary 类型属性。 该属性是一个字典属性,将 Steam 用户的 64 位 ID 映射到一个表示此用户在 ASF 实例内权限的 byte 类型的数字。 目前 ASF 支持的机器人权限有:

名称

描述

0

None

无特殊权限,这是分配给不在字典内的 SteamID 的参考值——您不需要为任何人定义此权限

1

FamilySharing

为家庭共享用户提供的最低权限。 同样,这也是一个参考值,因为 ASF 能够自动发现有权使用我们游戏库的家庭共享帐户的 SteamID

2

Operator

提供操作指定机器人的基本权限,主要包括添加游戏许可与激活序列号

3

Master

提供操作指定机器人的完整权限

简而言之,此属性允许您设定指定用户操作此机器人的权限。 权限主要用于访问 ASF 命令,但也用于启用很多其他 ASF 功能,例如接受交易报价。 例如,您可能希望将自己的帐户设置为 Master,然后为您的两三位朋友设置 Operator 权限,使他们可以简单地通过 ASF 为您的机器人激活游戏序列号,但又无法执行停止机器人等操作。 因此,您可以轻松将权限分配给指定的用户,使他们能够在您设定的限制下操作您的机器人。

我们建议您只设置一名用户为 Master,然后设定其他用户为较低权限的 Operators。 但从技术上来讲,您可以为机器人设定多名 Master 用户,并且 ASF 仍然可以正常工作,接受来自其中每名用户的交易报价,如果操作的目标用户只能有一名,例如 loot 请求、SendOnFarmingFinished 属性或 SendTradePeriod 属性,ASF 就会选择这些用户中 Steam ID 数字最小的一个。 如果您完全理解这些限制,特别是无论实际执行命令的 Master 用户是谁,loot 请求总是会将物品发送给 Steam ID 数字最小的那名 Master 用户,那么您就可以在这里设置多名 Master 权限用户,但仍然建议您选择单 Master 方案,我们既不鼓励也不支持您选择多 Master 方案。

值得注意的是,还有一个额外的 Owner 权限,此权限由全局配置属性 SteamOwnerID 设置。 您无法在这里将 Owner 权限授予任何人,因为 SteamUserPermissions 属性仅能定义与此机器人实例相关,而非 ASF 进程相关的权限。 对于机器人相关的任务,SteamOwnerID 被视为与 Master 相同,因此也没有必要在此设置 SteamOwnerID。

 

TradingPreferences

这是一个默认值为 0 的 byte flags 类型属性。 该属性定义 ASF 在交易时的行为,可选项如下:

名称

描述

0

None

无特殊交易偏好,默认值

1

AcceptDonations

接受我们不付出任何物品的交易

2

SteamTradeMatcher

以被动方式参与 STM 交易。 访问交易获得更多信息

4

MatchEverything

需要先设置 SteamTradeMatcher,将二者结合使用——除了有利交易和平衡交易,还接受不利交易

8

DontAcceptBotTrades

不自动接受来自其他机器人的 loot 交易

16

MatchActively

以主动方式参与 STM 交易。 访问交易获得更多信息

请注意,该属性是 flags 字段,因此可以设置为可用选项的任意组合。 如果您想了解更多,请阅读 flags 映射。 不启用任何 Flag 即为 None 选项。

若要了解 ASF 的交易逻辑,以及对于每个 flag 的详细说明,请阅读交易章节。

 

TransferableTypes

这是一个默认值为 Steam 物品类型 1, 3, 5 的 ImmutableHashSet 类型属性。 这个属性定义了在使用 transfer 命令时,机器人之间可转移 Steam 物品的类型。 ASF 会确保交易报价内只包含 TransferableTypes 类型的物品,因此,这个属性使您可以选择您希望从发往其他机器人的交易报价中获得何种物品。

名称

描述

0

Unknown

不符合以下情况的任何类型

1

BoosterPack

包含某游戏随机 3 张卡牌的补充包

2

Emoticon

Steam 聊天中使用的表情

3

FoilTradingCard

闪亮集换式卡牌(TradingCard)

4

ProfileBackground

在 Steam 个人资料上使用的个人资料背景

5

TradingCard

用来合成徽章的 Steam 集换式卡牌(非闪亮)

6

SteamGems

用来制作补充包的 Steam 宝石,包括成袋的宝石

7

SaleItem

Steam 特卖期间的特殊奖励物品

8

Consumable

使用后消失的特殊消耗品

9

ProfileModifier

修改 Steam 个人资料外观的特殊物品

10

Sticker

Steam 聊天中使用的特殊物品(聊天贴纸)

11

ChatEffect

Steam 聊天中使用的特殊物品(聊天室效果)

12

MiniProfileBackground

Steam 个人资料迷你背景

13

AvatarProfileFrame

Steam 个人资料头像边框

14

AnimatedAvatar

Steam 个人资料动画头像

请注意,无论如何设置上述选项,ASF 都只会处理 Steam 分组(appID 为 753)中的社区物品(contextID 为 6),所以所有的游戏物品、礼物等都会被排除在交易报价之外。

默认值的设定基于机器人的最常见用法,即仅仅转移补充包和集换式卡牌(包括闪亮卡牌)。 您可以更改此属性,将机器人的行为调整至令您满意。 请记住,上表未定义的所有类型都会显示为 Unknown,特别是在 Valve 发布一些新 Steam 物品时,ASF 也会将它们标记为 Unknown,直到它们(在未来版本中)被添加到这个表格中。 这也是为何一般不建议在 TransferableTypes 中包含 Unknown 类型,除非您了解您正在做什么,并且明白如果 Steam 网络出现故障,将所有物品当作 Unknown,ASF 将会在交易报价中发送整个库存内的物品。 我强烈建议您即使希望转移所有类型的物品,也不要在 TransferableTypes 中包含 Unknown。

 

UseLoginKeys

这是一个默认值为 true 的 bool 类型属性。 该属性定义 ASF 是否应该为此 Steam 帐户启用登录密钥机制。 登录密钥机制的工作原理类似于 Steam 客户端的“记住我的密码”选项,使 ASF 可以保留临时的一次性登录密钥,并在下一次登录时使用,只要这个登录密钥没有失效,登录时就可以跳过输入密码、Steam 令牌或者两步验证代码的步骤。 登录密钥存储在 BotName.db 文件中,并且自动更新。 这就是您不需要在成功登录一次以后再输入密码、Steam 令牌或者两步验证代码的原因。

登录密钥主要用来为您提供方便,使您无需每次登录都要输入 SteamPassword、Steam 令牌或者两步验证代码(当没有启用 ASF 2FA 时)。 这也是一种先进的替代方法,因为登录密钥是一次性的,并且无法从中获得您的密码原文。 您的原版 Steam 客户端也在使用完全相同的方法,即为您的下一次登录保留用户名和登录密钥,效果等同于在 ASF 中设置 SteamLogin 和 UseLoginKeys 两个属性,并留空 SteamPassword。

但是,仍然有人会担心这个小细节,因此,如果您希望确保 ASF 不存储任何形式的、用于在关闭程序后恢复上次会话的令牌,每次登录时都进行身份验证,那么您可以修改此属性。 禁用此选项与在官方 Steam 客户端中不勾选“记住我的密码”的效果是完全相同的。 除非您明确了解自己在做什么,否则请将其保留为默认值 true。

 

文件结构

ASF 采用这种很简单的文件结构:

├── config│     ├── ASF.json│     ├── ASF.db│     ├── Bot1.json│     ├── Bot1.db│     ├── Bot1.bin│     ├── Bot2.json│     ├── Bot2.db│     ├── Bot2.bin│     └── ...├── ArchiSteamFarm.dll├── log.txt└── ...

如果您需要将 ASF 迁移到其他位置,例如另一台 PC,则仅移动/复制 config 文件夹就足够了,并且这也是备份 ASF 数据的推荐方式,因为您随时可以从 GitHub 下载其余的(程序)文件,而无需承担因备份失败导致 ASF 内部文件损坏的风险。

log.txt 文件保存您上次运行 ASF 时生成的日志。 此文件不包含任何敏感信息,并且在涉及问题、崩溃或仅提供上次运行 ASF 的信息时非常有用。 如果您遇到了问题或漏洞,我们会经常需要您提供此文件。 ASF 会自动管理这些文件,但如果您是一名高级用户,您可以进一步调整 ASF 的日志模块。

config 文件夹是保存 ASF 及其所有机器人的配置文件的地方。

ASF.json 是 ASF 全局配置文件。 此配置文件用于设置 ASF 进程的行为,这会影响所有机器人和程序本身。 您可以在此文件中找到全局属性,例如 ASF 进程所有者、自动更新设定或者调试设定。

BotName.json 是每个机器人实例的配置文件。 此配置文件用于设置给定机器人实例的行为,因此这些设置仅对此机器人生效,不会与其他任何机器人共享配置。 您可以通过各种不同的设置调整机器人,每个机器人可以有不同的运作方式。 每个机器人的名称都是唯一的,由您选择并写在 BotName 的位置。

除了配置文件外,ASF 还使用 config 文件夹来存储数据库。

ASF.db 是 ASF 的全局数据库。 它是一个全局的持久存储数据库,其中包含各种与 ASF 进程相关的信息,例如当地 Steam 服务器的 IP 地址。 您不应该编辑这个文件。

BotName.db 是给定机器人实例的数据库。 此文件将给定机器人实例的关键数据,例如登录密钥或者 ASF 2FA,存储在持久存储数据库内。 您不应该编辑这个文件。

BotName.bin 是给定机器人实例的一个特殊文件,用于存储 Steam Sentry Hash。 Sentry Hash 用于 SteamGuard 机制进行认证,非常类似于 Steam 的 ssfn 文件。 您不应该编辑这个文件。

BotName.keys 是一个特殊文件,用于向后台游戏激活器中导入序列号。 此文件既非必须也非由 ASF 生成,ASF 会读取此文件。 此文件将会在序列号导入成功后被自动删除。

BotName.maFile 是一个特殊文件,用于导入 ASF 2FA。 此文件既非必须也非由 ASF 生成,如果您的 BotName 机器人尚未启用 ASF 2FA,ASF 会读取此文件。 此文件将会在 ASF 2FA 导入成功后被自动删除。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有