七日殺・Project Z

攻略筆記

全站搜尋

發布於 2026/07/19

無人機不見了

一個指令叫回來

無人機有圖示卻找不到?這篇先用一行指令把它叫回來,再解釋走失原因與預防方式。

本篇涵蓋:先救再說 | 只准用這一個指令 | 為什麼會不見 | 為什麼不會自己回來 | 怎麼預防 | 救不回來的情況


先救再說

無人機不見時,不用回原地、不用挖地、不用重登,人在哪都可以做:

步驟動作
1按 F1 打開主控台
2輸入 jds unstuck
3按 Enter
4再按 F1 關閉

無人機會立刻傳送到你身邊,落點是你的胸口後方約 5 格,而且遊戲會自動偵測牆壁與障礙物,不會把它塞進石頭裡。

💡 這是遊戲原廠內建的指令,不是 MOD。 開發商 The Fun Pimps 專門做了這個指令來救卡住的無人機——換句話說,無人機走失是原廠都承認的已知問題,不是我們伺服器壞掉,也不是你操作錯誤。

✅ 已實測:2026-07-19 我們伺服器有一台無人機掉到 Y=0(世界最底層基岩),主人在地表怎麼找都找不到。執行本指令後,它從地底 44 格深直接傳送回主人身邊,機體與貨物完好。

這個指令我們已經開放給全體玩家,不需要管理員權限,你隨時可以自己用。


只准用這一個指令

⚠️ 這是本篇最重要的警告。

jds 底下還有其他子指令,但它們會動到別人的東西,而且不會有任何確認視窗:

指令後果能不能用
jds unstuck把你自己的無人機叫回身邊✅ 只用這個
jds clear <玩家名>刪掉該玩家的無人機資料(含裡面的東西)🚫 絕對別碰
jds remove <編號>從世界移除指定無人機🚫 絕對別碰
jds unassign <玩家名> <編號>解除某人跟無人機的綁定,變成無主機(見文末,會救不回來)🚫 絕對別碰

🚨 jds clear 沒有二次確認、沒有復原、沒有回收桶。 打錯一個名字就是別人的無人機連同貨物直接消失。你只需要記得 jds unstuck 這一個。


為什麼會不見

無人機掉到 Y=0——那是七日殺世界的最底層基岩。而遊戲地圖是俯視平面圖,只畫左右前後(X/Z),不畫高度(Y)。

所以畫面與實際位置會完全不同:

觀察來源顯示/所在位置原因
地圖圖示就在你腳邊平面圖只畫 X/Z,不顯示高度 Y
無人機實體在正下方 40 幾格岩層裡掉到世界最底層 Y=0

你站在原地轉三圈都不可能看到它,因為它跟你之間隔著幾十層石頭。

根本原因:遊戲的位置檢查形同虛設

我們反編譯了伺服器程式,遊戲判斷「無人機的位置合不合理」的函式長這樣:

public bool isValidDronePos(Vector3 pos)
{
    // 只檢查座標是不是「非數字」,完全沒有檢查高度
    return !float.IsNaN(pos.x) && !float.IsNaN(pos.y) && !float.IsNaN(pos.z);
}

它只確認座標不是亂碼,完全不檢查高度合不合理。所以 Y=0(埋在基岩裡)對遊戲來說是「完全有效的位置」,於是安心存檔、永久保留——無人機就這樣被合法地封在地底,直到有人手動救它。

⚠️ 這是遊戲引擎層級的缺陷,無法用伺服器設定預防。 我們查過全部沙盒選項(SandboxOptions)與伺服器設定檔(serverconfig.xml),沒有任何一個參數跟無人機行為有關。所以本篇的重點是「快速救援」而不是「根治」。


為什麼不會自己回來

遊戲其實做了三道自動跟隨的防線,正常情況下無人機很難走丟:

防線觸發時機共同失效條件
玩家傳送時跟隨你用傳送點/床傳送時,無人機一起被拉過去停留模式或關機
超出範圍拉回距離拉太遠時自動傳送跟上停留模式或關機
上線時歸隊你重新登入世界時,把跟隨中的無人機生成到你身邊停留模式或關機

問題是這三道防線全部掛在同一個條件上:

public void TeleportIfFollowing()
{
    if (orderState == Orders.Follow && !isShutdown)   // 必須「跟隨模式」且「未關機」
        teleportState();
}

只要無人機處於「停留模式」或「關機狀態」(例如電量耗盡),三道防線同時失效。 這時候它就會一直待在原地——即使那個「原地」是地底 44 格深,即使你重新登入一百次。

這正是為什麼很多人會覺得「我明明開了跟隨,它就是不回來」——一旦沒電關機,跟隨設定就不再有意義了。

而 jds unstuck 之所以能救,是因為它跳過了所有條件檢查,直接強制執行傳送:

public void DebugTeleportUnstuck()
{
    teleportState();   // 不檢查模式、不檢查關機,直接傳送
}

怎麼預防

既然沒有設定可以調,只能從使用習慣下手:

做法為什麼
注意電量,別讓它關機關機 = 三道自動跟隨防線同時失效,這是最常見的走失主因
平常保持「跟隨」模式停留模式的無人機不會跟著傳送,你一傳送就等於把它丟在原地
在礦坑、地下室、深洞附近多留意我們伺服器兩台走失的無人機掉在同一個地點,該處應該是地形有破洞
傳送前瞄一眼它在不在三道防線只在「跟隨中」才有效,確認它跟著你再傳送最保險

💡 傳送有 5 秒冷卻:連續呼叫 jds unstuck 不會更快,指令送出後等一下就好。


救不回來的情況

有一種狀況這個指令救不了:無主無人機。

jds unstuck 的傳送目標是「這台無人機記錄的主人」的位置:

Vector3 chestPosition = Owner.getChestPosition();   // 傳送到主人胸口位置

如果一台無人機因故失去主人紀錄(系統內部顯示 ownerId = -1),它就沒有傳送目標了,任何人打指令都救不回它——它會永遠停在原地。

⚠️ 我們伺服器目前就有一台這樣的無主無人機卡在地底。這也是為什麼上面警告絕對不要用 jds unassign——那個指令做的事情正是「把無人機變成無主機」,一旦執行,那台無人機就再也回不來了。

如果你的無人機打了 jds unstuck 完全沒反應,請直接回報管理員,不要自己嘗試其他 jds 指令,我們會從伺服器端查它的實際狀態。


延伸閱讀

同分類:速查對照