速查 › 介面座標圖

介面座標圖

版面檔的每一行都寫著這個元素在畫面上的位置。 把整個檔案的座標畫出來,就得到一張「哪個東西在畫面哪裡」的地圖 —— 全程沒有開遊戲,也沒有用到任何截圖。

先講一個發現:座標是絕對的

版面檔用縮排把元素排成一層一層的群組。直覺會以為子元素的座標是相對於上層群組 (很多介面系統都這樣)。實際上不是。

驗證方法:把 ingame.big全部 18,649 個帶座標的元素各用兩種解讀算一次, 看哪一種算出來的位置比較合理:

我們改過這一段

這頁上線時,第一列寫的是「99.3% 對 41.4%」, 但沒有寫「落在畫面內」是怎麼判定的

重新量的時候用五種合理的判定條件都湊不出那兩個數字。 原本那一對怎麼算出來的,本站已經無法重現,所以整列換成下面這張表 —— 每一種判定都把條件寫清楚,讀者可以自己挑一種重跑。

「落在畫面內」怎麼判定絕對座標相對座標差幾倍
整個框都在 640×480 之內96.4%18.9%5.1×
左上角在 640×480 之內98.5%25.2%3.9×
框與畫面有任何重疊99.4%25.7%3.9×
中心點在 640×480 之內99.0%23.6%4.2×

結論不受影響,而且比原本更強:四種判定條件下, 絕對解讀都是相對解讀的三點九到五點一倍不管你怎麼定義「在畫面內」,絕對解讀都贏

⚠️ 2026-08-29 訂正:這四對數字本站算錯過一次

上面那張表原本寫 49.1 / 19.5、91.0 / 42.7、88.5 / 40.2、83.2 / 33.6。 那組數字是整欄左移一格算出來的 —— 讀成了 (保留欄, X, Y, 寬),而不是本頁自己宣告的第 4 到第 7 欄(X, Y, 寬, 高)。

怎麼確定是欄位錯了:每個版面檔開頭都有一行畫面定義,例如 SC:DEFENSIVEPOS,1,0,0,0,640,480,…。畫面就是 640×480 —— 用第 4-7 欄讀出來是 (0, 0, 640, 480),正是畫面本身; 用第 3-6 欄讀出來是 (0, 0, 0, 640),寬度變成 0。 只有一種讀法成立,而且這一行的身分獨立可知,不是靠數量湊出來的。

錯誤的形狀也說得出來:左移一格之後,X 被釘在一個 99.5% 的行都是 0 的保留欄,所以「左上角在內」被灌水到 91.0%; 同時被當成「高」的其實是「寬」,所以「整框在內」塌到 49.1%。 一高一低正是位移一格的特徵

底下那張「子元素落在群組框裡 52.7%」是用正確欄位算的,沒有受影響。 同一頁兩張表用了不同口徑 —— 這就是為什麼沒有任何一支檢查器抓到它。

另一個檢驗項目絕對座標相對座標
子元素完全落在上層群組的框裡52.7%2.6%

⚠️ 本站訂正了自己的訂正(2026-08-29)

這裡原本寫「相對解讀會讓一大半的元素跑到畫面外, 這在一款正式出貨的遊戲裡不可能發生」。

後來本站把這個理由撤回,說它會把自己也否掉, 因為「絕對解讀也只有 49.1% 整框在畫面內」。 那次撤回是錯的 —— 49.1% 本身就是用錯欄位算的(見上面那張卡)。 用正確欄位,絕對解讀是 96.4%

所以原本那個理由其實站得住:相對解讀只有 18.9% 的元素整框在畫面內, 那確實不像一款出貨遊戲的樣子。 本站撤回了一個對的理由,而撤回的依據是一個錯的數字。 底下這個觀察本身仍然成立,也仍然是更好的論據:

真正的原因是:版面檔裡本來就塞著大量隱藏、備用、同畫面多版本的元素。 同一個元素在一個檔裡宣告六次是常態 (見 FEL 版面語法)。 畫面外的座標不代表出錯,代表那一份宣告當下沒有被用到。

改用一個看得見的元素當證據

與其比百分比,不如找一個確定會出現在畫面上的元素, 看兩種解讀各自把它算到哪裡。

TX:RATING 就是那個元素 —— 它是本站招牌那一課要關掉的東西, 整整一課存在的理由就是「它看得見、而且很多人想關掉它」

fes_ingameendofgamemenu.fel 裡的那一行來算 (這一行的數值是剛安裝好的 EA 原版那一份; 這台機器上那一份被模組改過,同一行的 Y 是 409、逐層累加是 1,495, 一樣遠在畫面外,結論不受影響):

XY
TX:RATING(自己)572398
GR:HOMEPLATE349396
GR:BASES234312
GR:DIAMOND315314
GR:BASEBALLCENTER18764
相對解讀(逐層累加) 1,6571,484
絕對解讀 572398

畫面是 640 × 480。 相對解讀把它算到 (1657, 1484) —— 螢幕的兩倍半以外。 絕對解讀算到 (572, 398),在畫面右下角。

一個看得見的元素,不可能座標在畫面外。 這一個案例比上面四種百分比都硬 —— 百分比要解釋「為什麼有些元素在畫面外」, 而這個只要問「這個東西你在遊戲裡看得到嗎」。

⚠️ 「這個元素在畫面上看得到」的依據是網友的實機截圖, 不是本站自己開遊戲拍的。非本站實機驗證

結論不變:座標是相對於整個畫面的絕對值,群組只是邏輯上的分組,不是座標的原點。 變的是撐住這個結論的理由 —— 從一個會反噬自己的百分比論證,換成一個看得見的元素。

計法補充:母體是這台機器上一份 2023 年整理的 ingame.big 那 47 個版面檔裡第 4 到 7 欄可解析成數字的行, 扣掉 KA:(57 行,那四欄是影格與時間不是座標),共 18,649 個。 剛安裝好的原版只有 44 個版面檔(見比賽中版面檔一覽), 拿原版重跑母體會少一批。
「相對座標」的算法是把上層每一層的 X、Y 逐層累加下去 —— 不只 GRGGSG 這三種群組指令, 也包含 FRFCBUSLTLSC 這些同樣會有下一層子元素的行(47 個檔裡有子元素的行 6,722 個,只有 3,480 個是那三種群組)。 如果只累加那三種群組,相對欄會變成 19.7% / 30.3% / 30.8% / 26.2%,差 3.2 到 4.9 倍, 絕對解讀一樣四種判定全贏。

群組的框也不是裁切範圍

上面第二張表只有 52.7%,代表有將近一半的元素畫在自己所屬群組的框外面。 群組的寬高欄位存在,但不會把超出去的子元素切掉。

這解釋了一件本站原本覺得奇怪的事:跑壘者速度那幾個數字寫在 GR:HOMEPLATE(349,396,寬 250)裡面,但它自己的 X 是 618, 已經超出群組右邊界 599。照樣顯示。

圖:比賽中的記分板版面

下面這張圖是 fes_ingameinfobar.fel36 個顯示開關為 1 的可見元素,照它們自己寫的座標畫出來的 (「可見元素」=文字 TX、貼圖 SH、色塊 RT 這三種,而且寬高都大於 0; 這個檔顯示開關為 1 的行其實有 97 行,其餘是群組與不佔畫面的指令)。 橘色是下方圖例列出的七組,其餘是同一個檔案裡的其他元素。 (滑鼠移到框上會顯示行號與座標)

SH:GREYTHIN1 · 第 36 行 · (0,458) 645×22 SH:F5 · 第 428 行 · (283,413) 135×18 SH:BLACKCORNER · 第 627 行 · (5,5) 272×60 SH:BLACKTRANBOT · 第 753 行 · (576,317) 64×128 TX:RATING · 第 758 行 · (618,391) 20×12 · 文字 99 TX:RATING · 第 769 行 · (618,348) 20×12 · 文字 99 TX:RATING · 第 779 行 · (618,362) 20×12 · 文字 99 TX:RATING · 第 788 行 · (618,377) 20×12 · 文字 99 TX:RATING · 第 797 行 · (618,377) 20×12 · 文字 99 TX:RATING · 第 805 行 · (550,461) 20×12 · 文字 99 SH:BP · 第 809 行 · (103,21) 16×20 SH:BP · 第 811 行 · (93,10) 16×20 SH:BP · 第 813 行 · (83,21) 16×20 TX:SCORE1 · 第 835 行 · (63,23) 24×14 · 文字 99 TX:SCORE2 · 第 842 行 · (63,42) 24×14 · 文字 99 SH:EASPORTS · 第 865 行 · (590,20) 50×50 TX:OUTS · 第 868 行 · (437,92) 36×12 · 文字 Out TX:NUMBER · 第 869 行 · (424,92) 17×12 · 文字 3 TX:BALLS · 第 871 行 · (48,52) 17×25 · 文字 3 TX:STRIKES · 第 872 行 · (67,52) 17×11 · 文字 2 TX:DASH · 第 873 行 · (58,52) 15×11 · 文字 - TX:INNING · 第 881 行 · (295,19) 26×12 · 文字 9 SH:BARBACK · 第 891 行 · (77,448) 66×16 SH:POWERBAR · 第 892 行 · (79,450) 62×6 TX:TX1 · 第 896 行 · (113,42) 35×12 · 文字 999 SH:POWERBAR · 第 901 行 · (79,450) 62×6 TX:TX1 · 第 905 行 · (577,473) 26×12 · 文字 WWW TX:TX1 · 第 909 行 · (220,473) 35×12 · 文字 WWW TX:TX1 · 第 913 行 · (415,473) 118×11 · 文字 WWWWWWW TX:TX1 · 第 917 行 · (75,473) 131×11 · 文字 WWWWWWW SH:BARBACK · 第 923 行 · (562,460) 66×16 SH:POWERBAR · 第 924 行 · (565,462) 62×6 SH:BARBACK · 第 930 行 · (562,460) 66×16 SH:POWERBAR · 第 931 行 · (565,462) 62×6 SH:BARBACK · 第 937 行 · (562,460) 66×16 SH:POWERBAR · 第 938 行 · (565,462) 62×6 1 2 4 3 5 6 7
資料來源data\frontend\ingame.bigfes_ingameinfobar.fel。 每個方框的 X、Y、寬、高都直接取自版面檔的第 4 到第 7 個欄位,沒有任何位置是估的。 虛線是畫面的水平與垂直中線,只是輔助線。
版本說明:這張圖量的是這台機器上一份 2023 年整理的 ingame.big(47 個版面檔)。剛安裝好的 EA 原版只有 44 個版面檔,而且不含 fes_ingameinfobar.fel —— 全新安裝的話,你在自己的檔案裡找不到這個版面檔是正常的, 有它的是裝過台灣名冊那類社群模組之後的版本。
標號是什麼元素 行號座標顯示的字
1跑壘者速度TX:RATING 758 · 769 · 779
788 · 797 · 805
618,391 等六處99
2兩隊分數TX:SCORE1
TX:SCORE2
835 · 84263,23
63,42
99
3好壞球數TX:BALLS
TX:STRIKES
TX:DASH
871–87348,52
67,52
58,52
3
2
-
4出局數TX:OUTS
TX:NUMBER
868 · 869437,92
424,92
Out
3
5局數TX:INNING 881295,199
6投打數據格的
數字欄
TX:TX1 896113,42999
7投打數據列的
文字欄
TX:TX1 913 · 917415,473
75,473
WWWWWWW

第 6、7 兩組所屬的群組叫 STATSBOX/PITCHERBATTER, 顯示的字是佔位字串(三位數、七個字寬), 所以本站只寫得出「這格能放幾個字」,不寫它實際放的是哪一項數據WWWWWWW 為什麼是 W,見文字表那頁

自己畫一張

介面萬用工具加了一個 --where,把上圖用到的座標直接印出來:

python mvp_fel_toolkit.py "你的遊戲資料夾" --where fes_ingameinfobar.fel

⚠️ 你的遊戲如果是剛安裝好的原版,這一行會說封裝檔裡沒有這個檔 —— 那不是錯誤,原版的 ingame.big 只有 44 個版面檔、本來就沒有它。 先用 --list 看你這一份有哪些,再挑一個換上去。

你會看到
fes_ingameinfobar.fel 裡顯示中的元素(畫面是 640x480)

   行號    X    Y   寬 x 高  指令:名稱                文字 / 所屬群組
  ----------------------------------------------------------------------------
    758  618  391    20x12   TX:RATING              「99」  < .../BASES/HOMEPLATE
    769  618  348    20x12   TX:RATING              「99」  < .../BASES/THIRDBASE
    835   63   23    24x14   TX:SCORE1              「99」  < .../TEAMSCOREFLASH/X0Y0
    ...
  共 36 個。全程唯讀。

換成別的檔名就換一個畫面。fes_hudleft.fel 有 186 個, fes_ingameoverlay.fel 有 67 個。

這張圖不能告訴你什麼

三件事本站沒有驗證

一、沒有跟實機畫面比對過。圖上畫的是檔案裡宣告的座標, 不是遊戲跑起來的樣子
二、遊戲程式可以在執行時搬動元素。 版面檔那頁已經證實群組的顯示開關會被程式覆寫,位置同理。
三、640×480 是版面座標系,不是你的螢幕解析度。 遊戲怎麼把它縮放到實際視窗,本站未解讀。

未驗證 要當成「找元素的地圖」用,不要當成「畫面預覽圖」用。

📌 重點整理

接下來