package catalogs import ( "encoding/json" "os" "path/filepath" "sync" ) var _ = json.RawMessage{} var _ = sync.Mutex{} var _ = os.ReadFile var _ = filepath.Join // 一条台词索引项。字段与 DialogIndex.json 的行一一对应。 type DialogEntry struct { Id uint32 `json:"id"` Message string `json:"message"` Speaker string `json:"speaker"` CameraId uint32 `json:"cameraId"` Type int32 `json:"type"` // 带镜头(cam != 0)= 这条是「过场对话」,会拉运镜;纯台词 cam 为 0。 IsCutscene bool `json:"isCutscene"` } // // 台詞索引(Configs/DialogIndex.json,58932 条,其中带镜头过场 1205 条)。 // ★ 用途:GM 面板「剧情对话」子页用 Search 列出可播的台词, // 玩家/开发者选中一条后由服务端推 SyncShowDialog(64967628) 让客户端播出来。 // type 分布(前几类):15=18941 / 14=16625 / 10=9503 / 13=6724 / 22=5258。 // ⛑ 这份表只用于「列清单 + 取文案」;真正播什么由客户端按自己的 DialogConfig 演, // 服务端发的只是 id —— 所以表里查不到的 id 也照样能下发(客户端有自己的数据)。 // type StoryDialogue4229938 struct { Cache any `json:"cache"` All []DialogEntry `json:"all"` Count int32 `json:"count"` CutsceneCount int32 `json:"cutsceneCount"` }