故事 › 王建民用的是 Smoltz 的投球姿勢
王建民用的是 Smoltz 的投球姿勢
遊戲裡沒有王建民的投球動作 —— 2005 年的遊戲當然沒有。 所以 2009 年做名冊的人得從遊戲既有的動作裡挑一個最像的。 他們挑完之後把理由寫進了更新紀錄。 十七年後打開那份檔案,那個數字還在那裡。
那句話與那個數字
2009 年那份台灣之光名冊的更新紀錄裡有這麼一條:
王建民 — Smoltz
(原本的 Schilling 比較偏高壓,Smoltz 比較接近小王的 3/4。)
把那份名冊的 pitcher.dat 打開,找 pitchattrib_pitcher_delivery 這一欄:
| 球員 | 投球姿勢編號 |
|---|---|
| Chien-Ming Wang | 28 |
| Smoltz | 28 |
一模一樣。不是相近,是同一個數字 —— 因為那本來就是「指向同一組動畫」的意思。
不只這一個 —— 十條全部驗過
同一份更新紀錄裡有二十幾條這樣的對照。 本站把其中十條逐一打開檔案比對: 左邊是 2009 年那份名冊裡那位球員的欄位值, 右邊是剛安裝好的原版裡那位對照球員的欄位值。
| 當年寫下的 | 類型 | 2009 名冊 | 原版 | |
|---|---|---|---|---|
| 王建民 用 Smoltz 的姿勢 | 投球 | 28 | 28 | ✅ |
| 羅國輝 用 A-Rod 的姿勢 | 打擊 | 21 | 21 | ✅ |
| 陳鏞基 用 Helton 的姿勢 | 打擊 | 49 | 49 | ✅ |
| 詹智堯 用 Helton 的姿勢 | 打擊 | 49 | 49 | ✅ |
| 蔣智賢 用 Piazza 的姿勢 | 打擊 | 13 | 13 | ✅ |
| 郭嚴文 用 Green 的姿勢 | 打擊 | 45 | 45 | ✅ |
| 林哲瑄 用 A-Rod 的姿勢 | 打擊 | 21 | 21 | ✅ |
| 胡金龍 用 Ordonez 的姿勢 | 打擊 | 10 | 10 | ✅ |
| 陳鴻文 用 Maddux 的姿勢 | 投球 | 13 | 13 | ✅ |
| 增菘瑋 用 Glavine 的姿勢 | 投球 | 33 | 33 | ✅ |
⚠️ 胡金龍那一列原本在最後多掛了一格 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 的人。
這個「沒有」本站查得多徹底
- 整個
data\資料夾逐檔搜bonds(不分大小寫、連二進位檔一起搜): 0 個檔命中 - 對照組:同樣的搜法搜
pujols→ 10 個檔命中 (證明搜法本身有效,不是搜壞了) - 唯一的例外是語系檔
FEENG.LOC—— 而那一筆正是姿勢清單上的那個名字,不是球員
本站原本在這裡寫了一個編號,那是錯的
第一版寫「打擊姿勢第 42 號叫 Bonds,有兩個球員在用它」。
那個編號是用錯的對應方式算出來的
(見上一節的訂正)。
用正確的方法查,第 42 號其實叫 Burnitz。
那 Bonds 是第幾號?本站查不出來。
本站的方法是「看誰在用那個編號,再去對名字」——
而這個名字對應的那位球員根本不在名單裡,
所以沒有人可以拿來當錨點。未解
本站量到什麼、沒量到什麼
量到的:名單裡沒有這個人;而遊戲的姿勢名字清單裡有這個名字。
沒量到的:它是第幾號、為什麼會這樣。 未解
一個站外的背景知識(不是本站量到的): 那個年代有球員沒有出現在部分棒球遊戲裡,一般認為跟授權談判有關。 本站把它寫在這裡當脈絡,不主張這就是原因。
能確定的是:動作留下來了,人沒有。
本站手上有一份 2008 年台灣模組社群教學網站的存檔。 它的教學目錄一共十條,第一條就是「邦茲出現法」 —— 在那個年代,「把這個人弄回遊戲裡」是玩家最先想解決的事。
本站不散布那份存檔,也不轉載它的做法。 這裡只講一件量得到的事:那份目錄的第一條是什麼。
名單裡有一個對不上任何東西的異常值
本站把 2,921 位球員的薪水欄由高排到低,前十名是這樣:
| 薪水欄 | 球員 | 球隊 |
|---|---|---|
| 251 | Alex Rodriguez | Yankees |
| 199 | Manny Ramirez | Red Sox |
| 188 | Derek Jeter | Yankees |
| 179 | Jon Dowd | Giants |
| 170 | Jason Giambi | Yankees |
| 169 | Jeff Bagwell | Astros |
| 169 | Carlos Beltran | Mets |
| 169 | Carlos Delgado | Burnaby Argonauts |
| 159 | Randy Johnson | Yankees |
| 159 | Sammy Sosa | Cubs |
⚠️ 這張表原本只貼了六列,上下文卻寫「前十名」與「其他九個」,
兩句都要十列才算數。後面四列是補上的,重排一次原版
data\database\attrib.dat 的薪水欄就會得到同一份名次。
169 是三個人並列、159 是兩個人並列;球隊取的是他所屬球隊那一筆,
不是明星隊那一筆(那幾位在 roster.dat 裡各有兩筆)。
Carlos Delgado 落在 Burnaby Argonauts,那是遊戲內建的特別隊伍之一
(跟 MVP Legends、MVP Heroes 同一個 division),不是 MLB 球隊。
其他九個都是那一年真的存在、而且真的領那種薪水的球星。 第四名那位不是。
他的每一欄都量得出來
| 欄位 | 值 | 意思 |
|---|---|---|
| salary | 179 | 全名單第 4 高 |
| starpower | 4 | 最高級 |
| primary_position | 6 | 左外野手 |
| bats / throws | 1 / 1 | 左打左投 |
| 所屬球隊 | — | San Francisco Giants |
| audioid | 0 | 沒有播報語音 —— 播報員唸不出他的名字 |
最後那一欄是關鍵。全名單有 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 球衣檔」是什麼,見球衣那一課。
📌 重點整理
- 一句話 遊戲裡沒有王建民的投球動作,2009 年做名冊的人只好從既有動作裡挑一個最像的,還把理由寫進了更新紀錄,十七年後打開那份
pitcher.dat,王建民 28、Smoltz 28,那個整數還在原地。 - 十條全中,一條例外都沒有 羅國輝/A-Rod 21、陳鏞基與詹智堯/Helton 49、郭嚴文/Green 45、林哲瑄/A-Rod 21、胡金龍/Ordonez 10、陳鴻文/Maddux 13、增菘瑋/Glavine 33。其中蔣智賢/Piazza 13 一開始驗不成,因為 Piazza 2007 年就退休、2009 那份名冊裡根本沒有他,要回到剛安裝好的原版才找得到,比對的時候要選對那一層。
- 本站自己踩的坑:兩份名冊的欄位順序不一樣。第一次比對七條打者全部對不上,欄位整排是 0,一度以為已發表的結論是錯的。真正原因是原版第 29 欄是打擊姿勢、2009 那份第 29 欄是揮棒型態,46 欄裡有 27 欄對不上。改用各自檔案的第一行去查欄位名,十條就全中了。「不要記欄號」是本站一直在教、這次卻沒照做的事。
- 最大的一次撤回:「1,430 個投手裡 0 人用自己命名的姿勢」整段是假的。成因是把編號對到名字的方式弄錯(假設第 N 號的名字是第 10000+N 條字串),用錯的字典去查,每個人查出來的當然都不是自己。留著不刪的理由:一個「聽起來很有故事性」的結論,正是最該回頭驗一次的那種。
- 另一次撤回:那個 47% 也是本站程式寫錯。原本寫「3,222 位球員裡有 1,507 位(47%)的姓或名是十六進位字串」,還說陳鏞基那列變成
Yung-Chi b67。實際上每一列開頭是沒有欄位編號、又以數字開頭的識別碼,被程式讀成「第 0 欄的值」,而第 0 欄正好是名字。正確重量:2009 那份 5 個(0.2%)、原版 6 個、測試機 10 個,陳鏞基好好的是Yung-Chi Chen。 - 訂正一個數字,同時補上兩份獨立佐證 原本寫「投球 43 個」是抄打擊那個 43 抄錯的,重數原版是 46 個(只有 1 人用的 36 + 只有 2 人用的 10)。而編號對名字這件事,後來用兩份互相獨立的外部名單去考:打擊 54 個具名編號全中、投球 45 個全中,錨點打擊 39/39、投球 42/42 零例外,把球員編號隨機打散重排 500 次平均只命中 0.25 與 0.14。最難用巧合解釋的一格:原版唯一沒有人使用的打擊姿勢編號是 23,那份 2006 年的表也剛好在 23 跳過。
- 兩件量得到的怪事 一、姿勢名字清單裡有
Bonds,但 2,921 位球員裡沒有這個人,整個data\逐檔搜bonds0 個檔命中(對照組搜pujols命中 10 個,證明搜法有效),唯一出現的地方就是姿勢清單本身。二、薪水第四高的 Jon Dowd(179、星等最高、巨人隊左外野手、左打左投)沒有播報語音,而 1,621 個audioid是 0 的人裡薪水破百的只有他一個,其餘 1,620 個全部在 0 到 32 之間(那個 0 是名冊最前面的Default Default範本列)。 - 本站沒驗的
Bonds是第幾號查不出來,因為本站的方法是「看誰在用那個編號再去對名字」,而這個名字對應的球員根本不在名單裡,沒有人可以當錨點(原本寫的第 42 號是用錯的對應方式算的,正確的第 42 號叫Burnitz)。Jon Dowd 那一段只推到「看起來像是一個位置被留下來了,但名字沒有」,檔案裡沒有任何一行把他跟別人連起來,本站不主張他是誰的替身;那個年代授權談判的說法是站外背景知識,不是本站量到的。
接下來
- 換打擊姿勢 —— 動手改那個整數
- 全欄位清單 —— 這一欄旁邊還有什麼
- 語音資料夾裡的 23 個人 —— 同一個社群的另一件事
- EA 官方繁中版 —— 「中文語系比較會跳出」那句的另一半