From 12e6a0ca50aba892d78a33ff80cc2c22d542638c 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, 25 Oct 2025 01:55:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=AB=98=E5=8F=B0=E7=BB=98?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PVP/The_Borderland_Ruins.cs | 88 ++++++++++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 11 deletions(-) diff --git a/PVP/The_Borderland_Ruins.cs b/PVP/The_Borderland_Ruins.cs index 26f9de3..dfc4699 100644 --- a/PVP/The_Borderland_Ruins.cs +++ b/PVP/The_Borderland_Ruins.cs @@ -1,4 +1,5 @@ using System; +using System.Runtime; using System.ComponentModel; using System.Linq; using System.Numerics; @@ -10,18 +11,19 @@ using KodakkuAssist.Module.GameEvent; using KodakkuAssist.Module.Draw; using KodakkuAssist.Data; using KodakkuAssist.Extensions; +using System.Threading; using System.Threading.Tasks; namespace The_Borderland_Ruins; [ScriptType(guid: "ec9c9f7d-be48-4974-82cf-396b0fc29261", name: "周边遗迹群(阵地战)", territorys: [1273], - version: "0.0.0.2", author: "Tetora", note: noteStr)] + version: "0.0.0.3", author: "Tetora", note: noteStr)] public class The_Borderland_Ruins { const string noteStr = """ - v0.0.0.1: + v0.0.0.3: 周边遗迹群(阵地战)部分绘制 """; @@ -41,7 +43,7 @@ public class The_Borderland_Ruins #endregion - [ScriptMethod(name: "对地炮击(地面黄圈)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:42935"])] + [ScriptMethod(name: "对地炮击(地面黄圈)填充动画", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:42935"])] public void 对地炮击(Event @event, ScriptAccessory accessory) { // 请求对地炮击 42933 @@ -60,14 +62,30 @@ public class The_Borderland_Ruins { // 请求集中炮击 43158 // TargetIcon: 003E - if (isText)accessory.Method.TextInfo("分摊", duration: 4300, false); - var dp = accessory.Data.GetDefaultDrawProperties(); - dp.Name = "集中炮击"; - dp.Color = accessory.Data.DefaultDangerColor; - dp.Owner = @event.TargetId(); - dp.Scale = new Vector2(6f); - dp.DestoryAt = 4700; - accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + if (@event.TargetId() != accessory.Data.Me) + { + if (isText) accessory.Method.TextInfo("分摊", duration: 4300, false); + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "集中炮击"; + dp.Color = accessory.Data.DefaultDangerColor; + dp.Owner = @event.TargetId(); + dp.Scale = new Vector2(6f); + dp.DestoryAt = 4700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + } + else + { + if (isText)accessory.Method.TextInfo("分摊点名", duration: 4300, true); + if (isTTS)accessory.Method.TTS("分摊点名"); + if (isEdgeTTS)accessory.Method.EdgeTTS("分摊点名"); + var dp1 = accessory.Data.GetDefaultDrawProperties(); + dp1.Name = "集中炮击点名"; + dp1.Color = accessory.Data.DefaultSafeColor; + dp1.Owner = @event.TargetId(); + dp1.Scale = new Vector2(6f); + dp1.DestoryAt = 4700; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp1); + } } [ScriptMethod(name: "精密炮击(追踪黄圈)Imgui高亮", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:regex:^4293[78]$"])] @@ -84,6 +102,54 @@ public class The_Borderland_Ruins accessory.Method.SendDraw(DrawModeEnum.Imgui, DrawTypeEnum.Circle, dp); } + + private Guid _currentOperationId = Guid.Empty; + + [ScriptMethod(name: "物体130(高台狂暴)", eventType: EventTypeEnum.StartCasting, eventCondition: ["ActionId:2616"])] + public async void 物体130(Event @event, ScriptAccessory accessory) + { + var operationId = Guid.NewGuid(); + _currentOperationId = operationId; + + await Task.Delay(19700); + + if (_currentOperationId != operationId) return; + + + var dp = accessory.Data.GetDefaultDrawProperties(); + dp.Name = "物体130"; + dp.Color = accessory.Data.DefaultDangerColor.WithW(0.4f); + dp.Owner = @event.SourceId(); + dp.Scale = new Vector2(38.4f); + dp.DestoryAt = 10000; + dp.ScaleMode = ScaleMode.ByTime; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Circle, dp); + + var dp1 = accessory.Data.GetDefaultDrawProperties(); + dp1.Name = "物体130描边"; + dp1.Color = accessory.Data.DefaultDangerColor.WithW(8f); + dp1.Owner = @event.SourceId(); + dp1.Scale = new Vector2(38.4f); + dp1.InnerScale = new Vector2(38.3f); + dp1.Radian = float.Pi * 2; + dp1.DestoryAt = 10000; + accessory.Method.SendDraw(DrawModeEnum.Default, DrawTypeEnum.Donut, dp1); + } + + [ScriptMethod(name: "物体130中断销毁", eventType: EventTypeEnum.CancelAction, eventCondition: ["ActionId:2616"], userControl: false)] + public void 物体130中断销毁(Event @event, ScriptAccessory accessory) + { + _currentOperationId = Guid.NewGuid(); + accessory.Method.RemoveDraw($"物体130.*"); + } + + [ScriptMethod(name: "截击系统死亡销毁", eventType: EventTypeEnum.Death, eventCondition: ["TargetDataId:3096"], userControl: false)] + public void 截击系统死亡销毁(Event @event, ScriptAccessory accessory) + { + _currentOperationId = Guid.NewGuid(); + accessory.Method.RemoveDraw($"物体130.*"); + } + } public static class EventExtensions