Rec-Room
您如何跟踪 Rec Room 排行榜上的擊殺數?
我想跟踪玩家獲得的每一次淘汰並將其儲存在排行榜中。玩家在加入房間時應該能夠看到他們的總擊殺數,並與其他玩遊戲的人進行比較。
答案取決於您如何設置遊戲:遊戲規則晶片健康管理、自定義健康管理。在這兩種情況下,您都需要使用玩家命中籌碼來檢測玩家何時被擊中,然後檢查他們是否已被淘汰,但是,由於玩家命中籌碼具有高達 20 的緩衝區,您將需要緩解一個常見但容易錯過的錯誤,該錯誤將允許玩家從一次淘汰中獲得多分。
重複消除錯誤
消除計數的一個常見缺陷是沒有考慮玩家命中籌碼中的緩衝區。對於繁忙的房間,玩家點擊晶片的緩衝區可能會嚴重飽和,而 Rec Room 中緩慢的 0.1 秒滴答速率只會加劇問題。要了解該錯誤,請想像以下場景:
- 一名防守者剛剛被一名攻擊者用連發步槍的所有 5 發彈丸擊中。這些射彈都在 1/10 秒內擊中玩家,導致玩家擊中晶片緩衝 5 次擊中防守者。
- 防御者只有1個HP;低到足以讓單個彈丸消滅它們。
- 當電路處理第一個命中時,它將它們的生命值設置為 0 並將其計為消除。
- 現在防守方已被淘汰,無法記錄更多的命中,但是……還有 4 個緩沖在玩家命中晶片中尚未處理的命中。
- 如果電路沒有首先檢查他們是否具有積極的健康,或者俱有一定的消除標誌角色,那麼接下來的 4 次命中中的每一次都會給攻擊者另一個消除。他們將從原本應該只有一次的淘汰中獲得 5 次淘汰。
這顯然會破壞消除跟踪器的有效性,因此減輕它很重要。既然您了解了這個陷阱,請繼續閱讀以了解如何解決它。
自定義健康管理
如果您有自定義健康管理,這最終會非常簡單。在您的健康管理電路中,您應該已經知道防守者在擊球之前和之後的健康狀況。您還應該有攻擊者的 ID。為避免上述陷阱,請使用比較器執行以下步驟:
- 在施加傷害之前檢查防御者的健康狀況是否為正。
- 在施加傷害後檢查防御者的生命值是否小於或等於 0。
- 如果這兩個都為真,則將攻擊者的 ID 傳遞到遞增的排行榜籌碼中。
該系統將是您使用自定義健康電路計算消除量所需的全部。
遊戲規則 健康管理
如果您使用遊戲規則晶片來管理健康,那麼您需要標記被淘汰的球員,以便在他們已經被計為淘汰時通知電路。您可以使用玩家統計數據或角色。
- 使用玩家命中籌碼,檢查防御者的生命值是否為 0。
- 檢查防守者是否有您創建的標誌(即檢查他們是否有您自定義的淘汰角色或指定的球員統計數據不等於 0)
- 如果標誌不存在,則將攻擊者的 ID 傳遞到遞增的排行榜籌碼中,然後將標誌應用於防御者(即給他們角色或將指定的玩家統計設置為 1)。
- 如果防守方剛剛被淘汰,請確保將他們的 ID 通過延遲晶片至少 2 秒後移除旗幟。2 秒的時間足以讓玩家擊中籌碼的緩衝區清除並避免任何重複消除錯誤。
當您使用遊戲規則晶片管理健康時,該系統將是您計算消除次數所需的全部。