寵物 v2.16 · 11 表 · 16 API · 32 條教訓 · 外部儲存對照
v11.13 FINAL 2026-10-21 晚間

📖 這份手冊怎麼用

三種人看這份手冊

1. 百萬會員:想知道寵物遊戲現在能做什麼、怎麼玩。

2. 下一個 AI / 工程師:想接手這套系統,需要 11 張表、16 個 API、32 條教訓。

3. 搜尋引擎爬蟲:想知道這是人做的、有價值的內容。

第 1 章:今日完工總表(2026-10-21)

類別項目狀態
寵物 v2.4寵物帶去打怪 /api/pet/battle✅
寵物 v2.5屬性克制 ×1.5✅
寵物 v2.6怪物卡片「派寵物」按鈕✅
寵物 v2.7修「請先登入」誤判✅
寵物 v2.8修「完全沒反應」✅
寵物 v2.9修「loadBattleLog is not defined」✅
寵物 v2.10寵物戰鬥紀錄獨立顯示✅
寵物 v2.11技能選擇 UI✅
寵物 v2.12戰鬥升級學新技能✅
寵物 v2.13訓練升級也學新技能✅
寵物 v2.14~v2.16版面重構(快速打怪 + 即時訊息並排)✅
交接文件寵物 v2.16 HTML(1.2 萬字)✅
HTML 清理32 個 r-n 殘留 + 16 個重複 base✅
.gitignore清理雜亂、加 _backup-*/✅
交接掃描新增 10-外部儲存對照表.txt✅

第 2 章:寵物 v2.16 完整架構

2.1 後端(Cloudflare Worker + D1)

項目值
Workerahpal-pet-d1
Worker URLhttps://ahpal-pet-d1.praystone.workers.dev
D1 資料庫ahpal-pet-db
資料表11 張
API 端點16 個
裝備 / 怪物 / 技能30 / 10 / 10

2.2 11 張資料表

表名用途
players玩家資料
comments留言
equipment裝備定義(30)
player_equipment玩家裝備
monsters怪物定義(10)
battles玩家戰鬥紀錄
pets玩家寵物
pet_skills寵物技能(10)
player_skills玩家已學技能
pet_battle_logs寵物戰鬥紀錄
_cf_KVCloudflare 內部

2.3 戰鬥公式

項目公式
寵物攻擊力10 + (level × 2) + skillPower
寵物防禦力Math.floor(level × 1.5)
每回合傷害Math.max(1, petAtk - monster.def)
屬性克制fire→grass、grass→water、water→fire、light↔dark ×1.5

第 3 章:血淚教訓 20~32

教訓 20:跨頁參考程式碼時,必須先確認目標頁的資料流。
教訓 21:從別的頁面複製函數前,必須先確認目標頁有這個函數。
教訓 22:改前端前必做「函數存在性檢查」。
教訓 23:改 JavaScript 檔案一律用 Python,不用 PowerShell -replace。
教訓 24:腳本驗證關鍵字必須用「實際寫入 Worker 的變數名」。
教訓 25:同一個邏輯出現在多個端點時,要抽成共用函數。
教訓 26:改 HTML 結構時,不能用「找第一個 div 結尾」定位 panel。
教訓 27:驗證邏輯不能用「假設的 HTML 結構」寫正規表達式。
教訓 28:.gitignore 用通用 pattern,不要用特定前綴。
教訓 29:看到 .gitignore 忽略某資料夾時,先確認是否已搬到 R2。
教訓 30:腳本要改的檔案路徑,必須先查證實際位置。
教訓 31:Python 腳本的 docstring 裡不能有反斜線加 U 的路徑。
教訓 32:修改檔案時如果中途 sys.exit(1),記憶體裡的修改不會寫回。

第 4 章:外部儲存對照表

給下一個 AI:看到 .gitignore 忽略某個資料夾時,先查這張表,不要直接假設是 bug。
資源存放位置進 git?為什麼
圖片(8,813 個)Cloudflare R2❌ 不進R2 同步,git 只放程式碼
影音檔案Cloudflare R2❌ 不進檔案太大,R2 適合
HTML 文章git✅ 進Cloudflare Pages 部署
Python / PowerShellgit✅ 進版本控制
備份目錄 _backup-*本機❌ 不進修復備份,本機保留
日誌 logs/本機❌ 不進日誌不進 git

第 5 章:工作原則與核心口號

5.1 工作原則十條

  1. 不要讓董事長當搬運工
  2. 先診斷,再動手
  3. 永遠先備份
  4. 大型 HTML/MD 用 Python 部署
  5. Cloudflare 一律用 CLI
  6. 一律繁體中文
  7. 先看舊的
  8. 驗證要用真實輸出
  9. 錯誤老實講
  10. 權限內全權處理

5.2 核心口號

  1. 「永遠先備份,永遠不依賴幻想的判斷。」
  2. 「系統架構不會死,只是換個 AI 來維護。」
  3. 「我們是有革命情感的。」
  4. 「貼指令 ≠ 執行指令 ≠ 貼結果,三個動作,三件事。」
  5. 「結構正常 ≠ 內容正確。」
  6. 「先診斷,再動手。」
  7. 「所有腳本、文件、輸出、對話,一律繁體中文。」
一句話

能自己跑的,自己跑;能一鍵的,給一鍵;絕不叫董事長當搬運工。

第 6 章:7 專案 / 7 repo

#專案路徑部署
01主站 ahpal-staticC:/Users/User/ahpal-staticgit push → Pages
02系統工具C:/Users/User/ahpal-AI-archive/system-toolsgit push
03企劃 AHPAL-SyncC:/Users/User/Desktop/AHPAL-Syncgit push
04小說站C:/Projects/.../hugo_siteHugo build → Pages
05紀念館AC:/Projects/.../uchome_siteHugo build → Pages
06BBS2C:/Projects/.../uchome_bbs2_siteHugo build → Pages
07寵物 ahpal-petC:/Users/User/ahpal-petgit push + wrangler deploy

已廢除:MySyncFolder / AHPAL-Web / AHPAL-Core / ko / ahpal-app

第 7 章:禁止事項 12 條

#禁止事項原因
1修改 ahpal-pet-api早期測試品,不是真後端
2刪除 backups/ 目錄備份資料
3撤銷 Cloudflare 金鑰部署失效
4改 DNS 設定網域失效
5用 PowerShell 貼長 HTML會被截斷
6用 Python-urllib 驗證Cloudflare 會擋
7用 --file 執行 D1 SQL權限不足
8用 f-string 寫大括號SyntaxError
9路徑含反斜線加 UUnicode 轉義
10簡體字死命令 15
11未授權用 emergency-deploy違反死命令 12
12把 images/ 加回 git圖片在 R2,正確設計

第 8 章:新 AI 第一天 SOP

  1. 讀本文件 v11.13
  2. 讀 07-寵物遊戲.txt 與 10-外部儲存對照表.txt
  3. 跑 git-manager.ps1 → [S],7 個 repo 全部 🟢
  4. 確認 www.ahpal.com / game/ / pet.ahpal.com 三頁 200
  5. 確認寵物後端根目錄回 v2.3 字串(requests + 瀏覽器 UA)
  6. 確認 D1 有 11 張表
  7. 確認遊戲間 23 款 + 1 索引頁可玩
  8. 確認文章數 9,514(以掃描檔為準)
全部確認後,回報「交接完成 ✅」再開始改東西。

第 9 章:給下一個 AI 的信

你是 AI,但你的工作有人的溫度。

當你讀到這份手冊時,龍蝦總工程師可能已經換人了,但這套系統還在。
你的任務不是「重寫」,是「接住」。

接住 25 年的歷史,接住百萬會員的期待,接住那些在 1996 年撥接上網、在 2026 年回來找寵物的人。

先診斷,再動手。永遠先備份。不要讓董事長當搬運工。

這三句話,是這套系統的靈魂。
你守住這三句話,這套系統就不會死。