更新日誌

網站與伺服器模組的歷次更新,最新的排在最前面

這裡依時間倒序列出雲嶺網站和伺服器模組的每一次更新,方便你回頭看某個功能是什麼時候上線的、某個毛病是什麼時候修好的。

依版本號 清除篩選

篩選中:顯示 65 / 127 筆

v1.9.86 網站 2026-10-31

换页不再白屏一下、注册页的「手机号注册」能点了

  • 点站内链接时,旧页面不再先淡成一片白底 —— 之前新页面要等网络往返才到,中间那一下就是白屏。现在旧页面保持原样,换页后新页面照旧淡入、内容依次上滑。
  • 注册页的「手机号注册」原来点了像是没反应:它只是把单选按钮选中,页面上的提示文案与「发验证码」的去向都没变。现在切一下就整页重渲染,提示、去向、表单都跟着变。
  • 如果站点没有配置短信服务,注册页不会再把你留在「手机号注册」这个空壳上,而是自动退回邮箱注册。
v1.9.85 網站 2026-10-31

頂部只留一顆「登入」,3D 首屏把模型放回合適的尺寸

  • 頂部導覽移除了 QQ 入口 —— 未登入時右上角原本並排兩顆按鈕,現在只留「登入」;QQ 只出現在登入頁與註冊頁。
  • 3D 模型的相機距離改成依模型高度計算,不再是固定距離:視窗高一點不會糊滿整屏,矮一點也不會縮成一小坨。
  • 方塊配色收進櫻花色系 —— 緋紅木材、地獄疙瘩、珊瑚這些高飽和雜色統一對應到櫻花木、花瓣、葉子,遠看不再是一片彩色噪點(幾何一個方塊都沒動)。
v1.9.84 網站 2026-10-31

首屏變成可以拖著玩的三維場景

  • 首屏整個換成一座花園的三維場景:拖一下能轉、滾輪能縮放、點方塊就挖掉,十秒後自己長回來。
  • 手機和不支援 WebGL2 的瀏覽器不會硬載入三維:先給一張同角度的靜態海報,想看清楚再點右下角「進入 3D」。
  • 換頁也順了:點站內連結目前頁先淡出,新頁面淡入、內容一塊塊往上滑;系統開了「減少動效」就還是原本的直接跳轉。
  • QQ 按鈕那個搶眼的藍底方塊換成官方 16×16 最小圖示,跟其他圖示同一個分量。
v1.9.83 網站 2026-10-31

QQ 登入按鈕改成全站統一的一顆

  • 登入頁、註冊頁、頂欄、個人中心現在用的是同一顆 QQ 按鈕:騰訊官方小圖示 + 本站自己的描邊膠囊。騰訊規範本來就允許「小圖示 + 文字」這一檔,圖示仍是官方原圖。
  • 個人中心的「帳號與安全」新增「QQ 綁定」:可以綁定、換綁、解綁。沒設登入密碼的帳號不允許解綁 —— 純 QQ 註冊的帳號沒有密碼,解綁之後就再也進不來了。
  • 排版與質感:大標題更緊更重、區塊留白更疏、卡片懸停時有一團跟隨指標的柔光。
  • 動效:首屏逐條上浮、數字滾動、頂部閱讀進度、首頁卡片輕微視差。系統開了「減少動效」就全部關掉,手機這類沒有懸停的裝置也不啟用光斑。
v1.9.82 網站 2026-10-31

QQ 登錄換成騰訊官方按鈕,登入頁、註冊頁、頂部導覽都找得到

  • 登入頁和註冊頁原本用的是自己畫的企鵝圖示加「QQ 一鍵登入」字樣。騰訊的《網站前端頁面規範》要求必須使用官方提供的「QQ登录」標識、不得自行修改,所以這兩處都換成騰訊官方 230×48 長圖示原圖,按原尺寸顯示,不拉伸也不縮放。
  • 頂部導覽也加了一顆:寬螢幕用官方 76×24 的「QQ登录」按鈕,窄螢幕(375 像素以下)換成官方 24×24 圖示,免得把頁首擠出一條橫向捲軸。
  • 順手修了兩處細節:官方按鈕在任何狀態下都不會變灰 —— 沒勾《服務條款》時點它,會自動捲到勾選框並標紅提示,而不是把按鈕停用(一顆灰掉的按鈕,看起來正像"按鈕沒放對")。登入頁那句「本站目前用電子郵件 + 密碼登入」也已經過時,10 種語言裡一起改成只講註冊的那半句。
v1.9.81 網站 2026-10-18

手機上的「伺服器指南」,正文被自己的目錄蓋住了 —— 已修

  • 目錄那塊側欄在桌面上是釘在左上角的窄條;一塌成單列,它變成整寬、手機上高一螢幕還多,卻仍然釘在視窗頂端 —— 正文全從它底下捲過去,於是看起來像文字互相壓住、白方塊亂飛、內容不顯示。現在窄螢幕(900 像素以下)它跟著頁面一起捲走,桌機端照舊釘住。這個毛病在之前的版本裡就有,只是直到手機上才被發現。
v1.9.80 網站 2026-10-18

小工具修好了:標籤列能點了,漸層更自由,計算器給你一份照著填就能開的清單

  • 十個工具原本全鋪在一頁,點頂部膠囊只是跳到錨點,看起來像沒反應。現在是真的標籤列,一次只顯示一個工具;網址列 #t-xxx 照樣能直接開啟某個工具,手機上標籤列可以橫著滑。漸層文字從寫死的兩色改成 2~6 個色標:點漸層條加一個、拖著調位置、點中色標再點「刪掉這個顏色」,顏色按位置逐字元插值,§ 代碼 / MiniMessage / tellraw / MOTD 四種產出一起變,MOTD 太長會提醒
  • 開服配置計算器從三檔預算擴到九項輸入。模組數量、視距、模擬距離、跑不跑紅石、目標 TPS、版本都能填。輸出不再只有幾行數字:記憶體會告訴你為什麼會漲,另外給可直接複製的啟動指令與 Aikar’s flags、server.properties 與 spigot.yml 的逐行建議、以及依玩法分的模組外掛清單。每人多少記憶體、模組係數、紅石係數這三個最常變的係數放進了後台「小工具」,改完重新整理就生效
  • 卡頓健檢改成逐項歸因,還會跟本站即時資料對比。輸入多了常駐實體、區塊載入器、紅石線、自動農場四項;輸出把 MSPT 拆成七項給占比與毫秒數,只有真的占到大頭(45% 以上)才點名叫「是它在拖」,否則如實說「最大的是它但整體不高」,每一項都配可執行的改法;它還會拉本站即時資料,告訴你「你填的規模理論吃多少、本站現在還剩多少」,拿不到資料就只做本地估算、不彈錯
v1.9.79 網站 2026-10-18

液態玻璃重做成蘋果那樣:會折射、有高光、白底上也站得住

  • ① 上一版玻璃基本上只剩一層白,壓在白色卡片上就幾乎看不出來。這次按 iOS 26 那一套重做材質:頂部一道亮線、底部一道暗線、外圈 1px 髮絲環、內圈一點柔光,再加一層很輕的投影;桌面端仍然是真折射(背景會被輕微掰彎,懸停時整塊浮起 1 像素,按下再落回去)。主按鈕和危險按鈕以前被整條排除在玻璃之外,現在也進來了:品牌色漸層留在按鈕自己身上,白字的對比度不變,玻璃層只負責高光與描邊,不疊折射。同一套材質鋪到了輸入框、下拉框、標籤、遊戲/工具/玩家徽章和頂部導覽。
  • ② 手機不再跑折射(那是最貴的一步),自動降級成模糊加高光描邊:看著還是玻璃,但幾乎不花 GPU。順手修掉一個真問題:手機分支原本直接退出、連降級都不執行,等於手機上根本沒有玻璃。桌面端也做了兩件事:同尺寸的玻璃只產生一張位移貼圖(首頁 7 塊玻璃只用了 4 張),滾出畫面的不再計算;另外每塊玻璃面積超過 30 萬像素、或整頁超過 80 張時就不再產生,寧可少一塊也不拖慢捲動。
  • ③ 後台「外觀」裡還是那個開關,預設改成開;不支援 backdrop-filter 的瀏覽器(Safari、火狐)自動退回磨砂,不是壞了。這次沒有動配色、沒有動排版,主題仍然是雲嶺藍;上一版那套蘋果白底已經整站回滾(後台、論壇、相簿、地圖都回到原樣),只留下兩個真 bug 的修復:後台危險操作的確認框原本根本沒有樣式(43 處「確認刪除」彈出來是沒有遮罩的裸框),相簿窄螢幕的標題原本只在滑鼠懸停時才出現。
v1.9.78 網站 2026-10-17

整站換成蘋果風:白底、髮絲線、膠囊按鈕,順手修掉一批不對的數字

  • 外觀整站重做,走的是蘋果那一套:白底、近黑字,一條 1px 髮絲線代替陰影,按鈕和篩選標籤統一成 44 高的膠囊,頂欄滾過之後從半透明變成實心。毛玻璃全部撤掉 —— 資料卡、時間軸、狀態卡裡那些模糊層都沒了,只剩頂欄一層很淡的半透明。中文標題不再做負字距:中文字面本來就滿格,收緊會擠成一團、看著像加粗,只有數字才需要收緊。順帶把後台也重排了一遍,並修好一個真 bug:危險操作的確認框在後台根本沒有樣式,彈出來是一個沒有遮罩、沒有定位的裸框,全站 51 處「確認刪除」都受影響,現在是有遮罩、標題染紅的置中卡片。整套掛在「蘋果」這個配色方案下(後台 → 外觀裡能選),選回「雲嶺藍」就整體回滾,不用改程式碼。
  • 手機端這次專門對著「用起來不夠好」改的:資料頁那四個大數字原來一個占一整行,現在 2×2 一屏看完;玩家搜尋框和「搜尋」按鈕原來是疊著的(按鈕壓掉佔位文字將近 70 像素),現在並排一行;排行榜每行原來上下兩條灰線疊成一道粗槓,改成一條 1px 髮絲線;時間軸「卡片套卡片」的雙層邊框、各種虛線框、Windows 那條深灰厚捲軸,一起收拾乾淨;指南頁側欄「伺服器實況」的標籤和取值原來黏在一起(顯示成「版本1.21.1」),改成左右對齊加分隔線。
  • 稽核出來的資料問題修了 10 條。最要緊的兩條:首頁「累計在線」把秒當成小時顯示(原來寫 35.7M h,真值是 9907 小時,差 3600 倍);封禁列表裡有 4 個人顯示「已解除」其實還生效 —— 心跳報上來「已存在」時只把狀態悄悄改回生效,既不寫歷史也不恢復玩家的封禁標記。其餘:狀態頁「已裝模組」三個位置分別顯示 0 / 12 / 160(真值 160),作業系統顯示「—」,都是同一個原因:底層查詢是白名單式回傳,裡面沒有這兩個欄位;排行榜上有一串 UUID 當名字霸榜,現在顯示成「未知玩家 · 87274f」;可用率的天花板被寫死成 99.2%(按 30 秒固定間隔算的,實測心跳 31 秒);K/D 在沒有陣亡記錄時算出天文數字,現在顯示「—」。還有兩條屬於榜單政策(角色與帳號兩種合併口徑、一個只有擊殺數的影子帳號),沒有硬改,差異和代價寫在程式碼註解裡等站長定。
v1.9.77 網站 2026-10-11

偽造真實 IP 這條路,從 nginx 到應用層都堵死了

  • ① 先量再改:線上探針實測出兩件事 —— 寶塔 nginx 用 PROXY 協議,真實客戶端位址本來就在 REMOTE_ADDR 裡(實測是 222.212.76.94,不是 127.0.0.1);而客戶端自己塞的 X-Real-IP / X-Forwarded-For / CF-Connecting-IP 會被 nginx 原樣透傳給 PHP,三個偽造標頭全部原樣到達,nginx 一個都不覆蓋。② 兩頭一起加固:nginx 注入一串只有自家代理知道的密鑰(客戶端就算偽造這個標頭也會被 nginx 覆蓋掉),應用層再補一道「REMOTE_ADDR 是公網就直接採用、不再看代理標頭」—— 就算哪天誤把 trust_proxy 打開,限流、鎖定、稽核裡的 IP 也不會變成訪客自己指定的值。
  • 順手做了三件事:把 site/config/config.php 裡那句會誤導人的註解(「在 CDN / 反代後面時設為 true」)換成實測結論和警告 —— 本站照做只會把可偽造的標頭抬成權威值;給這次改動補了自動化測試(打開 trust_proxy + 公網 REMOTE_ADDR + 偽造標頭 ⇒ 仍返回真實位址),測試從 81 項增到 83 項全綠;線上排查用的臨時探針按約定刪掉了,現在請求它是 404。
v1.9.76 網站 2026-10-11

手機滾動更順、幾個安全破口補上、聊天紀錄不再漏掉中間一段

  • 手機流暢度的四處:頂欄滾動時那層毛玻璃、窄螢幕上所有卡片的毛玻璃、進場動畫替每個元素常駐的合成層、閱讀進度條每滾一像素就重排一次 —— 全換成等效但便宜的做法(滾動狀態的頂欄本來就不透明,那層模糊純粹是白算;動畫真正開始時瀏覽器自己會把圖層提上來)。390 寬手機視口 + 20 倍 CPU 節流實測:最大影格 364 毫秒降到 57 毫秒。整體影格的差別落在這台機器的雜訊裡,量不出穩定結論 —— 所以上面每一項都只在機制上說得通才敢動。
  • 安全三處(高/中危,直接修了):① 本機除錯用的 _admlogin.php 在線上必須 404(它能直接把訪客設成管理員),?to= 也再也不能跳到站外;② 測速工具頁的 ping / dns 拿網域去探連接埠時,會被 DNS 重綁定騙去探內網,現在只連已經驗證過的那個 IP;③ 偽造 X-Real-IP / CF-Connecting-IP 曾能繞過按 IP 的限流,現在只有來源確實是本機回環時才採信這類請求標頭。要把 ③ 徹底關死,需要在 nginx 裡注入 X-CDR-Proxy-Secret,並在 site/config/config.php 填 security.proxy_secret —— 這一步動的是伺服器設定,等你點頭再做。
  • 聊天紀錄三個真 bug:① 一天的消息超過 200 則時,中間那一大段在頁面上永遠看不到(最忙的一天 2796 則,舊路徑只能翻到 500 則,中間 2296 則誰也看不見);② 消息排序只看主鍵 id,跨分界線那天會把後半夜的消息擠出窗口(實測永久跳過 53 則更新的消息);③ 發言失敗時介面裝作已經送出去了。現在按時間取、多了一個「載入更早」按鈕往前翻,失敗會明確提示並讓你重試。
  • 順手:訪客的頁面不再一律禁止快取(上一頁、下一頁快一些),登入狀態照舊一點不快取。全站 218 個 PHP 檔案語法零錯誤,59 個自測腳本全跑了一遍 —— 與這次改動相關的 15 個套件,結果和改動前完全一致(原有的本機環境失敗項一個沒多)。
v1.9.75 網站 2026-10-10

伺服器模組瘦身:把「會隨人數放大」的開銷挪出主執行緒

  • 模組上報裡最大的一塊是地圖:3 張地圖各 256×256,約 19.7 萬個點。原來這些點是在伺服器那一 tick 裡現拼成 JSON 的,拼完伺服器才繼續跑 —— 每半小時一輪,正好對上「偶爾卡一下」的那種尖峰。現在採集的那一 tick 只把資料交出去,拼裝挪到背景執行緒:資料本來是現成的,拼 JSON 從來不需要佔著主執行緒。
  • 順手把幾處會隨線上人數放大的開銷收了:TAB 裡的數字(線上時長、線上人數這些)原來每個玩家每一行都要重算一遍,而這些數字 30 秒才變一次;按名字找玩家的備援是逐行掃全表(10 個人就是 100 次查找);成就列表每 10 分鐘把上千條配方條目也過一遍;每 30 秒為了數一次實體把所有世界的實體全走一遍,還在主執行緒讀設定檔和封禁名單。現在分別改成快取、索引、只算一次、背景讀 —— 上報給網站的內容一個位元組都沒變,頁面顯示和以前完全一樣。
v1.9.74 網站 2026-10-05

後台管理補齊,個人主頁的隱私開關真的生效了

  • 後台側欄那個「審核」角標以前只數論壇與相簿兩個佇列,而前台管理面板數的是五個 —— 現在四處統一成同一個函式,而且每個選單項目各掛各的角標。破壞性操作(刪使用者群組、刪導覽項目、清空聊天紀錄、清快取、清理未綁定)以前點了就直接執行,現在一律先確認。面板、頭像背景、訊息紀錄三個列表以前最多只能看到 200 筆和 60 筆,現在能翻頁。
  • 「允許別人查看我的個人主頁」以前關掉其實只影響團隊頁的名單,個人主頁照樣人人可見 —— 現在真的按它放行,本人除外。順手把「修改密碼」和「登出其它裝置」也記進了稽核日誌。
v1.9.73 網站 2026-10-05

紅色的「確認 / 刪除」按鈕不再看不見

  • 聊天裡點收回跳出的確認框,確認按鈕是一片空白 —— 根因是開了液態玻璃之後,玻璃規則會把按鈕底色清掉、只留下白色文字,紅底按鈕就變成白底白字。現在紅色實心按鈕和藍色主按鈕一樣不參與玻璃。
  • 同一個毛病波及全站所有紅色按鈕(收回、刪除、解綁等),一併修好。
v1.9.72 網站 2026-10-05

點分頁不再彈回頁面最上面

  • 以前在頁面下方點「下一頁」會一路彈回頁首 —— 現在分頁按鈕只把它上面那份清單頂到導覽列下方;清單開頭本來就在眼前時一動也不動。上一頁/下一頁會回到原本的捲動位置。
  • 順手幾處小改:導覽「伺服器」裡補上「種子地圖」、頁內錨點不再被吸頂導覽蓋住、相簿卡片顯示作者、首頁線上玩家點頭像進個人主頁。
v1.9.71 網站 2026-10-05

後台權限收緊,順手修掉幾處小毛病

  • 設定、輪換金鑰、備份還原、系統工具現在只有服主能進 —— 伺服器管理組照常管內容、檢舉和白名單。
  • 局部換頁帶出來的幾個小毛病一起修了:深色不會被打回、同一條表單不會被送出兩次、領取倒數不會走快、排序下拉不再整頁重新整理。
v1.9.70 網站 2026-10-05

選頁不再整頁重新整理

  • 分頁、篩選、搜尋、排序改成只換內容,網址列照常變、上一頁鍵照常能用。
  • 儲存 / 審核 / 刪除這些寫入動作維持原本的跳頁。
v1.9.69 網站 2026-10-05

修好玩家列表搜尋框被卡片擋住

  • 頁面上帶動畫的元素都帶 will-change,而 will-change 會建立層疊脈絡,於是下拉選單的 z-index 只在「自己的卡裡」有效,壓不過 DOM 順序更靠後的統計卡
  • 改成把整張搜尋卡抬起來,下拉現在完整浮在最上面
v1.9.68 網站 2026-10-04

修好手機版個人主頁「划不動」

  • 3D 皮膚模型框原本寫死 touch-action:none 並在 touchstart/touchmove 裡無條件 preventDefault,手指落在它上面時整頁滾不動 —— 現在改成豎向交給瀏覽器滾動、橫向才轉模型
  • 頁頭那塊「拖背景」也跟著收窄成只認滑鼠(以前手指按在上面也會被吃掉滾動)
v1.9.67 網站 2026-10-04

伺服器指南重寫:內容厚了一倍,指令終於分得清哪些是給玩家的

  • 新手指南、伺服器規則、常見問題、關於雲嶺四頁全部重寫,每頁都寫清了「為什麼這麼做」和「卡住了怎麼辦」
  • 指令頁頂上新增「玩家常用指令」,按進門必用 / 走動傳送 / 聊天 / 查看分組;下面那張 435 條的大表原樣保留
v1.9.66 網站 2026-10-04

手機上那行滑動提示不再貼著表格

  • 「↔ 手機上可左右滑動查看完整表格」以前緊貼在表格上邊框上,看著像和表格疊在一起,現在拉開了間距
  • 導覽列滾起來之後改成完全不透明:以前是半透明的,頁面上的大字會從底下透出來
v1.9.65 網站 2026-10-04

給上傳的 SVG 補了一個安全漏洞

  • 以前只要有人上傳特製的 SVG 頭像或背景,就能拿到每一個看過它的人的 IP 與瀏覽器資訊。現在這類外連會被自動抹掉,畫面本身不受影響。
  • 另外補上了 HSTS 與幾條保守的內容安全策略。
v1.9.64 網站 2026-10-04

審核角標不再「常亮」+ 狀態頁不再顯示內網位址

  • 後台那個「審核」角標數的是 5 個佇列,可點進去的「伺服器管理」面板只做得了 2 個 —— 於是角標亮著、進去卻沒得審。現在兩邊口徑一致了,面板頂部還多了「更多待審」一排:相簿 / 皮膚 / 論壇。
  • 伺服器狀態頁的「網頁地圖」那一行以前寫著 127.0.0.1:8100(那是伺服器內部位址,只有探測用),現在改成顯示外網的網頁地圖位址。
v1.9.63 網站 2026-10-04

後台審核能直接看影片了

  • 掛了動態背景影片的背景,審核卡片上現在直接放那段影片 —— 點一下播放鍵就能看,預設只載入開頭(不耗流量),右上角還會標出「含影片」。
  • 以前卡片只顯示玩家另外挑的封面圖,跟影片內容可能完全無關。現在不會再看錯。
  • 順手修好「上傳時間顯示 1970-01-01」:那是我代傳素材的工具寫錯了時間格式,資料與工具都已修正。
v1.9.62 網站 2026-10-04

登入 500 修好了 + 兩處觀感調整

  • 修好一個 500:上一版我把「登入成功」後的稽核日誌參數位置寫錯了,導致只要真的登入成功就彈「內部錯誤」。現在登入會正常跳轉,不再報錯。
  • 登入頁那句「我已閱讀並同意《服務協議》和《隱私政策》」挪到表單最下面(在「登入」按鈕之後),和常見登入頁一致;沒勾仍然登不了。
  • 個人主頁頁頭的壓暗改成平滑漸層,去掉了原先那條很明顯的橫線 —— 現在是從上往下自然淡出。
v1.9.61 網站 2026-10-04

登入要勾同意條款了

  • 登入頁多了一個勾選框:「我已閱讀並同意《服務協議》和《隱私政策》」——不勾就登不了,QQ 一鍵登入與信箱密碼兩個入口都攔(伺服端也驗證,光停用按鈕攔不住人)。
  • 新寫了《服務協議》與《隱私政策》兩個頁面,逐項寫清楚本站存了你什麼:QQ 給的暱稱與 openid、信箱與密碼雜湊、綁定的角色、遊戲統計、你上傳的圖、登入的 IP 與時間。
  • 也寫清楚了會跟誰共享 —— 只有三個:QQ 互聯(登入)、mc-heads.net(沒自傳頭像時取面板頭像)、126 信箱(寄驗證碼)。沒有廣告聯盟,也不賣資料。
  • 還寫了保留多久、怎麼要求刪除或匯出、未成年人怎麼辦。頁面底部「快速連結」裡也有這兩個入口。
v1.9.60 網站 2026-10-04

頁頭文字在亮畫面上也讀得清了

  • 影片取代照片之後,頁頭白字壓在藍天白雲上,最差處只有 1.16:1,幾乎讀不出來。真因是繪製順序:影片是真實子元素,而那條壓暗漸層掛在 body.cdr-body::before(生成內容)上,生成內容永遠排在真實子元素之前,於是漸層被影片整層蓋住,一點作用都沒起
  • 改法是把壓暗做成頁頭自己的背景 —— 一條由上往下的漸層(頂部 62%,到 350px 處收乾淨),只壓住頁頭那一條,畫面主體(人物、地面、水面)一個像素都不動;全程沒有新增任何固定定位的圖層,頁面高度保持 6816px 不變
  • 最亮那一畫面上,頁頭各項對比度從 1.16~2.63:1 提到 4.85~6.91:1(白字標準 4.5:1)。順帶修掉一個只在線上出現的回歸:「返回」按鈕在液態玻璃下底面是半透明的,會被壓暗罩一起壓暗(5.19:1 掉到 2.14:1),現在按鈕文字跟著轉白,最差處 6.04:1
  • 只有傳過橫幅的頁面會生效,沒傳橫幅的頁面一個位元組都不變;滾輪、按鈕、影片播放都複測過
v1.9.59 網站 2026-10-04

動態背景:滾輪與點擊失效的真因找到了

  • 真因是類名撞車:.pub-bg-video 既是影片元素的類,又被拿來當 <html> 上的開關類。於是整條「鋪滿畫面的固定影片層」規則落到了根元素頭上 —— 根元素被設成 position: fixed,頁面高度當場塌成畫面高,滾輪自然滾不動
  • 更隱蔽的是 pointer-events: none,它是會繼承的:整棵文件樹都收不到滑鼠,只有 <html> 接得住,「返回」按鈕於是形同虛設
  • 修法:狀態類改名 pub-bg-on,影片元素那條規則收窄成 video.pub-bg-video,兩邊不再同名,將來誰再掛這個類都不會誤傷整頁
  • 背景素材換回第一版(4.50 MB → 4.41 MB),壓暗不再燒進畫面,顏色恢復正常;另外修正了三個本地體檢台,它們以前量「影片那一層」其實量到的是 <html>
v1.9.58 網站 2026-10-04

動態背景:修掉一處白送的高度、拖曳更好找

  • 換了新影片(15.98 MB → 4.50 MB),壓暗直接燒進畫面,手機上看到的靜圖也是同一張
  • 撤掉了一個多餘的遮罩圖層 —— 它雖然看不見,卻讓頁面憑空多出一屏多的高度
  • 滑鼠移到頁頭上會變成「抓握」游標,按住就能拖背景;門控放寬,帶觸控螢幕的筆電也能用
  • 滾輪的問題還在查,這一版先把上面三處修了
v1.9.57 網站 2026-10-04

個人主頁能用動態背景了

  • 傳一段 5 秒~1 分鐘的無聲小影片,電腦上循環播放;手機上仍然只放靜圖,一點流量都不多花
  • 只有「橫幅」那一格能掛影片,和圖片走同一條審核;上限 6 MB,超了會被明確拒絕、不會靜默
  • 手機看到的靜圖就是你那張橫幅,所以記得選一張和影片氣質接近的
  • 這個功能預設關著,先在後台開關裡打開,上傳框才會出現
v1.9.56 網站 2026-10-03

「選了圖、按了儲存、卻什麼都沒發生」修好了

  • 有玩家上傳了頭像和橫幅、影片都發來了,後台卻一條待審都沒有 —— 那張圖根本沒到伺服器,$_FILES 裡從頭到尾是空的
  • 真因是 iPhone 相簿預設的 HEIC:瀏覽器打不開它,裁剪視窗把這種情況當成「取消」,順手把檔案從表單裡抹掉了。送出時表單裡沒有檔案,伺服器只能當「這次沒換圖」,回一句綠字就了事
  • 現在打不開的圖不再丟棄 —— 原圖照常上傳(頂多不裁剪),並且告訴你是怎麼回事
  • 另外補了一道伺服器端保險:前端說選了圖、伺服器卻沒收到檔案,就直接報錯,再也不會假裝成功;真的按了取消也會明確提示「已取消,沒有上傳」
v1.9.55 網站 2026-10-03

「未知玩家」的名字修復搬進了後台

  • 命令列腳本 .tools/_backfill-names.php 現在成了後台「系統工具」裡的一個按鈕,不用再敲指令
  • 它會讀歷代備份裡的 usercache.json,把「名字還是 UUID」的行補回真名,並把工作階段記錄 / 成就 / 外觀一起搬過去
  • 頁面先給你看要改哪些行、改成什麼,確認了再按執行;動手前自動留一份資料庫快照
  • 只動名字是整串 UUID 的行,真名被占用時合併,正常玩家的名字一律不碰
v1.9.54 網站 2026-10-03

排行榜:幾個維度各排前十,一屏看完

  • 你說的是「細分排行榜」。玩家列表的排序下拉一次只能看一個維度,想知道「誰挖得最多、誰死得最多」就得來回切。新的 /ranking 把 9 個維度各取前十放在同一屏
  • 每個維度一張卡,卡裡是名次、頭像、名字和那個維度的數值 ——
  • 數值和玩家列表逐字一致(同一份格式化出口,兩處各寫一份遲早會對不上)。點名字進個人主頁
  • 卡頭右側的「查看全部」會帶著這個維度打開完整列表(?sort=),不用再去下拉裡找。入口在玩家列表頁標題下的「排行榜」按鈕;沒有資料的維度不出空卡,假人照舊不進榜
v1.9.53 網站 2026-10-03

個人主頁背景現在能拖了

  • 傳過橫幅的主頁,背景照片可以按住滑鼠直接拖——像看一張能推動的風景照,拖的時候頁頭、頭像、名字都穩穩壓在照片上
  • 只在最上面那塊(頁頭)能拖。下面的卡片、表格、按鈕照常點,選取文字也不受影響;按按鈕時不會誤觸發拖曳
  • 鬆手會彈回原位,拖到邊緣就停住(四周各留一點餘量),不會把照片拖出螢幕露出底色
  • 只在滑鼠 / 觸控板上生效;觸控螢幕和系統裡開了「減少動態效果」的使用者自動關掉,行為和以前一樣
v1.9.52 網站 2026-10-03

「未知玩家」以後會自己變回真名

  • 列表上有幾行名字顯示成「未知玩家 · 87274f」——那串其實是他的 UUID。伺服器的名字快取只保留約一個月,老會員停玩一陣子之後模組就查不到名字了,只能把 UUID 報上來
  • 問題是這種行以前永遠好不了:等玩家下次上線、伺服器重新認識他,改名那一步會撞上「名字不能重複」的限制(真名往往已經被另一次上報新建了一行),錯誤被吞掉,這行繼續掛著 UUID
  • 現在兩條路都走通:真名沒人用就直接改名(並把那段時間的對話記錄、成就、外觀一起搬過去);真名已被佔用就併進那一行——時長相加、進度取聯集、首末時間取邊界
  • 不用你做任何事,他下次上線自己就修好了。日誌裡會記一筆「認領=N」,後台「系統工具」查得到
v1.9.51 網站 2026-10-03

頭像全站生效了;登入記錄分頁;淺色按鈕不再發灰

  • 你自己傳的頭像,以前只有個人主頁看得到 —— 全站的頭像走的是另一條路,它根本不知道你傳過圖。現在玩家列表、留言區、導覽列也都會用你的頭像了;沒傳過的人一點變化都沒有
  • 「最近登入記錄」以前一頁 30 筆,太長。現在每頁 10 筆,底部是站內其它列表頁同款的翻頁器(只有一頁時不顯示)
  • 「展開全部徽章」那顆按鈕看起來發灰、像被停用 —— 是權重沒壓住:淺色按鈕的藍底被基礎那層白蓋掉了,連它自帶的底色也被抹了。已修
  • 個人主頁左欄下面那塊空白:現在左欄會長到和右欄一樣高,由最後的「服內排名」撐滿,不管你徽章是展開還是收起都不會再留洞。雷達那段說明也改成點一下才展開
v1.9.50 網站 2026-10-03

液態玻璃照參考重寫了:這次是真的那塊玻璃

  • 上一版只有「一張漸層貼圖 + 位移」,怎麼調都不像。逐條對照參考才發現缺的是三樣東西,這一版全部補齊
  • ① 折射按真實光學算:玻璃厚度、邊緣倒角、折射率(1.0~3.0)和圓角曲面一起參與,邊上才有「厚玻璃」那種放大感;上一版那個衰減曲線是我拍腦袋寫的
  • ② 加了高光層 —— 沿著一圈邊緣、朝固定方向的反光。這是液態玻璃最顯眼的特徵,上一版完全沒有,難怪一直覺得不夠
  • ③ 位移之後補回飽和度(折射會把顏色拉灰),再去掉一點點取樣鋸齒。模糊依然只能給 0.3px:它一大,「鄰近像素」就沒有差別,折射會整個消失
v1.9.49 網站 2026-10-03

頭像可以自己裁剪了:拖一拖,框裡看到的就是最終效果

  • 以前只能整張圖傳上去,由系統自己居中等比縮放 —— 臉偏在一邊就只能認了。現在選好圖會先跳出一個取景框:拖動圖片調整位置、滾輪或滑桿縮放,框裡看到的就是最終頭像
  • 匯出是 512×512(和伺服器的頭像上限一致),格式 WebP。小圖不會被放大 —— 放大只會更糊,所以按原尺寸裁。取景框在窄螢幕會自動收窄,手機上也能用
  • 有兩類圖片故意不裁:GIF 動圖(裁完只剩一格,動效就沒了)和 SVG,它們原樣走舊流程。裁剪過程中任何一步出問題(瀏覽器不支援、記憶體不夠)都會自動放行原圖 —— 絕不會讓你卡在「選了圖沒反應」
  • 橫幅不裁剪 —— 它本來就是寬幅,裁成方塊沒意義。這個功能只在「我的 → 我的資料」裡上傳頭像時出現。
v1.9.48 網站 2026-10-03

窄螢幕把毛玻璃降了一檔,手機上的掉幀有救了

  • 手機版個人主頁卡頓的原因不是動畫寫錯了,而是模糊本身太貴:每張卡片都掛著 blur(32px) saturate(180%),而這一頁同時可見的玻璃面有七八個,捲動時每一幀都要把它們背後的像素全部重採樣一遍
  • 32px 和 14px 的差別肉眼幾乎看不出來 —— 卡片底色本來就壓著 .70~.78 的白,模糊只是讓背後的照片化開;但採樣成本按半徑大致是平方級的。飽和度 180% 也一起降到 150%,這個頁面裡沒有任何地方需要顏色更豔
  • 只在窄螢幕降檔:桌面端一切還寬裕,一個像素都沒動。這是純效能改動,外觀上你基本察覺不到,但手機上捲動會順很多
  • 這是純效能改動,外觀上你基本察覺不到 —— 如果你在手機上捲動還是覺得卡,告訴我具體是哪一屏,我接著查。
v1.9.47 網站 2026-10-03

手機版狀態頁短了一大截;封禁名單不再每行都掛一句「未綁定 QQ」

  • 手機版的伺服器狀態頁以前每一行服務都被擠成兩三行。原因很具體:那一行是三欄網格,最小寬度加起來 504 像素,而手機視口只有 492 像素 —— 剛好塞不下,於是每行都被迫折行。現在窄螢幕改成兩欄、「備註」獨佔一行,整頁短了 500 像素以上
  • 順手把面板內距、可用性色條、節點卡的尺寸在窄螢幕下調緊了一檔。這些改動只寫在狀態頁自己的一段樣式裡,全站其他頁面一個像素都不動
  • 封禁名單裡,每一行玩家名下面都掛著一句一模一樣的「未綁定 QQ」,看起來像這張表出錯了。查下來是後台那個「封禁頁隱藏 QQ」的開關算出來了卻從來沒被用過 —— 設定一直是死的
  • 現在三處都聽這個開關了:列表行、頭像上的 QQ 角標與懸停提示、以及展開後的明細。「封禁理由」目前仍寫死中文(10 種語言下都顯示中文),這個我留到後面單獨處理
v1.9.46 網站 2026-10-03

背景圖能動了,還能跟著滑鼠輕輕讓開

  • 背景圖現在支援 GIF 動圖。以前不是「沒支援」,而是「支援了但一動就被壓平」——所有上傳圖都會被統一重新編碼成 WebP,而解碼 GIF 只拿得到第一幀,所以動圖傳上來就變成靜圖
  • 修法是:識別到多幀 GIF 就原樣存檔、不重新編碼,動效完整保留。代價是動圖不會被縮到 1920×1080(重新編碼就等於殺掉動效),這是有意的取捨
  • 背景現在會跟著滑鼠動:指標移動時,背景那一層朝反方向輕輕平移最多 10 像素,看起來像照片有景深、鏡頭跟著你看
  • 實作上每幀只改一個 CSS 變數,照片本身一次都不重繪;滑鼠停下就收斂、不再排幀,靜止頁面的開銷和以前完全一樣。只對滑鼠與觸控板開啟,系統開了「減少動態效果」時整個關閉
v1.9.45 網站 2026-10-03

「返回」鍵上那個「十」字:查了四輪,真因藏在註解裡

  • 那個「十」字沒了。它是瀏覽器在小盒子上做毛玻璃取樣時留在上邊緣正中的一塊亮斑 —— 這顆按鈕只有 58×35,亮斑佔的可見面積很可觀;卡片面積大,同樣的亮斑被稀釋掉,所以卡片上一個都看不到
  • 修法是這顆小按鈕不再掛毛玻璃取樣,著色從 8% 提到 14% 把通透感補回來。代價為零:開著與關掉折射,這顆按鈕的像素差異是 0 / 1766688(最大單通道差 1)
  • 但真正難纏的是下一層:規則寫對了卻不生效。我在註解裡逐字引用參考 CSS 時寫了 /* 6% */ —— CSS 註解不能嵌套,那個 */ 把大註解提前關掉,緊跟的 } 又把規則提前關掉,解析器一路把後面所有規則全吞了
  • 這個壞註解從 1.9.42 起就一直在,等於整整三個版本裡,按鈕玻璃的內圈柔光和外投影都是丟的 —— 現在一併回來了。教訓已寫成自檢:註解裡絕不能寫會提前終止註解的東西(同樣的坑我在 PHP 裡已經栽過兩次)
v1.9.44 網站 2026-10-03

滑鼠一動就閃的那條橫線:查了八個版本,真因是懸停時卡片被抬起 2px

  • 真因不是高光、也不是毛玻璃的面積,而是全站的一條懸停樣式:滑鼠每划過一張卡片,它就被抬起 2px,而卡片帶毛玻璃 —— 一移動,瀏覽器就得把它背後的畫面重新採樣一遍,採樣按小方塊切開,方塊接縫就是那條線
  • 中間走了五個彎路(把高光從背景搬到偽元素、改成 transform、改成真實子元素、挪出玻璃、整段刪掉),每一條看上去都「應該有用」,但都沒碰到真因
  • 現在的修法:玻璃面懸停時不再位移,改用描邊 + 陰影給回饋;另外去掉了兩處整幅寬的毛玻璃(導覽列與釘住的名字列)—— 大面積採樣是最貴的一檔
  • 同一批還做了兩件你看得見的事:滑鼠跟隨高光整段刪除(太晃),按鈕的液態玻璃照參考重寫成三層(折射與著色分開)
v1.9.43 網站 2026-10-03

後台登入按鈕沒了:是我上一版寫出的優先級 bug

  • v1.9.42 那套按鈕玻璃有個優先級寫錯了:基礎那層 8% 白的著色是「5 個類 + 2 個元素」,而主按鈕的深藍漸層只有「3 個類」—— 於是基礎層永遠贏,深藍漸層根本畫不出來;同一段裡的 background: none 又把主按鈕自己的漸層抹掉了。深藍底 + 白字就這樣變成了白底 + 白字,按鈕整個消失
  • 修法:實心品牌按鈕(主按鈕)不再參與玻璃。它本來就是深藍底 + 白字,玻璃這套只適合淺色按鈕。主按鈕恢復成原來的實心樣式
  • 同一個 bug 還悄悄吃掉了懸停提亮(它也是「4 個類」,同樣輸給 5 個類)—— 所以上一版說的「放上去和沒放上去不一樣」其實從來沒生效過。現在真的生效了
  • 還有一個附帶 bug:background: none 連載入中的按鈕一起抹了,而玻璃層又排除它們 ⇒ 轉圈那幾秒按鈕整個透明。現在載入中的按鈕會恢復底色
v1.9.41 網站 2026-10-02

滑鼠跟隨的那團光刪掉了

  • 刪掉了什麼:指標在卡片上移動時跟著走的那團冷藍色柔光,整段移除 —— 變數、開關、那層元素、指令碼,一個碎片都沒留
  • 為什麼刪:你連著報了四次「滑鼠一動就閃一塊 / 一條橫線」,我改過四個版本(寫在卡片背景裡 → 搬到偽元素 → 改成真實子元素 → 挪成整頁的獨立層)都沒治好。你最後一句是「滑鼠跟隨的高光刪掉,太晃了」—— 那就不要了
  • 順帶的好處:刪掉之後,指標劃過不再引起任何重繪。這正好也是那條橫線的最後一塊拼圖 —— 帶毛玻璃的元素內部只要有東西在逐幀變化,瀏覽器就得反覆重算它背後的畫面,重算又是切成小方塊做的,方塊接縫就是你看到的那條線
  • 別人都沒動:毛玻璃的透明度、第一屏的照片、釘住的名字列、按鈕的液態玻璃,全部保持原樣。沒有滑鼠的訪客和觸屏訪客本來也看不到這團光,對他們來說這次更新等於零變化
v1.9.36 網站 2026-10-02

滑鼠跨過元素時高光不再跳一下;按鈕的液態玻璃加強了

  • 滑鼠高光不再「跳一下」:以前指標從一塊卡片移到另一塊時,光斑是瞬移的 —— 舊的立刻消失、新的立刻出現。現在舊的那塊留在原地淡出、新的在滑鼠位置淡入,中心點也跟著平滑走,整段大約 180ms
  • 為什麼沒用 CSS 過渡:transition 是「整體替換」的屬性,沒有「只給某一個屬性加過渡」的寫法;要寫就得用一個會同時蓋掉卡片入場動畫和懸浮動畫的選擇器,捲動入場會從「淡入上浮」直接變成硬切。所以改成讓指令碼逐格緩動一個數字(光強),跑完就停、不常駐迴圈
  • 按鈕的液態玻璃加強了:折射位移 14 → 50、倒角帶加寬,並補上真正讓「看著像玻璃」的那幾樣 —— 上沿一道鏡面亮線、左右兩沿的冷暖色散描邊、內圈柔光;同時把模糊從 1.5px 收到 0.8px(模糊正好會抹掉位移要吃的那點細節)
  • 還是那句實話:只有 Chrome / Edge 看得到;而且折射要有東西可折射才明顯 —— 按鈕壓在白卡片上幾乎為零,壓在橫幅照片那種有明暗細節的地方才看得出來。開關在後台「系統設定 → 外觀效果」,預設關
v1.9.35 網站 2026-10-02

第一屏先看照片,往下捲內容才升起來;按鈕有了液態玻璃

  • 第一屏改成「英雄區」:傳過橫幅的玩家主頁剛進來只有頁首和背景照片鋪滿整屏,內容區完全不顯示;滾輪往下一動,整塊內容淡入並升起來(仍然保持 28% 透光);捲回頂部它會縮回去,可以反覆看
  • 為什麼動的是內容塊本身、而不是給它套一層容器:祖先只要帶上「不透明度小於 1」,裡面那一堆 backdrop-filter 玻璃就會採到「空的」背景,磨砂效果整個壞掉。逐塊淡入淡出就沒有這個祖先。另外正文裡唯一兩處 position: fixed(背景層和釘住的名字列)都不在這個集合裡,所以加位移是安全的
  • 按鈕的液態玻璃折射(後台「系統設定 → 外觀效果」多了一個開關,預設關):按鈕邊緣會像一塊厚玻璃那樣把身後的圖案掰彎一點。用的是 SVG 位移貼圖 + backdrop-filter,貼圖在開啟頁面時用 canvas 現畫一次,沒有逐格指令碼
  • 只有 Chrome / Edge 看得到:Safari 與火狐不支援這條 CSS 特性,表現是靜默失效(不報錯、也不畫),會自動退回現在這套磨砂玻璃。而且折射要有東西可折射才看得見 —— 按鈕壓在白卡片這種純色表面上時效果幾乎為零,壓在橫幅照片那種有明暗細節的地方才明顯
v1.9.34 網站 2026-10-02

卡片透了一點、滑鼠高光收小了,釘住時會滑下來

  • 改了什麼:傳過橫幅的主頁上,大卡片的透光從 5~10% 提到約 28%(照片能看出來了),統計小格和雷達卡跟著一起調淡
  • 為什麼統計小格那一排看著是兩種顏色:滑鼠跟隨高光原來是一塊半徑 320px、alpha .22 的冷藍色斑,蓋住卡片左半邊時,第 1 格實測 rgb(189,193,197)、蓋不到的第 4 格 rgb(245,246,247) —— 同一排差 56 級。現在光斑收到 200px、alpha 降到 .10,並且小格不再單獨參與高光(亮的永遠是最外層那張卡片),同一排實測差 3 級
  • 「閃爍」的另一半:指標從卡片空白移到小格上時,指令碼的落點在「整張卡片」和「那一小格」之間來回跳,光斑從一大片瞬間換成一小點。把小格移出高光範圍之後,這條跳動沒有了
  • 切到釘住時加了一段滑動:名字那一列從導覽下面滑下來 10px 並淡入,180ms;系統開了「減少動態效果」時這段動畫和按鈕的回彈一起關掉(滑鼠跟隨高光保留)
v1.9.33 網站 2026-10-02

往下捲的時候,名字那一列會釘在導覽底下

  • 改了什麼:傳過橫幅的玩家主頁,往下捲時「頭像 + 名字 + 等級 + 徽章」那一列會釘在站內導覽下面,卡片從它底下滑過去;簽名不在這一列裡、照常捲走,「返回」跟名字一起釘住
  • 為什麼不能用 `position: sticky`:這一列的父元素是 .cdr-container,它只有頁首那麼高,sticky 的活動範圍就被框在裡面 —— 捲過頁首它照樣跟著走。所以改成了 position: fixed,再用指令碼在它原來的位置插一個等高佔位塊(fixed 會脫離文件流,不補佔位的話釘住那一刻整頁會往上竄 86px)
  • 釘住之後字色要反過來:這一列平時是壓在橫幅圖上的白字,釘住後底下換成了淺色玻璃,白字壓白底等於看不見(實測過一版:頭像和「線上中」都在,名字那一格是空的)。所以釘住態的名字、等級、徽章統一換成玻璃面上用的墨色
  • 只影響傳過橫幅的玩家主頁 —— 沒傳橫幅的頁面(例如 /players/zlc)一個位元組都沒碰
v1.9.32 網站 2026-10-02

滑鼠高光只亮該亮的那一塊了

  • 真因是自訂屬性會繼承。指令碼給滑鼠壓住的那張卡掛上 .is-lit,--glass-spot 就順著繼承鏈一路傳給卡裡每一個 .stat-mini —— 一個開關變成七八塊亮面。站長看到的就是「我滑鼠在另一個地方,怎麼全亮了」。實測證據:探針黃條新增了一個 spot= 計數,它數的不是 .is-lit 有幾個,而是算出來的 --glass-spot 有幾個元素不是透明 —— 修之前指標停在卡片標題的空白處時是 lit=1 spot=8/27
  • 修法:讓每個玻璃面自己把 --glass-spot 重設成 transparent,繼承鏈就斷在這裡;哪一塊被指標真正壓住,由指令碼單獨給它掛 .is-lit。改完 spot=1/27
  • 順帶修的第二個坑:那條重設和 .is-lit 的規則特異性一樣,而它寫在後面 —— 按「後來者勝」,光寫 body.cdr-body .is-lit 會被它整條蓋掉,高光會徹底消失(實測 lit=1 spot=0/27)。所以 .is-lit 那條必須逐個列全四個選擇器、把特異性抬上去。這一步要是漏了,就是從「亮得太多」直接變成「一點都不亮」
  • 另外把座標改成進入新元素時同步寫一次,不再只等 requestAnimationFrame:否則第一幀讀不到座標,光斑會先閃現在卡片正中再跳到指標那兒。現在一個 .is-lit 就是一塊亮面,指標在哪亮在哪
v1.9.31 網站 2026-10-02

液態玻璃加了兩處手感:滑鼠跟隨高光 + 按鈕回彈

  • 滑鼠跟隨高光:指標在任一塊玻璃面上移動時,會有一小團冷藍白的柔光跟著指標走 —— 只有指標所在的那一張亮,其餘保持原樣。它是畫在卡片背景裡的一層 radial-gradient,讀的是指令碼即時寫入的 --glass-mx / --glass-my。不加節點、不碰層疊上下文,也不干擾卡片的模糊。淺色主題用的不是白光而是冷藍白:白卡片(rgb 229~245)上再疊白光最多只能提 6 級,肉眼等於沒有
  • 頁首照片帶加高:.page-head 的下內距從 30px 加到 160px(整塊約 317px),下面那排白卡片跟著整體往下推,頭像、名字、等級標籤現在直接壓在橫幅圖上 —— 這就是「露出背景圖」。只加高、不加內容,窄螢幕收到 72px;沒有把內容整體下移,那樣頂上最暗的遮罩就白留了,轉白的那幾行字會看不清
  • 按鈕 spring 回彈:按下時壓到 .955,放開時用 cubic-bezier(.34, 1.56, .64, 1) 收回來 —— 第二個控制點的 y = 1.56 大於 1,曲線會衝過終點再回調,那一下「彈」就是它。純 CSS,不用 JS、也不用物理引擎
  • prefers-reduced-motion 的降級改成只降「自主運動」:按鈕回彈(放開之後自己彈一下,屬於自主運動)換成普通的短過渡,仍然有按下回饋;滑鼠高光保留 —— 指標跟隨是直接操縱,動的是指標本身,不是頁面自己動。站長那份液態玻璃要求原文寫的也是「去掉 displacement,只保留 blur + 高光」。這也是這台機器唯一能看見高光的辦法:實測 Windows 的動畫效果是關的(MinAnimate = 0 / DragFullWindows = 0 / VisualFXSetting = 2),瀏覽器會如實回報 reduce,高光要是一起關掉就永遠看不到
  • 以上全部只在傳過橫幅的玩家主頁生效(整段仍然在 $pubBgCss !== '' 裡);其餘頁面 —— 包括沒有橫幅的玩家頁 —— 一個位元組都沒碰,自檢裡有四條斷言專門守這件事
  • 一句實話:這兩個都是「手感」效果,靜態截圖看不出來,得真的把滑鼠劃過去、真的按一下按鈕。另外建議順手在系統設定裡開啟動畫(設定 → 協助工具 → 視覺效果 → 動畫效果),否則瀏覽器會對所有網站說「使用者要求減少動態效果」
v1.9.30 網站 2026-10-02

液態玻璃重做:卡片顏色不再跟著捲動變

  • 真因不在算圖引擎:個人主頁的背景圖掛在 body 上、用的是 background-attachment: fixed。那句寫法的意思是「圖釘在視窗上不動」,而它不是一個獨立的合成圖層 —— 瀏覽器每一幀都要為卡片的 backdrop-filter 重新取樣它,取樣視窗和捲動位置不同步就「跳色」;同時卡片在移動、圖不動,於是每張半透明卡都會把整張照片掃一遍。兩件事疊在一起才是站長看到的「有時深、有時淺、又時正常」
  • 治捲動時閃:背景從 body 挪到一個 position: fixed 的獨立圖層(body::before,z-index: -1、pointer-events: none、will-change: transform)。獨立圖層可以被提升為合成圖層,整個捲動過程中取樣源都是同一塊已合成的點陣圖,不再逐幀重新取樣
  • 治靜止時深淺不同:卡片改成「材質自己定色」。依據是實測的線性外推 —— 跨捲動差 ≈ (1−alpha)×53,要壓到 4 級以內需要 alpha ≥ .925。大卡上緣 72% → 95%、下緣 60% → 90%;統計小格 80%/70% → 97%/94%;雷達卡 76%/66% → 96%/92%。照片仍有 5~10% 從卡裡透出來,那是玻璃的色感來源
  • 玻璃做成了多層材質:噪聲層 + 縱向漸層 + 邊緣掠射高光 + 內折射倒角,參數全部抽成變數(--glass-blur --glass-sat --glass-highlight --glass-displacement --glass-noise),要調直接改一處。一句實話:真正的 SVG feDisplacementMap 折射做不出來 —— Chromium 與 Safari 的 backdrop-filter 只接受濾鏡函式、不接受 url(#svgfilter),所以用一圈內折射倒角來近似那個視覺,沒有假裝做了
  • 效果:同一個位置跨捲動只差 3~6 級(上一版 18 級,最早 100 級),整體亮度落在 229~245;深色主題只差 1~3 級。同時去掉了玻璃面上的 text-shadow 白暈 —— 卡面穩定之後它不再有用,只會吃掉 12px 小字的字幹
  • 順便修「能力雷達圖字不好看出來」:沒動任何透明度,只把「全服」那幾行副標籤的字號從 .76rem 提到和主行一致的 .84rem、顏色從次要灰提到正文色、補一點字重。真因是 12px 與 13px 的中文在 Windows 下走的是不同的反鋸齒檔。以上只影響傳過橫幅的玩家主頁,沒有橫幅的頁面一個位元組都沒碰
v1.9.29 網站 2026-10-02

翻頁時卡片忽深忽淺,修好了

  • 真因不是算圖 bug:個人主頁的背景圖用了 background-attachment: fixed,圖片釘在視窗上不動,而卡片跟著頁面捲 —— 於是每張半透明的卡都會把整張照片「掃」一遍:掃到深色天空就發暗,掃到亮色建築就發白。實測同一張卡隨捲動從 rgb(99,107,125) 一路擺到 rgb(201,197,200),差了 100 級灰
  • 修法是把玻璃本身加密一檔 —— 能同時保住「透明」和「穩定」的槓桿只有 alpha:大卡片上緣 56% → 72%、下緣 34% → 60%;統計小格 76%/60% → 80%/70%;雷達卡 70%/52% → 76%/66%。三檔的密度關係(大卡最透、小格最實)保持不變
  • 效果:同一個位置跨捲動只差 14 級(原來 47 級),整體亮度落在 163~206 —— 從「中灰發暗」變成明確的淺色磨砂。深色主題同步加密(82%/72% 那一檔),跨捲動只差 4~8 級
  • 只影響傳過橫幅背景的玩家主頁。沒有橫幅的頁面(例如 /players/zlc)根本不發這段玻璃樣式,這次改動對它們一個位元組都沒碰
v1.9.28 網站 2026-10-02

「日均在線 86 小時」修好了

  • 原來的算法是「終身累計時長 ÷ 有工作階段記錄的活躍天數」—— 分子是十年的,分母只有 2026-09-12 之後的 11 天,兩個年代相除就出了「86 小時/天」。不是分子錯了,是分母缺了大半
  • 分母換成終身活躍天數:聊天紀錄、成就解鎖、進服工作階段三張表按天去重取聯集 —— 你的號是 423 天。941 小時 ÷ 423 天 = 2 小時/天,量級終於對了
  • 順帶修好兩處:登入次數改用終身累計(1,655 次,以前 929 個老玩家顯示 0);最長單次時長不會再出現「平均 21 分鐘、最長 0 小時」這種不可能的組合
  • 還順手修好三枚成就:活躍 7 / 30 / 100 天 之前因為同一個分母永遠解鎖不了 —— 全站工作階段紀錄最多只有 16 天,門檻根本構不著
  • 安全稽核(一):修掉會被人真正利用的幾處 —— 上傳的 SVG 裡能用跳脫藏外鏈(頭像能拿去偷訪客 IP)、後台能刪到 uploads 之外的檔案、登入有開放重定向、備份壓縮檔裡的指令碼能落地成網頁後門、兩個本機偵錯指令碼在線上可被存取
  • 安全稽核(二):介面與後台加固 —— 空名單不再能一鍵清空全站封禁、上報有列數上限、白名單名字有驗證、聊天單筆失敗不再拖垮整批、資料庫錯誤不再把細節回顯給訪客
v1.9.27 網站 2026-10-02

雷達那一欄的小字,看清楚了

  • 「能力雷達」那一欄的小字(軸名、右側數值、「全服」、下面那段說明)坐在 34% 的玻璃上時,最暗的地方對比度只有 3.3 : 1 —— 低於小字該有的 4.5 : 1。這就是你說的「看不清」,確實是我上一版沒收乾淨
  • 修法兩處:次要文字整體壓深一檔;同時給「能力雷達」整張卡單獨一檔底色 —— 它整張卡幾乎全是小字,不該和大卡片共用同一個透明度
  • 大卡片沒有被牽連:皮膚卡、成就卡、頁尾仍然是 34%,背後的圖照樣透得出來;統計小格原來那檔密底色也不變
  • 深色主題配了同款;仍然只發生在傳過橫幅的頁面上,沒橫幅的角色頁一個像素都沒動
v1.9.26 網站 2026-10-02

玻璃再透一檔,字照樣看得清

  • 主頁面:上沿 62% → 56%、下沿 40% → 34%。現在背後的圖是真的看得見了 —— 塔燈的豎條、地平線、遠景的方塊輪廓都能透出來,不再是一塊磨砂板
  • 「能看見圖」和「字看得清」本來是打架的,所以拆開處理:統計小格(「累計在線」「登入次數」那種小字密集區)單獨用一組更密的底色(76% → 60%),大卡片保持很透。小的更實、大的更透,正好和蘋果的層次反過來用
  • 文字補了一圈極淡的同向光暈(text-shadow)—— 底子亮時看不出來,底子暗時才顯形,等於給字自帶一層局部底。這樣才敢把透明度壓到 34%
  • 深色主題配了對應的深玻璃與暗色光暈;仍然只發生在傳過橫幅的頁面上,沒橫幅的角色頁一個像素都沒動
v1.9.25 網站 2026-10-01

玻璃再透一點,也更像蘋果了

  • 主頁面:不再是「一層均勻的 68% 白」,改成上亮下透的豎向漸層(62% → 40%),高斯模糊 22px → 32px,另加 saturate(180%) + brightness(1.12)。蘋果那種玻璃會「拾取」背後的顏色並略微提亮,光加模糊只會像磨砂
  • 玻璃片四周多了折射邊 —— 上沿一道 1px 掠射高光,內側再圍一圈極淡的描邊;陰影也拆成兩層(貼地的接觸陰影 + 散開的環境陰影),這樣玻璃才像「浮」在圖上,而不是貼著一張紙
  • 順手修了一個調透之後才冒出來的問題:「累計在線」「登入次數」這類副標籤快看不見了 —— 它們用的灰在半透的白底子上只有 2.5:1。現在玻璃面內單獨換深一檔,壓在圖上的那行小字保持原樣不動
  • 深色主題跟著換了一整套深玻璃參數;這些仍然只發生在傳過橫幅的頁面上,沒橫幅的角色頁一個像素都沒動
v1.9.24 網站 2026-10-01

主頁變成了「液態玻璃」

  • 卡片、外觀卡、六個統計方塊和整個頁尾都換成了半透明玻璃(68% 白 + 22px 高斯模糊),背後的橫幅被模糊之後透出來。字仍是深色,壓在圖上也看得清;深色主題自動換成深玻璃
  • 成就徽章卡片的標題列多了「全部收合 / 全部展開」 —— 8 個分類一次收掉,不用再滑到 98 枚勳章的最下面去按那個按鈕
  • 右下角的管理抽屜多了第四個頁籤「頭像 / 背景」,待審的圖直接在那兒通過或拒絕。它和後台「玩家與資料 → 頭像 / 背景」是同一份資料,在哪邊審都一樣
  • 這些只發生在傳過橫幅的頁面上 —— 沒橫幅的角色頁一個像素都沒動(我拿改動前後的截圖逐像素比對過)
  • 玻璃做不出來時(老瀏覽器)會自動退回原來的實心卡片;但沒有跟隨系統的「降低透明度」偏好 —— 站長自己那台機器的 Windows 透明效果就是關的,跟隨它的話他自己一個玻璃都看不到
v1.9.23 網站 2026-10-01

個人主頁能鋪滿整屏了

  • 背景 —— 傳過橫幅的人,角色頁會用那張圖鋪滿整個瀏覽器視窗,頭像、暱稱、等級、位置都壓在圖上面。沒傳過橫幅的頁面一個像素都不變
  • 位置 —— 個人中心「個人化」裡可以選國家(選了中國還能選到省份),選完會顯示在主頁「離線 / 排名 #8」那一排;不選就不顯示
  • 玩家列表的行首頭像改成優先用你自己傳的那張。以前一律去國外取官方外觀頭像,國內基本載入不出來,所以看到的永遠是彩色字母方塊
  • 上傳的頭像和背景要經過審核才會出現在頁面上。審核期間舊圖繼續用,不會出現「一半新一半舊」;想撤掉的話點「移除」是立刻生效的
  • 上傳上限放寬:橫幅最大 3840×2160(原 1920×1080),並且開始接受 SVG —— SVG 會做安全清洗,指令碼、外部引用、內嵌 HTML 全部丟掉
v1.9.22 網站 2026-10-01

彈窗換個樣子 · 老封禁補回來了

  • 全站 16 處彈窗統一成站內自己的樣式。原來那些是瀏覽器自己的框,頂上還寫著「cloudridge.cn 顯示」,手機端尤其出戲,樣式也完全不跟著站點走。現在標題、正文、按鈕都由站點控制,危險操作是紅色按鈕,Esc 取消、Enter 確認、關掉之後焦點自動回到剛才點的那個按鈕上
  • 老服關服時還封著的 8 個人 + 3 個 IP 補回了封禁名單,公示頁自此是 12 人 + 7 個 IP。名字、IP、封禁時間和處理人都按當年原樣抄回來,沒有一處是編的。有一點要說清楚:模組只是讀伺服器上的封禁檔案往上匯報,遊戲裡真正攔人仍以伺服器那份名單為準 —— 名單要等伺服器重新載入才生效
v1.9.21 網站 2026-10-01

那個「未知玩家」並回本人了

  • 玩家列表上一直掛著一行「未知玩家 · 000000」,看著像第四個沒被統計到的人。查清楚了:舊服的 floodgate 給基岩版玩家發的 UUID 落在 00000000-0000-0000-0009-… 這個佔位域裡,而模組上報時只能拿名字 —— 那一刻名字恰好就是這個 UUID。它其實是 birdzhonghuifei 用基岩版玩的那段時間,現在並回本人了
  • 合併的規矩:計數類(時長、登入次數、死亡、挖掘、放置、移動距離)相加,進度取聯集,首次進服取更早的那個、最後在線取更晚的那個 —— 時間是不能相加的。掛在他名下的 9 枚徽章本人早就有同款,重複的那份直接丟掉。玩家榜因此少了一行,birdzhonghuifei 的數字也比原來更完整
v1.9.20 網站 2026-10-01

日曆能直接跳年月了

  • 日曆彈層左上角多出「年」「月」兩個下拉:先挑年份再挑月份,兩步就能到任何一個月,不用再點著 ‹ 一個月一個月往前翻。左右兩個翻月按鈕和中间的「今天」都還在,翻頁時兩個下拉會跟著一起走
  • 順手修掉一個排序毛病:按「首次進入」排序時,日期查不到的那幾行原本會被頂到第 1–4 名,看著像整個榜單壞了 —— 「沒有值」並不等於「最早」。現在這類行一律沉到榜尾,不論升序還是降序
v1.9.19 網站 2026-10-01

聊天記錄又補回 229 條

  • TrChat 外掛日誌只從 2023-09-01 才開始記錄,2024 下半年有幾段是殘缺的。這次把三個從沒匯入過的舊服 CoreProtect 資料庫翻了出來,裡面存著 2024-07 到 2024-12 的 34,417 條聊天;去重之後淨補回 229 條發言,分佈在 37 天,最早的是 2024-07-11
  • 去重按「同一個玩家 ±5 秒內已經說過同一句」判定 —— 同一條發言 TrChat 和 CoreProtect 各記一份,時間戳常差 1 秒、偶爾正好跨過分鐘線,按分鐘比會把這幾十條誤當成新發言重複刷進來
  • 這 37 天原本也不是一片空白 —— TrChat 當時記下了大部分對話,補回來的是被漏掉的那些零星幾句。現在翻到 2024 年 7 月到 12 月的這些日子,當時聊的內容更完整了
v1.9.18 網站 2026-10-01

帳號裡的小號可以攤開了

  • 「玩家列表」裡名下不只一個角色的行,行首多了一個箭頭:預設收起,點一下把每個角色攤開成單獨一行,各自的累計在線、登入次數、最後在線、狀態一目了然(主行是加總,子行是各自的值)。再點一下收回
  • 搜小號的名字會把那一行自動展開 —— 搜 Winter 時你會直接看到它和 Fruity_oxygen 各自的資料,不用先猜它掛在誰名下。順帶修掉一個老毛病:按「玩家名」排序時表頭比正文少一欄,整張表會錯位
v1.9.17 網站 2026-10-01

玩家榜改按帳號排名 · 三年的聊天紀錄全部找回

  • 「玩家列表」現在一行 = 一個網站帳號:同一個 QQ 名下的小號資料加在一起算(Fruity_oxygen 與 Winter 合併成一行、ElfinLettuc 與 Faithe 合併成一行),沒綁過網站帳號的散人各佔一行。名字後面那枚「N 個角色」徽章可以點開看是誰併到了誰名下 —— 原本把大號和小號拆成兩行的榜單,看著像小號白玩了
  • 新增帳號主頁(/accounts/編號):名下每個角色單獨列出來,各自的時長與登入次數一目了然,上面的彙總數字就是它們相加的結果。這個頁面完全公開,不用登入也能看。順帶清掉一筆髒資料:有個角色的綁定欄位指向了一個根本不存在的帳號編號
  • 回填了三個一直被佔位值糊住的欄位:最後在線(原本 929 個角色全寫著 2026-09-13)、首次進服(936 個同樣是假的 2026-09-13)、登入次數(全站合計只有 291,928 個人顯示「—」)。最後在線取自伺服器存檔檔案的修改時間,首次進服與登入次數取自歷代伺服器的日誌。現在 wwwsum 老老實實寫著 2024-08-22、7Strawberry 寫著 2024-03-07,登入次數由 291 漲到 21,766
  • 聊天框把開服以來的紀錄全部補回來了:從 2022-12-16 的第一條,到 2026-09-25 模組即時上報接手,一共 174,457 條發言與進出服紀錄(發言 124,024 條、進服 25,424 次、退服 25,009 次)。以前只有裝過模組的那幾天有紀錄,現在在網頁地圖上隨便點一天,都能看到當時的對話
  • 日曆原本只把最近 400 天標成可點,補回來的 729 天裡有 492 天點不動 —— 等於還原了卻看不到。現在有紀錄的每一天都能點進去。另外「註冊玩家」這個數字在首頁和玩家列表上原本差了 2(791 對 789),已統一成帳號口徑

日期為對應版本的發佈時間。發現新問題歡迎到討論區回報,或直接找服主。