From f363a8a24adc980ec1d625250b1c555e2e0a5217 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Mon, 3 Nov 2025 08:38:47 +0800 Subject: [PATCH] Fix musica sc script handle --- src/scripts/musica/sc.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/scripts/musica/sc.rs b/src/scripts/musica/sc.rs index f70b4a9..87be167 100644 --- a/src/scripts/musica/sc.rs +++ b/src/scripts/musica/sc.rs @@ -76,8 +76,10 @@ impl Script for MusicaScript { } // .message if parts[0] == ".message" && parts.len() >= 5 { - let name = parts[3].clone(); - let text = parts[4].clone(); + let name_index = parts.len() - 2; + let text_index = parts.len() - 1; + let name = parts[name_index].clone(); + let text = parts[text_index].clone(); let message = Message { name: if name.is_empty() { None } else { Some(name) }, message: text, @@ -110,7 +112,9 @@ impl Script for MusicaScript { Some(m) => m, None => return Err(anyhow::anyhow!("Not enough messages to import.")), }; - if !parts[3].is_empty() { + let name_index = parts.len() - 2; + let text_index = parts.len() - 1; + if !parts[name_index].is_empty() { let mut name = match &m.name { Some(n) => n.clone(), None => { @@ -125,7 +129,7 @@ impl Script for MusicaScript { name = name.replace(k, v); } } - parts[3] = name.replace(' ', "\u{3000}"); + parts[name_index] = name.replace(' ', "\u{3000}"); } let mut text = m.message.clone(); if let Some(repl) = replacement { @@ -133,7 +137,7 @@ impl Script for MusicaScript { text = text.replace(k, v); } } - parts[4] = text.replace(' ', "\u{3000}"); + parts[text_index] = text.replace(' ', "\u{3000}"); me = mes.next(); } let line = parts.join(" ");