Trading zh TW - IES-Rafael-Alberti/wiki-multi-language-example GitHub Wiki
ASF支援Steam的非互動式(離線)交易。 您可以直接接收(接受/拒絕)及發送交易,不需要特殊設定,但顯而易見這需要不受限制的Steam帳號(需已在商店中消費滿$5美元)。 受限制的帳號無法使用交易模組。
ASF始終會接受來自具有Master
(或更高)存取權限的使用者發送的所有交易提案,無論交易物品為何。 這不只可以輕鬆收集Bot實例掛出的Steam交換卡片,還能簡單管理Bot存放在物品庫中的Steam物品──包含來自其他遊戲(例如CS:GO)的物品。
ASF將拒絕來自交易模組黑名單的任何(非Master)使用者的交易提案,無論交易物品為何。 黑名單儲存在BotName.db
標準資料庫中,可以透過tb
、tbadd
及tbrm
指令進行管理。 這應該能夠代替Steam提供的標準使用者封鎖,請謹慎使用。
ASF將接受所有透過Bot發送類似loot
的交易,除非在TradingPreferences
中設定了DontAcceptBotTrades
。 簡而言之,TradingPreferences
中預設的None
會使ASF自動接受來自具有Master
存取權限Bot的使用者的交易(如上所述),以及ASF同一程序中其他Bot的所有贈禮交易。 若您想停用來自其他Bot的贈禮交易,那麼您應在TradingPreferences
中設定DontAcceptBotTrades
。
當您在TradingPreferences
中設定AcceptDonations
後,ASF還將接受任何贈禮交易:Bot帳號不會失去任何物品的交易。 這個屬性只影響非Bot帳號,因為Bot帳號是受DontAcceptBotTrades
的影響。 AcceptDonations
使您能夠輕鬆地接受來自其他使用者,及不在同一ASF程序中Bot的贈禮。
值得一提的是,AcceptDonations
不需要ASF雙重驗證,因為如果我們沒有失去任何物品,則無需進行交易確認。
您還可以透過修改相應的TradingPreferences
來進一步自訂ASF的交易功能。 TradingPreferences
的其中一個主要功能是SteamTradeMatcher
選項,它將使ASF使用內建邏輯來接受交易,並幫助您完成缺少的徽章,這在結合SteamTradeMatcher的公開清單使用時特別有用,但它也能單獨運作。 我們將在下面進一步說明。
當啟用SteamTradeMatcher
時,ASF將使用相當複雜的演算法,來檢查交易是否通過STM規則,且對我們而言是否公平。 具體的邏輯是:
- 如果我們會失去
MatchableTypes
之外的任何物品,則拒絕交易。 - 對於每個遊戲、物品類型及稀有度,如果我們獲得的物品數量少於失去的數量,則拒絕交易。
- 如果使用者想要交易特殊的Steam夏季/冬季特賣交換卡片,但有交易託管,則拒絕交易。
- 如果交易託管的時間達到全域設定屬性
MaxTradeHoldDuration
的值,則拒絕交易。 - 如果我們沒有設定
MatchEverything
,且交易內容對我們不利,則拒絕交易。 - 如果未被上述任何規則拒絕,則接受交易。
值得一提的是,ASF還支援溢價支付:只要滿足上述所有條件,在使用者向交易內容提供額外物品時,邏輯也會正常運作。
前四個拒絕條件應該是顯而易見的。 最後一個含有實際的重複邏輯,它檢查我們物品庫的當前狀態,再決定交易狀態。
- 如果交易會使您的徽章進度增加,則為有利。 例如:A A(交易前)-> A B(交易後)
- 如果交易並不影響您的徽章進度,則為均衡。 例如:A B(交易前)-> A C(交易後)
- 如果交易會使您的徽章進度減少,則為不利。 例如:A C(交易前)-> A A(交易後)
STM只會處理有利的交易,也就是說使用STM進行重複卡片匹配的使用者,只能發送對我們有利的交易。 然而,ASF的機制更加自由,它也接受均衡交易,因為在這種交易中,我們並沒有實際上的損失,所以沒有理由拒絕它們。 這對好友之間的交易特別有用,因為他們可以在不使用STM的情形下,交換您多餘的卡片,且不影響您的徽章進度。
預設情形下,ASF會拒絕不利的交易──這是做為普通使用者的您所想要的。 然而,您仍可以在TradingPreferences
中設定MatchEverything
,使ASF接受所有重複物品交易,包含不利交易。 只有當您想要在您的帳號執行1:1交易的Bot時,這個功能才有用,因為您曉得ASF將不再幫您完成徽章進度,且可能會因N張重複卡片,而使您損失收集進度。 除非您有意執行一個交易Bot,且沒有打算收集徽章進度,否則您不應啟用此選項。
不論您如何設定TradingPreferences
,被ASF拒絕的交易並不代表您無法自行接受。 若您保留BotBehaviour
的預設值,裡面並不包含RejectInvalidTrades
,ASF將忽略這些交易,讓您自行決擇。 同樣適用於MatchableTypes
及其之外的物品,這個模組只用來幫助您自動化STM交易,而不是用來判斷交易的利弊。 這個規則的唯一例外是,被您使用tbadd
指令加入交易模組黑名單的使用者:不論BotBehaviour
如何設定,來自這些使用者的交易都會立即被拒絕。
強烈建議您,在啟用這個選項時使用ASF雙重驗證,因為如果您還需要手動確認每筆交易,這個功能也將會失去它的特點。 即使無法確認交易,SteamTradeMatcher
也能正常運作,但若您沒有及時手動確認,就會積欠許多確認請求。
MatchActively
設定是SteamTradeMatcher
的主動版本,包含Bot發送交易給其他使用者的交互式匹配。 它可以單獨運作,亦可結合SteamTradeMatcher
設定一起運作。
為了使用這個選項,您需要滿足一系列的需求。 您需要擁有加入我們的ASF STM清單的資格,但需求略為寬鬆。 您至少應保證帳號不受限制、啟用ASF 雙重驗證,並在MatchableTypes
中設定至少一種有效類型,例如交換卡片。
若您滿足了上述需求,ASF將會定期與我們的公開的ASF STM清單通訊,已主動匹配當前可用的Bot。
- 每個匹配階段都是由「輪次」組成,單次匹配階段最多可包含
10
輪。 - 每輪中,ASF 都會擷取我們的物品庫,並列出的所選Bot的物品庫,以便找到可以匹配的
MatchableTypes
物品 若找到合適的配對,ASF將自動發送並確認交易提案。 - 每套物品(具相同appID、類型及稀有度)在一輪中只能匹配一次。 這是為了盡可能減少「物品不再能用」的情形,無需在發送所有交易之前,等待每個Bot做出回應。 這也是為什麼以輪次來匹配,而不是持續進行的主要原因。
- ASF不會在單次交易中送出超過
255
個物品,且每個輪次中不會向單個使用者送出超過5
個交易提案。 這是由Steam的限制,及我們自己的負載平衡所加上的。 - 若沒有因為匹配的套數用完而取消,ASF有
40
個唯一Bot的硬性限制──在這種情形下,ASF會在下一輪優先匹配尚未匹配過的機器人。 - 如果ASF認為應該繼續匹配,下一輪將在
5
分鐘後開始(增加一些冷卻時間,使所有Bot對我們的交易做出回應),否則匹配階段結束,並在8
小時後繼續。
這個模組應是透明的。 匹配將在ASF啟動後約1
個小時後開始,並且每8
個小時重複一次(如果需要)。 MatchActively
功能旨在作為一項長期的定期措施,以確保我們積極地向收集完成的方向前進,但若將此作為指令使用,就會造成短期的時間及資源壓力。 這個模組的目標使用者是主要帳號及「用於存放物品的」備用帳號,但亦可被任何未設定成MatchEverything
的Bot使用。
ASF會盡力將使用該選項產生的請求量及壓力降至最低,同時盡可能提高匹配效率。 匹配Bot及組織整個流程的演算法是ASF的實作細節,並且可以依據回饋、實際情形及未來的想法而改變。
當前版本的演算法會使ASF優先考慮Any
標籤的Bot,特別是那些擁有更多種遊戲物品的Bot。 當Any
的Bot用完後,ASF將依據相同遊戲物品的規則平均匹配Bot。與其他Bot相比,擁有過多物品的Bot更有可能出現物品庫相關問題,而被進一步降低優先級。 無論如何,ASF將至少嘗試匹配一次每個可用的Bot,以保證我們不會錯過可能的徽章套卡進度。
MatchActively
會考慮您使用交易指令tbadd
加入黑名單的Bot帳號,且不會嘗試匹配它們。 這能用來告訴ASF它不該匹配哪些Bot,即使它們可能有重複物品能提供我們使用。