故事 › 王建民用的是 Smoltz 的投球姿勢

王建民用的是 Smoltz 的投球姿勢

遊戲裡沒有王建民的投球動作 —— 2005 年的遊戲當然沒有。 所以 2009 年做名冊的人得從遊戲既有的動作裡挑一個最像的。 他們挑完之後把理由寫進了更新紀錄。 十七年後打開那份檔案,那個數字還在那裡。

那句話與那個數字

2009 年那份台灣之光名冊的更新紀錄裡有這麼一條:

王建民 — Smoltz
(原本的 Schilling 比較偏高壓,Smoltz 比較接近小王的 3/4。)

把那份名冊的 pitcher.dat 打開,找 pitchattrib_pitcher_delivery 這一欄:

球員投球姿勢編號
Chien-Ming Wang28
Smoltz28

一模一樣。不是相近,是同一個數字 —— 因為那本來就是「指向同一組動畫」的意思。

不只這一個 —— 十條全部驗過

同一份更新紀錄裡有二十幾條這樣的對照。 本站把其中十條逐一打開檔案比對: 左邊是 2009 年那份名冊裡那位球員的欄位值, 右邊是剛安裝好的原版裡那位對照球員的欄位值。

當年寫下的類型 2009 名冊原版
王建民 用 Smoltz 的姿勢投球 2828
羅國輝 用 A-Rod 的姿勢打擊 2121
陳鏞基 用 Helton 的姿勢打擊 4949
詹智堯 用 Helton 的姿勢打擊 4949
蔣智賢 用 Piazza 的姿勢打擊 1313
郭嚴文 用 Green 的姿勢打擊 4545
林哲瑄 用 A-Rod 的姿勢打擊 2121
胡金龍 用 Ordonez 的姿勢打擊 1010
陳鴻文 用 Maddux 的姿勢投球 1313
增菘瑋 用 Glavine 的姿勢投球 3333

⚠️ 胡金龍那一列原本在最後多掛了一格 Generic 3,比表頭多一欄, 而且那一欄沒有標題。那一格已經移掉 —— 因為 EA 自己的代號表 (MVPtools/config.txt 的「Batting Stance」段,三份變體寫的都一樣) 把打擊姿勢 10 列成 Ordonez, Magglio, 不是通用姿勢;原版名冊裡用 10 的只有 3 個人。

十條全中,一條都沒有例外。 十七年前有人看著比賽影片決定「這個人的姿勢像那個人」, 把結論寫成一個整數存進檔案,那個整數今天還在原地

本站在驗這十條的時候踩了一次坑

第一次比對,七條打者全部對不上 —— 名冊裡那個欄位整排是 0。 一度以為站上已經發表的那三條是錯的。

真正的原因是:兩份名冊的欄位順序不一樣。 原版的第 29 欄是打擊姿勢,2009 那份名冊的第 29 欄是揮棒型態 —— 46 欄裡有 27 欄對不上。細節在 欄號在不同名冊之間會整個位移

用各自檔案的第一行去查欄位名,十條就全中了。 本站的教學一直在寫「不要記欄號」,這次沒照做的是本站自己。

上表「蔣智賢 — Piazza」那一條,本站第一次驗的時候沒有驗成 —— 因為 Mike Piazza 2007 年就退休了,2009 年那份名冊裡根本沒有他。 下面那張表是後來怎麼補起來的。

後來這一條也驗成了 —— 對照組要去原版找

2026-08-26 本站拿到剛安裝好的原版再查一次。 Mike Piazza 就在那份原廠名冊裡,他的打擊姿勢欄是:

球員在哪一份名冊打擊姿勢編號
蔣智賢2009 年台灣之光名冊13
Mike Piazza剛安裝好的原版13

十條全部成立。當年那份更新紀錄一條都沒寫錯 —— 只是有一條的對照對象已經被後來的名冊刪掉了, 要回到 2005 年出廠的那一份才找得到。

這也順帶說明一件事:模組是一層一層疊上去的, 比對的時候要選對那一層。本站原本用測試機上那份已經被換過的名冊去找, 當然找不到。

那些編號其實都有名字

上面比的是「兩個人的編號一不一樣」。那些編號本身也有名字 —— 遊戲的文字檔裡,大部分打擊姿勢與投球姿勢編號都對應一個真實球員的姓 —— 但不是每一個:打擊 66 個編號裡有 11 個是「通用 1」「屈膝」「開放式」這種通用姿勢的名字、 還有一個(23 號)連名字都查不到,投球 59 個裡也有 12 個是「3/4 低抬腿」「側投」「典型 1」這種通用動作 (完整兩份名單在這裡)。

而且那些名字不是隨便掛的:只要那個編號是專屬的 (整份名冊只有一兩個人在用),用它的人就是它命名的那個人 —— 打擊 43 個專屬編號裡 39 個成立,投球 46 個裡 41 個成立。

2026-08-28 補:兩個外部名單也給了同樣的答案

上面那些名字是從遊戲自己的文字檔查出來的。後來在兩批舊資料裡各找到一份 互相獨立的完整名稱表(一份 2006 年的台灣模組網站、一份社群工具的設定檔)。 拿剛安裝好的原版資料去考它們:

打擊 54 個具名編號全中、投球 45 個全中; 其中「只有 1–2 人在用」的錨點,打擊 39/39、投球 42/42,零例外。 把每個球員的編號隨機打散重排 500 次,同一套比對平均只命中 0.25 與 0.14。

一個很難用巧合解釋的細節:整份原版名冊唯一沒有人使用的打擊姿勢編號是 23, 而那份 2006 年的表也剛好在 23 這一格跳過

⚠️ 同時訂正一個數字:這一段原本寫「投球 43 個」, 跟打擊那個 43 一樣 —— 那是抄錯了。重數原版 pitcher.dat: 只有 1 人用的 36 個 + 只有 2 人用的 10 個 = 46 個。 完整說明在代號對照那一頁

⚠️ 本站在這一節寫過一個完全相反的結論,而且錯了

本站一度在這裡寫:「2,921 個打者裡只有 10 人用以自己命名的姿勢, 1,430 個投手裡 0 人」,還列了一張 「Clemens 用 Hoffman 的、Schilling 用 Nelson 的」的表。

那整段是假的。成因是本站把編號對到名字的方式弄錯了 —— 假設「第 N 號的名字是第 10000+N 條字串」, 而真正的對應不是這樣。用錯的字典去查,每個人查出來的當然都不是自己。

正確做法與完整訂正在 代號對照那一頁

留著這一段而不是刪掉,理由跟本頁下面那個 47% 的錯誤一樣: 一個「聽起來很有故事性」的結論,正是最該回頭驗一次的那種。 「連 Clemens 都不用自己的姿勢」讀起來太漂亮了, 而那份漂亮就是它能一路寫進頁面而沒有被攔下來的原因。

有一個人不在遊戲裡,但他的打擊姿勢在

打擊姿勢的名字清單裡,有一個叫 Bonds

可是把原版 2,921 位球員找一遍,沒有一個叫 Bonds 的人

這個「沒有」本站查得多徹底

本站原本在這裡寫了一個編號,那是錯的

第一版寫「打擊姿勢第 42 號叫 Bonds,有兩個球員在用它」。 那個編號是用錯的對應方式算出來的 (見上一節的訂正)。 用正確的方法查,第 42 號其實叫 Burnitz

Bonds 是第幾號?本站查不出來。 本站的方法是「看誰在用那個編號,再去對名字」—— 而這個名字對應的那位球員根本不在名單裡, 所以沒有人可以拿來當錨點。未解

本站量到什麼、沒量到什麼

量到的:名單裡沒有這個人;而遊戲的姿勢名字清單裡有這個名字。

沒量到的:它是第幾號、為什麼會這樣。 未解

一個站外的背景知識(不是本站量到的): 那個年代有球員沒有出現在部分棒球遊戲裡,一般認為跟授權談判有關。 本站把它寫在這裡當脈絡,不主張這就是原因

能確定的是:動作留下來了,人沒有。

本站手上有一份 2008 年台灣模組社群教學網站的存檔。 它的教學目錄一共十條,第一條就是「邦茲出現法」 —— 在那個年代,「把這個人弄回遊戲裡」是玩家最先想解決的事。

本站不散布那份存檔,也不轉載它的做法。 這裡只講一件量得到的事:那份目錄的第一條是什麼。

名單裡有一個對不上任何東西的異常值

本站把 2,921 位球員的薪水欄由高排到低,前十名是這樣:

薪水欄球員球隊
251Alex RodriguezYankees
199Manny RamirezRed Sox
188Derek JeterYankees
179Jon DowdGiants
170Jason GiambiYankees
169Jeff BagwellAstros
169Carlos BeltranMets
169Carlos DelgadoBurnaby Argonauts
159Randy JohnsonYankees
159Sammy SosaCubs

⚠️ 這張表原本只貼了六列,上下文卻寫「前十名」與「其他九個」, 兩句都要十列才算數。後面四列是補上的,重排一次原版 data\database\attrib.dat 的薪水欄就會得到同一份名次。 169 是三個人並列、159 是兩個人並列;球隊取的是他所屬球隊那一筆, 不是明星隊那一筆(那幾位在 roster.dat 裡各有兩筆)。 Carlos Delgado 落在 Burnaby Argonauts,那是遊戲內建的特別隊伍之一 (跟 MVP Legends、MVP Heroes 同一個 division),不是 MLB 球隊。

其他九個都是那一年真的存在、而且真的領那種薪水的球星。 第四名那位不是。

他的每一欄都量得出來

欄位意思
salary179全名單第 4 高
starpower4最高級
primary_position6左外野手
bats / throws1 / 1左打左投
所屬球隊San Francisco Giants
audioid0 沒有播報語音 —— 播報員唸不出他的名字

最後那一欄是關鍵。全名單有 1,621 人audioid 是 0 —— 那些是遊戲用來填滿小聯盟的虛構球員,播報員本來就不會唸他們的名字。

而在那 1,621 個沒有語音的人裡面, 薪水超過 100 的只有一個

Jon Dowd,179。其他 1,620 個人的薪水全部在 0 到 32 之間 (2026-09-05 訂正:這裡原本寫「2 到 37」,重量一次原版名冊,這 1,620 人裡沒有任何一筆落在 33 以上; 那個 0 是名冊最前面的 Default Default 範本列,其餘 1,619 個落在 2 到 32)。

本站量到什麼、推到什麼

量到的:名單裡有一個人同時滿足 「薪水像超級巨星」「星等最高」「巨人隊左外野手」「左打左投」 「而且沒有播報語音」。這個組合在 2,921 人裡只有他一個

推到的:這看起來像是一個位置被留下來了,但名字沒有推論

本站沒有主張這個名字是誰的替身 —— 檔案裡沒有任何一行把他跟別人連起來。 上面那張表就是全部的證據,剩下的請你自己想。

順帶一提:他的打擊姿勢欄是 0 —— 那是全名冊 582 個人在用的通用姿勢之一,不是任何一個專屬的。

這件事為什麼值得記

你在換打擊姿勢那一課看到的 「第 28 欄填一個數字」,看起來像是純技術操作。

但那個數字當年是有人看著比賽影片決定的。 「Schilling 偏高壓」「Smoltz 比較接近 3/4」—— 那是一句棒球判斷,不是一句程式判斷。 然後它被寫成一個整數,存進一個 800 KB 的純文字檔,一路留到今天。

這一課教你改的,就是那個整數。

本站在這一頁上犯的一個錯

「那份名冊有一半的名字是亂碼」—— 這是假的,而且是本站自己弄出來的

這一頁上線時寫過一段:「3,222 位球員裡有 1,507 位(47%)的姓或名是十六進位字串」, 還說陳鏞基那一列寫著 Yung-Chi b67、姓沒了。

那 47% 是本站讀檔的程式寫錯造成的。

球員資料檔的每一列長這樣:

0f58f3c1b,0 Default,1 Default,2 51,3 0,...
└───┬───┘ └───┬──┘
  列的識別碼   第 0 欄

第一格是這一列的識別碼,它沒有欄位編號,而且開頭是數字。 本站原本的程式用「開頭數字 = 欄位編號」去掃每一格, 於是把 0f58f3c1b 讀成「第 0 欄的值是 f58f3c1b」—— 第 0 欄正好就是名字。所以每一列的名字都被讀成識別碼的一部分。

用正確的讀法重量:姓或名真的是十六進位字串的,2009 那份是 5 個(0.2%), 剛安裝好的原版 6 個,本站測試機 10 個。陳鏞基那一列是 Yung-Chi Chen,好好的。

上面那三條姿勢對照重驗過了,全部成立 —— 那三個數字(28、21、49)不受這個錯誤影響,因為它們是整數欄位, 而識別碼只會撞到「開頭數字剛好等於欄號」的那些格子。 但「蔣智賢 — Piazza」當時驗不成的原因要改: 不是名字被換掉,是 Piazza 2007 年就退休了,根本不在 2009 的名冊裡。後來這一條也驗成了 —— 到原版名冊裡找得到他,見上面那張表。)

留著這一段而不是刪掉,是因為它示範了一件這個站一直在講的事: 拿到一個很漂亮的數字(47%!)的時候,先問「會不會是我量錯了」。 那個數字當時看起來很有故事性,而那正是它危險的地方。

那份名冊自己寫下的收錄標準

本站在另一頁說過「量不出 EA 當年的收錄標準」。 但這份台灣之光名冊不一樣 —— 它的標準是寫下來的

台灣球員加入名冊的條件

要曾經有在美國打過球,或者是曾經有去美國測試過。

出自那份名冊的說明檔。這是本站看過唯一一份把收錄標準寫出來的名冊。

班主任同一批模組裡另一份說明檔(2009-04-27 那個套件)還留下一條給玩家的建議,跟本站 EA 官方繁中版那頁量到的東西對得上:

因為中文語系及 2X 球衣檔皆較耗資源,很容易出問題及當機跳出, 建議玩英文語系及 1X 球衣檔的 MVP。

「1X / 2X 球衣檔」是什麼,見球衣那一課

📌 重點整理

接下來