順天王朝 東主街房間座標疑似設定錯誤,地圖顯示 East Mudlet 連線為 Northeast
在區域發現地圖座標可能有設定錯誤的情況。 問題描述 房間: 東主街・學文段(Q22 / 房間編號 13216) 東主街・鏢局段(Q23 / 房間編號 13217) 根據 GMCP 回傳資訊: 13216: east = 13217 13217: west = 13216 雙向出口皆為正常的 east / west 連線。 遊戲內文字地圖也顯示: 武館段 學文段 鏢局段 可確認鏢局段位於學文段正東方。 異常現象 在 Mudlet 地圖中: 學文段 \ 鏢局段 顯示成東北方向(Northeast)連線,而非正東方向(East)。 同時觀察到: 學文段 -> 鏢局段 鏢局段 -> 近東門段 兩段皆被畫成右上斜線,疑似整條東主街房間座標被設為斜向排列。 GMCP 資料 東主街・學文段(13216) exits = { east = 13217, north = 13263, south = 13261, west = 13215 } 東主街・鏢局段(13217) exits = { east = 13218, north = 13259, south = 13257, west = 13216 } 推測原因 出口資料本身正確,但房間座標可能被設定成: 武館段 (0,0) 學文段 (1,1) 鏢局段 (2,2) 近東門段 (3,3) 導致外部地圖工具依據座標繪製時,將 East 路線呈現為 Northeast。 煩請協助檢查青州城東主街相關房間的地圖座標設定。 感謝協助。
回覆(4)
感謝回報,而且分析得很細——GMCP 原始資料都貼出來了,這對排查幫助很大。 ◆ 結論:伺服器這邊沒有座標設定錯誤,因為伺服器根本沒有送座標。 我實際到線上資料庫查過東主街那一整排房間(近中央段、武館段、學文段、 鏢局段、近東門段),逐間核對出口: ・學文段 → 東 → 鏢局段 ・鏢局段 → 西 → 學文段 ・鏢局段 → 東 → 近東門段 ・近東門段 → 西 → 鏢局段 全部是正東/正西,雙向對稱,沒有任何一條斜向(northeast 之類)的出口存在。 這跟你看到的 GMCP 資料一致。 再來是關鍵的一點:伺服器的 Room.Info 封包只送這幾個欄位—— 房間編號、房間索引、房名、區域、分區、出口表、出口詳情。 沒有座標欄位,房間資料本身也沒有存任何 x/y。 所以「整條東主街被設成斜向排列」這個設定在我們這邊並不存在, 也不可能存在——我們沒有那份資料可以設錯。 ◆ 那斜線是哪來的 Mudlet 的地圖版面是客戶端自己排出來的。自動繪圖腳本在建新房間時, 若目標格子已經被別的房間佔住,常見的處理就是把新房往斜角挪一格避開; 另一種常見情況是那間房第一次被建立時,腳本沿用的是你當時進房的方向, 而不是後來走的正東。兩者都會留下你看到的那條右上斜線。 建議的修法是在 Mudlet 這一端處理:對那幾間房用地圖編輯功能挪回正確位置, 或把青州這一區的地圖清掉重走一次讓它重繪。 ◆ 順帶一提 如果希望我們直接在 GMCP 補送房間座標,讓 Mudlet 不必自己猜、 一次就排得整整齊齊——那是可以做的,但屬於新功能而不是修錯誤: 目前全服沒有任何一間房存有座標,要補等於整區整區重新標。 我把這個需求另外記下來給站長評估,不佔用錯誤回報的處理排程。 這一則就先收束了。若你認為我判斷有誤(例如你的 Mudlet 完全沒裝自動繪圖腳本、 或別的城市同樣走法卻是正常的),隨時可以按「申請複查」把它退回來,我再查。
【申請複查】 希望直接在 GMCP 補送房間座標
感謝你按下申請複查——而且這次退回來是對的,因為我上一則裡有一句話說錯了,正好被你的複查逼出來。 ◆ 我上次說錯的地方 我當時寫「要補座標等於整區整區重新標」。這句話不成立。 我今天把全服 39 個區域、1574 間房的出口資料抓下來,離線跑了一次推導:從任一間房出發,沿著出口一路走,往東就 +1 格、往北就 +1 格⋯⋯讓座標從出口關係自己長出來。 結果是 1574 間房全部都排得進格子,39 個區域裡有 31 個完全零衝突,整個服加起來只有 44 處排不進去。 換句話說,座標不必人工一間一間標,它可以從現有的出口資料自動算出來。我上次那句「要整區重標」是錯的,跟你說一聲。 ◆ 而且它確實會治好你回報的那條斜線 我把東主街那一段單獨拉出來看。五段(近中央段、武館段、學文段、鏢局段、近東門段)彼此之間全部是正東/正西、雙向對稱,推導出來就是一條筆直的橫線,不會有任何一格歪到東北去。 所以你的判斷方向是對的:只要伺服器願意送座標,客戶端就不必自己猜,你看到的斜線也就不會發生。 ◆ 那為什麼今天還是沒有直接做 因為這是「新增功能」而不是「修好壞掉的東西」,而且有幾件事得由站長決定,不是我可以自己選的: ・全服有 272 條上/下樓的出口。這些要另外做成樓層,還是壓平在同一張圖上?兩種做法畫出來的地圖長得完全不一樣。 ・另有 94 條像「進去」「出來」這種本來就沒有方位的出口,它們放不進格子,要決定是略過還是給個代用位置。 ・那 44 處排不進去的地方(多半是繞一圈繞回原地、格子已經被佔住),要決定讓誰佔、誰讓位。 ・座標是每個區域各自從零算起的,區域與區域之間還要再決定一次相對位置,否則兩座城會疊在一起。 這幾條都沒有標準答案,選哪一種都說得通,但玩家看到的地圖會不一樣,所以我把它整理好交給站長拍板,不自己決定。 ◆ 這一則的狀態 保持開啟,掛在站長那邊等裁示。上面那份推導結果我一併附過去了,所以真要做的話,資料面的可行性已經先驗證過,剩下的是設計取捨。 在那之前,Mudlet 這一端仍然可以用地圖編輯功能把那幾間房挪回正位,或把該區地圖清掉重走一次讓它重繪。 謝謝你堅持退回來一次——不然我那句「要整區重標」就這樣錯著留在紀錄裡了。
這一則的處置我要改一下,先把話講在前面:我要收束它了,但不是因為做完了。 ◆ 先說清楚,免得徽章誤導你 這一則收起來之後,網站上的狀態徽章會顯示「已修復」。那個徽章只有兩種狀態, 沒有「非缺陷」這一格,所以我在這裡明講——座標功能並沒有做。 這是以「功能建議」而不是「錯誤」收束的。 ◆ 為什麼改變處置 八月六日我回你「保持開啟,掛在站長那邊等裁示」。那個判斷放到今天不太站得住, 我重新對了一次: 你最初回報的錯誤——東主街被畫成東北斜線——八月五日就查清楚了。 伺服器這邊的出口資料完全正確,全是正東正西、雙向對稱,沒有東西壞掉。 之後留在這一則裡的,是你申請複查時提出的那個請求:希望伺服器主動送出房間座標。 那是一項新功能,不是一個待修的缺陷。 錯誤回報的未結案清單,是給「還沒解決的壞東西」排隊用的。 把一項沒有時程的功能建議一直掛在裡面,它每天都會浮上來一次, 卻每天都只能得到同一句「還在等」,同時把真正待處理的那幾則往下擠。 與其這樣,不如老實收束,把它記到該去的地方。 ◆ 查證結果不會跟著這一則一起消失 前面那份推導我留著了:全服三十九個區域、一千五百七十四間房,座標可以完全從現有的 出口資料自動長出來,其中三十一個區域零衝突,整個服只有四十四處排不進格子。 東主街那五段推導出來就是一條筆直的橫線。 換句話說,真要動工的時候,資料面的可行性已經先驗證過了,不必從頭來過。 還沒定的是幾個沒有標準答案的設計問題:上下樓的出口要不要另外做成樓層、 沒有方位的出口(「進去」「出來」那種)怎麼擺、衝突的格子讓誰佔、 以及區域與區域之間的相對位置怎麼定——否則兩座城會疊在一起。 這些得由站長決定,目前沒有時程。 ◆ 如果哪天做了 我會回到這一則告訴你。你是提出這個需求的人,不會跳過你。 ◆ 在那之前 Mudlet 這一端仍然可以用地圖編輯功能把那幾間房挪回正位, 或是把該區的地圖清掉、重走一次讓它重繪。 如果你覺得這樣收束不妥——比方說你認為那條斜線其實還有伺服器端的成分沒查到—— 隨時可以按「申請複查」退回來。你上次就是這樣退回來的,而且那次退得對, 逼出了我一句說錯的話(我當時寫「要補座標等於整區整區重新標」,那是錯的)。 這條路一直開著。 謝謝你這一則。它雖然沒能變成一個修好的錯誤,但你把 GMCP 原始資料整理得那麼清楚、 又堅持退回來一次,讓我們確認了一件本來沒人知道可不可行的事。
請先登入才能回覆。