From 0753ae6f9769987b806989c0bfd050b79f4fdc8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=97=E6=B2=A2=E5=93=8D=E4=B9=9F?= <72963826+Hibiya615@users.noreply.github.com> Date: Sat, 29 Nov 2025 17:47:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A6=96=E5=AE=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Deep_Dungeon/Pilgrims_Traverse.cs | 106 ++++++++++++++++++------------ OnlineRepo.json | 6 +- 2 files changed, 66 insertions(+), 46 deletions(-) diff --git a/Deep_Dungeon/Pilgrims_Traverse.cs b/Deep_Dungeon/Pilgrims_Traverse.cs index f756deb..86e3ffe 100644 --- a/Deep_Dungeon/Pilgrims_Traverse.cs +++ b/Deep_Dungeon/Pilgrims_Traverse.cs @@ -26,13 +26,13 @@ namespace Pilgrims_Traverse; [ScriptType(guid: "3f65b3c0-df48-4ef8-89ae-b8091b7690f1", name: "朝圣交错路", author: "Tetora", territorys: [1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1311, 1333], - version: "0.0.1.8",note: noteStr)] + version: "0.0.1.9",note: noteStr)] public class Pilgrims_Traverse { const string noteStr = """ - v0.0.1.8: + v0.0.1.9: 朝圣交错路 (Pilgrim's Traverse) 基础绘制 更新日志见dc,出现问题请带ARR录像文件反馈 注:方法设置中的层数仅做分割线效果,并不是批量开关 @@ -3875,52 +3875,72 @@ public class Pilgrims_Traverse [ScriptMethod(name: "罪积蓄(毒)点名播报 / Sin Bearer Calling out names", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:4567", "Param:1"])] public void 罪积蓄点名播报(Event @event, ScriptAccessory accessory) { - string tname = @event["TargetName"]?.ToString() ?? "未知目标"; - if (isTTS)accessory.Method.TTS($"毒点{tname}"); - if (isEdgeTTS)accessory.Method.EdgeTTS($"毒点{tname}"); + try + { + string tname = @event["TargetName"]?.ToString() ?? "未知目标"; + if (isTTS && accessory?.Method != null) accessory.Method.TTS($"毒点{tname}"); + if (isEdgeTTS && accessory?.Method != null) accessory.Method.EdgeTTS($"毒点{tname}"); + } + catch (Exception ex) + { + } + } + + private async Task SafeExecuteAsync(Func func, string methodName) + { + try + { + await func(); + } + catch (Exception ex) + { + } } [ScriptMethod(name: "罪积蓄(毒)绘制 / Sin Bearer Draw", eventType: EventTypeEnum.StatusAdd, eventCondition: ["StatusID:4567"])] public async void 罪积蓄绘制(Event @event, ScriptAccessory accessory) { - uint layerCount = @event.StatusParam; - - var dp = accessory.Data.GetDefaultDrawProperties(); - var dp1 = accessory.Data.GetDefaultDrawProperties(); - dp1.Name = dp.Name = $"罪积蓄{layerCount}"; - dp1.Owner = dp.Owner = @event.TargetId(); - - if (layerCount == 1) - { - accessory.Method.RemoveDraw($"罪积蓄.*"); - await Task.Delay(50); - dp.Color = new Vector4(1f, 1f, 1f, 2f); - dp1.Color = new Vector4(1f, 1f, 1f, 10f); - dp1.Scale = dp.Scale = new Vector2(0.7f); // 描边外径 - dp1.InnerScale = new Vector2(0.65f); - dp1.Radian = float.Pi * 2; - dp1.DestoryAt = dp.DestoryAt = 30000; - accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp1); - accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); - } - else if (layerCount == 12) - { - accessory.Method.RemoveDraw($"罪积蓄.*"); - await Task.Delay(50); - dp.Color = new Vector4(1f, 1f, 1f, 0.8f); - dp.Scale = new Vector2(4f); - dp.DestoryAt = 12000; - accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); - } - else if (layerCount >= 12 && layerCount <= 15) - { - if (isTTS) accessory.Method.TTS($"{layerCount}"); - if (isEdgeTTS) accessory.Method.EdgeTTS($"{layerCount}"); - } - else - { - return; - } + await SafeExecuteAsync(async () => + { + uint layerCount = @event.StatusParam; + + var dp = accessory.Data.GetDefaultDrawProperties(); + var dp1 = accessory.Data.GetDefaultDrawProperties(); + dp1.Name = dp.Name = $"罪积蓄{layerCount}"; + dp1.Owner = dp.Owner = @event.TargetId(); + + if (layerCount == 1) + { + accessory.Method.RemoveDraw($"罪积蓄.*"); + await Task.Delay(50); + dp.Color = new Vector4(1f, 1f, 1f, 2f); + dp1.Color = new Vector4(1f, 1f, 1f, 10f); + dp1.Scale = dp.Scale = new Vector2(0.7f); // 描边外径 + dp1.InnerScale = new Vector2(0.65f); + dp1.Radian = float.Pi * 2; + dp1.DestoryAt = dp.DestoryAt = 30000; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp1); + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + else if (layerCount == 12) + { + accessory.Method.RemoveDraw($"罪积蓄.*"); + await Task.Delay(50); + dp.Color = new Vector4(1f, 1f, 1f, 0.8f); + dp.Scale = new Vector2(4f); + dp.DestoryAt = 12000; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + else if (layerCount >= 12 && layerCount <= 15) + { + if (isTTS) accessory.Method.TTS($"{layerCount}"); + if (isEdgeTTS) accessory.Method.EdgeTTS($"{layerCount}"); + } + else + { + return; + } + }, "罪积蓄绘制"); } [ScriptMethod(name: "罪积蓄销毁", eventType: EventTypeEnum.StatusRemove, eventCondition: ["StatusID:4567"],userControl: false)] diff --git a/OnlineRepo.json b/OnlineRepo.json index 0c96540..4e82d1d 100644 --- a/OnlineRepo.json +++ b/OnlineRepo.json @@ -712,12 +712,12 @@ { "Name": "朝圣交错路", "Guid": "3f65b3c0-df48-4ef8-89ae-b8091b7690f1", - "Version": "0.0.1.8", + "Version": "0.0.1.9", "Author": "Tetora", "Repo": "https://github.com/Hibiya615/TetoraKAScript", "DownloadUrl": "https://raw.githubusercontent.com/Hibiya615/TetoraKAScript/refs/heads/main/Deep_Dungeon/Pilgrims_Traverse.cs", - "Note": "v0.0.1.8:\r\n朝圣交错路测试绘制\r\n未全部测试,可能部分有误,更新日志见dc\r\n注:方法设置中的层数仅做分割线效果,并不是批量开关\r\n出现问题请携带ARR反馈!", - "UpdateInfo": "v0.0.1.8: 朝圣交错路测试绘制 更新内容见dc", + "Note": "v0.0.1.9:\r\n朝圣交错路绘制\r\n更新日志见dc\r\n注:方法设置中的层数仅做分割线效果,并不是批量开关\r\n出现问题请携带ARR反馈!", + "UpdateInfo": "v0.0.1.9: 增加安全检查", "TerritoryIds": [ 1281, 1282,