鍵盤快捷鍵
More languages
More actions
此頁面可查看和編輯 ShroudForge 窗口快捷鍵,以及模組在自己的 extended.mod.json 中明確聲明為 control: "keybind" 的快捷鍵。
分配快捷鍵
單擊輸入框,然後按下所需的按鍵或組合鍵。輸入使用物理 SDL3 掃描碼,例如 F7 對應的 SDL:64、Ctrl+SDL:29 或 Shift+SDL:100。這樣可確保不同鍵盤布局下物理按鍵的位置一致。SDL 會根據當前作業系統布局提供易讀的標籤。Ctrl、Alt、Shift 和 Meta 等修飾鍵必須完全匹配。
錄製時,ShroudForge 會在所有進程中屏蔽其窗口快捷鍵和已聲明的模組快捷鍵。取消錄製或窗口焦點變化後,只要仍有按鍵或滑鼠按鈕處於按下狀態,保護就會繼續生效。隨後會開始固定的三秒延遲,新輸入不會重置該延遲。無論是否帶修飾鍵,都不能錄製 Escape。遊戲使用它打開暫停菜單和關閉窗口,因此按下 Escape 會取消錄製並保留原來的快捷鍵。綁定新的 F1 或 F12 需要確認,因為 Enshrouded 或 Steam 可能會使用它們。保存與其他啟用的 ShroudForge 快捷鍵衝突的綁定會被阻止。
選擇 Clear 可禁用快捷鍵。對於 ShroudForge 窗口,你可以恢復內置默認值。模組快捷鍵仍屬於各自模組的設置。模組設置中的欄位和 Compatibility → Hotkeys 下的欄位會編輯同一個已保存值。
ShroudForge 模組中的快捷鍵
模組作者會在 extended.mod.json 中將快捷鍵聲明為一項設置:
{
"settings": {
"pasteKey": {
"value": "SDL:64",
"label": "Paste blueprint",
"control": "keybind",
"applyAt": "live"
}
}
}
模組通過 ShroudForge Lua API 讀取此設置。它會響應當前值,而不是在腳本中寫死某個按鍵:
return {
on_update = function()
if shroudforge.input.was_keybind_pressed("pasteKey") then
-- Run the action.
end
end,
}
shroudforge.input.was_keybind_pressed("pasteKey") 會在運行時更新之間保留短按,並且每個模組和設置只返回一次 true。已保存的實時更改會在一秒內傳到運行時。對於按住時需要重複執行的操作,請使用 is_keybind_down。舊的 is_key_down("F1") 到 is_key_down("F8") API 從 ShroudForge 1.7.6 起不再受支持。調用它會記錄遷移消息並引發 Lua 錯誤。請改為聲明 keybind 設置,並在 Hotkey Manager 的 Compatibility → Hotkeys 中為其分配按鍵。shroudforge.input.keybind_label("pasteKey") 會根據當前作業系統布局返回易讀的 SDL 標籤。遊戲窗口處於焦點時可以查詢按鍵。僅聲明設置不會更改腳本中寫死的按鍵。模組必須通過 API 讀取此值並將它用於相應操作。
衝突和其他模組
ShroudForge 會報告啟用的 ShroudForge 窗口快捷鍵與已聲明模組按鍵綁定之間的衝突。如果按鍵和修飾鍵組合重疊,保存時會阻止新增的快捷鍵衝突。
獨立的 EML 模組和自行管理快捷鍵的 DLL 模組無法在此處可靠地重新映射或攔截。如果模組提供相關選項,請在各自的設置或配置中指定快捷鍵。如果 EML 模組在 extended.mod.json 中明確聲明了匹配的 keybind 設置,並通過 ShroudForge Lua API 使用它,也可以顯示在此處。這不會接管由 EML 或 DLL 獨立管理的快捷鍵。