Skip to content

Background games redeemer zh TW

ArchiBot edited this page Sep 17, 2022 · 33 revisions

背景序號啟動器

背景序號啟動器是 ASF 內建的特殊功能,可以讓您匯入一批 Steam 序號(包含遊戲名稱)以便在背景啟用。 如果您需要一次啟動大量序號,在全數啟動前,必定會觸發 RateLimited 狀態,此時背景啟動功能將會非常有用。

背景序號啟動器只對單個 Bot 有效,也就是說它不會採用 RedeemingPreferences 中的設定。 若有需要,本功能可以和 redeem **指令**一起使用(或者代替它)。


匯入

匯入可以透過兩種方式進行:使用文字檔或 IPC。

文字檔

ASF 會辨識 config 資料夾下名為 BotName.keys 的檔案,其中 BotName 是你的 Bot 的名稱。 該檔案具有固定格式,每行由遊戲名稱及遊戲序號所組成,兩者之間需以 Tab 分隔,並以換行結束,用來表示開始下一組項目。 若一行中使用多個 Tab,則該行第一項會被視為遊戲名稱,最後一項會被視為遊戲序號,而中間的所有內容都將被忽略。 舉例來說:

POSTAL 2    ABCDE-EFGHJ-IJKLM
Domino Craft VR 12345-67890-ZXCVB
A Week of Circus Terror POIUY-KJHGD-QWERT
Terraria    這裡會被忽略   這裡也會被忽略    ZXCVB-ASDFG-QWERT

此外,您也可以只輸入遊戲序號(但序號之間仍需使用換行作為分隔)。 在這種情況下,(如果可能)ASF 將會向 Steam 詢問正確的遊戲名稱。 對於任何類型的序號標籤,我們建議您自行標記所有序號的名稱。因為在 Steam 上啟動的序號包的名稱,不一定會符合序號包中遊戲名稱的命名邏輯。根據開發人員所填寫的內容,您可能會看到正確的遊戲名稱、自訂名稱(例如 Humble Indie Bundle 18),或完全錯誤、甚至是惡意的名稱(例如 Half-Life 4)。

ABCDE-EFGHJ-IJKLM
12345-67890-ZXCVB
POIUY-KJHGD-QWERT
ZXCVB-ASDFG-QWERT

無論您選擇使用哪種格式,ASF 都將在 Bot 啟動或執行時,匯入您的 keys 檔案。 在成功剖析並忽略無效的序號後,所有正確檢測到的遊戲都會被加入背景佇列,而 BotName.keys 檔案也將會自動從 config 資料夾中移除。

IPC

除了使用上述提到的遊戲序號文字檔外,ASF 也開放了可供任意 IPC 工具(包括我們的 ASF-ui)使用的 GamesToRedeemInBackground ASF API 端點。 IPC 將能提供更完善的功能,因為您可以使用自己覺得合適的方式進行剖析。例如使用自訂定界符,而非強制使用 Tab,甚至,您可以完全自訂序號的格式。


佇列

在成功匯入遊戲後,它們會被加入至佇列中。 只要 Bot 與 Steam 網路保持連線,且佇列中仍有遊戲,ASF 就會自動處理背景佇列。 嘗試啟動序號且沒有觸發 RateLimited 後,該序號將會被移出佇列,其啟動結果亦會寫入位於 config 資料夾中的檔案。當序號被程序使用掉(例如結果為NoDetailBadActivationCodeDuplicateActivationCode),會寫入 BotName.keys.used,否則會寫入 BotName.keys.unused。 由於 Steam 網路不一定會回傳序號所屬遊戲的正確名稱,所以 ASF 會使用您提供的遊戲名稱。這樣您就可以根據需要,使用自訂名稱來標記您的序號。

如果在這個過程中帳號觸發了 RateLimited 狀態,佇列將會暫停一小時,以等待冷卻時間結束。 之後,程序將會從中斷的地方繼續,直到佇列完全清空。


範例

假設您有一個包含 100 個序號的清單。 首先,您應該在 ASF 的 config 資料夾中,建立一個名為 BotName.keys.new 的檔案。 我們加上了 .new 副檔名,是為了防止 ASF 在我們建立檔案時,立刻讀取該檔案(因為它是一個空白檔案,還尚未準備匯入)。

現在您可以開啟剛才建立的檔案,將 100 個序號貼上,並視情況修正格式。 格式修正後,BotName.keys.new 檔案中應該正好有 100 行(如果末端有空行的話就是 101 行),每一行的格式均為 遊戲名稱\t遊戲序號\n,其中的 \t 是 Tab 字元,\n 是換行。

在儲存並關閉檔案後,您現在可以將該檔案由 BotName.keys.new 重新命名為 BotName.keys,以便讓 ASF 知道該檔案已準備好匯入。 重新命名後,ASF 會自動匯入該檔案(不需要重新啟動),並在確認所有遊戲皆剖析成功並加入佇列後,刪除該檔案。

除了 BotName.keys 檔案,您也可以使用 IPC API 端點,甚至也可以根據需要,配合使用兩種方式。

經過一段時間後,會產生 BotName.keys.usedBotName.keys.unused 兩個檔案。 這兩個檔案含有啟動程序的結果。 舉例來說,您可以將 BotName.keys.unused 重新命名為 BotName2.keys,來將未使用的序號交給其他的 Bot,因為前一個 Bot 未使用到這些序號。 或者,您也可以將未使用的序號複製貼上到其他檔案中留作他用。 請注意,在 ASF 處理佇列時,新的項目是逐一寫入至 usedunused 兩個輸出檔案中的,因此建議等待佇列完全清空後,再使用這兩個檔案。 若您無論如何都要在佇列完全清空之前,存取這些檔案的話,您應先將欲存取的檔案移動至別的資料夾中,然後再對其做進一步處理。 這是因為 ASF 可能會在您處理這些檔案的時候寫入新的結果,這可能會導致某些序號遺失。例如:您讀取了一個包含 3 個序號的檔案,然後將其刪除,但 ASF 在此期間又寫入了 4 個新序號,這樣那些新寫入的序號便會遺失。 若您想存取這些檔案,請務必先將它們從 ASF 的 config 資料夾中移出,例如將其重新命名。

您也可以在佇列已有遊戲的情況下匯入更多遊戲,只需要重覆上述步驟就行了。 ASF 會正確地將其加入正在處理的佇列中,並最終處理它們。


備註

背景序號啟動器在底層使用了 OrderedDictionary,意思是遊戲序號將會依照檔案中(或 IPC API 呼叫中)的順序啟動。 這代表,如果某些序號需要先擁有另一個序號才能啟動,請將其列於該序號後方。 舉例來說,如果您有 DLC D,且需要先啟動遊戲 G 才能啟動,那麼你必須將遊戲 G 的序號排在 DLC D 的前面。 同樣地,如果啟動 DLC D 之前,需先啟動 ABC,那麼這三個序號就應該被放在前面(可以是任意順序,除非它們各自也有相依關係)。

若未依上方所述的方式啟動,會導致 DLC 啟動失敗,並回傳 DoesNotOwnRequiredApp 結果。即使您的帳號在完成整個佇列後,得以啟動該 DLC,它也不會在此時被啟動。 如果要避免這種錯誤,請務必確保佇列中的 DLC 被放在遊戲本體之後。

Clone this wiki locally