已修復 sadegg 2026-07-30 08:52 修復於 2026-08-03 01:57

GMCP 在海上航行時未顯示 Room Area 資訊

我在使用 GMCP 時發現一個問題:當角色進入海上航行模式後,gmcp.Room.Info 回傳的區域相關資訊似乎全部為空值。 以目前航海中的房間為例: gmcp.Room.Info { area = "", name = "單桅三角帆船甲板", num = 590340, subarea = "", zone = "" } 當前海圖顯示座標為 (23,27),角色位於海上航行狀態,但 area、subarea、zone 等欄位均為空字串。 這造成使用 GMCP 的地圖外掛、航海輔助腳本,以及依賴區域判斷的功能無法正確識別玩家目前所處的海域。 想請問這是目前系統尚未實作的功能,還是 GMCP 在航海房間有遺漏傳送區域資訊的問題? 若能在海上房間提供適當的區域名稱(例如海域名稱)或至少填入固定的海洋區域資訊,將有助於客戶端腳本與地圖工具的開發與使用。 感謝協助確認。

回覆(5)
kangchen 2026-07-30 19:46

Sea is not room. So will not work.

sadegg 2026-07-31 14:43

Can you add an environment variable terrain? if you are at sea show sea, if at land show land. if in cave show cave.. in an instance dungeon show dungeon.. etc? gmcp.Room.Info { name = "單桅三角帆船甲板", num = 590340, terrain = "sea" }

sadegg 2026-07-31 18:28

【申請複查】 Request to add terran variable in gmcp.room.info

系統AI幫手 2026-08-02 02:14

感謝回報,也謝謝你追加的具體提案。 先講結論:這則不是程式錯誤,而你提的 terrain 欄位比較像功能建議而非錯誤,所以我不結案,把它留給站長裁定。以下是我實際查證過的結果。 ◆ 你看到的現象是真的 我查了線上你貼的那間甲板房,它身上確實沒有掛任何區域/子區資料,所以 area、subarea、zone 三欄回空字串。你沒有看錯,也不是客戶端的問題。 ◆ 但這是設計如此,不是漏送 這也是站長回覆「Sea is not room」的意思。本遊戲的大海不是由一格一格房間拼成的:你出海時全程站在「自己那艘船的甲板」這一間房裡,從頭到尾沒換過房,海上的位置是記在船身上、靠 chart 呈現的。甲板不隸屬於任何陸上區域,所以區域欄位天生就填不出東西來,並不是忘了送。 ◆ 關於 terrain 欄位,我把可行性查過一輪了 ・全服一千五百多間房裡,身上帶有地形標記的只有 150 間,全部是野外走廊,而且那些值是「竹林」「官道」「峽谷」這類寫景用的中文標籤 —— 它們是拿來產生房間描述的,不是你要的那種 sea/land/cave 分類。 ・其餘一千多間房完全沒有地形資料。也就是說,如果今天就加 terrain,能誠實填得出來的只有「船上」與「副本」兩種(這兩種剛好有現成旗標可判);cave、land、town 這些,得先由站長定義一套分類,再替全服房間逐一標記,那是一輪不小的資料工。 ・而半滿的 terrain 會比沒有更糟:你的腳本會照著它寫判斷式,等日後補齊、值域一改,整批判斷式都得重寫。所以我不打算擅自先上一個殘缺版本,這個要站長點頭。 ◆ 在那之前,先給你一個現在就能用的權宜辦法 判斷「人在海上」目前最省事的是看房名:出海時 Room.Info 的 name 一定是你那艘船的甲板名,結尾是「甲板」二字。這招談不上漂亮,但足夠讓地圖腳本在海上先停手、不要亂畫點。 ◆ 順帶一提,這兩點對你寫地圖外掛應該用得上 ・Room.Info 裡已經有 instance 欄位:只要它不是空字串,就代表這間房是副本臨時生成的、離開就會刪掉。自動製圖看到非空請一律略過,否則跑幾趟副本,地圖上就會堆出一批再也回不去的鬼房間。 ・還有 room_id 欄位,它跨改版恆定,比 num 適合拿來當地圖節點的鍵(num 每次重建都會變)。要注意它只保證「同區域內唯一」,所以請搭配 area 一起組鍵。 再次感謝你連 payload 都貼上來,省了很多來回確認。

sadegg 2026-08-02 06:48

Okay

請先登入才能回覆。