文件 參考

資料從哪裡來

每一類資料的來源與精度。遇到「看起來不對」的怪事時,先查這一頁。

資料來源精度
單位、資源、指令、技能、buff、物品欄執行環境每 50 ms 推送的世界區塊發布週期(可調到 16 ms)
傷害、擊殺事件執行環境在遊戲執行緒上當場記下,每一下都有即時
其他事件(出現、死亡、更換指令、升級……)比對相鄰兩次發布發布週期
生產表(訓練/研究/建造/升級)引擎生產技能的計時欄位 + 執行環境累加的已進行時間約 ±0.2 遊戲秒
戰鬥屬性、克制表遊戲內建的資料表(從你本機的遊戲擷取)不含物品、光環、buff 的加成修正
尋路引擎的地形可通行性(128 一格)+ 樹木 + 建築佔地,在 SDK 端跑 A*一格;窄於一格的縫隙判定為不通
遊戲內時間JASS GetFloatGameState(GAME_STATE_TIME_OF_DAY)發布週期
可見性執行環境為每個單位依玩家計算的可見性遮罩發布週期
科技計數、可行性、金礦剩餘量快車道查詢,直接詢問引擎即時

遊戲資料不隨程式碼散布

單位表、技能、物品、英雄、buff、傷害克制表等都來自暴雪的遊戲檔案,不納入儲存庫。在遠見「控制中心」設定好遊戲目錄後,會自動從你自己的遊戲中擷取,也可以手動執行:

python data/tools/extract_game_data.py

擷取結果放在 data/game/(不納入 git):原始的 .slk / .txt,以及整理好的 units.json、names.json、skills.json、items.json、heroes.json、buffs.json。

幾個具體數字

項目值
一天480 遊戲秒(白天、黑夜各 240 秒),一小時 = 20 遊戲秒;開局是早上 8 點
白天6:00 ~ 18:00
護甲係數0.06(來自遊戲資料表)
世界區塊容量16 個玩家、1024 個單位、256 份單位細節、256 個地上物品、128 筆生產
樹木最多 4096 個可破壞物,每 2 秒刷新
事件環8192 筆;讀取太慢會遺失(SDK 能偵測到)
地圖格子128 遊戲單位一格,最多 256 × 256

實測校準過的例子

  • 生產耗時:農民 14.9、農場 34.9、鐵製刀劍 59.9 遊戲秒,與執行環境推送的數值一致(誤差小於 0.2 秒);
  • 戰鬥屬性對照遊戲面板核對:聖騎士 650 血量、255 魔力、3.9 護甲、攻擊力 24 ~ 34;攻擊升一級的步兵 13 ~ 15;
  • 引擎傷害事件中的護甲減免前傷害(14 / 15 / 15)落在 stats() 算出的區間內;
  • 尋路:Echo Isles 116 × 88 格,到對面大廳的地面路程 10642(直線 9856),建立網格 18 ms、一次 A* 約 1 ms。