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

當啟用​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

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,即使它們可能有重複物品能提供我們使用。

⚠️ **GitHub.com Fallback** ⚠️